Merge tizen2.4 starter 73/39173/1
authorjunkyu.han <junkyu.han@samsung.com>
Mon, 11 May 2015 07:31:33 +0000 (16:31 +0900)
committerjunkyu.han <junkyu.han@samsung.com>
Mon, 11 May 2015 07:32:33 +0000 (16:32 +0900)
Change-Id: I746cceccc33934d7ba81e38c526e8f5a25133ef5

261 files changed:
AUTHORS [deleted file]
CMakeLists.txt [changed mode: 0755->0644]
LICENSE [new file with mode: 0644]
LICENSE.Flora [deleted file]
NOTICE [changed mode: 0755->0644]
debian/changelog [deleted file]
debian/compat [deleted file]
debian/control [deleted file]
debian/rules [deleted file]
debian/starter.install.in [deleted file]
debian/starter.postinst [deleted file]
include/dbus_util.h [new file with mode: 0644]
include/hw_key.h [deleted file]
include/lock-daemon.h [deleted file]
include/lockd-debug.h [deleted file]
include/lockd-process-mgr.h [deleted file]
include/lockd-window-mgr.h [deleted file]
include/menu_daemon.h [deleted file]
include/mobile/home_mgr.h [new file with mode: 0644]
include/mobile/hw_key.h [new file with mode: 0644]
include/mobile/lock_mgr.h [new file with mode: 0644]
include/mobile/lock_pwd_complex.h [new file with mode: 0644]
include/mobile/lock_pwd_control_panel.h [new file with mode: 0644]
include/mobile/lock_pwd_simple.h [new file with mode: 0755]
include/mobile/lock_pwd_util.h [new file with mode: 0644]
include/mobile/lock_pwd_verification.h [new file with mode: 0755]
include/mobile/popup.h [new file with mode: 0644]
include/mobile/starter.h [new file with mode: 0644]
include/package_mgr.h [new file with mode: 0644]
include/pkg_event.h [deleted file]
include/process_mgr.h [new file with mode: 0644]
include/starter-util.h [deleted file]
include/starter-vconf.h [deleted file]
include/starter.h [deleted file]
include/status.h [new file with mode: 0644]
include/util.h [changed mode: 0755->0644]
include/wearable/clock_mgr.h [new file with mode: 0644]
include/wearable/home_mgr.h [new file with mode: 0644]
include/wearable/hourly_alert.h [new file with mode: 0644]
include/wearable/hw_key.h [new file with mode: 0644]
include/window_mgr.h [new file with mode: 0644]
include/x11.h [deleted file]
include/xmonitor.h [deleted file]
lock-setting/CMakeLists.txt [deleted file]
lock-setting/lockscreen-options/CMakeLists.txt [deleted file]
lock-setting/lockscreen-options/include/lockscreen-options-debug.h [deleted file]
lock-setting/lockscreen-options/include/lockscreen-options-main.h [deleted file]
lock-setting/lockscreen-options/include/lockscreen-options-util.h [deleted file]
lock-setting/lockscreen-options/include/lockscreen-options.h [deleted file]
lock-setting/lockscreen-options/src/lockscreen-options-main.c [deleted file]
lock-setting/lockscreen-options/src/lockscreen-options-util.c [deleted file]
lock-setting/lockscreen-options/src/lockscreen-options.c [deleted file]
lock-setting/po/CMakeLists.txt [deleted file]
lock-setting/po/ar.po [deleted file]
lock-setting/po/az.po [deleted file]
lock-setting/po/bg.po [deleted file]
lock-setting/po/ca.po [deleted file]
lock-setting/po/cs.po [deleted file]
lock-setting/po/da.po [deleted file]
lock-setting/po/de_DE.po [deleted file]
lock-setting/po/el_GR.po [deleted file]
lock-setting/po/en.po [deleted file]
lock-setting/po/en_PH.po [deleted file]
lock-setting/po/en_US.po [deleted file]
lock-setting/po/es_ES.po [deleted file]
lock-setting/po/es_MX.po [deleted file]
lock-setting/po/es_US.po [deleted file]
lock-setting/po/et.po [deleted file]
lock-setting/po/eu.po [deleted file]
lock-setting/po/fi.po [deleted file]
lock-setting/po/fr_CA.po [deleted file]
lock-setting/po/fr_FR.po [deleted file]
lock-setting/po/ga.po [deleted file]
lock-setting/po/gl.po [deleted file]
lock-setting/po/hi.po [deleted file]
lock-setting/po/hr.po [deleted file]
lock-setting/po/hu.po [deleted file]
lock-setting/po/hy.po [deleted file]
lock-setting/po/is.po [deleted file]
lock-setting/po/it_IT.po [deleted file]
lock-setting/po/ja_JP.po [deleted file]
lock-setting/po/ka.po [deleted file]
lock-setting/po/kk.po [deleted file]
lock-setting/po/ko_KR.po [deleted file]
lock-setting/po/lt.po [deleted file]
lock-setting/po/lv.po [deleted file]
lock-setting/po/mk.po [deleted file]
lock-setting/po/nb.po [deleted file]
lock-setting/po/nl_NL.po [deleted file]
lock-setting/po/pl.po [deleted file]
lock-setting/po/pt_BR.po [deleted file]
lock-setting/po/pt_PT.po [deleted file]
lock-setting/po/ro.po [deleted file]
lock-setting/po/ru_RU.po [deleted file]
lock-setting/po/sk.po [deleted file]
lock-setting/po/sl.po [deleted file]
lock-setting/po/sr.po [deleted file]
lock-setting/po/sv.po [deleted file]
lock-setting/po/tr_TR.po [deleted file]
lock-setting/po/uk.po [deleted file]
lock-setting/po/uz.po [deleted file]
lock-setting/po/zh_CN.po [deleted file]
lock-setting/po/zh_HK.po [deleted file]
lock-setting/po/zh_SG.po [deleted file]
lock-setting/po/zh_TW.po [deleted file]
packaging/.starter.spec.swp [new file with mode: 0644]
packaging/starter-pre.service [new file with mode: 0644]
packaging/starter.changes [deleted file]
packaging/starter.manifest [deleted file]
packaging/starter.service
packaging/starter.spec
packaging/wait-lock.service [new file with mode: 0644]
po/CMakeLists.txt [new file with mode: 0644]
po/az.po [new file with mode: 0644]
po/bg.po [new file with mode: 0644]
po/ca.po [new file with mode: 0644]
po/cs.po [new file with mode: 0644]
po/da.po [new file with mode: 0644]
po/de.po [new file with mode: 0644]
po/el_GR.po [new file with mode: 0644]
po/en.po [new file with mode: 0644]
po/en_US.po [new file with mode: 0644]
po/es_ES.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 [new file with mode: 0644]
po/fr.po [new file with mode: 0644]
po/fr_CA.po [new file with mode: 0644]
po/gl.po [new file with mode: 0644]
po/hr.po [new file with mode: 0644]
po/hu.po [new file with mode: 0644]
po/hy.po [new file with mode: 0644]
po/is.po [new file with mode: 0644]
po/it_IT.po [new file with mode: 0644]
po/ka.po [new file with mode: 0644]
po/kk.po [new file with mode: 0644]
po/ko_KR.po [new file with mode: 0644]
po/lt.po [new file with mode: 0644]
po/lv.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/pl.po [new file with mode: 0644]
po/pt_BR.po [new file with mode: 0644]
po/pt_PT.po [new file with mode: 0644]
po/ro.po [new file with mode: 0644]
po/ru_RU.po [new file with mode: 0644]
po/sk.po [new file with mode: 0644]
po/sl.po [new file with mode: 0644]
po/sr.po [new file with mode: 0644]
po/sv.po [new file with mode: 0644]
po/tr_TR.po [new file with mode: 0644]
po/uk.po [new file with mode: 0644]
po/uz.po [new file with mode: 0644]
rd3starter [changed mode: 0755->0644]
rd4starter [changed mode: 0755->0644]
res/CMakeLists.txt [new file with mode: 0755]
res/edje/CMakeLists.txt [new file with mode: 0755]
res/edje/mobile/CMakeLists.txt [new file with mode: 0755]
res/edje/mobile/images/B09_btn_doubletab_h.png [new file with mode: 0755]
res/edje/mobile/images/Notification_ic_message.png [new file with mode: 0755]
res/edje/mobile/images/Notification_ic_missedcall.png [new file with mode: 0755]
res/edje/mobile/images/RB07_icon_back_01.png [new file with mode: 0755]
res/edje/mobile/images/RB07_icon_back_dim.png [new file with mode: 0755]
res/edje/mobile/images/RB07_icon_back_normal.png [new file with mode: 0755]
res/edje/mobile/images/RB07_icon_back_press.png [new file with mode: 0755]
res/edje/mobile/images/RB07_icon_enter.png [new file with mode: 0755]
res/edje/mobile/images/RB07_icon_shift_focused.png [new file with mode: 0755]
res/edje/mobile/images/RB07_icon_shift_normal.png [new file with mode: 0755]
res/edje/mobile/images/RB07_icon_shift_press.png [new file with mode: 0755]
res/edje/mobile/images/RB07_icon_space.png [new file with mode: 0755]
res/edje/mobile/images/RB07_icon_space_press.png [new file with mode: 0755]
res/edje/mobile/images/RB07_key_btn_01.png [new file with mode: 0755]
res/edje/mobile/images/RB07_key_btn_02.png [new file with mode: 0755]
res/edje/mobile/images/RB07_key_btn_perss.png [new file with mode: 0755]
res/edje/mobile/images/RB07_key_btn_press.png [new file with mode: 0755]
res/edje/mobile/images/RB07_key_btn_qwerty_01.png [new file with mode: 0755]
res/edje/mobile/images/RB07_key_btn_qwerty_02.png [new file with mode: 0755]
res/edje/mobile/images/RB07_keypad_bg.png [new file with mode: 0755]
res/edje/mobile/images/circular_gauge_bg.png [new file with mode: 0644]
res/edje/mobile/images/circular_gauge_password.png [new file with mode: 0644]
res/edje/mobile/images/circular_gauge_pin.png [new file with mode: 0644]
res/edje/mobile/images/dismiss_button.png [new file with mode: 0755]
res/edje/mobile/images/edit_btn_icon_keyboard_nor.png [new file with mode: 0755]
res/edje/mobile/images/edit_btn_icon_keyboard_press.png [new file with mode: 0755]
res/edje/mobile/images/event_clock_colon.png [new file with mode: 0644]
res/edje/mobile/images/event_close_bg.#.png [new file with mode: 0755]
res/edje/mobile/images/event_list_bg.#.png [new file with mode: 0755]
res/edje/mobile/images/event_list_divider.#.png [new file with mode: 0755]
res/edje/mobile/images/event_number_bg.#.png [new file with mode: 0644]
res/edje/mobile/images/fahrenheit_icon.png [new file with mode: 0755]
res/edje/mobile/images/gradation_bg.#.png [new file with mode: 0755]
res/edje/mobile/images/icon_backtocall_nor.png [new file with mode: 0755]
res/edje/mobile/images/icon_backtocall_press.png [new file with mode: 0755]
res/edje/mobile/images/indicator_high.png [new file with mode: 0755]
res/edje/mobile/images/indicator_nor.png [new file with mode: 0755]
res/edje/mobile/images/keyboard_basic_pad.png [new file with mode: 0755]
res/edje/mobile/images/keyboard_basic_pad_press.png [new file with mode: 0755]
res/edje/mobile/images/keypad_press_bg.png [new file with mode: 0755]
res/edje/mobile/images/lock_circle_line_camera.png [new file with mode: 0755]
res/edje/mobile/images/lock_circle_line_camera_drag.png [new file with mode: 0755]
res/edje/mobile/images/ls_back_01_nor.png [new file with mode: 0755]
res/edje/mobile/images/ls_back_01_press.png [new file with mode: 0755]
res/edje/mobile/images/ls_back_02_nor.png [new file with mode: 0755]
res/edje/mobile/images/ls_back_02_press.png [new file with mode: 0755]
res/edje/mobile/images/ls_button_02_default.png [new file with mode: 0755]
res/edje/mobile/images/ls_button_02_press.png [new file with mode: 0755]
res/edje/mobile/images/ls_button_default.png [new file with mode: 0755]
res/edje/mobile/images/ls_button_press.png [new file with mode: 0755]
res/edje/mobile/images/ls_button_sos_phone.png [new file with mode: 0755]
res/edje/mobile/images/ls_button_x.png [new file with mode: 0755]
res/edje/mobile/images/ls_password_box_01.png [new file with mode: 0755]
res/edje/mobile/images/ls_password_box_02.png [new file with mode: 0755]
res/edje/mobile/images/ls_password_dot.png [new file with mode: 0755]
res/edje/mobile/images/ls_password_star_01.png [new file with mode: 0755]
res/edje/mobile/images/ls_phone_01_nor.png [new file with mode: 0755]
res/edje/mobile/images/ls_phone_01_press.png [new file with mode: 0755]
res/edje/mobile/images/quick_shot.png [new file with mode: 0755]
res/edje/mobile/images/quick_shot_drag.png [new file with mode: 0755]
res/edje/mobile/lock_btn.edc [new file with mode: 0755]
res/edje/mobile/lock_pwd.edc [new file with mode: 0755]
res/edje/mobile/lock_pwd_complex.edc [new file with mode: 0755]
res/edje/mobile/lock_pwd_simple.edc [new file with mode: 0755]
src/dbus_util.c [new file with mode: 0644]
src/hw_key.c [deleted file]
src/lock-daemon.c [deleted file]
src/lockd-debug.c [deleted file]
src/lockd-process-mgr.c [deleted file]
src/lockd-window-mgr.c [deleted file]
src/menu_daemon.c [deleted file]
src/mobile/home_mgr.c [new file with mode: 0644]
src/mobile/hw_key.c [new file with mode: 0644]
src/mobile/lock_mgr.c [new file with mode: 0644]
src/mobile/lock_pwd_complex.c [new file with mode: 0644]
src/mobile/lock_pwd_control_panel.c [new file with mode: 0644]
src/mobile/lock_pwd_simple.c [new file with mode: 0755]
src/mobile/lock_pwd_util.c [new file with mode: 0644]
src/mobile/lock_pwd_verification.c [new file with mode: 0755]
src/mobile/popup.c [new file with mode: 0644]
src/mobile/starter.c [new file with mode: 0644]
src/mobile/window_mgr.c [new file with mode: 0644]
src/package_mgr.c [new file with mode: 0644]
src/pkg_event.c [deleted file]
src/process_mgr.c [new file with mode: 0644]
src/starter.c [deleted file]
src/status.c [new file with mode: 0644]
src/wearable/clock_mgr.c [new file with mode: 0644]
src/wearable/home_mgr.c [new file with mode: 0644]
src/wearable/hourly_alert.c [new file with mode: 0644]
src/wearable/hw_key.c [new file with mode: 0644]
src/wearable/starter.c [new file with mode: 0644]
src/x11.c [deleted file]
src/xmonitor.c [deleted file]
starter [changed mode: 0755->0644]
starter.desktop.in [deleted file]
starter.efl [new file with mode: 0644]
starter.manifest [new file with mode: 0644]
test/get_entry.c [deleted file]
test/get_theme.c [deleted file]
test/set_theme.c [deleted file]

diff --git a/AUTHORS b/AUTHORS
deleted file mode 100755 (executable)
index b7f374a..0000000
--- a/AUTHORS
+++ /dev/null
@@ -1,2 +0,0 @@
-jin yoon <jinny.yoon at samsung dot com>
-seungtaek chung <seungtaek.chung at samsung dot com>
old mode 100755 (executable)
new mode 100644 (file)
index 8765878..895746f
 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
 PROJECT(starter C)
 
-SET(VENDOR "tizen")
 SET(PACKAGE ${PROJECT_NAME})
-SET(PKGNAME "org.${VENDOR}.${PACKAGE}")
+SET(PKGNAME "org.tizen.${PACKAGE}")
 SET(PREFIX ${CMAKE_INSTALL_PREFIX})
 SET(BINDIR "${PREFIX}/bin")
 SET(DATADIR "${PREFIX}/share")
-SET(LOCALEDIR "${DATADIR}/locale")
-
-INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include)
+SET(RESDIR "${PREFIX}/res")
+SET(LOCALEDIR "${PREFIX}/share/locale")
 
+IF("${TIZEN_PROFILE_NAME}" STREQUAL "MOBILE")
+INCLUDE_DIRECTORIES(
+       ${CMAKE_SOURCE_DIR}/include
+       ${CMAKE_SOURCE_DIR}/include/mobile
+)
 INCLUDE(FindPkgConfig)
-SET(PKGS_CHECK_MODULES
-        ail
-        aul
-        capi-system-media-key
-        db-util
-        dlog
-        ecore
-        ecore-evas
-        ecore-input
-        eet
-        eina
-        elementary
-        evas
-        heynoti
-        sysman
-        syspopup-caller
-        vconf
-        appcore-efl
-        glib-2.0
-        ui-gadget-1
-        bundle
-        capi-appfw-application
-        capi-system-info
-        pkgmgr-info)
-
-IF (with_x)
-        pkg_check_modules(pkgs REQUIRED ${PKGS_CHECK_MODULES} ecore-x utilX x11 xcomposite xext)
-ENDIF(with_x)
+pkg_check_modules(pkgs REQUIRED
+       aul
+       capi-system-media-key
+       db-util
+       dlog
+       ecore
+       ecore-evas
+       ecore-input
+#ecore-x
+       edbus
+       eina
+       elementary
+       evas
+       syspopup-caller
+#utilX
+       vconf
+       appcore-efl
+       glib-2.0
+       ui-gadget-1
+       bundle
+       capi-appfw-application
+       capi-appfw-app-manager
+       capi-network-bluetooth
+       capi-system-system-settings
+       feedback
+       alarm-service
+       pkgmgr-info
+       deviced
+       edbus
+       dbus-1
+       dbus-glib-1
+       tts
+#capi-message-port
+       security-server
+       efl-assist
+)
+ELSE()
+INCLUDE_DIRECTORIES(
+       ${CMAKE_SOURCE_DIR}/include
+       ${CMAKE_SOURCE_DIR}/include/wearable
+)
+INCLUDE(FindPkgConfig)
+pkg_check_modules(pkgs REQUIRED
+       aul
+       capi-system-media-key
+       db-util
+       dlog
+       ecore
+       ecore-evas
+       ecore-input
+#ecore-x
+       edbus
+       eina
+       elementary
+       evas
+       syspopup-caller
+#utilX
+       vconf
+       appcore-efl
+       glib-2.0
+       ui-gadget-1
+       bundle
+       capi-appfw-application
+       capi-appfw-app-manager
+       capi-network-bluetooth
+       feedback
+       alarm-service
+       pkgmgr-info
+       deviced
+       edbus
+       dbus-1
+       dbus-glib-1
+)
+ENDIF()
 
-IF (with_wayland)
-        ADD_DEFINITIONS("-DWAYLAND")
-        pkg_check_modules(pkgs REQUIRED ${PKGS_CHECK_MODULES})
-ENDIF(with_wayland)
 
 FOREACH(flag ${pkgs_CFLAGS})
        SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
 ENDFOREACH(flag)
 
-SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -Wall")
-SET(CMAKE_C_FLAGS_DEBUG "-O0 -g")
-SET(CMAKE_C_FLAGS_RELEASE "-O2")
+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -Wall -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 -Wl,--rpath=${PREFIX}/lib -pie")
 
@@ -63,37 +114,48 @@ IF("${ARCH}" STREQUAL "arm")
        MESSAGE("add -DTARGET")
 ENDIF("${ARCH}" STREQUAL "arm")
 
-ADD_DEFINITIONS("-DVENDOR=\"${VENDOR}\"")
 ADD_DEFINITIONS("-DPACKAGE=\"${PACKAGE}\"")
 ADD_DEFINITIONS("-DPACKAGE_NAME=\"${PKGNAME}\"")
 ADD_DEFINITIONS("-DPREFIX=\"${PREFIX}\"")
 ADD_DEFINITIONS("-DLOCALEDIR=\"${LOCALEDIR}\"")
 ADD_DEFINITIONS("-D_GNU_SOURCE")
 
-SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed")
-
+IF("${TIZEN_PROFILE_NAME}" STREQUAL "MOBILE")
 ADD_EXECUTABLE(${PROJECT_NAME}
-       src/hw_key.c
-       src/pkg_event.c
-       src/menu_daemon.c
-       src/starter.c
-       src/x11.c
-       src/xmonitor.c
-       src/lock-daemon.c
-       src/lockd-debug.c
-       src/lockd-process-mgr.c
-       src/lockd-window-mgr.c
+       src/dbus_util.c
+       src/package_mgr.c
+       src/process_mgr.c
+       src/status.c
+
+       src/mobile/hw_key.c
+       src/mobile/home_mgr.c
+       src/mobile/starter.c
+#src/mobile/lock_mgr.c
+#src/mobile/lock_pwd_util.c
+#src/mobile/lock_pwd_simple.c
+#src/mobile/lock_pwd_complex.c
+#src/mobile/lock_pwd_control_panel.c
+#src/mobile/lock_pwd_verification.c
+#src/mobile/window_mgr.c
+       src/mobile/popup.c
 )
+ELSE()
+ADD_EXECUTABLE(${PROJECT_NAME}
+       src/dbus_util.c
+       src/package_mgr.c
+       src/process_mgr.c
+       src/status.c
+
+       src/wearable/clock_mgr.c
+       src/wearable/home_mgr.c
+       src/wearable/hourly_alert.c
+       src/wearable/hw_key.c
+       src/wearable/starter.c
+)
+ENDIF()
 TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${pkgs_LDFLAGS})
 INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${BINDIR})
-
-SET(LOCK_SETTING lock-setting)
-
-ADD_SUBDIRECTORY(${CMAKE_SOURCE_DIR}/${LOCK_SETTING})
-
-# install desktop file & icon
-#CONFIGURE_FILE(${PROJECT_NAME}.desktop.in ${PROJECT_NAME}.desktop)
-#INSTALL(FILES ${CMAKE_BINARY_DIR}/${PROJECT_NAME}.desktop DESTINATION share/applications)
+INSTALL(DIRECTORY DESTINATION ${DATADIR})
 
 INSTALL(FILES ${CMAKE_SOURCE_DIR}/rd4starter DESTINATION /etc/init.d
                PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE
@@ -102,3 +164,8 @@ INSTALL(FILES ${CMAKE_SOURCE_DIR}/rd3starter DESTINATION /etc/init.d
                PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE
                GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
 #INSTALL to /etc/init.d
+
+INSTALL(FILES starter.efl DESTINATION /etc/smack/accesses.d)
+
+ADD_SUBDIRECTORY(res)
+ADD_SUBDIRECTORY(po)
diff --git a/LICENSE b/LICENSE
new file mode 100644 (file)
index 0000000..a06208b
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,204 @@
+Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
diff --git a/LICENSE.Flora b/LICENSE.Flora
deleted file mode 100755 (executable)
index 571fe79..0000000
+++ /dev/null
@@ -1,206 +0,0 @@
-Flora License
-
-Version 1.1, April, 2013
-
-http://floralicense.org/license/
-
-TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-1. Definitions.
-
-"License" shall mean the terms and conditions for use, reproduction,
-and distribution as defined by Sections 1 through 9 of this document.
-
-"Licensor" shall mean the copyright owner or entity authorized by
-the copyright owner that is granting the License.
-
-"Legal Entity" shall mean the union of the acting entity and
-all other entities that control, are controlled by, or are
-under common control with that entity. For the purposes of
-this definition, "control" means (i) the power, direct or indirect,
-to cause the direction or management of such entity,
-whether by contract or otherwise, or (ii) ownership of fifty percent (50%)
-or more of the outstanding shares, or (iii) beneficial ownership of
-such entity.
-
-"You" (or "Your") shall mean an individual or Legal Entity
-exercising permissions granted by this License.
-
-"Source" form shall mean the preferred form for making modifications,
-including but not limited to software source code, documentation source,
-and configuration files.
-
-"Object" form shall mean any form resulting from mechanical
-transformation or translation of a Source form, including but
-not limited to compiled object code, generated documentation,
-and conversions to other media types.
-
-"Work" shall mean the work of authorship, whether in Source or Object form,
-made available under the License, as indicated by a copyright notice
-that is included in or attached to the work (an example is provided
-in the Appendix below).
-
-"Derivative Works" shall mean any work, whether in Source or Object form,
-that is based on (or derived from) the Work and for which the editorial
-revisions, annotations, elaborations, or other modifications represent,
-as a whole, an original work of authorship. For the purposes of this License,
-Derivative Works shall not include works that remain separable from,
-or merely link (or bind by name) to the interfaces of, the Work and
-Derivative Works thereof.
-
-"Contribution" shall mean any work of authorship, including the original
-version of the Work and any modifications or additions to that Work or
-Derivative Works thereof, that is intentionally submitted to Licensor
-for inclusion in the Work by the copyright owner or by an individual or
-Legal Entity authorized to submit on behalf of the copyright owner.
-For the purposes of this definition, "submitted" means any form of
-electronic, verbal, or written communication sent to the Licensor or
-its representatives, including but not limited to communication on
-electronic mailing lists, source code control systems, and issue
-tracking systems that are managed by, or on behalf of, the Licensor
-for the purpose of discussing and improving the Work, but excluding
-communication that is conspicuously marked or otherwise designated
-in writing by the copyright owner as "Not a Contribution."
-
-"Contributor" shall mean Licensor and any individual or Legal Entity
-on behalf of whom a Contribution has been received by Licensor and
-subsequently incorporated within the Work.
-
-"Tizen Certified Platform" shall mean a software platform that complies
-with the standards set forth in the Tizen Compliance Specification
-and passes the Tizen Compliance Tests as defined from time to time
-by the Tizen Technical Steering Group and certified by the Tizen
-Association or its designated agent.
-
-2. Grant of Copyright License.  Subject to the terms and conditions of
-this License, each Contributor hereby grants to You a perpetual,
-worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-copyright license to reproduce, prepare Derivative Works of,
-publicly display, publicly perform, sublicense, and distribute the
-Work and such Derivative Works in Source or Object form.
-
-3. Grant of Patent License.  Subject to the terms and conditions of
-this License, each Contributor hereby grants to You a perpetual,
-worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-(except as stated in this section) patent license to make, have made,
-use, offer to sell, sell, import, and otherwise transfer the Work
-solely as incorporated into a Tizen Certified Platform, where such
-license applies only to those patent claims licensable by such
-Contributor that are necessarily infringed by their Contribution(s)
-alone or by combination of their Contribution(s) with the Work solely
-as incorporated into a Tizen Certified Platform to which such
-Contribution(s) was submitted. If You institute patent litigation
-against any entity (including a cross-claim or counterclaim
-in a lawsuit) alleging that the Work or a Contribution incorporated
-within the Work constitutes direct or contributory patent infringement,
-then any patent licenses granted to You under this License for that
-Work shall terminate as of the date such litigation is filed.
-
-4. Redistribution.  You may reproduce and distribute copies of the
-Work or Derivative Works thereof pursuant to the copyright license
-above, in any medium, with or without modifications, and in Source or
-Object form, provided that You meet the following conditions:
-
-  1. You must give any other recipients of the Work or Derivative Works
-     a copy of this License; and
-  2. You must cause any modified files to carry prominent notices stating
-     that You changed the files; and
-  3. You must retain, in the Source form of any Derivative Works that
-     You distribute, all copyright, patent, trademark, and attribution
-     notices from the Source form of the Work, excluding those notices
-     that do not pertain to any part of the Derivative Works; and
-  4. If the Work includes a "NOTICE" text file as part of its distribution,
-     then any Derivative Works that You distribute must include a readable
-     copy of the attribution notices contained within such NOTICE file,
-     excluding those notices that do not pertain to any part of
-     the Derivative Works, in at least one of the following places:
-     within a NOTICE text file distributed as part of the Derivative Works;
-     within the Source form or documentation, if provided along with the
-     Derivative Works; or, within a display generated by the Derivative Works,
-     if and wherever such third-party notices normally appear.
-     The contents of the NOTICE file are for informational purposes only
-     and do not modify the License. You may add Your own attribution notices 
-     within Derivative Works that You distribute, alongside or as an addendum 
-     to the NOTICE text from the Work, provided that such additional attribution 
-     notices cannot be construed as modifying the License. You may add Your own
-     copyright statement to Your modifications and may provide additional or
-     different license terms and conditions for use, reproduction, or
-     distribution of Your modifications, or for any such Derivative Works
-     as a whole, provided Your use, reproduction, and distribution of
-     the Work otherwise complies with the conditions stated in this License
-     and your own copyright statement or terms and conditions do not conflict
-     the conditions stated in the License including section 3.
-
-5. Submission of Contributions. Unless You explicitly state otherwise,
-any Contribution intentionally submitted for inclusion in the Work
-by You to the Licensor shall be under the terms and conditions of
-this License, without any additional terms or conditions.
-Notwithstanding the above, nothing herein shall supersede or modify
-the terms of any separate license agreement you may have executed
-with Licensor regarding such Contributions.
-
-6. Trademarks.  This License does not grant permission to use the trade
-names, trademarks, service marks, or product names of the Licensor,
-except as required for reasonable and customary use in describing the
-origin of the Work and reproducing the content of the NOTICE file.
-
-7. Disclaimer of Warranty. Unless required by applicable law or
-agreed to in writing, Licensor provides the Work (and each
-Contributor provides its Contributions) on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-implied, including, without limitation, any warranties or conditions
-of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-PARTICULAR PURPOSE. You are solely responsible for determining the
-appropriateness of using or redistributing the Work and assume any
-risks associated with Your exercise of permissions under this License.
-
-8. Limitation of Liability. In no event and under no legal theory,
-whether in tort (including negligence), contract, or otherwise,
-unless required by applicable law (such as deliberate and grossly
-negligent acts) or agreed to in writing, shall any Contributor be
-liable to You for damages, including any direct, indirect, special,
-incidental, or consequential damages of any character arising as a
-result of this License or out of the use or inability to use the
-Work (including but not limited to damages for loss of goodwill,
-work stoppage, computer failure or malfunction, or any and all
-other commercial damages or losses), even if such Contributor
-has been advised of the possibility of such damages.
-
-9. Accepting Warranty or Additional Liability. While redistributing
-the Work or Derivative Works thereof, You may choose to offer,
-and charge a fee for, acceptance of support, warranty, indemnity,
-or other liability obligations and/or rights consistent with this
-License. However, in accepting such obligations, You may act only
-on Your own behalf and on Your sole responsibility, not on behalf
-of any other Contributor, and only if You agree to indemnify,
-defend, and hold each Contributor harmless for any liability
-incurred by, or claims asserted against, such Contributor by reason
-of your accepting any such warranty or additional liability.
-
-END OF TERMS AND CONDITIONS
-
-APPENDIX: How to apply the Flora License to your work
-
-To apply the Flora License to your work, attach the following
-boilerplate notice, with the fields enclosed by brackets "[]"
-replaced with your own identifying information. (Don't include
-the brackets!) The text should be enclosed in the appropriate
-comment syntax for the file format. We also recommend that a
-file or class name and description of purpose be included on the
-same "printed page" as the copyright notice for easier
-identification within third-party archives.
-
-   Copyright [yyyy] [name of copyright owner]
-
-   Licensed under the Flora License, Version 1.1 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-
-       http://floralicense.org/license/
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-
diff --git a/NOTICE b/NOTICE
old mode 100755 (executable)
new mode 100644 (file)
index db64ab0..b2e5019
--- a/NOTICE
+++ b/NOTICE
@@ -1,3 +1 @@
-Copyright (c) 2012 Samsung Electronics Co., Ltd. All rights reserved.
-Except as noted, this software is licensed under Flora License, Version 1.1
-Please, see the LICENSE file for Flora License, Version 1.1 terms and conditions.
+Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved.
diff --git a/debian/changelog b/debian/changelog
deleted file mode 100755 (executable)
index b157545..0000000
+++ /dev/null
@@ -1,536 +0,0 @@
-starter (0.4.59) unstable; urgency=low
-
-  * Git: slp/pkgs/s/starter
-  * Tag: starter_0.4.59
-
-  * Modify the service file : remove an unused field
-
- -- Jin Yoon <jinny.yoon@samsung.com>  Tue, 02 Apr 2013 13:08:59 +0900
-
-starter (0.4.58) unstable; urgency=low
-
-  * Git: slp/pkgs/s/starter
-  * Tag: starter_0.4.58
-
-  *  Remove an unused vconf setting
-
- -- Jin Yoon <jinny.yoon@samsung.com>  Mon, 11 Mar 2013 16:23:50 +0900
-
-starter (0.4.56) unstable; urgency=low
-
-  * Git: slp/pkgs/s/starter
-  * Tag: starter_0.4.56
-
-  * Do not destroy ail resources when ail returns an error code
-
- -- Jin Yoon <jinny.yoon@samsung.com>  Mon, 04 Feb 2013 19:05:45 +0900
-
-starter (0.4.55) unstable; urgency=low
-
-  * fix manifest file.
-
- -- minho07.kim <minho07.kim@samsung.com>  Thu, 31 Jan 2013 11:34:26 +0900
-
-starter (0.4.54) unstable; urgency=low
-
-  *  update manifest file.
-
- -- minho07.kim <minho07.kim@samsung.com>  Wed, 30 Jan 2013 19:03:11 +0900
-
-starter (0.4.51) unstable; urgency=low
-
-  * Git: slp/pkgs/s/starter
-  * Tag: starter_0.4.51
-
-  * EFL Menu-screen & Lock-screen
-
- -- Jin Yoon <jinny.yoon@samsung.com>  Fri, 11 Jan 2013 15:35:10 +0900
-
-starter (0.4.47) unstable; urgency=low
-
-  * Git: slp/pkgs/s/starter
-  * Tag: starter_0.4.47
-
-  * Package name : Package name : org.tizen.menu-screen -> cwkuromqdr.Home, org.tizen.lockscreen -> sgooa9p9fz.Lock
-
- -- Jin Yoon <jinny.yoon@samsung.com>  Fri, 21 Dec 2012 20:31:10 +0900
-
-starter (0.4.6-2) unstable; urgency=low
-
-  * temporal release for Orangey
-  * Git: slp/pkgs/s/starter
-  * Tag: starter_0.4.6-2
-
- -- youngsub ko <ys4610.ko@samsung.com>  Fri, 01 Jun 2012 14:02:49 +0900
-
-starter (0.4.6-1) unstable; urgency=low
-
-  * Changing vconf key-path according to naming policy
-  * Git: slp/pkgs/s/starter
-  * Tag: starter_0.4.6-1
-
- -- youngsub ko <ys4610.ko@samsung.com>  Thu, 31 May 2012 19:25:22 +0900
-
-starter (0.4.5-1) unstable; urgency=low
-
-  * apply livebox lockscreen to default setting
-  * Git: slp/pkgs/s/starter
-  * Tag: starter_0.4.5-1
-
- -- Seungtaek Chung <seungtaek.chung@samsung.com>  Thu, 24 May 2012 21:03:29 +0900
-
-starter (0.4.4-1) unstable; urgency=low
-
-  * new vconf policy was applied
-  * Git: slp/pkgs/s/starter
-  * Tag: starter_0.4.4-1
-
- -- youngsub ko <ys4610.ko@samsung.com>  Thu, 24 May 2012 16:20:20 +0900
-
-starter (0.4.3-2) unstable; urgency=low
-
-  * Removed "/usr/share/*" files from debian/redhat packages
-  * Git: slp/pkgs/s/starter
-  * Tag: starter_0.4.3-2
-
- -- youngsub ko <ys4610.ko@samsung.com>  Mon, 14 May 2012 10:39:32 +0900
-
-starter (0.4.3-1) unstable; urgency=low
-
-  * remove set elm entry
-  * Git: slp/pkgs/s/starter
-  * Tag: starter_0.4.3-1
-
- -- Seungtaek Chung <seungtaek.chung@samsung.com>  Wed, 18 Apr 2012 11:20:12 +0900
-
-starter (0.4.2-1) unstable; urgency=low
-
-  * apply phone lock launching interface
-  * Git: slp/pkgs/s/starter
-  * Tag: starter_0.4.2-1
-
- -- Seungtaek Chung <seungtaek.chung@samsung.com>  Sat, 07 Apr 2012 23:30:39 +0900
-
-starter (0.4.1-1) unstable; urgency=low
-
-  * Add cancel button in password view
-  * Git: slp/pkgs/s/starter
-  * Tag: starter_0.4.1-1
-
- -- Mi-Ju Lee <miju52.lee@samsung.com>  Wed, 21 Mar 2012 21:12:34 +0900
-
-starter (0.4.0-1) unstable; urgency=low
-
-  * Change desktop file for TIZEN
-  * Git: slp/pkgs/s/starter
-  * Tag: starter_0.4.0-1
-
- -- Mi-Ju Lee <miju52.lee@samsung.com>  Thu, 15 Mar 2012 19:28:01 +0900
-
-starter (0.3-51) unstable; urgency=low
-
-  * apply efl migration
-  * Git: slp/pkgs/s/starter
-  * Tag: starter_0.3-51
-
- -- Seungtaek Chung <seungtaek.chung@samsung.com>  Wed, 14 Mar 2012 14:21:15 +0900
-
-starter (0.3-50) unstable; urgency=low
-
-  * apply efl deprecation
-  * Git: slp/pkgs/s/starter
-  * Tag: starter_0.3-50
-
- -- Seungtaek Chung <seungtaek.chung@samsung.com>  Fri, 02 Mar 2012 16:32:50 +0900
-
-starter (0.3-49) unstable; urgency=low
-
-  * block set scale window
-  * Git: slp/pkgs/s/starter
-  * Tag: starter_0.3-49
-
- -- Seungtaek Chung <seungtaek.chung@samsung.com>  Wed, 29 Feb 2012 19:17:53 +0900
-
-starter (0.3-48) unstable; urgency=low
-
-  * block set window scale
-  * Git: slp/pkgs/s/starter
-  * Tag: starter_0.3-48
-
- -- Seungtaek Chung <seungtaek.chung@samsung.com>  Wed, 29 Feb 2012 18:42:54 +0900
-
-starter (0.3-47) unstable; urgency=low
-
-  * fix launch lock screen
-  * Git: slp/pkgs/s/starter
-  * Tag: starter_0.3-47
-
- -- Seungtaek Chung <seungtaek.chung@samsung.com>  Tue, 28 Feb 2012 14:56:18 +0900
-
-starter (0.3-46) unstable; urgency=low
-
-  * apply input window
-  * Git: slp/pkgs/s/starter
-  * Tag: starter_0.3-46
-
- -- Seungtaek Chung <seungtaek.chung@samsung.com>  Wed, 22 Feb 2012 14:21:08 +0900
-
-starter (0.3-45) unstable; urgency=low
-
-  * apply efl migration
-  * Git: slp/pkgs/s/starter
-  * Tag: starter_0.3-45
-
- -- Seungtaek Chung <seungtaek.chung@samsung.com>  Thu, 16 Feb 2012 20:32:05 +0900
-
-starter (0.3-44) unstable; urgency=low
-
-  * fix xwindow
-  * Git: slp/pkgs/s/starter
-  * Tag: starter_0.3-44
-
- -- Seungtaek Chung <seungtaek.chung@samsung.com>  Mon, 02 Jan 2012 18:03:13 +0900
-
-starter (0.3-43) unstable; urgency=low
-
-  * set lock class name
-  * Git: slp/pkgs/s/starter
-  * Tag: starter_0.3-43
-
- -- Seungtaek Chung <seungtaek.chung@samsung.com>  Mon, 02 Jan 2012 17:40:25 +0900
-
-starter (0.3-42) unstable; urgency=low
-
-  * set lock alpha
-  * Git: slp/pkgs/s/starter
-  * Tag: starter_0.3-42
-
- -- Seungtaek Chung <seungtaek.chung@samsung.com>  Wed, 28 Dec 2011 14:26:23 +0900
-
-starter (0.3-41) unstable; urgency=low
-
-  * fix lock state
-  * Git: slp/pkgs/s/starter
-  * Tag: starter_0.3-41
-
- -- Seungtaek Chung <seungtaek.chung@samsung.com>  Mon, 26 Dec 2011 17:27:15 +0900
-
-starter (0.3-40) unstable; urgency=low
-
-  * remove tizen subfolder
-  * Git: slp/pkgs/s/starter
-  * Tag: starter_0.3-40
-
- -- Seungtaek Chung <seungtaek.chung@samsung.com>  Mon, 19 Dec 2011 14:03:33 +0900
-
-starter (0.3-39) unstable; urgency=low
-
-  * fix phone lock operation
-  * Git: 165.213.180.234:slp/pkgs/s/starter
-  * Tag: starter_0.3-39
-
- -- Seungtaek Chung <seungtaek.chung@samsung.com>  Fri, 09 Dec 2011 21:04:27 +0900
-
-starter (0.3-38) unstable; urgency=low
-
-  * fix homekey operation
-  * Git: 165.213.180.234:slp/pkgs/s/starter
-  * Tag: starter_0.3-38
-
- -- Seungtaek Chung <seungtaek.chung@samsung.com>  Thu, 08 Dec 2011 13:47:04 +0900
-
-starter (0.3-37) unstable; urgency=low
-
-  * fix set property for phone lock
-  * Git: 165.213.180.234:slp/pkgs/s/starter
-  * Tag: starter_0.3-37
-
- -- Seungtaek Chung <seungtaek.chung@samsung.com>  Tue, 06 Dec 2011 16:51:07 +0900
-
-starter (0.3-36) unstable; urgency=low
-
-  * apply reset lock screen when lcd is off
-  * Git: 165.213.180.234:slp/pkgs/s/starter
-  * Tag: starter_0.3-36
-
- -- Seungtaek Chung <seungtaek.chung@samsung.com>  Fri, 02 Dec 2011 22:59:26 +0900
-
-starter (0.3-35) unstable; urgency=low
-
-  * fix selecting lockscreen
-  * Git: 165.213.180.234:slp/pkgs/s/starter
-  * Tag: starter_0.3-35
-
- -- Seungtaek Chung <seungtaek.chung@samsung.com>  Wed, 30 Nov 2011 14:12:12 +0900
-
-starter (0.3-34) unstable; urgency=low
-
-  * fix setting lockscreen
-  * Git: 165.213.180.234:slp/pkgs/s/starter
-  * Tag: starter_0.3-34
-
- -- Seungtaek Chung <seungtaek.chung@samsung.com>  Tue, 29 Nov 2011 09:48:02 +0900
-
-starter (0.3-33) unstable; urgency=low
-
-  * remove lockd_launch_first_lockscreen
-  * Git: 165.213.180.234:slp/pkgs/s/starter
-  * Tag: starter_0.3-33
-
- -- Seungtaek Chung <seungtaek.chung@samsung.com>  Sat, 26 Nov 2011 16:47:48 +0900
-
-starter (0.3-32) unstable; urgency=low
-
-  * fix launching phone lock app
-  * Git: 165.213.180.234:slp/pkgs/s/starter
-  * Tag: starter_0.3-32
-
- -- Seungtaek Chung <seungtaek.chung@samsung.com>  Sat, 26 Nov 2011 14:03:48 +0900
-
-starter (0.3-31) unstable; urgency=low
-
-  * apply open lock screen
-  * Git: 165.213.180.234:slp/pkgs/s/starter
-  * Tag: starter_0.3-31
-
- -- Seungtaek Chung <seungtaek.chung@samsung.com>  Mon, 21 Nov 2011 21:41:09 +0900
-
-starter (0.3-30) unstable; urgency=low
-
-  * apply tapi changes
-  * Git: 165.213.180.234:slp/pkgs/s/starter
-  * Tag: starter_0.3-30
-
- -- Seungtaek Chung <seungtaek.chung@samsung.com>  Thu, 29 Sep 2011 17:38:08 +0900
-
-starter (0.3-29) unstable; urgency=low
-
-  * fix prevent problem
-  * Git: 165.213.180.234:slp/pkgs/s/starter
-  * Tag: starter_0.3-29
-
- -- Seungtaek Chung <seungtaek.chung@samsung.com>  Sat, 20 Aug 2011 19:32:57 +0900
-
-starter (0.3-28) unstable; urgency=low
-
-  * fix aul launch error
-  * Git: 165.213.180.234:slp/pkgs/s/starter
-  * Tag: starter_0.3-28
-
- -- Seungtaek Chung <seungtaek.chung@samsung.com>  Fri, 01 Jul 2011 17:29:44 +0900
-
-starter (0.3-27) unstable; urgency=low
-
-  * added plock variable to identify menu screen showing time.
-  * Git: 165.213.180.234:slp/pkgs/s/starter
-  * Tag: starter_0.3-27
-
- -- jeesun kim <iamjs.kim@samsung.com>  Thu, 12 May 2011 09:00:00 +0900
-
-starter (0.3-26) unstable; urgency=low
-
-  * modified log error when get vconf failed
-  * Git: 165.213.180.234:slp/pkgs/s/starter
-  * Tag: starter_0.3-26
-
- -- jeesun kim <iamjs.kim@samsung.com>  Mon, 2 May 2011 09:00:00 +0900
-
-starter (0.3-25) unstable; urgency=low
-
-  * added debug message
-  * Git: 165.213.180.234:slp/pkgs/s/starter
-  * Tag: starter_0.3-25
-
- -- jeesun kim <iamjs.kim@samsung.com>  Fri, 22 Apr 2011 18:00:00 +0900
-
-starter (0.3-24) unstable; urgency=low
-
-  * skipped "memory/startapps/sequence" set 1 when first boot
-  * Git: 165.213.180.234:slp/pkgs/s/starter
-  * Tag: starter_0.3-24
-
- -- jeesun kim <iamjs.kim@samsung.com>  Wed, 14 Apr 2011 10:00:00 +0900
-
-starter (0.3-23) unstable; urgency=low
-
-  * removed deb from pwlock, added inhouse right in sequence
-  * Git: 165.213.180.234:slp/pkgs/s/starter
-  * Tag: starter_0.3-23
-
- -- jeesun kim <iamjs.kim@samsung.com>  Wed, 14 Apr 2011 10:00:00 +0900
-
-starter (0.3-22) unstable; urgency=low
-
-  * commmented wm_ready in postinst file and tossed this to isf team.
-  * Git: 165.213.180.234:slp/pkgs/s/starter
-  * Tag: starter_0.3-22
-
- -- jeesun kim <iamjs.kim@samsung.com>  Wed, 16 Mar 2011 09:36:31 +0900
-
-starter (0.3-21) unstable; urgency=low
-
-  * set starter text rd3 and rd4
-  * Git: 165.213.180.234:slp/pkgs/s/starter
-  * Tag: starter_0.3-21
-
- -- Jeesun kim <iamjs.kim@samsung.com>  Thu, 03 Mar 2011 14:44:37 +0900
-
-starter (0.3-20) unstable; urgency=low
-
-  * applied wm_ready (req from boot script)
-  * Git: 165.213.180.234:slp/pkgs/s/starter
-  * Tag: starter_0.3-20
-
- -- Jeesun kim <iamjs.kim@samsung.com>  Wed, 23 Feb 2011 13:56:09 +0900
-
-starter (0.3-19) unstable; urgency=low
-
-  * added x11 package in control
-  * Git: 165.213.180.234:slp/pkgs/s/starter
-  * Tag: starter_0.3-19
-
- -- Jeesun kim <iamjs.kim@samsung.com>  Thu, 10 Feb 2011 17:44:47 +0900
-
-starter (0.3-18) unstable; urgency=low
-
-  * path change /opt/apps/deb.com.samsung.pwlock/bin/pwlock
-  * Git: 165.213.180.234:slp/pkgs/s/starter
-  * Tag: starter_0.3-18
-
- -- Jeesun kim <iamjs.kim@samsung.com>  Thu, 27 Jan 2011 17:19:13 +0900
-
-starter (0.3-17) unstable; urgency=low
-
-  * added theme set step when hibnation
-  * Git: 165.213.180.234:slp/pkgs/s/starter
-  * Tag: starter_0.3-17
-
- -- Jeesun kim <iamjs.kim@samsung.com>  Thu, 13 Jan 2011 11:41:14 +0900
-
-starter (0.3-16) unstable; urgency=low
-
-  * modified action when SIM doesn't exist 
-  * Git: 165.213.180.234:slp/pkgs/s/starter
-  * Tag: starter_0.3-16
-
- -- Jeesun kim <iamjs.kim@samsung.com>  Thu, 06 Jan 2011 14:13:54 +0900
-
-starter (0.3-15) unstable; urgency=low
-
-  * set else statement when tapi state is none
-  * Git: 165.213.180.234:slp/pkgs/s/starter
-  * Tag: starter_0.3-15
-
- -- Jeesun kim <iamjs.kim@samsung.com>  Mon, 13 Dec 2010 11:29:39 +0900
-
-starter (0.3-14) unstable; urgency=low
-
-  * added dbg package
-  * Git: 165.213.180.234:/git/slp/pkgs/starter
-  * Tag: starter_0.3-14
-
- -- Jeesun kim <iamjs.kim@samsung.com>  Tue, 30 Nov 2010 11:10:22 +0900
-
-starter (0.3-13) unstable; urgency=low
-
-  * hibernation set : starter_ready set 1
-  * Git: 165.213.180.234:/git/slp/pkgs/starter
-  * Tag: starter_0.3-13
-
- -- Jeesun kim <iamjs.kim@samsung.com>  Tue, 23 Nov 2010 17:37:15 +0900
-
-starter (0.3-12) unstable; urgency=low
-
-  * set hib check_ready
-  * Git: 165.213.180.234:/git/slp/pkgs/starter
-  * Tag: starter_0.3-12
-
- -- Jeesun kim <iamjs.kim@samsung.com>  Fri, 12 Nov 2010 09:26:05 +0900
-
-starter (0.3-11) unstable; urgency=low
-
-  * Add hib leave
-  * Git: 165.213.180.234:/git/slp/pkgs/starter
-  * Tag: starter_0.3-11
-
- -- Suchang Woo <suchang.woo@samsung.com>  Mon, 25 Oct 2010 19:05:00 +0900
-
-starter (0.3-10) unstable; urgency=low
-
-  * Remove startup script
-  * Git: 165.213.180.234:/git/slp/pkgs/starter
-  * Tag: starter_0.3-10
-
- -- Suchang Woo <suchang.woo@samsung.com>  Wed, 20 Oct 2010 15:52:53 +0900
-
-starter (0.3-9) unstable; urgency=low
-
-  * Reset timeout every transition
-  * Git: 165.213.180.234:/git/slp/pkgs/starter
-  * Tag: starter_0.3-9
-
- -- Suchang Woo <suchang.woo@samsung.com>  Tue, 12 Oct 2010 17:16:38 +0900
-
-starter (0.3-8) unstable; urgency=low
-
-  * Increase SIM check timeout
-  * Git: 165.213.180.234:/git/slp/pkgs/starter
-  * Tag: starter_0.3-8
-
- -- Suchang Woo <suchang.woo@samsung.com>  Thu, 07 Oct 2010 17:49:26 +0900
-
-starter (0.3-7) unstable; urgency=low
-
-  * Wait for TAPI ready
-  * Git: 165.213.180.234:/git/slp/pkgs/starter
-  * Tag: starter_0.3-7
-
- -- Suchang Woo <suchang.woo@samsung.com>  Thu, 07 Oct 2010 11:36:40 +0900
-
-starter (0.3-6) unstable; urgency=low
-
-  * Do not check first boot
-  * Git: 165.213.180.234:/git/slp/pkgs/starter
-  * Tag: starter_0.3-6
-
- -- Suchang Woo <suchang.woo@samsung.com>  Mon, 04 Oct 2010 19:35:37 +0900
-
-starter (0.3-5) unstable; urgency=low
-
-  * add entry setting
-  * Git: 165.213.180.234:/git/slp/pkgs/starter
-  * Tag: starter_0.3-5
-
- -- Suchang Woo <suchang.woo@samsung.com>  Fri, 01 Oct 2010 20:49:01 +0900
-
-starter (0.3-4) unstable; urgency=low
-
-  * quit after pwlock launching
-  * Git: 165.213.180.234:/git/slp/pkgs/starter
-  * Tag: starter_0.3-4
-
- -- Suchang Woo <suchang.woo@samsung.com>  Fri, 01 Oct 2010 17:31:51 +0900
-
-starter (0.3-3) unstable; urgency=low
-
-  * modify for language selection
-  * Git: 165.213.180.234:/git/slp/pkgs/starter
-  * Tag: starter_0.3-3
-
- -- Suchang Woo <suchang.woo@samsung.com>  Tue, 28 Sep 2010 20:19:54 +0900
-
-starter (0.3-2) unstable; urgency=low
-
-  * unlock menu screen even if exited with error
-  * Git: 165.213.180.234:/git/slp/pkgs/starter
-  * Tag: starter_0.3-2
-
- -- Suchang Woo <suchang.woo@samsung.com>  Wed, 15 Sep 2010 15:06:18 +0900
-
-starter (0.3-1) unstable; urgency=low
-
-  * Rewrite the code
-  * Git: 165.213.180.234:/git/slp/pkgs/starter
-  * Tag: starter_0.3-1
-
- -- Suchang Woo <suchang.woo@samsung.com>  Fri, 23 Apr 2010 20:30:14 +0900
diff --git a/debian/compat b/debian/compat
deleted file mode 100755 (executable)
index 7ed6ff8..0000000
+++ /dev/null
@@ -1 +0,0 @@
-5
diff --git a/debian/control b/debian/control
deleted file mode 100755 (executable)
index 557f975..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-Source: starter
-Section: devel
-Priority: extra
-Maintainer: Seungtaek Chung <seungtaek.chung@samsung.com>, Mi-Ju Lee <miju52.lee@samsung.com>, Xi Zhichan <zhichan.xi@samsung.com>
-Build-Depends: debhelper (>= 5), libappcore-efl-dev, libglib2.0-dev, libslp-tapi-dev, libslp-setting-dev, libheynoti-dev, libaul-1-dev, libx11-dev, libelm-dev, libefreet-dev, dlog-dev, libecore-dev, libsvi-dev, libslp-utilx-dev, libail-0-dev, libui-gadget-dev, libslp-sysman-dev, pkgmgr-info-dev
-Standards-Version: 3.7.2
-
-Package: starter
-Section: admin
-Architecture: any
-Depends: ${shlibs:Depends}, ${misc:Depends}
-Description: starter
-
-Package: starter-dbg
-Section: debug
-Architecture: any
-Depends: ${shlibs:Depends}, ${misc:Depends}
-Description: starter (unstripped)
-
diff --git a/debian/rules b/debian/rules
deleted file mode 100755 (executable)
index 6bf3469..0000000
+++ /dev/null
@@ -1,112 +0,0 @@
-#!/usr/bin/make -f
-# -*- makefile -*-
-# Sample debian/rules that uses debhelper.
-# This file was originally written by Joey Hess and Craig Small.
-# As a special exception, when this file is copied by dh-make into a
-# dh-make output file, you may use that output file without restriction.
-# This special exception was added by Craig Small in version 0.37 of dh-make.
-
-# Uncomment this to turn on verbose mode.
-#export DH_VERBOSE=1
-
-CFLAGS ?= -Wall -g
-LDFLAGS ?=
-PREFIX ?= /usr
-DATADIR ?= /usr/share
-
-ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
-       CFLAGS += -O0
-else
-       CFLAGS += -O2
-endif
-
-LDFLAGS += -Wl,--rpath=$(PREFIX)/lib -Wl,--as-needed
-
-CMAKE_BUILD_DIR ?= $(CURDIR)/cmake_build_tmp
-
-configure: configure-stamp
-configure-stamp:
-       dh_testdir
-       # Add here commands to configure the package.
-       mkdir -p $(CMAKE_BUILD_DIR) && cd $(CMAKE_BUILD_DIR) && \
-       CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" cmake .. -DCMAKE_INSTALL_PREFIX="$(PREFIX)"
-
-       touch configure-stamp
-
-build: build-stamp
-
-build-stamp: configure-stamp 
-       dh_testdir
-
-       # Add here commands to compile the package.
-       cd $(CMAKE_BUILD_DIR) && $(MAKE)
-
-       for f in `find $(CURDIR)/debian/ -name "*.in"`; do \
-               cat $$f > $${f%.in}; \
-               sed -i -e "s#@PREFIX@#$(PREFIX)#g" $${f%.in}; \
-               sed -i -e "s#@DATADIR@#$(DATADIR)#g" $${f%.in}; \
-       done
-
-       touch $@
-
-clean:
-       dh_testdir
-       dh_testroot
-       rm -f build-stamp configure-stamp
-
-       # Add here commands to clean up after the build process.
-       rm -rf $(CMAKE_BUILD_DIR)
-
-       for f in `find $(CURDIR)/debian/ -name "*.in"`; do \
-               rm -f $${f%.in}; \
-       done
-
-       dh_clean 
-
-install: build
-       dh_testdir
-       dh_testroot
-       dh_clean -k 
-       dh_installdirs
-
-       # Add here commands to install the package into debian/wavplayer.
-       cd $(CMAKE_BUILD_DIR) && $(MAKE) DESTDIR=$(CURDIR)/debian/tmp install
-
-
-# Build architecture-independent files here.
-binary-indep: build install
-# We have nothing to do by default.
-
-# Build architecture-dependent files here.
-binary-arch: build install
-       dh_testdir
-       dh_testroot
-#      dh_installchangelogs
-#      dh_installdocs
-       dh_installexamples
-       dh_install --sourcedir=debian/tmp
-#      dh_installmenu
-#      dh_installdebconf       
-#      dh_installlogrotate
-#      dh_installemacsen
-#      dh_installpam
-#      dh_installmime
-#      dh_python
-#      dh_installinit
-#      dh_installcron
-#      dh_installinfo
-       dh_installman
-       dh_link
-       dh_strip --dbg-package=starter-dbg
-       dh_compress
-       dh_fixperms
-#      dh_perl
-       dh_makeshlibs
-       dh_installdeb
-       dh_shlibdeps
-       dh_gencontrol
-       dh_md5sums
-       dh_builddeb
-
-binary: binary-indep binary-arch
-.PHONY: build clean binary-indep binary-arch binary install configure
diff --git a/debian/starter.install.in b/debian/starter.install.in
deleted file mode 100755 (executable)
index 464e764..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-@PREFIX@/bin/*
-@PREFIX@/lib/*
-/etc/init.d/*
-/opt/ug/*
diff --git a/debian/starter.postinst b/debian/starter.postinst
deleted file mode 100755 (executable)
index f1f673f..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-#!/bin/sh
-
-vconftool set -t int "memory/starter/sequence" 0 -i -u 5000 -g 5000
-
-vconftool set -t string file/private/lockscreen/pkgname "org.tizen.lockscreen" -u 5000 -g 5000
-
-vconftool -i set -t int memory/idle_lock/state "0" -u 5000 -g 5000
-
-vconftool -i set -t bool memory/lockscreen/phone_lock_verification "0" -u 5000 -g 5000
-
-ln -sf /etc/init.d/rd4starter /etc/rc.d/rc4.d/S81starter
-ln -sf /etc/init.d/rd3starter /etc/rc.d/rc3.d/S43starter
-
-sync
diff --git a/include/dbus_util.h b/include/dbus_util.h
new file mode 100644 (file)
index 0000000..c958416
--- /dev/null
@@ -0,0 +1,51 @@
+/*
+ * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __DBUS_UTIL_H__
+#define __DBUS_UTIL_H__
+
+#include <E_DBus.h>
+
+#define OOM_ADJ_VALUE_HOMESCREEN 0
+
+#ifdef TIZEN_PROFILE_MOBILE
+#define OOM_ADJ_VALUE_DEFAULT   200
+#else
+#define OOM_ADJ_VALUE_DEFAULT   0
+#endif
+
+#define DEVICED_BUS_NAME       "org.tizen.system.deviced"
+#define DEVICED_OBJECT_PATH    "/Org/Tizen/System/DeviceD"
+#define DEVICED_INTERFACE_NAME DEVICED_BUS_NAME
+#define DEVICED_PATH           DEVICED_OBJECT_PATH"/Process"
+#define DEVICED_INTERFACE      DEVICED_INTERFACE_NAME".Process"
+#define DEVICED_SET_METHOD     "oomadj_set"
+
+#define DISPLAY_OBJECT_PATH     DEVICED_OBJECT_PATH"/Display"
+#define DEVICED_INTERFACE_DISPLAY  DEVICED_INTERFACE_NAME".display"
+#define MEMBER_LCD_ON                  "LCDOn"
+#define MEMBER_LCD_OFF                 "LCDOff"
+
+extern void dbus_util_send_home_raise_signal(void);
+extern int dbus_util_send_oomadj(int pid, int oom_adj_value);
+extern void dbus_util_send_cpu_booster_signal(void);
+extern void dbus_util_send_poweroff_signal(void);
+extern void dbus_util_send_lock_PmQos_signal(void);
+
+extern int dbus_util_receive_lcd_status(void (*changed_cb)(void *data, DBusMessage *msg), void *data);
+extern char *dbus_util_msg_arg_get_str(DBusMessage *msg);
+
+#endif //__DBUS_UTIL_H__
diff --git a/include/hw_key.h b/include/hw_key.h
deleted file mode 100755 (executable)
index 42d891d..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
- /*
-  * Copyright 2012  Samsung Electronics Co., Ltd
-  *
-  * Licensed under the Flora License, Version 1.1 (the "License");
-  * you may not use this file except in compliance with the License.
-  * You may obtain a copy of the License at
-  *
-  *     http://floralicense.org/license/
-  *
-  * Unless required by applicable law or agreed to in writing, software
-  * distributed under the License is distributed on an "AS IS" BASIS,
-  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  * See the License for the specific language governing permissions and
-  * limitations under the License.
-  */
-
-
-
-extern void destroy_key_window(void);
-extern void create_key_window(void);
-
-// End of a file
diff --git a/include/lock-daemon.h b/include/lock-daemon.h
deleted file mode 100755 (executable)
index 268d945..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
- /*
-  * Copyright 2012  Samsung Electronics Co., Ltd
-  *
-  * Licensed under the Flora License, Version 1.1 (the "License");
-  * you may not use this file except in compliance with the License.
-  * You may obtain a copy of the License at
-  *
-  *     http://floralicense.org/license/
-  *
-  * Unless required by applicable law or agreed to in writing, software
-  * distributed under the License is distributed on an "AS IS" BASIS,
-  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  * See the License for the specific language governing permissions and
-  * limitations under the License.
-  */
-
-
-
-#ifndef __LOCK_DAEMON_H__
-#define __LOCK_DAEMON_H__
-
-int start_lock_daemon(int launch_lock);
-
-#endif
diff --git a/include/lockd-debug.h b/include/lockd-debug.h
deleted file mode 100755 (executable)
index 07a3835..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
- /*
-  * Copyright 2012  Samsung Electronics Co., Ltd
-  *
-  * Licensed under the Flora License, Version 1.1 (the "License");
-  * you may not use this file except in compliance with the License.
-  * You may obtain a copy of the License at
-  *
-  *     http://floralicense.org/license/
-  *
-  * Unless required by applicable law or agreed to in writing, software
-  * distributed under the License is distributed on an "AS IS" BASIS,
-  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  * See the License for the specific language governing permissions and
-  * limitations under the License.
-  */
-
-
-
-#ifndef __LOCKD_DEBUG_H__
-#define __LOCKD_DEBUG_H__
-
-#include <stdio.h>
-#include <dlog.h>
-
-#ifdef  LOG_TAG
-#undef  LOG_TAG
-#endif
-
-#define LOG_TAG "starter"
-
-#define ENABLE_LOG_SYSTEM
-
-void lockd_log_t(char *fmt, ...);
-
-#ifdef ENABLE_LOG_SYSTEM
-#define STARTER_ERR(fmt, arg...)  LOGE("["LOG_TAG"%s:%d:E] "fmt, __FILE__, __LINE__, ##arg)
-#define STARTER_DBG(fmt, arg...)  LOGD("["LOG_TAG"%s:%d:D] "fmt, __FILE__, __LINE__, ##arg)
-#else
-#define STARTER_ERR(fmt, arg...)
-#define STARTER_DBG(fmt, arg...)
-#endif
-
-#ifdef ENABLE_LOG_SYSTEM
-#define _ERR(fmt, arg...) do { STARTER_ERR(fmt, ##arg); lockd_log_t("["LOG_TAG":%d:E] "fmt, __LINE__, ##arg); } while (0)
-#define _DBG(fmt, arg...) do { STARTER_DBG(fmt, ##arg); lockd_log_t("["LOG_TAG":%d:D] "fmt, __LINE__, ##arg); } while (0)
-
-#define LOCKD_ERR(fmt, arg...) _ERR(fmt, ##arg)
-#define LOCKD_DBG(fmt, arg...) _DBG(fmt, ##arg)
-#else
-#define _ERR(...)
-#define _DBG(...)
-
-#define LOCKD_ERR(...)
-#define LOCKD_ERR(...)
-#endif
-
-#ifndef TRUE
-#define TRUE 1
-#endif
-#ifndef FALSE
-#define FALSE 0
-#endif
-
-#endif
diff --git a/include/lockd-process-mgr.h b/include/lockd-process-mgr.h
deleted file mode 100755 (executable)
index 195f73f..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
- /*
-  * Copyright 2012  Samsung Electronics Co., Ltd
-  *
-  * Licensed under the Flora License, Version 1.1 (the "License");
-  * you may not use this file except in compliance with the License.
-  * You may obtain a copy of the License at
-  *
-  *     http://floralicense.org/license/
-  *
-  * Unless required by applicable law or agreed to in writing, software
-  * distributed under the License is distributed on an "AS IS" BASIS,
-  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  * See the License for the specific language governing permissions and
-  * limitations under the License.
-  */
-
-
-
-#ifndef __LOCKD_PROCESS_MGR_H__
-#define __LOCKD_PROCESS_MGR_H__
-
-int lockd_process_mgr_start_lock(void *data, int (*dead_cb) (int, void *),
-                                int phone_lock_state);
-
-int lockd_process_mgr_restart_lock(int phone_lock_state);
-
-int lockd_process_mgr_start_phone_lock(void);
-
-int lockd_process_mgr_start_normal_lock(void *data, int (*dead_cb) (int, void *));
-
-void lockd_process_mgr_terminate_lock_app(int lock_app_pid,
-                                         int state);
-
-void lockd_process_mgr_terminate_phone_lock(int phone_lock_pid);
-
-int lockd_process_mgr_check_lock(int pid);
-
-#endif
diff --git a/include/lockd-window-mgr.h b/include/lockd-window-mgr.h
deleted file mode 100755 (executable)
index d30ab31..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
- /*
-  * Copyright 2012  Samsung Electronics Co., Ltd
-  *
-  * Licensed under the Flora License, Version 1.1 (the "License");
-  * you may not use this file except in compliance with the License.
-  * You may obtain a copy of the License at
-  *
-  *     http://floralicense.org/license/
-  *
-  * Unless required by applicable law or agreed to in writing, software
-  * distributed under the License is distributed on an "AS IS" BASIS,
-  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  * See the License for the specific language governing permissions and
-  * limitations under the License.
-  */
-
-
-
-#ifndef __LOCKD_WINDOW_MGR_H__
-#define __LOCKD_WINDOW_MGR_H__
-
-typedef struct _lockw_data lockw_data;
-
-Eina_Bool
-lockd_window_set_window_property(lockw_data * data, int lock_app_pid,
-                                void *event);
-
-Eina_Bool
-lockd_window_set_window_effect(lockw_data * data, int lock_app_pid,
-                              void *event);
-
-void lockd_window_set_phonelock_pid(lockw_data * data, int phone_lock_pid);
-
-void
-lockd_window_mgr_ready_lock(void *data, lockw_data * lockw,
-                           Eina_Bool(*create_cb) (void *, int, void *),
-                           Eina_Bool(*show_cb) (void *, int, void *));
-
-void lockd_window_mgr_finish_lock(lockw_data * lockw);
-
-lockw_data *lockd_window_init(void);
-#endif
diff --git a/include/menu_daemon.h b/include/menu_daemon.h
deleted file mode 100755 (executable)
index de3e843..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
- /*
-  * Copyright 2012  Samsung Electronics Co., Ltd
-  *
-  * Licensed under the Flora License, Version 1.1 (the "License");
-  * you may not use this file except in compliance with the License.
-  * You may obtain a copy of the License at
-  *
-  *     http://floralicense.org/license/
-  *
-  * Unless required by applicable law or agreed to in writing, software
-  * distributed under the License is distributed on an "AS IS" BASIS,
-  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  * See the License for the specific language governing permissions and
-  * limitations under the License.
-  */
-
-
-
-#include <bundle.h>
-#include <sys/types.h>
-#include <stdbool.h>
-
-extern void menu_daemon_init(void *data);
-extern void menu_daemon_fini(void);
-
-extern int menu_daemon_open_app(const char *pkgname);
-extern int menu_daemon_launch_app(const char *pkgname, bundle *b);
-
-extern bool menu_daemon_is_homescreen(pid_t pid);
-
-extern int menu_daemon_check_dead_signal(int pid);
-
-extern char *menu_daemon_get_selected_pkgname(void);
-extern void menu_daemon_open_homescreen(const char *pkgname);
-
-// End of a file
diff --git a/include/mobile/home_mgr.h b/include/mobile/home_mgr.h
new file mode 100644 (file)
index 0000000..e0d0fc7
--- /dev/null
@@ -0,0 +1,27 @@
+/*
+ * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <bundle.h>
+#include <sys/types.h>
+#include <stdbool.h>
+
+extern void home_mgr_init(void *data);
+extern void home_mgr_fini(void);
+
+extern int home_mgr_check_dead_signal(int pid, void *data);
+extern int home_mgr_open_home(const char *pkgname);
+
+// End of a file
diff --git a/include/mobile/hw_key.h b/include/mobile/hw_key.h
new file mode 100644 (file)
index 0000000..c1e4857
--- /dev/null
@@ -0,0 +1,39 @@
+/*
+ * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __HW_KEY_H__
+#define __HW_KEY_H__
+
+#define        KEY_VOLUMEUP    "XF86AudioRaiseVolume"
+#define        KEY_VOLUMEDOWN  "XF86AudioLowerVolume"
+#define        KEY_HOME        "XF86Home"
+#define        KEY_CONFIG      "XF86Camera_Full"
+#define        KEY_SEARCH      "XF86Search"
+#define        KEY_MEDIA       "XF86AudioMedia"
+#define        KEY_TASKSWITCH  "XF86TaskPane"
+#define        KEY_WEBPAGE     "XF86WWW"
+#define        KEY_MAIL        "XF86Mail"
+#define        KEY_VOICE       "XF86Voice"
+#define        KEY_APPS        "XF86Apps"
+#define        KEY_CONNECT     "XF86Call"
+#define KEY_BACK       "XF86Back"
+
+extern void hw_key_destroy_window(void);
+extern void hw_key_create_window(void);
+
+#endif
+
+// End of a file
diff --git a/include/mobile/lock_mgr.h b/include/mobile/lock_mgr.h
new file mode 100644 (file)
index 0000000..f21cfaf
--- /dev/null
@@ -0,0 +1,62 @@
+/*
+ * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __LOCK_DAEMON_H__
+#define __LOCK_DAEMON_H__
+
+#include <Elementary.h>
+#include <E_DBus.h>
+#include <alarm.h>
+
+#include "window_mgr.h"
+
+#define _EDJ(x) elm_layout_edje_get(x)
+
+#define LOCK_MGR_DEFAULT_PKG_NAME "org.tizen.lockscreen"
+
+#ifdef TIZEN_BUILD_EMULATOR
+#define LOCK_MGR_DEFAULT_BG_PATH "/opt/share/settings/Wallpapers/Default.jpg"
+#else
+#define LOCK_MGR_DEFAULT_BG_PATH "/opt/share/settings/Wallpapers/Lock_default.png"
+#endif
+
+
+
+typedef enum {
+       LOCK_SOUND_LOCK,
+       LOCK_SOUND_UNLOCK,
+       LOCK_SOUND_BTN_KEY,
+       LOCK_SOUND_TAP,
+       LOCK_SOUND_MAX,
+} lock_sound_type_e;
+
+typedef enum {
+       LCD_STATE_ON,
+       LCD_STATE_OFF,
+       LCD_STATE_MAX,
+} lock_lcd_state_e;
+
+int lock_mgr_lcd_state_get(void);
+int lock_mgr_lock_pid_get(void);
+void lock_mgr_sound_play(lock_sound_type_e type);
+
+void lock_mgr_idle_lock_state_set(int lock_state);
+Eina_Bool lock_mgr_lockscreen_launch(void);
+
+int lock_mgr_daemon_start(void);
+void lock_mgr_daemon_end(void);
+
+#endif                         /* __LOCK_DAEMON_H__ */
diff --git a/include/mobile/lock_pwd_complex.h b/include/mobile/lock_pwd_complex.h
new file mode 100644 (file)
index 0000000..69e8b05
--- /dev/null
@@ -0,0 +1,28 @@
+/*
+ * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __LOCK_PWD_COMPLEX_H__
+#define __LOCK_PWD_COMPLEX_H__
+
+#include "lock_pwd_verification.h"
+
+Eina_Bool lock_pwd_complex_is_blocked_get(void);
+void lock_pwd_complex_event(lock_pwd_event_e event);
+Evas_Object *lock_pwd_complex_layout_create(void *data);
+void lock_pwd_complex_layout_del(void);
+void lock_pwd_complex_view_init(void);
+
+#endif
diff --git a/include/mobile/lock_pwd_control_panel.h b/include/mobile/lock_pwd_control_panel.h
new file mode 100644 (file)
index 0000000..ddc4770
--- /dev/null
@@ -0,0 +1,27 @@
+/*
+ * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __LOCK_PWD_CONTROL_PANEL_H__
+#define __LOCK_PWD_CONTROL_PANEL_H__
+
+void lock_pwd_control_panel_cancel_btn_enable_set(Eina_Bool enable);
+
+Evas_Object *lock_pwd_control_panel_create(Evas_Object *parent);
+void lock_pwd_control_panel_del(void);
+
+void lock_pwd_control_panel_pause(void);
+void lock_pwd_control_panel_resume(void);
+#endif
diff --git a/include/mobile/lock_pwd_simple.h b/include/mobile/lock_pwd_simple.h
new file mode 100755 (executable)
index 0000000..62a2429
--- /dev/null
@@ -0,0 +1,30 @@
+/*
+ * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __LOCK_PWD_SIMPLE_H__
+#define __LOCK_PWD_SIMPLE_H__
+
+#include <Elementary.h>
+
+#include "lock_pwd_verification.h"
+
+Eina_Bool lock_pwd_simple_is_blocked_get(void);
+Evas_Object *lock_pwd_simple_layout_create(void *data);
+void lock_pwd_simple_layout_del(void);
+void lock_pwd_simple_event(lock_pwd_event_e event);
+void lock_pwd_simple_view_init(void);
+
+#endif
diff --git a/include/mobile/lock_pwd_util.h b/include/mobile/lock_pwd_util.h
new file mode 100644 (file)
index 0000000..2746fcd
--- /dev/null
@@ -0,0 +1,38 @@
+/*
+ * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __LOCK_PWD_UTIL_H__
+#define __LOCK_PWD_UTIL_H__
+
+#define LOCK_PWD_EDJE_FILE "/usr/share/starter/res/edje/lock_pwd.edj"
+#define LOCK_PWD_BTN_EDJE_FILE "/usr/share/starter/res/edje/lock_btn.edj"
+
+int lock_pwd_util_win_width_get(void);
+int lock_pwd_util_win_height_get(void);
+
+void lock_pwd_util_create(Eina_Bool is_show);
+void lock_pwd_util_del(void);
+
+void lock_pwd_util_popup_create(char *title, char *text, Evas_Smart_Cb func, double timeout);
+
+void lock_pwd_util_view_init(void);
+void lock_pwd_util_back_key_relased(void);
+Evas_Object *lock_pwd_util_win_get(void);
+Eina_Bool lock_pwd_util_win_visible_get(void);
+void lock_pwd_util_win_show(void);
+void lock_pwd_util_win_hide(void);
+
+#endif
diff --git a/include/mobile/lock_pwd_verification.h b/include/mobile/lock_pwd_verification.h
new file mode 100755 (executable)
index 0000000..bd7042d
--- /dev/null
@@ -0,0 +1,56 @@
+/*
+ * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __LOCK_PWD_VERIFICATION_H__
+#define __LOCK_PWD_VERIFICATION_H__
+
+#include <vconf.h>
+
+#define PASSWORD_ATTEMPTS_MAX_NUM 5
+#define MAX_PASSWORD_NUM 4
+#define INFINITE_ATTEMPT 0
+#define PASSWORD_BLOCK_SECONDS 30
+#define PASSWORD_TIMESTAMP_STR_LENGTH 512
+#define VCONFKEY_SETAPPL_PASSWORD_TIMESTAMP_STR VCONFKEY_SETAPPL_PREFIX"/phone_lock_timestamp"
+
+typedef enum {
+       PWD_EVENT_CORRECT = 0,
+       PWD_EVENT_INCORRECT_WARNING = 1,
+       PWD_EVENT_INCORRECT,
+       PWD_EVENT_INPUT_BLOCK_WARNING,
+       PWD_EVENT_INPUT_BLOCK,
+       PWD_EVENT_EMPTY,
+       PWD_EVENT_OVER,
+} lock_pwd_event_e;
+
+typedef struct {
+       unsigned int current_attempt;
+       unsigned int block_attempt;
+       unsigned int max_attempt;
+       unsigned int expire_sec;
+       unsigned int incorrect_count;
+       void *data;
+} lock_pwd_policy;
+
+int lock_pwd_verification_current_attempt_get(void);
+int lock_pwd_verification_remain_attempt_get(void);
+
+lock_pwd_event_e lock_pwd_verification_verify(const char *password);
+void lock_pwd_verification_policy_create(void);
+
+void lock_pwd_verification_popup_create(lock_pwd_event_e event);
+
+#endif
diff --git a/include/mobile/popup.h b/include/mobile/popup.h
new file mode 100644 (file)
index 0000000..f8602ad
--- /dev/null
@@ -0,0 +1,25 @@
+/*
+ * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __POPUP_H__
+#define __POPUP_H__
+
+#include <Elementary.h>
+
+extern Evas_Object *popup_create(const char *title, const char *text);
+
+#endif
+// End of a file
diff --git a/include/mobile/starter.h b/include/mobile/starter.h
new file mode 100644 (file)
index 0000000..a9700c2
--- /dev/null
@@ -0,0 +1,27 @@
+/*
+ * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __STARTER_H__
+#define __STARTER_H__
+
+#include <sys/time.h>
+
+struct appdata {
+       struct timeval tv_start;        /* start time */
+       int lcd_status;
+};
+
+#endif                         /* __STARTER_H__ */
diff --git a/include/package_mgr.h b/include/package_mgr.h
new file mode 100644 (file)
index 0000000..85b7d4c
--- /dev/null
@@ -0,0 +1,22 @@
+/*
+ * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __PACKAGE_MGR_H__
+#define __PACKAGE_MGR_H__
+
+extern bool package_mgr_exist_app(char *appid);
+
+#endif /* __PACKAGE_MGR_H__ */
diff --git a/include/pkg_event.h b/include/pkg_event.h
deleted file mode 100755 (executable)
index a9fb2cd..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
- /*
-  * Copyright 2012  Samsung Electronics Co., Ltd
-  *
-  * Licensed under the Flora License, Version 1.1 (the "License");
-  * you may not use this file except in compliance with the License.
-  * You may obtain a copy of the License at
-  *
-  *     http://floralicense.org/license/
-  *
-  * Unless required by applicable law or agreed to in writing, software
-  * distributed under the License is distributed on an "AS IS" BASIS,
-  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  * See the License for the specific language governing permissions and
-  * limitations under the License.
-  */
-
-
-
-#ifndef __NOTIFIER_H__
-#define __NOTIFIER_H__
-#include <stdbool.h>
-
-#if !defined(PUBLIC)
-#define PUBLIC          __attribute__((visibility("default")))
-#endif
-
-#if !defined(PROTECTED)
-#define PROTECTED       __attribute__((visibility("hidden")))
-#endif
-
-#if !defined(PRIVATE)
-#define PRIVATE         __attribute__((visibility("internal")))
-#endif
-
-
-struct desktop_notifier {
-    int number;
-    int ifd;
-    Ecore_Fd_Handler *handler;
-};
-
-
-PRIVATE void pkg_event_init(void);
-PRIVATE void pkg_event_fini(void);
-
-#endif
diff --git a/include/process_mgr.h b/include/process_mgr.h
new file mode 100644 (file)
index 0000000..008dfae
--- /dev/null
@@ -0,0 +1,38 @@
+/*
+ * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __PROCESS_MGR_H__
+#define __PROCESS_MGR_H__
+
+typedef struct _process_mgr_s *process_mgr_h;
+
+typedef void (*after_func)(int pid);
+typedef int (*change_func)(const char *, const char *, const char *, void *, void *);
+
+void process_mgr_must_launch(const char *appid, const char *key, const char *value, change_func cfn, after_func afn);
+void process_mgr_must_open(const char *appid, change_func cfn, after_func afn);
+void process_mgr_must_syspopup_launch(const char *appid, const char *key, const char *value, change_func cfn, after_func afn);
+
+extern void process_mgr_terminate_app(int lock_app_pid, int state);
+extern void process_mgr_kill_app(int lock_app_pid);
+
+extern int process_mgr_validate_app(int pid);
+extern int process_mgr_validate_call(int pid);
+
+extern int process_mgr_set_lock_priority(int pid);
+extern int process_mgr_set_pwlock_priority(int pid);
+
+#endif /* __PROCESS_MGR_H__ */
diff --git a/include/starter-util.h b/include/starter-util.h
deleted file mode 100755 (executable)
index 117c9a4..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
- /*
-  * Copyright 2012  Samsung Electronics Co., Ltd
-  *
-  * Licensed under the Flora License, Version 1.1 (the "License");
-  * you may not use this file except in compliance with the License.
-  * You may obtain a copy of the License at
-  *
-  *     http://floralicense.org/license/
-  *
-  * Unless required by applicable law or agreed to in writing, software
-  * distributed under the License is distributed on an "AS IS" BASIS,
-  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  * See the License for the specific language governing permissions and
-  * limitations under the License.
-  */
-
-
-
-#ifndef __STARTER_UTIL_H__
-#define __STARTER_UTIL_H__
-
-#include <stdio.h>
-#include <sys/time.h>
-
-#define WRITE_FILE_LOG(fmt, arg...) do {            \
-       FILE *fp;\
-    struct timeval tv;                         \
-    gettimeofday(&tv, NULL);           \
-       fp = fopen("/var/log/boottime", "a+");\
-       if (NULL == fp) break;\
-    fprintf(fp, "%u%09u : "fmt"\n", (int) tv.tv_sec, (int) tv.tv_usec, ##arg); \
-       fclose(fp);\
-} while (0)
-
-#endif
diff --git a/include/starter-vconf.h b/include/starter-vconf.h
deleted file mode 100755 (executable)
index f75bb77..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
- /*
-  * Copyright 2012  Samsung Electronics Co., Ltd
-  *
-  * Licensed under the Flora License, Version 1.1 (the "License");
-  * you may not use this file except in compliance with the License.
-  * You may obtain a copy of the License at
-  *
-  *     http://floralicense.org/license/
-  *
-  * Unless required by applicable law or agreed to in writing, software
-  * distributed under the License is distributed on an "AS IS" BASIS,
-  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  * See the License for the specific language governing permissions and
-  * limitations under the License.
-  */
-
-
-
-#ifndef __STARTER_VCONF_H__
-#define __STARTER_VCONF_H__
-
-#define VCONF_PRIVATE_LOCKSCREEN_PKGNAME "file/private/lockscreen/pkgname"
-
-#endif
diff --git a/include/starter.h b/include/starter.h
deleted file mode 100755 (executable)
index 00ee1e6..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
- /*
-  * Copyright 2012  Samsung Electronics Co., Ltd
-  *
-  * Licensed under the Flora License, Version 1.1 (the "License");
-  * you may not use this file except in compliance with the License.
-  * You may obtain a copy of the License at
-  *
-  *     http://floralicense.org/license/
-  *
-  * Unless required by applicable law or agreed to in writing, software
-  * distributed under the License is distributed on an "AS IS" BASIS,
-  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  * See the License for the specific language governing permissions and
-  * limitations under the License.
-  */
-
-
-
-#ifndef __STARTER_H__
-#define __STARTER_H__
-
-#include <sys/time.h>
-
-struct appdata {
-       struct timeval tv_start;
-};
-
-#endif
diff --git a/include/status.h b/include/status.h
new file mode 100644 (file)
index 0000000..879bdc7
--- /dev/null
@@ -0,0 +1,92 @@
+/*
+ * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __STATUS_H__
+#define __STATUS_H__
+
+#include <Eina.h>
+
+#ifndef VCONFKEY_STARTER_RESERVED_APPS_STATUS
+/*  2 digits for reserved apps & popup */
+/* 0x01 : reserved apps */
+/* 0x10 : reserved popup */
+#define VCONFKEY_STARTER_RESERVED_APPS_STATUS "memory/starter/reserved_apps_status"
+#endif
+
+#ifndef VCONFKEY_SETUP_WIZARD_FIRST_BOOT
+#define VCONFKEY_SETUP_WIZARD_FIRST_BOOT       "db/setup_wizard/first_boot"
+#endif
+
+#define VCONFKEY_SETAPPL_PASSWORD_ATTEMPTS_LEFT_INT      VCONFKEY_SETAPPL_PREFIX"/phone_lock_attempts_left"
+
+typedef enum {
+       STATUS_ACTIVE_KEY_INVALID = -1,
+       STATUS_ACTIVE_KEY_PM_STATE = 0,
+       STATUS_ACTIVE_KEY_SETAPPL_SELECTED_PACKAGE_NAME,
+       STATUS_ACTIVE_KEY_SETAPPL_SCREEN_LOCK_TYPE_INT,
+       STATUS_ACTIVE_KEY_STARTER_SEQUENCE,
+       STATUS_ACTIVE_KEY_SYSMAN_POWER_OFF_STATUS,
+       STATUS_ACTIVE_KEY_LANGSET,
+       STATUS_ACTIVE_KEY_MAX,
+} status_active_key_e;
+
+struct status_active_s {
+       Eina_List *list[STATUS_ACTIVE_KEY_MAX];
+       char *setappl_selected_package_name;
+       int setappl_screen_lock_type_int;
+       char *langset;
+       int pm_state;
+       int starter_sequence;
+       int sysman_power_off_status;
+};
+
+struct status_passive_s {
+       int setup_wizard_state;
+       int wms_wakeup_by_gesture_setting;
+       int setup_wizard_first_boot;
+
+       int pm_key_ignore;
+       int pm_state;
+       int call_state;
+       int idle_lock_state;
+       int setappl_password_attempts_left_int;
+       int remote_lock_islocked;
+       int setappl_psmode;
+       int starter_reserved_apps_status;
+       int setappl_sound_lock_bool;
+       int setappl_motion_activation;
+       int setappl_use_pick_up;
+       int setappl_accessibility_lock_time_int;
+       int idle_screen_safemode;
+       int boot_animation_finished;
+       int setappl_ambient_mode_bool;
+
+       char *setappl_3rd_lock_pkg_name_str;
+};
+typedef struct status_passive_s *status_passive_h;
+typedef struct status_active_s *status_active_h;
+typedef int (*status_active_cb)(status_active_key_e key, void *data);
+
+extern status_active_h status_active_get(void);
+extern status_passive_h status_passive_get(void);
+
+int status_active_register_cb(status_active_key_e key, status_active_cb func, void *data);
+int status_active_unregister_cb(status_active_key_e key, status_active_cb func);
+
+extern int status_register(void);
+extern void status_unregister(void);
+
+#endif //__STATUS_H__
old mode 100755 (executable)
new mode 100644 (file)
index b59d2dc..bec5430
@@ -1,33 +1,48 @@
- /*
-  * Copyright 2012  Samsung Electronics Co., Ltd
-  *
-  * Licensed under the Flora License, Version 1.1 (the "License");
-  * you may not use this file except in compliance with the License.
-  * You may obtain a copy of the License at
-  *
-  *     http://floralicense.org/license/
-  *
-  * Unless required by applicable law or agreed to in writing, software
-  * distributed under the License is distributed on an "AS IS" BASIS,
-  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  * See the License for the specific language governing permissions and
-  * limitations under the License.
-  */
-
-
+/*
+ * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 
 #ifndef __MENU_DAEMON_UTIL_H__
 #define __MENU_DAEMON_UTIL_H__
 #include <dlog.h>
 #include <stdio.h>
 #include <sys/time.h>
-
-#define HOME_SCREEN_PKG_NAME "org.tizen.menu-screen"
+#include <app.h>
+
+#define APP_TRAY_PKG_NAME "org.tizen.app-tray"
+#define MENU_SCREEN_PKG_NAME "org.tizen.menu-screen"
+#define PROVIDER_PKG_NAME "org.tizen.data-provider-master"
+#define CLUSTER_HOME_PKG_NAME "org.tizen.cluster-home"
+#define EASY_HOME_PKG_NAME "org.tizen.easy-home"
+#define EASY_APPS_PKG_NAME "org.tizen.easy-apps"
+#define HOMESCREEN_PKG_NAME "org.tizen.homescreen"
+#define TASKMGR_PKG_NAME "org.tizen.task-mgr"
+#define DEFAULT_TASKMGR_PKG_NAME "org.tizen.taskmgr"
 #define CONF_PATH_NUMBER 1024
 
+#define BUF_SIZE_16 16
+#define BUF_SIZE_32 32
+#define BUF_SIZE_128 128
+#define BUF_SIZE_256 256
+#define BUF_SIZE_512 512
+#define BUF_SIZE_1024 1024
+
+
 #ifdef  LOG_TAG
 #undef  LOG_TAG
-#define LOG_TAG "starter"
+#define LOG_TAG "STARTER"
 #endif
 
 /* Log */
 #define _E(fmt, arg...) LOGE("[%s:%d] "fmt"\n", __func__, __LINE__, ##arg)
 #endif
 
+#if !defined(_SECURE_W)
+#define _SECURE_W(fmt, arg...) SECURE_LOGW("[%s:%d] "fmt"\n", __func__, __LINE__, ##arg)
+#endif
+
+#if !defined(_SECURE_D)
+#define _SECURE_D(fmt, arg...) SECURE_LOGD("[%s:%d] "fmt"\n", __func__, __LINE__, ##arg)
+#endif
+
+#if !defined(_SECURE_E)
+#define _SECURE_E(fmt, arg...) SECURE_LOGE("[%s:%d] "fmt"\n", __func__, __LINE__, ##arg)
+#endif
+
 #define retv_if(expr, val) do { \
        if(expr) { \
                _E("(%s) -> %s() return", #expr, __FUNCTION__); \
        fclose(fp);\
 } while (0)
 
+#if !defined(_)
+#define _(str) dgettext(PACKAGE, str)
+#endif
+
+#if !defined(S_)
+#define S_(str) dgettext("sys_string", str)
+#endif
 
 
 #endif /* __MENU_DAEMON_UTIL_H__ */
diff --git a/include/wearable/clock_mgr.h b/include/wearable/clock_mgr.h
new file mode 100644 (file)
index 0000000..4f3af15
--- /dev/null
@@ -0,0 +1,23 @@
+/*
+ * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __CLOCK_MGR_H__
+#define __CLOCK_MGR_H__
+
+void clock_mgr_init(void);
+void clock_mgr_fini(void);
+
+#endif /* __CLOCK_MGR_H__*/
diff --git a/include/wearable/home_mgr.h b/include/wearable/home_mgr.h
new file mode 100644 (file)
index 0000000..d01a8ea
--- /dev/null
@@ -0,0 +1,27 @@
+/*
+ * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __HOME_MGR_H__
+#define __HOME_MGR_H__
+
+extern void home_mgr_launch_home(void);
+extern void home_mgr_launch_home_first(void);
+extern void home_mgr_launch_home_by_power(void);
+
+extern void home_mgr_init(void);
+extern void home_mgr_fini(void);
+
+#endif /* __HOME_MGR_H__*/
diff --git a/include/wearable/hourly_alert.h b/include/wearable/hourly_alert.h
new file mode 100644 (file)
index 0000000..a0ecf40
--- /dev/null
@@ -0,0 +1,24 @@
+/*
+ * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __HOURLY_ALERT_H__
+#define __HOURLY_ALERT_H__
+
+
+void hourly_alert_init(void);
+void hourly_alert_fini(void);
+
+#endif                         /* __HOURLY_ALERT_H__ */
diff --git a/include/wearable/hw_key.h b/include/wearable/hw_key.h
new file mode 100644 (file)
index 0000000..a937000
--- /dev/null
@@ -0,0 +1,20 @@
+/*
+ * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+extern void hw_key_destroy_window(void);
+extern void hw_key_create_window(void);
+
+// End of a file
diff --git a/include/window_mgr.h b/include/window_mgr.h
new file mode 100644 (file)
index 0000000..f966603
--- /dev/null
@@ -0,0 +1,38 @@
+/*
+ * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __WINDOW_MGR_H__
+#define __WINDOW_MGR_H__
+
+typedef struct _lockw_data lockw_data;
+
+int window_mgr_get_focus_window_pid(void);
+Eina_Bool window_mgr_set_prop(lockw_data * data, int lock_app_pid, void *event);
+Eina_Bool window_mgr_set_effect(lockw_data * data, int lock_app_pid, void *event);
+
+void window_mgr_set_scroll_prop(lockw_data * data, int lock_type);
+void window_mgr_register_event(void *data, lockw_data * lockw,
+                           Eina_Bool (*create_cb) (void *, int, void *),
+                           Eina_Bool (*show_cb) (void *, int, void *),
+                           Eina_Bool (*hide_cb) (void *, int, void *));
+void window_mgr_unregister_event(lockw_data * lockw);
+
+lockw_data *window_mgr_init(void);
+void window_mgr_fini(lockw_data *lockw);
+
+Evas_Object *window_mgr_pwd_lock_win_create(void);
+
+#endif                         /* __WINDOW_MGR_H__ */
diff --git a/include/x11.h b/include/x11.h
deleted file mode 100755 (executable)
index bad90a4..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
- /*
-  * Copyright 2012  Samsung Electronics Co., Ltd
-  *
-  * Licensed under the Flora License, Version 1.1 (the "License");
-  * you may not use this file except in compliance with the License.
-  * You may obtain a copy of the License at
-  *
-  *     http://floralicense.org/license/
-  *
-  * Unless required by applicable law or agreed to in writing, software
-  * distributed under the License is distributed on an "AS IS" BASIS,
-  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  * See the License for the specific language governing permissions and
-  * limitations under the License.
-  */
-
-
-
-#ifndef __STARTER_X11_H__
-#define __STARTER_X11_H__
-
-void prop_string_set(const char *name, const char *value);
-void prop_int_set(const char *name, unsigned int val);
-void set_window_scale(void);
-
-#endif
diff --git a/include/xmonitor.h b/include/xmonitor.h
deleted file mode 100755 (executable)
index 097e613..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
- /*
-  * Copyright 2012  Samsung Electronics Co., Ltd
-  *
-  * Licensed under the Flora License, Version 1.1 (the "License");
-  * you may not use this file except in compliance with the License.
-  * You may obtain a copy of the License at
-  *
-  *     http://floralicense.org/license/
-  *
-  * Unless required by applicable law or agreed to in writing, software
-  * distributed under the License is distributed on an "AS IS" BASIS,
-  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  * See the License for the specific language governing permissions and
-  * limitations under the License.
-  */
-
-
-
-#ifndef __MENU_DAEMON_XMONITOR_H__
-#define __MENU_DAEMON_XMONITOR_H__
-
-extern int xmonitor_init(void);
-extern void xmonitor_fini(void);
-
-#endif /* __MENU_DAEMON_XMONITOR_H__ */
diff --git a/lock-setting/CMakeLists.txt b/lock-setting/CMakeLists.txt
deleted file mode 100755 (executable)
index 7745b83..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
-PROJECT(lock-setting C)
-
-ADD_SUBDIRECTORY(lockscreen-options)
-
-# i18n
-ADD_SUBDIRECTORY(po)
-
-# End of a file
diff --git a/lock-setting/lockscreen-options/CMakeLists.txt b/lock-setting/lockscreen-options/CMakeLists.txt
deleted file mode 100755 (executable)
index 719f98e..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
-PROJECT(ug-lockscreen-options C)
-
-SET(PREFIX ${CMAKE_INSTALL_PREFIX}/ug)
-SET(LIBDIR "${PREFIX}/lib")
-SET(RESDIR "${PREFIX}/res")
-SET(DATADIR "${PREFIX}/data")
-SET(LOCALEDIR "${RESDIR}/locale")
-SET(IMAGEDIR "${RESDIR}/images")
-SET(EDJEDIR "${RESDIR}/edje")
-SET(ETCDIR "${RESDIR}/etc")
-SET(VERSION 0.1.0)
-
-SET(SRCS
-       ./src/lockscreen-options.c
-       ./src/lockscreen-options-util.c
-       ./src/lockscreen-options-main.c
-)
-
-INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/include)
-INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include)
-
-INCLUDE(FindPkgConfig)
-pkg_check_modules(pkgs_lock-screen-options REQUIRED elementary ui-gadget-1 edje evas ail capi-appfw-application)
-
-FOREACH(flag ${pkgs_lock-screen-options_CFLAGS})
-       SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
-ENDFOREACH(flag)
-
-SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -fvisibility=hidden -Wall")
-SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}")
-
-ADD_DEFINITIONS("-DPREFIX=\"${CMAKE_INSTALL_PREFIX}\"")
-
-ADD_LIBRARY(${PROJECT_NAME} SHARED ${SRCS})
-SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES SOVERSION 0.1.0)
-TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${pkgs_lock-screen-options_LDFLAGS})
-
-INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${LIBDIR})
diff --git a/lock-setting/lockscreen-options/include/lockscreen-options-debug.h b/lock-setting/lockscreen-options/include/lockscreen-options-debug.h
deleted file mode 100755 (executable)
index ef9799b..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
- /*
-  * Copyright 2012  Samsung Electronics Co., Ltd
-  *
-  * Licensed under the Flora License, Version 1.1 (the "License");
-  * you may not use this file except in compliance with the License.
-  * You may obtain a copy of the License at
-  *
-  *     http://floralicense.org/license/
-  *
-  * Unless required by applicable law or agreed to in writing, software
-  * distributed under the License is distributed on an "AS IS" BASIS,
-  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  * See the License for the specific language governing permissions and
-  * limitations under the License.
-  */
-
-
-
-#ifndef __LOCKSCREEN_OPTIONS_DEBUG_H__
-#define __LOCKSCREEN_OPTIONS_DEBUG_H__
-
-#include <stdio.h>
-
-#define OPENLOCK_USING_PLATFORM_DEBUG
-
-#ifdef OPENLOCK_USING_PLATFORM_DEBUG
-#ifndef LOG_TAG
-#define LOG_TAG "lockscreen-options"
-#endif
-#include <dlog.h>
-
-#define LOCKOPTIONS_DBG(fmt, args...) LOGD("["LOG_TAG"%s:%d:E] "fmt, __FILE__, __LINE__, ##args)
-#define LOCKOPTIONS_WARN(fmt, args...) LOGW("["LOG_TAG"%s:%d:E] "fmt, __FILE__, __LINE__, ##args)
-#define LOCKOPTIONS_ERR(fmt, args...) LOGE("["LOG_TAG"%s:%d:E] "fmt, __FILE__, __LINE__, ##args)
-#else
-#define LOCKOPTIONS_DBG(fmt, args...) do{printf("[LOCKOPTIONS_DBG][%s(%d)] "fmt " \n", __FILE__, __LINE__, ##args);}while(0);
-#define LOCKOPTIONS_WARN(fmt, args...) do{printf("[LOCKOPTIONS_WARN][%s(%d)] "fmt " \n", __FILE__, __LINE__, ##args);}while(0);
-#define LOCKOPTIONS_ERR(fmt, args...) do{printf("[LOCKOPTIONS_ERR][%s(%d)] "fmt " \n", __FILE__, __LINE__, ##args);}while(0);
-#endif
-
-#ifndef TRUE
-#define TRUE 1
-#endif
-#ifndef FALSE
-#define FALSE 0
-#endif
-
-#endif
diff --git a/lock-setting/lockscreen-options/include/lockscreen-options-main.h b/lock-setting/lockscreen-options/include/lockscreen-options-main.h
deleted file mode 100755 (executable)
index d4c05ec..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
- /*
-  * Copyright 2012  Samsung Electronics Co., Ltd
-  *
-  * Licensed under the Flora License, Version 1.1 (the "License");
-  * you may not use this file except in compliance with the License.
-  * You may obtain a copy of the License at
-  *
-  *     http://floralicense.org/license/
-  *
-  * Unless required by applicable law or agreed to in writing, software
-  * distributed under the License is distributed on an "AS IS" BASIS,
-  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  * See the License for the specific language governing permissions and
-  * limitations under the License.
-  */
-
-
-
-#ifndef __LOCKSCREEN_OPTIONS_MAIN_H__
-#define __LOCKSCREEN_OPTIONS_MAIN_H__
-
-#include <Elementary.h>
-#include "lockscreen-options.h"
-
-void lockscreen_options_main_create_view(lockscreen_options_ug_data * ug_data);
-void lockscreen_options_main_update_view();
-
-#endif
diff --git a/lock-setting/lockscreen-options/include/lockscreen-options-util.h b/lock-setting/lockscreen-options/include/lockscreen-options-util.h
deleted file mode 100755 (executable)
index b0ad283..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
- /*
-  * Copyright 2012  Samsung Electronics Co., Ltd
-  *
-  * Licensed under the Flora License, Version 1.1 (the "License");
-  * you may not use this file except in compliance with the License.
-  * You may obtain a copy of the License at
-  *
-  *     http://floralicense.org/license/
-  *
-  * Unless required by applicable law or agreed to in writing, software
-  * distributed under the License is distributed on an "AS IS" BASIS,
-  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  * See the License for the specific language governing permissions and
-  * limitations under the License.
-  */
-
-
-
-#ifndef __LOCKSCREEN_OPTIONS_UTIL_H__
-#define __LOCKSCREEN_OPTIONS_UTIL_H__
-
-#include <Elementary.h>
-
-enum {
-       IDS_COM_SK_OK = 0,
-       IDS_COM_SK_CANCEL,
-       IDS_LOCKSCREEN_OPTIONS_SYSTEM_STRING_MAX,
-};
-
-enum {
-       IDS_LOCKSCREEN_OPTIONS_EVENT_NOTIFICATIONS =
-               IDS_LOCKSCREEN_OPTIONS_SYSTEM_STRING_MAX,
-       IDS_LOCKSCREEN_OPTIONS_EVENT_NOTIFICATIONS_HELP,
-       IDS_LOCKSCREEN_OPTIONS_CLOCK,
-       IDS_LOCKSCREEN_OPTIONS_HELPTEXT,
-       IDS_LOCKSCREEN_OPTIONS_HELPTEXT_HELP,
-       IDS_LOCKSCREEN_OPTIONS_APP_STRING_MAX,
-};
-
-Evas_Object *lockscreen_options_util_create_navigation(Evas_Object * parent);
-Evas_Object *lockscreen_options_util_create_layout(Evas_Object * parent,
-                                                  const char *file,
-                                                  const char *group);
-void lockscreen_options_util_create_seperator(Evas_Object * genlist);
-void lockscreen_options_util_create_underline(Evas_Object * genlist);
-char *lockscreen_optoins_get_string(int id);
-
-#endif
diff --git a/lock-setting/lockscreen-options/include/lockscreen-options.h b/lock-setting/lockscreen-options/include/lockscreen-options.h
deleted file mode 100755 (executable)
index 37c478d..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
- /*
-  * Copyright 2012  Samsung Electronics Co., Ltd
-  *
-  * Licensed under the Flora License, Version 1.1 (the "License");
-  * you may not use this file except in compliance with the License.
-  * You may obtain a copy of the License at
-  *
-  *     http://floralicense.org/license/
-  *
-  * Unless required by applicable law or agreed to in writing, software
-  * distributed under the License is distributed on an "AS IS" BASIS,
-  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  * See the License for the specific language governing permissions and
-  * limitations under the License.
-  */
-
-
-
-#ifndef __LOCKSCREEN_OPTIONS_H__
-#define __LOCKSCREEN_OPTIONS_H__
-
-#include <Elementary.h>
-#include <libintl.h>
-#include <ui-gadget.h>
-
-#define PKGNAME "ug-lockscreen-options"
-
-#define _EDJ(o)                        elm_layout_edje_get(o)
-#define _S(str)                        dgettext("sys_string", str)
-#define _(s)                   dgettext(PKGNAME, s)
-#define dgettext_noop(s)       (s)
-#define N_(s)                  dgettext_noop(s)
-
-enum{
-       ENUM_LOCKSCREEN_GENLIST_STYLE_SEPERATOR = 0,
-       ENUM_LOCKSCREEN_GENLIST_STYLE_1TEXT1ICON,
-       ENUM_LOCKSCREEN_GENLIST_STYLE_2TEXT1ICON,
-       ENUM_LOCKSCREEN_GENLIST_STYLE_HELP,
-       ENUM_LOCKSCREEN_GENLIST_STYLE_UNDERLINE
-};
-
-#define LOCKSCREEN_GENLIST_STYLE_SEPERATOR "dialogue/separator/21/with_line"
-#define LOCKSCREEN_GENLIST_STYLE_1TEXT1ICON "dialogue/1text.1icon"
-#define LOCKSCREEN_GENLIST_STYLE_2TEXT1ICON "dialogue/2text.1icon.6"
-#define LOCKSCREEN_GENLIST_STYLE_HELP "multiline/1text"
-#define LOCKSCREEN_GENLIST_STYLE_UNDERLINE "dialogue/separator/1/with_line"
-
-
-typedef struct _lockscreen_options_ug_data {
-       int index;
-
-       Evas_Object *win_main;
-       Evas_Object *base;
-       ui_gadget_h ug;
-
-       Evas_Object *navi_bar;
-
-       Elm_Gen_Item_Class itc_separator;
-       Elm_Gen_Item_Class itc_menu_1text1icon;
-       Elm_Gen_Item_Class itc_help_1text;
-
-} lockscreen_options_ug_data;
-
-#endif
diff --git a/lock-setting/lockscreen-options/src/lockscreen-options-main.c b/lock-setting/lockscreen-options/src/lockscreen-options-main.c
deleted file mode 100755 (executable)
index 2ede565..0000000
+++ /dev/null
@@ -1,343 +0,0 @@
- /*
-  * Copyright 2012  Samsung Electronics Co., Ltd
-  *
-  * Licensed under the Flora License, Version 1.1 (the "License");
-  * you may not use this file except in compliance with the License.
-  * You may obtain a copy of the License at
-  *
-  *     http://floralicense.org/license/
-  *
-  * Unless required by applicable law or agreed to in writing, software
-  * distributed under the License is distributed on an "AS IS" BASIS,
-  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  * See the License for the specific language governing permissions and
-  * limitations under the License.
-  */
-
-
-
-#include <vconf.h>
-#include <vconf-keys.h>
-#include <ui-gadget.h>
-#include <ui-gadget-module.h>
-#include <ail.h>
-
-#include "lockscreen-options.h"
-#include "lockscreen-options-debug.h"
-#include "lockscreen-options-main.h"
-#include "lockscreen-options-util.h"
-
-#include "starter-vconf.h"
-
-#define LOCKSCREEN_OPTOINS_GENLIST_ITEM_CNT 5
-
-typedef struct {
-       int glStyle;
-       int stringId;
-       Evas_Object *check;
-       void (*func) (void *data, Evas_Object * obj, void *event_info);
-} lockscreen_menu_item_info;
-
-static lockscreen_menu_item_info lockscreen_options_menu_item[] = {
-       {ENUM_LOCKSCREEN_GENLIST_STYLE_1TEXT1ICON, IDS_LOCKSCREEN_OPTIONS_EVENT_NOTIFICATIONS, NULL, NULL},
-       {ENUM_LOCKSCREEN_GENLIST_STYLE_HELP, IDS_LOCKSCREEN_OPTIONS_EVENT_NOTIFICATIONS_HELP, NULL, NULL},
-       {ENUM_LOCKSCREEN_GENLIST_STYLE_1TEXT1ICON, IDS_LOCKSCREEN_OPTIONS_CLOCK, NULL, NULL},
-       {ENUM_LOCKSCREEN_GENLIST_STYLE_1TEXT1ICON, IDS_LOCKSCREEN_OPTIONS_HELPTEXT, NULL, NULL},
-       {ENUM_LOCKSCREEN_GENLIST_STYLE_HELP, IDS_LOCKSCREEN_OPTIONS_HELPTEXT_HELP, NULL, NULL}
-};
-
-static Elm_Gen_Item_Class itc_menu_1text1icon;
-static Elm_Gen_Item_Class itc_menu_2text1icon;
-static Elm_Gen_Item_Class itc_help_1text;
-
-static void _lockscreen_options_main_back_cb(void *data, Evas_Object * obj,
-                                            void *event_info)
-{
-       lockscreen_options_ug_data *ug_data =
-           (lockscreen_options_ug_data *) data;
-
-       if (ug_data == NULL)
-               return;
-
-       ug_destroy_me(ug_data->ug);
-}
-
-static char *_lockscreen_options_main_gl_label_get(void *data,
-                                                  Evas_Object * obj,
-                                                  const char *part)
-{
-       if (data == NULL || part == NULL)
-               return NULL;
-
-       lockscreen_menu_item_info *lockoption_data =
-           (lockscreen_menu_item_info *) data;
-
-       if ((strcmp(part, "elm.text") == 0) ||
-           (strcmp(part, "elm.text.1") == 0)) {
-               return
-                   strdup(lockscreen_optoins_get_string
-                          (lockoption_data->stringId));
-       }
-
-       return NULL;
-
-}
-
-static void _lockscreen_options_set_menu_status(int stringId, int value)
-{
-       int ret = 0;
-       switch (stringId) {
-       case IDS_LOCKSCREEN_OPTIONS_EVENT_NOTIFICATIONS:
-               ret = vconf_set_bool(VCONFKEY_LOCKSCREEN_EVENT_NOTIFICATION_DISPLAY, value);
-               break;
-       case IDS_LOCKSCREEN_OPTIONS_CLOCK:
-               ret = vconf_set_bool(VCONFKEY_LOCKSCREEN_CLOCK_DISPLAY, value);
-               break;
-       case IDS_LOCKSCREEN_OPTIONS_HELPTEXT:
-               ret = vconf_set_bool(VCONFKEY_LOCKSCREEN_HELP_TEXT_DISPLAY, value);
-               break;
-       default:
-               LOCKOPTIONS_DBG("NO VALID STRINGID %d", stringId);
-               break;
-       }
-}
-
-static bool _lockscreen_options_get_menu_status(int stringId)
-{
-       int status = 0;
-       int ret = 0;
-
-       switch (stringId) {
-       case IDS_LOCKSCREEN_OPTIONS_EVENT_NOTIFICATIONS:
-               ret = vconf_get_bool(VCONFKEY_LOCKSCREEN_EVENT_NOTIFICATION_DISPLAY, &status);
-               break;
-       case IDS_LOCKSCREEN_OPTIONS_CLOCK:
-               ret = vconf_get_bool(VCONFKEY_LOCKSCREEN_CLOCK_DISPLAY, &status);
-               break;
-       case IDS_LOCKSCREEN_OPTIONS_HELPTEXT:
-               ret = vconf_get_bool(VCONFKEY_LOCKSCREEN_HELP_TEXT_DISPLAY, &status);
-               break;
-       default:
-               LOCKOPTIONS_DBG("NO VALID INDEX %d", stringId);
-               break;
-       }
-
-       if (ret == -1) {
-               LOCKOPTIONS_ERR("Failed to get vconfkey %d!", stringId);
-               return 0;
-       }
-
-       LOCKOPTIONS_DBG
-           ("_lockscreen_options_get_menu_status index %d Status %d", stringId,
-            status);
-
-       return status;
-}
-
-static void _lockscreen_options_check_changed_cb(void *data, Evas_Object * obj,
-                                                void *event_info)
-{
-       if (data == NULL || obj == NULL)
-               return;
-
-       lockscreen_menu_item_info *lockoption_data =
-           (lockscreen_menu_item_info *) data;
-
-       Eina_Bool ret;
-       int value = 0;
-
-       ret = elm_check_state_get(obj);
-
-       LOCKOPTIONS_DBG("_lockscreen_options_check_changed_cb : %s",
-                       ret == EINA_TRUE ? "ON" : "OFF");
-
-       if (ret == EINA_TRUE) {
-               value = 1;
-       } else {
-               value = 0;
-       }
-
-       _lockscreen_options_set_menu_status(lockoption_data->stringId, value);
-}
-
-static Evas_Object *_lockscreen_options_main_gl_icon_get(void *data,
-                                                        Evas_Object * obj,
-                                                        const char *part)
-{
-       if (data == NULL || obj == NULL)
-               return NULL;
-
-       lockscreen_menu_item_info *lockoption_data =
-           (lockscreen_menu_item_info *) data;
-
-       LOCKOPTIONS_DBG("icon get stringId : %d", lockoption_data->stringId);
-
-       Evas_Object *check;
-       int value = 0;
-
-       check = elm_check_add(obj);
-       elm_object_style_set(check, "on&off");
-       evas_object_show(check);
-
-       value = _lockscreen_options_get_menu_status(lockoption_data->stringId);
-       elm_check_state_set(check, value);
-
-       evas_object_pass_events_set(check, 1);
-       evas_object_propagate_events_set(check, 0);
-
-       evas_object_smart_callback_add(check, "changed",
-                                      _lockscreen_options_check_changed_cb,
-                                      lockoption_data);
-
-       lockoption_data->check = check;
-
-       return check;
-}
-
-static void _lockscreen_options_main_gl_del(void *data, Evas_Object * obj)
-{
-       LOCKOPTIONS_DBG("_lockscreen_options_main_gl_del");
-}
-
-static void _lockscreen_options_main_gl_sel(void *data, Evas_Object * obj,
-                                           void *event_info)
-{
-       if (data == NULL)
-               return;
-
-       lockscreen_menu_item_info *lockoption_data = NULL;
-
-       elm_genlist_item_selected_set((Elm_Object_Item *) event_info,
-                                     EINA_FALSE);
-
-       Elm_Object_Item *item = (Elm_Object_Item *) event_info;
-       lockoption_data =
-           (lockscreen_menu_item_info *) elm_object_item_data_get(item);
-       if (lockoption_data == NULL) {
-               return;
-       }
-
-       if (lockoption_data->stringId ==
-           IDS_LOCKSCREEN_OPTIONS_EVENT_NOTIFICATIONS
-           || lockoption_data->stringId == IDS_LOCKSCREEN_OPTIONS_CLOCK
-           || lockoption_data->stringId == IDS_LOCKSCREEN_OPTIONS_HELPTEXT) {
-               Eina_Bool check_state =
-                   elm_check_state_get(lockoption_data->check);
-               _lockscreen_options_set_menu_status(lockoption_data->stringId,
-                                                   !check_state);
-               elm_genlist_item_update(item);
-       }
-
-       if (lockoption_data->func != NULL) {
-               lockoption_data->func(data, obj, event_info);
-       }
-}
-
-static void _lockscreen_options_create_gl_item(Elm_Gen_Item_Class * item,
-                                              int glStyle)
-{
-       if (glStyle == ENUM_LOCKSCREEN_GENLIST_STYLE_1TEXT1ICON) {
-               item->item_style = LOCKSCREEN_GENLIST_STYLE_1TEXT1ICON;
-               item->func.text_get = _lockscreen_options_main_gl_label_get;
-               item->func.content_get = _lockscreen_options_main_gl_icon_get;
-               item->func.state_get = NULL;
-               item->func.del = _lockscreen_options_main_gl_del;
-       } else if (glStyle == ENUM_LOCKSCREEN_GENLIST_STYLE_2TEXT1ICON) {
-               item->item_style = LOCKSCREEN_GENLIST_STYLE_2TEXT1ICON;
-               item->func.text_get = _lockscreen_options_main_gl_label_get;
-               item->func.content_get = _lockscreen_options_main_gl_icon_get;
-               item->func.state_get = NULL;
-               item->func.del = NULL;
-       } else if (glStyle == ENUM_LOCKSCREEN_GENLIST_STYLE_HELP) {
-               item->item_style = LOCKSCREEN_GENLIST_STYLE_HELP;
-               item->func.text_get = _lockscreen_options_main_gl_label_get;
-               item->func.content_get = NULL;
-               item->func.state_get = NULL;
-               item->func.del = _lockscreen_options_main_gl_del;
-       } else {
-               LOCKOPTIONS_DBG("_lockscreen_options_create_gl_item FAIL\n");
-       }
-}
-
-void lockscreen_options_main_create_view(lockscreen_options_ug_data * ug_data)
-{
-       LOCKOPTIONS_DBG("lockscreen_options_main_create_view begin\n");
-
-       Evas_Object *navi_bar = ug_data->navi_bar;
-       Evas_Object *back_button = NULL;
-       Evas_Object *genlist = NULL;
-       Elm_Object_Item *item = NULL;
-       int i = 0;
-
-       if (navi_bar == NULL) {
-               LOCKOPTIONS_WARN("navi_bar is null.");
-               return;
-       }
-
-       _lockscreen_options_create_gl_item(&(itc_menu_1text1icon),
-                                          ENUM_LOCKSCREEN_GENLIST_STYLE_1TEXT1ICON);
-       _lockscreen_options_create_gl_item(&(itc_menu_2text1icon),
-                                          ENUM_LOCKSCREEN_GENLIST_STYLE_2TEXT1ICON);
-       _lockscreen_options_create_gl_item(&(itc_help_1text),
-                                          ENUM_LOCKSCREEN_GENLIST_STYLE_HELP);
-
-       genlist = elm_genlist_add(navi_bar);
-
-       elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS);
-       elm_object_style_set(genlist, "dialogue");
-
-       lockscreen_options_util_create_seperator(genlist);
-
-       for (i = 0; i < LOCKSCREEN_OPTOINS_GENLIST_ITEM_CNT; i++) {
-               Elm_Gen_Item_Class *itc = NULL;
-               if (lockscreen_options_menu_item[i].glStyle ==
-                   ENUM_LOCKSCREEN_GENLIST_STYLE_1TEXT1ICON) {
-                       itc = &(itc_menu_1text1icon);
-                       elm_genlist_item_append(genlist,
-                                                      itc,
-                                                      &
-                                                      (lockscreen_options_menu_item
-                                                       [i]), NULL,
-                                                      ELM_GENLIST_ITEM_NONE,
-                                                      _lockscreen_options_main_gl_sel,
-                                                      ug_data);
-               } else if(lockscreen_options_menu_item[i].glStyle ==
-                   ENUM_LOCKSCREEN_GENLIST_STYLE_2TEXT1ICON) {
-                   itc = &(itc_menu_2text1icon);
-                       elm_genlist_item_append(genlist,
-                                                      itc,
-                                                      &
-                                                      (lockscreen_options_menu_item
-                                                       [i]), NULL,
-                                                      ELM_GENLIST_ITEM_NONE,
-                                                      _lockscreen_options_main_gl_sel,
-                                                      ug_data);
-               } else if (lockscreen_options_menu_item[i].glStyle ==
-                          ENUM_LOCKSCREEN_GENLIST_STYLE_HELP) {
-                       itc = &(itc_help_1text);
-                       item = elm_genlist_item_append(genlist,
-                                                      itc,
-                                                      &
-                                                      (lockscreen_options_menu_item
-                                                       [i]), NULL,
-                                                      ELM_GENLIST_ITEM_NONE,
-                                                      NULL, NULL);
-                       elm_genlist_item_select_mode_set(item,
-                                                        ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
-                       if(i != (LOCKSCREEN_OPTOINS_GENLIST_ITEM_CNT - 1)){
-                               lockscreen_options_util_create_underline(genlist);
-                       }
-               } else {
-                       LOCKOPTIONS_WARN("lockscreen option has no such type.");
-                       return;
-               }
-       }
-
-       back_button = elm_button_add(navi_bar);
-       elm_object_style_set(back_button, "naviframe/back_btn/default");
-       evas_object_smart_callback_add(back_button, "clicked",
-                                      _lockscreen_options_main_back_cb,
-                                      ug_data);
-
-       elm_naviframe_item_push(navi_bar, _("IDS_ST_BODY_LOCK_SCREEN") , back_button, NULL, genlist, NULL);
-}
diff --git a/lock-setting/lockscreen-options/src/lockscreen-options-util.c b/lock-setting/lockscreen-options/src/lockscreen-options-util.c
deleted file mode 100755 (executable)
index 6f0b84c..0000000
+++ /dev/null
@@ -1,148 +0,0 @@
- /*
-  * Copyright 2012  Samsung Electronics Co., Ltd
-  *
-  * Licensed under the Flora License, Version 1.1 (the "License");
-  * you may not use this file except in compliance with the License.
-  * You may obtain a copy of the License at
-  *
-  *     http://floralicense.org/license/
-  *
-  * Unless required by applicable law or agreed to in writing, software
-  * distributed under the License is distributed on an "AS IS" BASIS,
-  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  * See the License for the specific language governing permissions and
-  * limitations under the License.
-  */
-
-
-
-#include "lockscreen-options-debug.h"
-#include "lockscreen-options.h"
-#include "lockscreen-options-util.h"
-
-const char *sys_str_table[] = {
-       "IDS_COM_SK_OK",
-       "IDS_COM_SK_CANCEL",
-};
-
-const char *app_str_table[] = {
-       "IDS_IDLE_MBODY_EVENT_NOTIFICATIONS",
-       "IDS_IDLE_BODY_VIEW_EVENT_NOTIFICATIONS_ON_THE_LOCK_SCREEN",
-       "IDS_ST_BODY_CLOCK",
-       "IDS_IM_BODY_HELP_TEXT",
-       "IDS_ST_BODY_SHOW_HELP_TEXT_ON_LOCK_SCREEN"
-};
-
-static Elm_Gen_Item_Class itc_underline;
-static Elm_Gen_Item_Class itc_separator;
-
-Evas_Object *lockscreen_options_util_create_navigation(Evas_Object * parent)
-{
-       Evas_Object *navi_bar = NULL;
-
-       if (parent == NULL) {
-               LOCKOPTIONS_WARN("Parent is null.");
-               return NULL;
-       }
-
-       navi_bar = elm_naviframe_add(parent);
-       if (navi_bar == NULL) {
-               LOCKOPTIONS_ERR("Cannot add naviagtionbar.");
-               return NULL;
-       }
-
-       elm_object_part_content_set(parent, "elm.swallow.content", navi_bar);
-
-       evas_object_show(navi_bar);
-
-       return navi_bar;
-}
-
-Evas_Object *lockscreen_options_util_create_layout(Evas_Object * parent,
-                                                  const char *file,
-                                                  const char *group)
-{
-       Evas_Object *layout = NULL;
-
-       if (parent == NULL) {
-               LOCKOPTIONS_WARN("Parent is null.");
-               return NULL;
-       }
-
-       layout = elm_layout_add(parent);
-       if (layout == NULL) {
-               LOCKOPTIONS_ERR("Cannot add layout.");
-               return NULL;
-       }
-
-       if ((file != NULL) && (group != NULL)) {
-               elm_layout_file_set(layout, file, group);
-       }
-
-       evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND,
-                                        EVAS_HINT_EXPAND);
-
-       evas_object_show(layout);
-
-       return layout;
-}
-
-void lockscreen_options_util_create_seperator(Evas_Object * genlist)
-{
-       if (NULL == genlist)
-               return;
-
-       Elm_Object_Item *item = NULL;
-
-       itc_separator.item_style = LOCKSCREEN_GENLIST_STYLE_SEPERATOR;
-       itc_separator.func.text_get = NULL;
-       itc_separator.func.content_get = NULL;
-       itc_separator.func.state_get = NULL;
-       itc_separator.func.del = NULL;
-
-       item =
-           elm_genlist_item_append(genlist, &(itc_separator), NULL, NULL,
-                                   ELM_GENLIST_ITEM_NONE, NULL, NULL);
-       elm_genlist_item_select_mode_set(item,
-                                        ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
-}
-
-void lockscreen_options_util_create_underline(Evas_Object * genlist)
-{
-       if (NULL == genlist)
-               return;
-
-       Elm_Object_Item *item = NULL;
-
-       itc_underline.item_style = LOCKSCREEN_GENLIST_STYLE_UNDERLINE;
-       itc_underline.func.text_get = NULL;
-       itc_underline.func.content_get = NULL;
-       itc_underline.func.state_get = NULL;
-       itc_underline.func.del = NULL;
-
-       item =
-           elm_genlist_item_append(genlist, &(itc_underline), NULL, NULL,
-                                   ELM_GENLIST_ITEM_NONE, NULL, NULL);
-       elm_genlist_item_select_mode_set(item,
-                                        ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
-}
-
-char *lockscreen_optoins_get_string(int id)
-{
-       LOCKOPTIONS_DBG("get string id : %d\n", id);
-
-       char *str = NULL;
-
-       if (id < IDS_LOCKSCREEN_OPTIONS_SYSTEM_STRING_MAX) {
-               str = dgettext("sys_string", sys_str_table[id]);
-       } else {
-               str =
-                   dgettext(PKGNAME,
-                            app_str_table[id -
-                                          IDS_LOCKSCREEN_OPTIONS_SYSTEM_STRING_MAX]);
-       }
-
-       LOCKOPTIONS_DBG("get string : %s\n", str);
-
-       return str;
-}
diff --git a/lock-setting/lockscreen-options/src/lockscreen-options.c b/lock-setting/lockscreen-options/src/lockscreen-options.c
deleted file mode 100755 (executable)
index de5eb00..0000000
+++ /dev/null
@@ -1,213 +0,0 @@
- /*
-  * Copyright 2012  Samsung Electronics Co., Ltd
-  *
-  * Licensed under the Flora License, Version 1.1 (the "License");
-  * you may not use this file except in compliance with the License.
-  * You may obtain a copy of the License at
-  *
-  *     http://floralicense.org/license/
-  *
-  * Unless required by applicable law or agreed to in writing, software
-  * distributed under the License is distributed on an "AS IS" BASIS,
-  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  * See the License for the specific language governing permissions and
-  * limitations under the License.
-  */
-
-
-
-#ifndef UG_MODULE_API
-#define UG_MODULE_API __attribute__ ((visibility("default")))
-#endif
-
-#include <Elementary.h>
-#include <ui-gadget-module.h>
-
-#include "lockscreen-options.h"
-#include "lockscreen-options-util.h"
-#include "lockscreen-options-main.h"
-
-static Evas_Object *create_bg(Evas_Object * parent)
-{
-       Evas_Object *bg = elm_bg_add(parent);
-
-       evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND,
-                                        EVAS_HINT_EXPAND);
-       elm_object_style_set(bg, "group_list");
-
-       elm_object_part_content_set(parent, "elm.swallow.bg", bg);
-       evas_object_show(bg);
-
-       return bg;
-}
-
-static Evas_Object *create_fullview(Evas_Object * parent,
-                                   lockscreen_options_ug_data * ug_data)
-{
-       Evas_Object *base = NULL;
-       Evas_Object *navi_bar = NULL;
-
-       base = lockscreen_options_util_create_layout(parent, NULL, NULL);
-
-       elm_layout_theme_set(base, "layout", "application", "default");
-       elm_win_resize_object_add(parent, base);
-
-       elm_win_indicator_mode_set(parent, ELM_WIN_INDICATOR_SHOW);
-
-       create_bg(base);
-
-       navi_bar = lockscreen_options_util_create_navigation(base);
-       ug_data->navi_bar = navi_bar;
-
-       lockscreen_options_main_create_view(ug_data);
-
-       return base;
-}
-
-static Evas_Object *create_frameview(Evas_Object * parent,
-                                    lockscreen_options_ug_data * ug_data)
-{
-       Evas_Object *base = NULL;
-
-       return base;
-}
-
-static void *on_create(ui_gadget_h ug, enum ug_mode mode, service_h service,
-                      void *priv)
-{
-       Evas_Object *parent = NULL;
-       Evas_Object *win_main = NULL;
-       lockscreen_options_ug_data *ug_data = NULL;
-
-       if (!ug || !priv)
-               return NULL;
-
-       bindtextdomain(PKGNAME, "/usr/ug/res/locale");
-
-       ug_data = priv;
-       ug_data->ug = ug;
-
-       parent = ug_get_parent_layout(ug);
-       if (!parent)
-               return NULL;
-
-       win_main = ug_get_window();
-       if (!win_main) {
-               return NULL;
-       }
-
-       ug_data->win_main = win_main;
-
-       if (mode == UG_MODE_FULLVIEW)
-               ug_data->base = create_fullview(parent, ug_data);
-       else
-               ug_data->base = create_frameview(parent, ug_data);
-
-       return ug_data->base;
-}
-
-static void on_start(ui_gadget_h ug, service_h service, void *priv)
-{
-}
-
-static void on_pause(ui_gadget_h ug, service_h service, void *priv)
-{
-
-}
-
-static void on_resume(ui_gadget_h ug, service_h service, void *priv)
-{
-
-}
-
-static void on_destroy(ui_gadget_h ug, service_h service, void *priv)
-{
-       lockscreen_options_ug_data *ug_data;
-
-       if (!ug || !priv)
-               return;
-
-       ug_data = priv;
-       evas_object_del(ug_data->base);
-       ug_data->base = NULL;
-}
-
-static void on_message(ui_gadget_h ug, service_h msg, service_h service,
-                      void *priv)
-{
-}
-
-static void on_event(ui_gadget_h ug, enum ug_event event, service_h service,
-                    void *priv)
-{
-       switch (event) {
-       case UG_EVENT_LOW_MEMORY:
-               break;
-       case UG_EVENT_LOW_BATTERY:
-               break;
-       case UG_EVENT_LANG_CHANGE:
-               break;
-       case UG_EVENT_ROTATE_PORTRAIT:
-               break;
-       case UG_EVENT_ROTATE_PORTRAIT_UPSIDEDOWN:
-               break;
-       case UG_EVENT_ROTATE_LANDSCAPE:
-               break;
-       case UG_EVENT_ROTATE_LANDSCAPE_UPSIDEDOWN:
-               break;
-       default:
-               break;
-       }
-}
-
-static void on_key_event(ui_gadget_h ug, enum ug_key_event event,
-                        service_h service, void *priv)
-{
-       if (!ug)
-               return;
-
-       switch (event) {
-       case UG_KEY_EVENT_END:
-               ug_destroy_me(ug);
-               break;
-       default:
-               break;
-       }
-}
-
-UG_MODULE_API int UG_MODULE_INIT(struct ug_module_ops *ops)
-{
-       lockscreen_options_ug_data *ug_data;
-
-       if (!ops)
-               return -1;
-
-       ug_data = calloc(1, sizeof(lockscreen_options_ug_data));
-       if (!ug_data)
-               return -1;
-
-       ops->create = on_create;
-       ops->start = on_start;
-       ops->pause = on_pause;
-       ops->resume = on_resume;
-       ops->destroy = on_destroy;
-       ops->message = on_message;
-       ops->event = on_event;
-       ops->key_event = on_key_event;
-       ops->priv = ug_data;
-       ops->opt = UG_OPT_INDICATOR_ENABLE;
-
-       return 0;
-}
-
-UG_MODULE_API void UG_MODULE_EXIT(struct ug_module_ops *ops)
-{
-       lockscreen_options_ug_data *ug_data;
-
-       if (!ops)
-               return;
-
-       ug_data = ops->priv;
-       if (ug_data)
-               free(ug_data);
-}
diff --git a/lock-setting/po/CMakeLists.txt b/lock-setting/po/CMakeLists.txt
deleted file mode 100755 (executable)
index 647202a..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-# for i18n
-
-SET(LOCKPONAME "ug-lockscreen-options")
-
-SET(POFILES ar.po az.po bg.po ca.po cs.po da.po de_DE.po el_GR.po en.po en_PH.po en_US.po es_ES.po es_US.po fi.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 mk.po nb.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")
-
-FOREACH(pofile ${POFILES})
-       SET(pofile ${CMAKE_CURRENT_SOURCE_DIR}/${pofile})
-       MESSAGE("PO: ${pofile}")
-       GET_FILENAME_COMPONENT(absPofile ${pofile} ABSOLUTE)
-       GET_FILENAME_COMPONENT(lang ${absPofile} NAME_WE)
-       SET(moFile ${CMAKE_CURRENT_BINARY_DIR}/${lang}.mo)
-       ADD_CUSTOM_COMMAND(
-               OUTPUT ${moFile}
-               COMMAND ${MSGFMT} -o ${moFile} ${absPofile}
-               DEPENDS ${absPofile}
-       )
-
-INSTALL(FILES ${moFile} DESTINATION /usr/ug/res/locale/${lang}/LC_MESSAGES RENAME ${LOCKPONAME}.mo)
-       SET(moFiles ${moFiles} ${moFile})
-ENDFOREACH(pofile)
-
-MESSAGE(".mo files: ${moFiles}")
-ADD_CUSTOM_TARGET(po ALL DEPENDS ${moFiles})
diff --git a/lock-setting/po/ar.po b/lock-setting/po/ar.po
deleted file mode 100644 (file)
index 7c0e6a6..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-msgid "IDS_ST_BODY_LOCK_SCREEN"
-msgstr "قفل الشاشة"
-
-msgid "IDS_IDLE_BODY_VIEW_EVENT_NOTIFICATIONS_ON_THE_LOCK_SCREEN"
-msgstr "عرض إخطارات الحدث على شاشة القفل"
-
-msgid "IDS_IDLE_MBODY_EVENT_NOTIFICATIONS"
-msgstr "إشعارات الحدث"
-
-msgid "IDS_ST_BODY_CLOCK"
-msgstr "الساعة"
-
-msgid "IDS_ST_BODY_WEATHER"
-msgstr "الطقس"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS_ON_LOCK_SCREEN"
-msgstr "تعيين اختصارات على شاشة القفل"
-
-msgid "IDS_ST_BODY_SHORTCUTS"
-msgstr "الاختصارات"
-
-msgid "IDS_ST_BODY_DUAL_CLOCK"
-msgstr "ساعة ثنائية"
-
-msgid "IDS_ST_BODY_SHOW_HELP_TEXT_ON_LOCK_SCREEN"
-msgstr "عرض نص التعليمات على شاشة القفل"
-
-msgid "IDS_ST_BODY_SHOW_DUAL_CLOCK_ON_LOCK_SCREEN_WHEN_ROAMING"
-msgstr "عرض ‏‫ساعة مزدوجة على شاشة القفل أثناء التجوال"
-
-msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_WHILE_ROTATING_THE_DEVICE_TO_OPEN_CAMERA"
-msgstr "انقر مع الاستمرار فوق الشاشة مع تدوير الجهاز لفتح الكاميرا"
-
-msgid "IDS_ST_MBODY_CAMERA_QUICK_ACCESS"
-msgstr "وصول سريع إلى الكاميرا"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS"
-msgstr "تعيين اختصارات"
-
-msgid "IDS_ST_BODY_DRAG_AND_DROP_TO_CHANGE_ORDER"
-msgstr "قم بالسحب والإسقاط لتغيير الترتيب"
-
-msgid "IDS_ST_BODY_SELECT_APPLICATION"
-msgstr "اختر تطبيق"
-
-msgid "IDS_ST_BODY_TAP_SHORTCUT_TO_ASSIGN_APPLICATION"
-msgstr "‏‫انقر فوق الاختصار لتخصيص تطبيق"
-
-msgid "IDS_ST_OPT_EDIT_SHORTCUTS"
-msgstr "تعديل الاختصارات"
-
-msgid "IDS_IM_BODY_HELP_TEXT"
-msgstr "نص المساعدة"
-
diff --git a/lock-setting/po/az.po b/lock-setting/po/az.po
deleted file mode 100644 (file)
index 305092a..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-msgid "IDS_ST_BODY_LOCK_SCREEN"
-msgstr "Ekranı kilidləyin"
-
-msgid "IDS_IDLE_BODY_VIEW_EVENT_NOTIFICATIONS_ON_THE_LOCK_SCREEN"
-msgstr "Kilid ekranında tədbir bildirişlərinə bax"
-
-msgid "IDS_IDLE_MBODY_EVENT_NOTIFICATIONS"
-msgstr "Tədbir bildirişləri"
-
-msgid "IDS_ST_BODY_CLOCK"
-msgstr "Saat"
-
-msgid "IDS_ST_BODY_WEATHER"
-msgstr "Hava"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS_ON_LOCK_SCREEN"
-msgstr "Kilid ekranına qısayol qur"
-
-msgid "IDS_ST_BODY_SHORTCUTS"
-msgstr "Çevik düymələr"
-
-msgid "IDS_ST_BODY_DUAL_CLOCK"
-msgstr "İkili saat"
-
-msgid "IDS_ST_BODY_SHOW_HELP_TEXT_ON_LOCK_SCREEN"
-msgstr "Kilid ekranında kömək mətnini göstər"
-
-msgid "IDS_ST_BODY_SHOW_DUAL_CLOCK_ON_LOCK_SCREEN_WHEN_ROAMING"
-msgstr "Rouminq zamanı kilid ekranında ikili saat göstər"
-
-msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_WHILE_ROTATING_THE_DEVICE_TO_OPEN_CAMERA"
-msgstr "Kameranı açmaq üçün ekrana vurun saxlayaraq cihazı fırladın"
-
-msgid "IDS_ST_MBODY_CAMERA_QUICK_ACCESS"
-msgstr "Kamera çevik girişi"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS"
-msgstr "Qısayolları qur"
-
-msgid "IDS_ST_BODY_DRAG_AND_DROP_TO_CHANGE_ORDER"
-msgstr "Sıranı dəyişmək üçün dartıb buraxın"
-
-msgid "IDS_ST_BODY_SELECT_APPLICATION"
-msgstr "Proqramı seç"
-
-msgid "IDS_ST_BODY_TAP_SHORTCUT_TO_ASSIGN_APPLICATION"
-msgstr "Proqrama təyin etmək üçün qısayola vur"
-
-msgid "IDS_ST_OPT_EDIT_SHORTCUTS"
-msgstr "Qısayolları redaktə edin"
-
-msgid "IDS_IM_BODY_HELP_TEXT"
-msgstr "Yardımçı mətn"
-
diff --git a/lock-setting/po/bg.po b/lock-setting/po/bg.po
deleted file mode 100644 (file)
index 1033cf8..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-msgid "IDS_ST_BODY_LOCK_SCREEN"
-msgstr "Заключен екран"
-
-msgid "IDS_IDLE_BODY_VIEW_EVENT_NOTIFICATIONS_ON_THE_LOCK_SCREEN"
-msgstr "Преглед на известията за събития на заключения екран"
-
-msgid "IDS_IDLE_MBODY_EVENT_NOTIFICATIONS"
-msgstr "Уведомявания за събития"
-
-msgid "IDS_ST_BODY_CLOCK"
-msgstr "Часовник"
-
-msgid "IDS_ST_BODY_WEATHER"
-msgstr "Време"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS_ON_LOCK_SCREEN"
-msgstr "Задайте бързите клавиши на заключения екран"
-
-msgid "IDS_ST_BODY_SHORTCUTS"
-msgstr "Бърз достъп"
-
-msgid "IDS_ST_BODY_DUAL_CLOCK"
-msgstr "Двоен часовник"
-
-msgid "IDS_ST_BODY_SHOW_HELP_TEXT_ON_LOCK_SCREEN"
-msgstr "Показвай текста на помощта на заключения екран"
-
-msgid "IDS_ST_BODY_SHOW_DUAL_CLOCK_ON_LOCK_SCREEN_WHEN_ROAMING"
-msgstr "Покажи двоен часовник на заключения екран в роуминг"
-
-msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_WHILE_ROTATING_THE_DEVICE_TO_OPEN_CAMERA"
-msgstr "Чукнете и задръжте екрана, докато въртите устройството, за да отворите Камера"
-
-msgid "IDS_ST_MBODY_CAMERA_QUICK_ACCESS"
-msgstr "Бърз достъп с камера"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS"
-msgstr "Задаване на бързи команди"
-
-msgid "IDS_ST_BODY_DRAG_AND_DROP_TO_CHANGE_ORDER"
-msgstr "Плъзнете и пуснете, за да промените реда"
-
-msgid "IDS_ST_BODY_SELECT_APPLICATION"
-msgstr "Избор на приложение"
-
-msgid "IDS_ST_BODY_TAP_SHORTCUT_TO_ASSIGN_APPLICATION"
-msgstr "Чукнете върху бърза команда, за да зададете приложение"
-
-msgid "IDS_ST_OPT_EDIT_SHORTCUTS"
-msgstr "Редактиране на бързи клавиши"
-
-msgid "IDS_IM_BODY_HELP_TEXT"
-msgstr "Помощен текст"
-
diff --git a/lock-setting/po/ca.po b/lock-setting/po/ca.po
deleted file mode 100644 (file)
index e6a6351..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-msgid "IDS_ST_BODY_LOCK_SCREEN"
-msgstr "Bloquejar pantalla"
-
-msgid "IDS_IDLE_BODY_VIEW_EVENT_NOTIFICATIONS_ON_THE_LOCK_SCREEN"
-msgstr "Veure notificacions d'esdeveniments a pantalla de bloqueig"
-
-msgid "IDS_IDLE_MBODY_EVENT_NOTIFICATIONS"
-msgstr "Avisos d'esdeveniments"
-
-msgid "IDS_ST_BODY_CLOCK"
-msgstr "Rellotge"
-
-msgid "IDS_ST_BODY_WEATHER"
-msgstr "Temps"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS_ON_LOCK_SCREEN"
-msgstr "Definir accessos directes a la pantalla de bloqueig"
-
-msgid "IDS_ST_BODY_SHORTCUTS"
-msgstr "Accessos directes"
-
-msgid "IDS_ST_BODY_DUAL_CLOCK"
-msgstr "Rellotge dual"
-
-msgid "IDS_ST_BODY_SHOW_HELP_TEXT_ON_LOCK_SCREEN"
-msgstr "Mostrar text d'ajuda a la pantalla de bloqueig"
-
-msgid "IDS_ST_BODY_SHOW_DUAL_CLOCK_ON_LOCK_SCREEN_WHEN_ROAMING"
-msgstr "Mostrar rellotge dual a la pantalla de bloqueig en itinerància"
-
-msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_WHILE_ROTATING_THE_DEVICE_TO_OPEN_CAMERA"
-msgstr "Mantingui tocada la pantalla mentre gira el dispositiu per obrir la Càmera"
-
-msgid "IDS_ST_MBODY_CAMERA_QUICK_ACCESS"
-msgstr "Accés ràpid a càmera"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS"
-msgstr "Definir editar accessos directes"
-
-msgid "IDS_ST_BODY_DRAG_AND_DROP_TO_CHANGE_ORDER"
-msgstr "Arrossegui i deixi anar per canviar l'ordre"
-
-msgid "IDS_ST_BODY_SELECT_APPLICATION"
-msgstr "Seleccionar aplicació"
-
-msgid "IDS_ST_BODY_TAP_SHORTCUT_TO_ASSIGN_APPLICATION"
-msgstr "Toqui l'accés directe per assignar l'aplicació"
-
-msgid "IDS_ST_OPT_EDIT_SHORTCUTS"
-msgstr "Editar accessos directes"
-
-msgid "IDS_IM_BODY_HELP_TEXT"
-msgstr "Text ajuda"
-
diff --git a/lock-setting/po/cs.po b/lock-setting/po/cs.po
deleted file mode 100644 (file)
index 5a6e267..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-msgid "IDS_ST_BODY_LOCK_SCREEN"
-msgstr "Zamknout displej"
-
-msgid "IDS_IDLE_BODY_VIEW_EVENT_NOTIFICATIONS_ON_THE_LOCK_SCREEN"
-msgstr "Zobrazení upozorňování na události na zamknutém displeji"
-
-msgid "IDS_IDLE_MBODY_EVENT_NOTIFICATIONS"
-msgstr "Upozorňování na události"
-
-msgid "IDS_ST_BODY_CLOCK"
-msgstr "Hodiny"
-
-msgid "IDS_ST_BODY_WEATHER"
-msgstr "Počasí"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS_ON_LOCK_SCREEN"
-msgstr "Nastavit zástupce na zamknutém displeji"
-
-msgid "IDS_ST_BODY_SHORTCUTS"
-msgstr "Zkratky"
-
-msgid "IDS_ST_BODY_DUAL_CLOCK"
-msgstr "Duál. hodiny"
-
-msgid "IDS_ST_BODY_SHOW_HELP_TEXT_ON_LOCK_SCREEN"
-msgstr "Zobrazit text nápovědy na zamknutém displeji"
-
-msgid "IDS_ST_BODY_SHOW_DUAL_CLOCK_ON_LOCK_SCREEN_WHEN_ROAMING"
-msgstr "Zobrazit duální hodiny na zamknutém displeji během roamingu"
-
-msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_WHILE_ROTATING_THE_DEVICE_TO_OPEN_CAMERA"
-msgstr "Klepnutím na displej a podržením při otáčení zařízení otevřete Fotoaparát"
-
-msgid "IDS_ST_MBODY_CAMERA_QUICK_ACCESS"
-msgstr "Rychlý přístup k fotoap."
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS"
-msgstr "Nastavit zástupce"
-
-msgid "IDS_ST_BODY_DRAG_AND_DROP_TO_CHANGE_ORDER"
-msgstr "Přetažením změníte pořadí"
-
-msgid "IDS_ST_BODY_SELECT_APPLICATION"
-msgstr "Vyberte aplikaci"
-
-msgid "IDS_ST_BODY_TAP_SHORTCUT_TO_ASSIGN_APPLICATION"
-msgstr "Chcete-li přiřadit aplikaci, klepněte na zástupce"
-
-msgid "IDS_ST_OPT_EDIT_SHORTCUTS"
-msgstr "Upravit zástupce"
-
-msgid "IDS_IM_BODY_HELP_TEXT"
-msgstr "Nápověda"
-
diff --git a/lock-setting/po/da.po b/lock-setting/po/da.po
deleted file mode 100644 (file)
index d9a26bb..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-msgid "IDS_ST_BODY_LOCK_SCREEN"
-msgstr "Låseskærm"
-
-msgid "IDS_IDLE_BODY_VIEW_EVENT_NOTIFICATIONS_ON_THE_LOCK_SCREEN"
-msgstr "Vis begivenhedsbeskeder på den låste skærm"
-
-msgid "IDS_IDLE_MBODY_EVENT_NOTIFICATIONS"
-msgstr "Begivenhedsbeskeder"
-
-msgid "IDS_ST_BODY_CLOCK"
-msgstr "Ur"
-
-msgid "IDS_ST_BODY_WEATHER"
-msgstr "Vejr"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS_ON_LOCK_SCREEN"
-msgstr "Indstil genveje på låseskærm"
-
-msgid "IDS_ST_BODY_SHORTCUTS"
-msgstr "Genveje"
-
-msgid "IDS_ST_BODY_DUAL_CLOCK"
-msgstr "Dobbelt-ur"
-
-msgid "IDS_ST_BODY_SHOW_HELP_TEXT_ON_LOCK_SCREEN"
-msgstr "Vis hjælpetekst på låst skærm"
-
-msgid "IDS_ST_BODY_SHOW_DUAL_CLOCK_ON_LOCK_SCREEN_WHEN_ROAMING"
-msgstr "Vis dobbelt ur på låseskærm under roaming"
-
-msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_WHILE_ROTATING_THE_DEVICE_TO_OPEN_CAMERA"
-msgstr "Tryk og hold på skærmen, mens du roterer enheden, for at åbne Kamera"
-
-msgid "IDS_ST_MBODY_CAMERA_QUICK_ACCESS"
-msgstr "Hurtig adgang til kamera"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS"
-msgstr "Angiv genveje"
-
-msgid "IDS_ST_BODY_DRAG_AND_DROP_TO_CHANGE_ORDER"
-msgstr "Træk og slip for at skifte rækkefølge"
-
-msgid "IDS_ST_BODY_SELECT_APPLICATION"
-msgstr "Vælg program"
-
-msgid "IDS_ST_BODY_TAP_SHORTCUT_TO_ASSIGN_APPLICATION"
-msgstr "Tryk på genvej for at tildele program"
-
-msgid "IDS_ST_OPT_EDIT_SHORTCUTS"
-msgstr "Redigér genveje"
-
-msgid "IDS_IM_BODY_HELP_TEXT"
-msgstr "Hjælpetekst"
-
diff --git a/lock-setting/po/de_DE.po b/lock-setting/po/de_DE.po
deleted file mode 100644 (file)
index 70a4592..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-msgid "IDS_ST_BODY_LOCK_SCREEN"
-msgstr "Sperrbildschirm"
-
-msgid "IDS_IDLE_BODY_VIEW_EVENT_NOTIFICATIONS_ON_THE_LOCK_SCREEN"
-msgstr "Ereignisbenachrichtigungen auf Sperrbildschirm anzeigen"
-
-msgid "IDS_IDLE_MBODY_EVENT_NOTIFICATIONS"
-msgstr "Ereignisbenachrichtig."
-
-msgid "IDS_ST_BODY_CLOCK"
-msgstr "Uhr"
-
-msgid "IDS_ST_BODY_WEATHER"
-msgstr "Wetter"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS_ON_LOCK_SCREEN"
-msgstr "Schnellzugriffe auf gesperrtem Bildschirm festlegen"
-
-msgid "IDS_ST_BODY_SHORTCUTS"
-msgstr "Schnellzugriffe"
-
-msgid "IDS_ST_BODY_DUAL_CLOCK"
-msgstr "Dual-Uhr"
-
-msgid "IDS_ST_BODY_SHOW_HELP_TEXT_ON_LOCK_SCREEN"
-msgstr "Hilfetext auf gesperrtem Bildschirm anzeigen"
-
-msgid "IDS_ST_BODY_SHOW_DUAL_CLOCK_ON_LOCK_SCREEN_WHEN_ROAMING"
-msgstr "Dual-Uhr beim Roaming auf gesperrtem Bildschirm anzeigen"
-
-msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_WHILE_ROTATING_THE_DEVICE_TO_OPEN_CAMERA"
-msgstr "Tippen Sie auf den Bildschirm und halten Sie ihn, während Sie das Gerät drehen, um die Kamera zu öffnen."
-
-msgid "IDS_ST_MBODY_CAMERA_QUICK_ACCESS"
-msgstr "Kamera-Schnellzugriff"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS"
-msgstr "Schnellzugriffe festlegen"
-
-msgid "IDS_ST_BODY_DRAG_AND_DROP_TO_CHANGE_ORDER"
-msgstr "Ziehen und ablegen, um die Reihenfolge zu ändern."
-
-msgid "IDS_ST_BODY_SELECT_APPLICATION"
-msgstr "Anwendung auswählen"
-
-msgid "IDS_ST_BODY_TAP_SHORTCUT_TO_ASSIGN_APPLICATION"
-msgstr "Auf Shortcut tippen, um Anwendung zuzuweisen."
-
-msgid "IDS_ST_OPT_EDIT_SHORTCUTS"
-msgstr "Schnellzugriffe bearbeiten"
-
-msgid "IDS_IM_BODY_HELP_TEXT"
-msgstr "Hilfetext"
-
diff --git a/lock-setting/po/el_GR.po b/lock-setting/po/el_GR.po
deleted file mode 100644 (file)
index 151b419..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-msgid "IDS_ST_BODY_LOCK_SCREEN"
-msgstr "Οθόνη κλειδώματος"
-
-msgid "IDS_IDLE_BODY_VIEW_EVENT_NOTIFICATIONS_ON_THE_LOCK_SCREEN"
-msgstr "Προβολή ειδοποιήσεων συμβάντων στην οθόνη κλειδώματος"
-
-msgid "IDS_IDLE_MBODY_EVENT_NOTIFICATIONS"
-msgstr "Ειδοποιήσεις συμβάντων"
-
-msgid "IDS_ST_BODY_CLOCK"
-msgstr "Ρολόι"
-
-msgid "IDS_ST_BODY_WEATHER"
-msgstr "Καιρός"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS_ON_LOCK_SCREEN"
-msgstr "Ρύθμιση συντομεύσεων στην οθόνη κλειδώματος"
-
-msgid "IDS_ST_BODY_SHORTCUTS"
-msgstr "Συντομεύσεις"
-
-msgid "IDS_ST_BODY_DUAL_CLOCK"
-msgstr "Διπλό ρολόι"
-
-msgid "IDS_ST_BODY_SHOW_HELP_TEXT_ON_LOCK_SCREEN"
-msgstr "Εμφάνιση κειμένου βοήθειας στην οθόνη κλειδώματος"
-
-msgid "IDS_ST_BODY_SHOW_DUAL_CLOCK_ON_LOCK_SCREEN_WHEN_ROAMING"
-msgstr "Εμφάνιση διπλού ρολογιού στην οθόνη κλειδώματος κατά την περιαγωγή"
-
-msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_WHILE_ROTATING_THE_DEVICE_TO_OPEN_CAMERA"
-msgstr "Πατήστε παρατεταμένα στην οθόνη και κατά την περιστροφή της συσκευής για να ανοίξετε την Κάμερα"
-
-msgid "IDS_ST_MBODY_CAMERA_QUICK_ACCESS"
-msgstr "Γρήγορη πρόσβαση κάμερας"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS"
-msgstr "Ρύθμιση συντομεύσεων"
-
-msgid "IDS_ST_BODY_DRAG_AND_DROP_TO_CHANGE_ORDER"
-msgstr "Μεταφέρετε και αποθέστε για να αλλάξετε τη σειρά"
-
-msgid "IDS_ST_BODY_SELECT_APPLICATION"
-msgstr "Επιλογή εφαρμογής"
-
-msgid "IDS_ST_BODY_TAP_SHORTCUT_TO_ASSIGN_APPLICATION"
-msgstr "Πατήστε τη συντόμευση για αντιστοίχιση εφαρμογής"
-
-msgid "IDS_ST_OPT_EDIT_SHORTCUTS"
-msgstr "Επεξεργασία συντομεύσεων"
-
-msgid "IDS_IM_BODY_HELP_TEXT"
-msgstr "Κείμενο βοήθειας"
-
diff --git a/lock-setting/po/en.po b/lock-setting/po/en.po
deleted file mode 100644 (file)
index 5c14712..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-msgid "IDS_ST_BODY_LOCK_SCREEN"
-msgstr "Lock screen"
-
-msgid "IDS_IDLE_BODY_VIEW_EVENT_NOTIFICATIONS_ON_THE_LOCK_SCREEN"
-msgstr "View event notifications on the lock screen"
-
-msgid "IDS_IDLE_MBODY_EVENT_NOTIFICATIONS"
-msgstr "Event notifications"
-
-msgid "IDS_ST_BODY_CLOCK"
-msgstr "Clock"
-
-msgid "IDS_ST_BODY_WEATHER"
-msgstr "Weather"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS_ON_LOCK_SCREEN"
-msgstr "Set shortcuts on lock screen"
-
-msgid "IDS_ST_BODY_SHORTCUTS"
-msgstr "Shortcuts"
-
-msgid "IDS_ST_BODY_DUAL_CLOCK"
-msgstr "Dual clock"
-
-msgid "IDS_ST_BODY_SHOW_HELP_TEXT_ON_LOCK_SCREEN"
-msgstr "Show help text on lock screen"
-
-msgid "IDS_ST_BODY_SHOW_DUAL_CLOCK_ON_LOCK_SCREEN_WHEN_ROAMING"
-msgstr "Show dual clock on lock screen when roaming"
-
-msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_WHILE_ROTATING_THE_DEVICE_TO_OPEN_CAMERA"
-msgstr "Tap and hold the screen while rotating the device to open Camera"
-
-msgid "IDS_ST_MBODY_CAMERA_QUICK_ACCESS"
-msgstr "Camera quick access"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS"
-msgstr "Set shortcuts"
-
-msgid "IDS_ST_BODY_DRAG_AND_DROP_TO_CHANGE_ORDER"
-msgstr "Drag and drop to change order"
-
-msgid "IDS_ST_BODY_SELECT_APPLICATION"
-msgstr "Select application"
-
-msgid "IDS_ST_BODY_TAP_SHORTCUT_TO_ASSIGN_APPLICATION"
-msgstr "Tap shortcut to assign application"
-
-msgid "IDS_ST_OPT_EDIT_SHORTCUTS"
-msgstr "Edit shortcuts"
-
-msgid "IDS_IM_BODY_HELP_TEXT"
-msgstr "Help text"
-
diff --git a/lock-setting/po/en_PH.po b/lock-setting/po/en_PH.po
deleted file mode 100644 (file)
index 5c14712..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-msgid "IDS_ST_BODY_LOCK_SCREEN"
-msgstr "Lock screen"
-
-msgid "IDS_IDLE_BODY_VIEW_EVENT_NOTIFICATIONS_ON_THE_LOCK_SCREEN"
-msgstr "View event notifications on the lock screen"
-
-msgid "IDS_IDLE_MBODY_EVENT_NOTIFICATIONS"
-msgstr "Event notifications"
-
-msgid "IDS_ST_BODY_CLOCK"
-msgstr "Clock"
-
-msgid "IDS_ST_BODY_WEATHER"
-msgstr "Weather"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS_ON_LOCK_SCREEN"
-msgstr "Set shortcuts on lock screen"
-
-msgid "IDS_ST_BODY_SHORTCUTS"
-msgstr "Shortcuts"
-
-msgid "IDS_ST_BODY_DUAL_CLOCK"
-msgstr "Dual clock"
-
-msgid "IDS_ST_BODY_SHOW_HELP_TEXT_ON_LOCK_SCREEN"
-msgstr "Show help text on lock screen"
-
-msgid "IDS_ST_BODY_SHOW_DUAL_CLOCK_ON_LOCK_SCREEN_WHEN_ROAMING"
-msgstr "Show dual clock on lock screen when roaming"
-
-msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_WHILE_ROTATING_THE_DEVICE_TO_OPEN_CAMERA"
-msgstr "Tap and hold the screen while rotating the device to open Camera"
-
-msgid "IDS_ST_MBODY_CAMERA_QUICK_ACCESS"
-msgstr "Camera quick access"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS"
-msgstr "Set shortcuts"
-
-msgid "IDS_ST_BODY_DRAG_AND_DROP_TO_CHANGE_ORDER"
-msgstr "Drag and drop to change order"
-
-msgid "IDS_ST_BODY_SELECT_APPLICATION"
-msgstr "Select application"
-
-msgid "IDS_ST_BODY_TAP_SHORTCUT_TO_ASSIGN_APPLICATION"
-msgstr "Tap shortcut to assign application"
-
-msgid "IDS_ST_OPT_EDIT_SHORTCUTS"
-msgstr "Edit shortcuts"
-
-msgid "IDS_IM_BODY_HELP_TEXT"
-msgstr "Help text"
-
diff --git a/lock-setting/po/en_US.po b/lock-setting/po/en_US.po
deleted file mode 100644 (file)
index a1db6bc..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-msgid "IDS_ST_BODY_LOCK_SCREEN"
-msgstr "Lock screen"
-
-msgid "IDS_IDLE_BODY_VIEW_EVENT_NOTIFICATIONS_ON_THE_LOCK_SCREEN"
-msgstr "View event notifications on the lock screen"
-
-msgid "IDS_IDLE_MBODY_EVENT_NOTIFICATIONS"
-msgstr "Event notifications"
-
-msgid "IDS_ST_BODY_CLOCK"
-msgstr "Clock"
-
-msgid "IDS_ST_BODY_WEATHER"
-msgstr "Weather"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS_ON_LOCK_SCREEN"
-msgstr "Set shortcuts on lock screen."
-
-msgid "IDS_ST_BODY_SHORTCUTS"
-msgstr "Shortcuts"
-
-msgid "IDS_ST_BODY_DUAL_CLOCK"
-msgstr "Dual clock"
-
-msgid "IDS_ST_BODY_SHOW_HELP_TEXT_ON_LOCK_SCREEN"
-msgstr "Show help text on lock screen."
-
-msgid "IDS_ST_BODY_SHOW_DUAL_CLOCK_ON_LOCK_SCREEN_WHEN_ROAMING"
-msgstr "Show dual clock on lock screen when roaming."
-
-msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_WHILE_ROTATING_THE_DEVICE_TO_OPEN_CAMERA"
-msgstr "Tap and hold the screen while rotating the device to open Camera"
-
-msgid "IDS_ST_MBODY_CAMERA_QUICK_ACCESS"
-msgstr "Camera quick access"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS"
-msgstr "Set shortcuts"
-
-msgid "IDS_ST_BODY_DRAG_AND_DROP_TO_CHANGE_ORDER"
-msgstr "Drag and drop to change order"
-
-msgid "IDS_ST_BODY_SELECT_APPLICATION"
-msgstr "Select application"
-
-msgid "IDS_ST_BODY_TAP_SHORTCUT_TO_ASSIGN_APPLICATION"
-msgstr "Tap shortcut to assign application"
-
-msgid "IDS_ST_OPT_EDIT_SHORTCUTS"
-msgstr "Edit shortcuts"
-
-msgid "IDS_IM_BODY_HELP_TEXT"
-msgstr "Help text"
-
diff --git a/lock-setting/po/es_ES.po b/lock-setting/po/es_ES.po
deleted file mode 100644 (file)
index 407f8d7..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-msgid "IDS_ST_BODY_LOCK_SCREEN"
-msgstr "Pantalla de bloqueo"
-
-msgid "IDS_IDLE_BODY_VIEW_EVENT_NOTIFICATIONS_ON_THE_LOCK_SCREEN"
-msgstr "Ver notificaciones de eventos en la pantalla de bloqueo"
-
-msgid "IDS_IDLE_MBODY_EVENT_NOTIFICATIONS"
-msgstr "Notificaciones de evento"
-
-msgid "IDS_ST_BODY_CLOCK"
-msgstr "Reloj"
-
-msgid "IDS_ST_BODY_WEATHER"
-msgstr "Clima"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS_ON_LOCK_SCREEN"
-msgstr "Definir accesos directos en pantalla de bloqueo"
-
-msgid "IDS_ST_BODY_SHORTCUTS"
-msgstr "Accesos directos"
-
-msgid "IDS_ST_BODY_DUAL_CLOCK"
-msgstr "Reloj dual"
-
-msgid "IDS_ST_BODY_SHOW_HELP_TEXT_ON_LOCK_SCREEN"
-msgstr "Mostrar texto de ayuda en pantalla de bloqueo"
-
-msgid "IDS_ST_BODY_SHOW_DUAL_CLOCK_ON_LOCK_SCREEN_WHEN_ROAMING"
-msgstr "Mostrar reloj dual en pantalla de bloqueo en itinerancia"
-
-msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_WHILE_ROTATING_THE_DEVICE_TO_OPEN_CAMERA"
-msgstr "Mantenga pulsada la pantalla mientras gira el dispositivo para abrir la Cámara"
-
-msgid "IDS_ST_MBODY_CAMERA_QUICK_ACCESS"
-msgstr "Acceso rápido a Cámara"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS"
-msgstr "Definir accesos directos"
-
-msgid "IDS_ST_BODY_DRAG_AND_DROP_TO_CHANGE_ORDER"
-msgstr "Arrastrar y soltar para cambiar el orden"
-
-msgid "IDS_ST_BODY_SELECT_APPLICATION"
-msgstr "Seleccionar aplicación"
-
-msgid "IDS_ST_BODY_TAP_SHORTCUT_TO_ASSIGN_APPLICATION"
-msgstr "Toque el acceso directo para asignar la aplicación"
-
-msgid "IDS_ST_OPT_EDIT_SHORTCUTS"
-msgstr "Editar accesos directos"
-
-msgid "IDS_IM_BODY_HELP_TEXT"
-msgstr "Texto de ayuda"
-
diff --git a/lock-setting/po/es_MX.po b/lock-setting/po/es_MX.po
deleted file mode 100644 (file)
index a3ce4bd..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-msgid "IDS_ST_BODY_LOCK_SCREEN"
-msgstr "Bloqueo de pantalla"
-
-msgid "IDS_IDLE_BODY_VIEW_EVENT_NOTIFICATIONS_ON_THE_LOCK_SCREEN"
-msgstr "Ver las notificaciones de eventos en la pantalla de bloqueo"
-
-msgid "IDS_IDLE_MBODY_EVENT_NOTIFICATIONS"
-msgstr "Notificaciones de eventos"
-
-msgid "IDS_ST_BODY_CLOCK"
-msgstr "Reloj"
-
-msgid "IDS_ST_BODY_WEATHER"
-msgstr "Clima"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS_ON_LOCK_SCREEN"
-msgstr "Definir atajos en pantalla bloqueada"
-
-msgid "IDS_ST_BODY_SHORTCUTS"
-msgstr "Atajos"
-
-msgid "IDS_ST_BODY_DUAL_CLOCK"
-msgstr "Reloj dual"
-
-msgid "IDS_ST_BODY_SHOW_HELP_TEXT_ON_LOCK_SCREEN"
-msgstr "Mostrar texto de ayuda en pantalla bloqueada"
-
-msgid "IDS_ST_BODY_SHOW_DUAL_CLOCK_ON_LOCK_SCREEN_WHEN_ROAMING"
-msgstr "Mostrar el reloj dual en la pantalla bloqueada durante el roaming"
-
-msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_WHILE_ROTATING_THE_DEVICE_TO_OPEN_CAMERA"
-msgstr "Mantenga pulsada la pantalla mientras gira el dispositivo para abrir la Cámara"
-
-msgid "IDS_ST_MBODY_CAMERA_QUICK_ACCESS"
-msgstr "Acceso rápido a cámara"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS"
-msgstr "Configurar atajos"
-
-msgid "IDS_ST_BODY_DRAG_AND_DROP_TO_CHANGE_ORDER"
-msgstr "Arrastre y coloque para cambiar el orden"
-
-msgid "IDS_ST_BODY_SELECT_APPLICATION"
-msgstr "Seleccionar aplicación"
-
-msgid "IDS_ST_BODY_TAP_SHORTCUT_TO_ASSIGN_APPLICATION"
-msgstr "Pulse el atajo para asignar la aplicación"
-
-msgid "IDS_ST_OPT_EDIT_SHORTCUTS"
-msgstr "Editar atajos"
-
-msgid "IDS_IM_BODY_HELP_TEXT"
-msgstr "Texto de ayuda"
-
diff --git a/lock-setting/po/es_US.po b/lock-setting/po/es_US.po
deleted file mode 100644 (file)
index 43a19d9..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-msgid "IDS_IDLE_BODY_VIEW_EVENT_NOTIFICATIONS_ON_THE_LOCK_SCREEN"
-msgstr "Ver las notificaciones de eventos en la pantalla de bloqueo"
-
-msgid "IDS_IDLE_MBODY_EVENT_NOTIFICATIONS"
-msgstr "Notificaciones de eventos"
-
-msgid "IDS_ST_BODY_CLOCK"
-msgstr "Reloj"
-
-msgid "IDS_ST_BODY_WEATHER"
-msgstr "Clima"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS_ON_LOCK_SCREEN"
-msgstr "Definir atajos en pantalla bloqueada"
-
-msgid "IDS_ST_BODY_SHORTCUTS"
-msgstr "Atajos"
-
-msgid "IDS_ST_BODY_DUAL_CLOCK"
-msgstr "Reloj dual"
-
-msgid "IDS_ST_BODY_SHOW_HELP_TEXT_ON_LOCK_SCREEN"
-msgstr "Mostrar texto de ayuda en pantalla bloqueada"
-
-msgid "IDS_ST_BODY_SHOW_DUAL_CLOCK_ON_LOCK_SCREEN_WHEN_ROAMING"
-msgstr "Mostrar el reloj dual en la pantalla bloqueada durante el roaming"
-
-msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_WHILE_ROTATING_THE_DEVICE_TO_OPEN_CAMERA"
-msgstr "Mantenga pulsada la pantalla mientras gira el dispositivo para abrir la Cámara"
-
-msgid "IDS_ST_MBODY_CAMERA_QUICK_ACCESS"
-msgstr "Acceso rápido a cámara"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS"
-msgstr "Configurar atajos"
-
-msgid "IDS_ST_BODY_DRAG_AND_DROP_TO_CHANGE_ORDER"
-msgstr "Arrastre y coloque para cambiar el orden"
-
-msgid "IDS_ST_BODY_SELECT_APPLICATION"
-msgstr "Seleccionar aplicación"
-
-msgid "IDS_ST_BODY_TAP_SHORTCUT_TO_ASSIGN_APPLICATION"
-msgstr "Pulse el atajo para asignar la aplicación"
-
-msgid "IDS_ST_OPT_EDIT_SHORTCUTS"
-msgstr "Editar atajos"
-
-msgid "IDS_IM_BODY_HELP_TEXT"
-msgstr "Texto de ayuda"
-
diff --git a/lock-setting/po/et.po b/lock-setting/po/et.po
deleted file mode 100644 (file)
index 073973f..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-msgid "IDS_ST_BODY_LOCK_SCREEN"
-msgstr "Lukusta ekraan"
-
-msgid "IDS_IDLE_BODY_VIEW_EVENT_NOTIFICATIONS_ON_THE_LOCK_SCREEN"
-msgstr "Vaadake sündmuste teavitusi lukustatud ekraanil"
-
-msgid "IDS_IDLE_MBODY_EVENT_NOTIFICATIONS"
-msgstr "Sündmuse teavitused"
-
-msgid "IDS_ST_BODY_CLOCK"
-msgstr "Kell"
-
-msgid "IDS_ST_BODY_WEATHER"
-msgstr "Ilm"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS_ON_LOCK_SCREEN"
-msgstr "Määra otseteed lukustusekraanil"
-
-msgid "IDS_ST_BODY_SHORTCUTS"
-msgstr "Otseteed"
-
-msgid "IDS_ST_BODY_DUAL_CLOCK"
-msgstr "Kaksikkell"
-
-msgid "IDS_ST_BODY_SHOW_HELP_TEXT_ON_LOCK_SCREEN"
-msgstr "Näita spikrit lukustusekraanil"
-
-msgid "IDS_ST_BODY_SHOW_DUAL_CLOCK_ON_LOCK_SCREEN_WHEN_ROAMING"
-msgstr "Kuva rändluse ajal lukustusekraanil kaksikkell"
-
-msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_WHILE_ROTATING_THE_DEVICE_TO_OPEN_CAMERA"
-msgstr "Kaamera avamiseks toksake ja hoidke sõrme ekraanil ning samal ajal pöörake seadet"
-
-msgid "IDS_ST_MBODY_CAMERA_QUICK_ACCESS"
-msgstr "Kiirjuurdepääs kaamerale"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS"
-msgstr "Määra otseteed"
-
-msgid "IDS_ST_BODY_DRAG_AND_DROP_TO_CHANGE_ORDER"
-msgstr "Lohistage, et muuta järjestust"
-
-msgid "IDS_ST_BODY_SELECT_APPLICATION"
-msgstr "Vali rakendus"
-
-msgid "IDS_ST_BODY_TAP_SHORTCUT_TO_ASSIGN_APPLICATION"
-msgstr "Toksake otseteed, et määrata rakendust"
-
-msgid "IDS_ST_OPT_EDIT_SHORTCUTS"
-msgstr "Muuda otseteid"
-
-msgid "IDS_IM_BODY_HELP_TEXT"
-msgstr "Spikker"
-
diff --git a/lock-setting/po/eu.po b/lock-setting/po/eu.po
deleted file mode 100644 (file)
index 8ba1000..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-msgid "IDS_ST_BODY_LOCK_SCREEN"
-msgstr "Blokeatu pantaila"
-
-msgid "IDS_IDLE_BODY_VIEW_EVENT_NOTIFICATIONS_ON_THE_LOCK_SCREEN"
-msgstr "Ikusi gertaeren jakinarazpenak blokeo pantailan"
-
-msgid "IDS_IDLE_MBODY_EVENT_NOTIFICATIONS"
-msgstr "Gertaeren jakinarazpenak"
-
-msgid "IDS_ST_BODY_CLOCK"
-msgstr "Ordularia"
-
-msgid "IDS_ST_BODY_WEATHER"
-msgstr "Eguraldia"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS_ON_LOCK_SCREEN"
-msgstr "Ezarri lasterbideak blokeo pantailan"
-
-msgid "IDS_ST_BODY_SHORTCUTS"
-msgstr "Sarrera zuzenak"
-
-msgid "IDS_ST_BODY_DUAL_CLOCK"
-msgstr "Erloju duala"
-
-msgid "IDS_ST_BODY_SHOW_HELP_TEXT_ON_LOCK_SCREEN"
-msgstr "Erakutsi laguntza testua blokeo pantailan"
-
-msgid "IDS_ST_BODY_SHOW_DUAL_CLOCK_ON_LOCK_SCREEN_WHEN_ROAMING"
-msgstr "Erakutsi erloju duala blokeo pantailan ibiltaritzan"
-
-msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_WHILE_ROTATING_THE_DEVICE_TO_OPEN_CAMERA"
-msgstr "Ukitu eta eutsi pantaila gailua biratu bitartean Kamera irekitzeko"
-
-msgid "IDS_ST_MBODY_CAMERA_QUICK_ACCESS"
-msgstr "Kameraren sarbide azkarra"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS"
-msgstr "Ezarri lasterbideak"
-
-msgid "IDS_ST_BODY_DRAG_AND_DROP_TO_CHANGE_ORDER"
-msgstr "Arrastatu eta jaregin ordena aldatzeko"
-
-msgid "IDS_ST_BODY_SELECT_APPLICATION"
-msgstr "Hautatu aplikazioa"
-
-msgid "IDS_ST_BODY_TAP_SHORTCUT_TO_ASSIGN_APPLICATION"
-msgstr "Ukitu lasterbidea aplikazioa esleitzeko"
-
-msgid "IDS_ST_OPT_EDIT_SHORTCUTS"
-msgstr "Editatu lasterbideak"
-
-msgid "IDS_IM_BODY_HELP_TEXT"
-msgstr "Laguntza testua"
-
diff --git a/lock-setting/po/fi.po b/lock-setting/po/fi.po
deleted file mode 100644 (file)
index 856e0a0..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-msgid "IDS_ST_BODY_LOCK_SCREEN"
-msgstr "Lukitusnäyttö"
-
-msgid "IDS_IDLE_BODY_VIEW_EVENT_NOTIFICATIONS_ON_THE_LOCK_SCREEN"
-msgstr "Näytä tapahtumailmoitukset lukitusnäytössä"
-
-msgid "IDS_IDLE_MBODY_EVENT_NOTIFICATIONS"
-msgstr "Tapahtumailmoitukset"
-
-msgid "IDS_ST_BODY_CLOCK"
-msgstr "Kello"
-
-msgid "IDS_ST_BODY_WEATHER"
-msgstr "Sää"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS_ON_LOCK_SCREEN"
-msgstr "Määritä pikanäppäimet lukitusnäytössä"
-
-msgid "IDS_ST_BODY_SHORTCUTS"
-msgstr "Pikanäppäimet"
-
-msgid "IDS_ST_BODY_DUAL_CLOCK"
-msgstr "Kaksoiskello"
-
-msgid "IDS_ST_BODY_SHOW_HELP_TEXT_ON_LOCK_SCREEN"
-msgstr "Ohjetekstin näyttäminen lukitusnäytössä"
-
-msgid "IDS_ST_BODY_SHOW_DUAL_CLOCK_ON_LOCK_SCREEN_WHEN_ROAMING"
-msgstr "Näytä kaksoiskello lukitusnäytössä verkkovierailun aikana"
-
-msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_WHILE_ROTATING_THE_DEVICE_TO_OPEN_CAMERA"
-msgstr "Avaa kamera painamalla näyttöä jonkin aikaa ja kiertämällä samalla laitetta"
-
-msgid "IDS_ST_MBODY_CAMERA_QUICK_ACCESS"
-msgstr "Kameran pikakäyttö"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS"
-msgstr "Määritä pikavalinnat"
-
-msgid "IDS_ST_BODY_DRAG_AND_DROP_TO_CHANGE_ORDER"
-msgstr "Muuta järjestystä vetämällä ja pudottamalla"
-
-msgid "IDS_ST_BODY_SELECT_APPLICATION"
-msgstr "Valitse sovellus"
-
-msgid "IDS_ST_BODY_TAP_SHORTCUT_TO_ASSIGN_APPLICATION"
-msgstr "Määritä sovellus napauttamalla pikakuvaketta"
-
-msgid "IDS_ST_OPT_EDIT_SHORTCUTS"
-msgstr "Muokkaa pikavalintoja"
-
-msgid "IDS_IM_BODY_HELP_TEXT"
-msgstr "Ohjeteksti"
-
diff --git a/lock-setting/po/fr_CA.po b/lock-setting/po/fr_CA.po
deleted file mode 100644 (file)
index 6982f65..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-msgid "IDS_ST_BODY_LOCK_SCREEN"
-msgstr "Écran verrouillé"
-
-msgid "IDS_IDLE_BODY_VIEW_EVENT_NOTIFICATIONS_ON_THE_LOCK_SCREEN"
-msgstr "Voir les notifications d'évènements sur l'écran de verrouillage"
-
-msgid "IDS_IDLE_MBODY_EVENT_NOTIFICATIONS"
-msgstr "Notifications évènements"
-
-msgid "IDS_ST_BODY_CLOCK"
-msgstr "Horloge"
-
-msgid "IDS_ST_BODY_WEATHER"
-msgstr "Météo"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS_ON_LOCK_SCREEN"
-msgstr "Sélectionner les raccourcis sur l'écran de verrouillage"
-
-msgid "IDS_ST_BODY_SHORTCUTS"
-msgstr "Raccourcis"
-
-msgid "IDS_ST_BODY_DUAL_CLOCK"
-msgstr "Deux horloges"
-
-msgid "IDS_ST_BODY_SHOW_HELP_TEXT_ON_LOCK_SCREEN"
-msgstr "Afficher texte d'aide sur l'écran de verrouillage"
-
-msgid "IDS_ST_BODY_SHOW_DUAL_CLOCK_ON_LOCK_SCREEN_WHEN_ROAMING"
-msgstr "Afficher double horloge sur l'écran de verrouillage en itinérance"
-
-msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_WHILE_ROTATING_THE_DEVICE_TO_OPEN_CAMERA"
-msgstr "Touchez longuement l'écran et faites pivoter l'appareil pour lancer l'appareil photo"
-
-msgid "IDS_ST_MBODY_CAMERA_QUICK_ACCESS"
-msgstr "Accès rapide app. photo"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS"
-msgstr "Définir des raccourcis"
-
-msgid "IDS_ST_BODY_DRAG_AND_DROP_TO_CHANGE_ORDER"
-msgstr "Glisser et déposer pour modifier l'ordre"
-
-msgid "IDS_ST_BODY_SELECT_APPLICATION"
-msgstr "Sélectionnez une application"
-
-msgid "IDS_ST_BODY_TAP_SHORTCUT_TO_ASSIGN_APPLICATION"
-msgstr "Touchez le raccourci pour l'affecter à l'application"
-
-msgid "IDS_ST_OPT_EDIT_SHORTCUTS"
-msgstr "Modifier les raccourcis"
-
-msgid "IDS_IM_BODY_HELP_TEXT"
-msgstr "Texte d'aide"
-
diff --git a/lock-setting/po/fr_FR.po b/lock-setting/po/fr_FR.po
deleted file mode 100644 (file)
index 0ffb78b..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-msgid "IDS_ST_BODY_LOCK_SCREEN"
-msgstr "Écran de verrouillage"
-
-msgid "IDS_IDLE_BODY_VIEW_EVENT_NOTIFICATIONS_ON_THE_LOCK_SCREEN"
-msgstr "Voir les notifications d'événements sur l'écran de verrouillage"
-
-msgid "IDS_IDLE_MBODY_EVENT_NOTIFICATIONS"
-msgstr "Notifications événements"
-
-msgid "IDS_ST_BODY_CLOCK"
-msgstr "Horloge"
-
-msgid "IDS_ST_BODY_WEATHER"
-msgstr "Météo"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS_ON_LOCK_SCREEN"
-msgstr "Définir les raccourcis à afficher sur l'écran de verrouillage"
-
-msgid "IDS_ST_BODY_SHORTCUTS"
-msgstr "Raccourcis"
-
-msgid "IDS_ST_BODY_DUAL_CLOCK"
-msgstr "Double horloge"
-
-msgid "IDS_ST_BODY_SHOW_HELP_TEXT_ON_LOCK_SCREEN"
-msgstr "Afficher le texte d'aide au déverrouillage sur l'écran"
-
-msgid "IDS_ST_BODY_SHOW_DUAL_CLOCK_ON_LOCK_SCREEN_WHEN_ROAMING"
-msgstr "Afficher la double horloge sur l'écran de verrouillage en itinérance"
-
-msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_WHILE_ROTATING_THE_DEVICE_TO_OPEN_CAMERA"
-msgstr "Maintenez votre doigt appuyé sur l'écran et faites pivoter l'appareil pour ouvrir l'appareil photo"
-
-msgid "IDS_ST_MBODY_CAMERA_QUICK_ACCESS"
-msgstr "Accès rapide app. photo"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS"
-msgstr "Définir des raccourcis"
-
-msgid "IDS_ST_BODY_DRAG_AND_DROP_TO_CHANGE_ORDER"
-msgstr "Glisser et déposer pour modifier l'ordre"
-
-msgid "IDS_ST_BODY_SELECT_APPLICATION"
-msgstr "Sélectionnez une application"
-
-msgid "IDS_ST_BODY_TAP_SHORTCUT_TO_ASSIGN_APPLICATION"
-msgstr "Appuyez sur le raccourci pour l'affecter à l'application"
-
-msgid "IDS_ST_OPT_EDIT_SHORTCUTS"
-msgstr "Modifier les raccourcis"
-
-msgid "IDS_IM_BODY_HELP_TEXT"
-msgstr "Texte d'aide"
-
diff --git a/lock-setting/po/ga.po b/lock-setting/po/ga.po
deleted file mode 100644 (file)
index 54b0785..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-msgid "IDS_ST_BODY_LOCK_SCREEN"
-msgstr "Glasáil an scáileán"
-
-msgid "IDS_IDLE_BODY_VIEW_EVENT_NOTIFICATIONS_ON_THE_LOCK_SCREEN"
-msgstr "Amharc ar fhógraí imeachta ar an scáileán glasála"
-
-msgid "IDS_IDLE_MBODY_EVENT_NOTIFICATIONS"
-msgstr "Fógra faoi imeachtaí"
-
-msgid "IDS_ST_BODY_CLOCK"
-msgstr "Clog"
-
-msgid "IDS_ST_BODY_WEATHER"
-msgstr "Aimsir"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS_ON_LOCK_SCREEN"
-msgstr "Socraigh aicearraí ar an scáileán glasála"
-
-msgid "IDS_ST_BODY_SHORTCUTS"
-msgstr "Aicearraí"
-
-msgid "IDS_ST_BODY_DUAL_CLOCK"
-msgstr "Déchlog"
-
-msgid "IDS_ST_BODY_SHOW_HELP_TEXT_ON_LOCK_SCREEN"
-msgstr "Taispeáin téacs cabhrach ar an scáileán glasála"
-
-msgid "IDS_ST_BODY_SHOW_DUAL_CLOCK_ON_LOCK_SCREEN_WHEN_ROAMING"
-msgstr "Taispeáin déchlog ar an scáileáin glasála le linn fánaíocht"
-
-msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_WHILE_ROTATING_THE_DEVICE_TO_OPEN_CAMERA"
-msgstr "Tapáil agus coinnigh an scáileán agus an gléas á rothlú le Ceamara a oscailt"
-
-msgid "IDS_ST_MBODY_CAMERA_QUICK_ACCESS"
-msgstr "Mear-rochtain ar cheamara"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS"
-msgstr "Socraigh aicearraí"
-
-msgid "IDS_ST_BODY_DRAG_AND_DROP_TO_CHANGE_ORDER"
-msgstr "Tarraing agus scaoil leis an ord a athrú"
-
-msgid "IDS_ST_BODY_SELECT_APPLICATION"
-msgstr "Roghnaigh feidhmchlár"
-
-msgid "IDS_ST_BODY_TAP_SHORTCUT_TO_ASSIGN_APPLICATION"
-msgstr "Tapáil aicearra le feidhmchlár a shannadh"
-
-msgid "IDS_ST_OPT_EDIT_SHORTCUTS"
-msgstr "Cuir aicearraí in eagar"
-
-msgid "IDS_IM_BODY_HELP_TEXT"
-msgstr "Téacs cabhrach"
-
diff --git a/lock-setting/po/gl.po b/lock-setting/po/gl.po
deleted file mode 100644 (file)
index d1f01aa..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-msgid "IDS_ST_BODY_LOCK_SCREEN"
-msgstr "Bloquear pantalla"
-
-msgid "IDS_IDLE_BODY_VIEW_EVENT_NOTIFICATIONS_ON_THE_LOCK_SCREEN"
-msgstr "Ver notificacións de eventos na pantalla de bloqueo"
-
-msgid "IDS_IDLE_MBODY_EVENT_NOTIFICATIONS"
-msgstr "Notificacións de eventos"
-
-msgid "IDS_ST_BODY_CLOCK"
-msgstr "Reloxo"
-
-msgid "IDS_ST_BODY_WEATHER"
-msgstr "Tempo"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS_ON_LOCK_SCREEN"
-msgstr "Definir os atallos na pantalla de bloqueo"
-
-msgid "IDS_ST_BODY_SHORTCUTS"
-msgstr "Atallos"
-
-msgid "IDS_ST_BODY_DUAL_CLOCK"
-msgstr "Reloxo dual"
-
-msgid "IDS_ST_BODY_SHOW_HELP_TEXT_ON_LOCK_SCREEN"
-msgstr "Amosa texto de axuda na pantalla de bloqueo"
-
-msgid "IDS_ST_BODY_SHOW_DUAL_CLOCK_ON_LOCK_SCREEN_WHEN_ROAMING"
-msgstr "Amosa o reloxo dual na pantalla de bloqueo durante a itinerancia"
-
-msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_WHILE_ROTATING_THE_DEVICE_TO_OPEN_CAMERA"
-msgstr "Mantén tocada a pantalla mentres xiras o dispositivo para abrir a cámara"
-
-msgid "IDS_ST_MBODY_CAMERA_QUICK_ACCESS"
-msgstr "Acceso rápido á cámara"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS"
-msgstr "Definir atallos"
-
-msgid "IDS_ST_BODY_DRAG_AND_DROP_TO_CHANGE_ORDER"
-msgstr "Arrastra e solta para cambiar a orde"
-
-msgid "IDS_ST_BODY_SELECT_APPLICATION"
-msgstr "Seleccionar aplicación"
-
-msgid "IDS_ST_BODY_TAP_SHORTCUT_TO_ASSIGN_APPLICATION"
-msgstr "Toca o atallo ao que desexas asignar a aplicación"
-
-msgid "IDS_ST_OPT_EDIT_SHORTCUTS"
-msgstr "Editar atallos"
-
-msgid "IDS_IM_BODY_HELP_TEXT"
-msgstr "Texto de axuda"
-
diff --git a/lock-setting/po/hi.po b/lock-setting/po/hi.po
deleted file mode 100644 (file)
index 1dc2c7e..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-msgid "IDS_ST_BODY_LOCK_SCREEN"
-msgstr "स्क्रीन लॉक करें"
-
-msgid "IDS_IDLE_BODY_VIEW_EVENT_NOTIFICATIONS_ON_THE_LOCK_SCREEN"
-msgstr "लॉक स्क्रीन पर प्रसंग अधिसूचनाएँ देखें"
-
-msgid "IDS_IDLE_MBODY_EVENT_NOTIFICATIONS"
-msgstr "प्रसंग अधिसूचनाएँ"
-
-msgid "IDS_ST_BODY_CLOCK"
-msgstr "घड़ी"
-
-msgid "IDS_ST_BODY_WEATHER"
-msgstr "मौसम"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS_ON_LOCK_SCREEN"
-msgstr "लॉक स्‍क्रीन पर शॉर्टकट्स सेट करें"
-
-msgid "IDS_ST_BODY_SHORTCUTS"
-msgstr "शार्टकट्स"
-
-msgid "IDS_ST_BODY_DUAL_CLOCK"
-msgstr "दोहरी घड़ी"
-
-msgid "IDS_ST_BODY_SHOW_HELP_TEXT_ON_LOCK_SCREEN"
-msgstr "लॉक स्क्रीन पर मदद टेक्स्ट दिखाता है"
-
-msgid "IDS_ST_BODY_SHOW_DUAL_CLOCK_ON_LOCK_SCREEN_WHEN_ROAMING"
-msgstr "जब रोमिंग में हों तब लॉक स्‍क्रीन पर डुअल क्लॉक दिखाएँ"
-
-msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_WHILE_ROTATING_THE_DEVICE_TO_OPEN_CAMERA"
-msgstr "कैमरा खोलनें के लिए डिवाइस को घुमाते समय स्क्रीन को टैप और होल्ड करें"
-
-msgid "IDS_ST_MBODY_CAMERA_QUICK_ACCESS"
-msgstr "कैमरा क्विक ऍक्सेस"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS"
-msgstr "शॉर्टकट्स सेट करें"
-
-msgid "IDS_ST_BODY_DRAG_AND_DROP_TO_CHANGE_ORDER"
-msgstr "क्रम बदलने के लिए ड्रैग और ड्रॉप करें"
-
-msgid "IDS_ST_BODY_SELECT_APPLICATION"
-msgstr "एप्लीकेशन चुनें"
-
-msgid "IDS_ST_BODY_TAP_SHORTCUT_TO_ASSIGN_APPLICATION"
-msgstr "एप्लीकेशन असाइन करने के लिए शॉर्टकट टैप करें"
-
-msgid "IDS_ST_OPT_EDIT_SHORTCUTS"
-msgstr "शॉर्टकट्स संपादित करें"
-
-msgid "IDS_IM_BODY_HELP_TEXT"
-msgstr "सहायता टेक्स्ट"
-
diff --git a/lock-setting/po/hr.po b/lock-setting/po/hr.po
deleted file mode 100644 (file)
index 86c6896..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-msgid "IDS_ST_BODY_LOCK_SCREEN"
-msgstr "Zaslon zaključavanja"
-
-msgid "IDS_IDLE_BODY_VIEW_EVENT_NOTIFICATIONS_ON_THE_LOCK_SCREEN"
-msgstr "Vidi obavijesti o događaju na zaslonu zaključavanja"
-
-msgid "IDS_IDLE_MBODY_EVENT_NOTIFICATIONS"
-msgstr "Obavijesti o događaju"
-
-msgid "IDS_ST_BODY_CLOCK"
-msgstr "Sat"
-
-msgid "IDS_ST_BODY_WEATHER"
-msgstr "Prognoza"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS_ON_LOCK_SCREEN"
-msgstr "Postavi prečace na zaslonu zaključavanja"
-
-msgid "IDS_ST_BODY_SHORTCUTS"
-msgstr "Prečaci"
-
-msgid "IDS_ST_BODY_DUAL_CLOCK"
-msgstr "Dvostruki sat"
-
-msgid "IDS_ST_BODY_SHOW_HELP_TEXT_ON_LOCK_SCREEN"
-msgstr "Prikaži tekst pomoći na zaslonu zaključavanja"
-
-msgid "IDS_ST_BODY_SHOW_DUAL_CLOCK_ON_LOCK_SCREEN_WHEN_ROAMING"
-msgstr "Prikaži dvostruki sat na zaslonu zaključavanja u roamingu"
-
-msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_WHILE_ROTATING_THE_DEVICE_TO_OPEN_CAMERA"
-msgstr "Dodirnite i držite zaslon dok okrećete uređaj da biste uključili fotoaparat"
-
-msgid "IDS_ST_MBODY_CAMERA_QUICK_ACCESS"
-msgstr "Brzi pristup fotoaparatu"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS"
-msgstr "Postavi prečace"
-
-msgid "IDS_ST_BODY_DRAG_AND_DROP_TO_CHANGE_ORDER"
-msgstr "Dovucite i ispustite za promjenu redoslijeda"
-
-msgid "IDS_ST_BODY_SELECT_APPLICATION"
-msgstr "Odaberi aplikaciju"
-
-msgid "IDS_ST_BODY_TAP_SHORTCUT_TO_ASSIGN_APPLICATION"
-msgstr "Dodaj prečac za dodjeljivanje aplikacije"
-
-msgid "IDS_ST_OPT_EDIT_SHORTCUTS"
-msgstr "Uredi prečace"
-
-msgid "IDS_IM_BODY_HELP_TEXT"
-msgstr "Upute"
-
diff --git a/lock-setting/po/hu.po b/lock-setting/po/hu.po
deleted file mode 100644 (file)
index 7028c02..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-msgid "IDS_ST_BODY_LOCK_SCREEN"
-msgstr "Képernyő lezárása"
-
-msgid "IDS_IDLE_BODY_VIEW_EVENT_NOTIFICATIONS_ON_THE_LOCK_SCREEN"
-msgstr "Eseményértesítések megjelenítése a zárolt képernyőn"
-
-msgid "IDS_IDLE_MBODY_EVENT_NOTIFICATIONS"
-msgstr "Eseményértesítések"
-
-msgid "IDS_ST_BODY_CLOCK"
-msgstr "Óra"
-
-msgid "IDS_ST_BODY_WEATHER"
-msgstr "Időjárás"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS_ON_LOCK_SCREEN"
-msgstr "Zárolt képernyő parancsikonjainak beállítása"
-
-msgid "IDS_ST_BODY_SHORTCUTS"
-msgstr "Gyorsgombok"
-
-msgid "IDS_ST_BODY_DUAL_CLOCK"
-msgstr "Kettős óra"
-
-msgid "IDS_ST_BODY_SHOW_HELP_TEXT_ON_LOCK_SCREEN"
-msgstr "Súgó megjelenítése a zárolt képernyőn"
-
-msgid "IDS_ST_BODY_SHOW_DUAL_CLOCK_ON_LOCK_SCREEN_WHEN_ROAMING"
-msgstr "Második óra megjelenítése a zárolt képernyőn roaming esetén"
-
-msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_WHILE_ROTATING_THE_DEVICE_TO_OPEN_CAMERA"
-msgstr "A Fényképező megnyitásához érintse meg a képernyőt, és forgassa el az eszközt"
-
-msgid "IDS_ST_MBODY_CAMERA_QUICK_ACCESS"
-msgstr "Gyors fényképezés"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS"
-msgstr "Parancsikonok beállítása"
-
-msgid "IDS_ST_BODY_DRAG_AND_DROP_TO_CHANGE_ORDER"
-msgstr "Az elemek áthúzásával megváltoztathatja a sorrendet"
-
-msgid "IDS_ST_BODY_SELECT_APPLICATION"
-msgstr "Alkalmazás kiválasztása"
-
-msgid "IDS_ST_BODY_TAP_SHORTCUT_TO_ASSIGN_APPLICATION"
-msgstr "Alkalmazás hozzárendeléséhez érintse meg a parancsikont"
-
-msgid "IDS_ST_OPT_EDIT_SHORTCUTS"
-msgstr "Ikonok szerkesztése"
-
-msgid "IDS_IM_BODY_HELP_TEXT"
-msgstr "Súgószöveg"
-
diff --git a/lock-setting/po/hy.po b/lock-setting/po/hy.po
deleted file mode 100644 (file)
index 6916644..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-msgid "IDS_ST_BODY_LOCK_SCREEN"
-msgstr "Կողպել էկրանը"
-
-msgid "IDS_IDLE_BODY_VIEW_EVENT_NOTIFICATIONS_ON_THE_LOCK_SCREEN"
-msgstr "Դիտել իրադարձության ծանուցումները կողպված էկրանին"
-
-msgid "IDS_IDLE_MBODY_EVENT_NOTIFICATIONS"
-msgstr "Իրադարձութ. ծանուցումներ"
-
-msgid "IDS_ST_BODY_CLOCK"
-msgstr "Ժամացույց"
-
-msgid "IDS_ST_BODY_WEATHER"
-msgstr "Եղանակ"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS_ON_LOCK_SCREEN"
-msgstr "Դնել դյուրանցումներ կողպված էկրանին"
-
-msgid "IDS_ST_BODY_SHORTCUTS"
-msgstr "Արագ անցումներ"
-
-msgid "IDS_ST_BODY_DUAL_CLOCK"
-msgstr "Երկակի ժամացույց"
-
-msgid "IDS_ST_BODY_SHOW_HELP_TEXT_ON_LOCK_SCREEN"
-msgstr "Ցույց տալ օգնության տեքստը կողպված էկրանի վրա"
-
-msgid "IDS_ST_BODY_SHOW_DUAL_CLOCK_ON_LOCK_SCREEN_WHEN_ROAMING"
-msgstr "Ռոումինգի ժամանակ ցույց տալ կրկնակի ժամացույցը կողպված էկրանին"
-
-msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_WHILE_ROTATING_THE_DEVICE_TO_OPEN_CAMERA"
-msgstr "Թակեք և պահեք էկրանը սարքը պտտելու ընթացքում՝ Խցիկը բացելու համար"
-
-msgid "IDS_ST_MBODY_CAMERA_QUICK_ACCESS"
-msgstr "Խցիկի արագ մուտք"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS"
-msgstr "Դնել դյուրանցումներ"
-
-msgid "IDS_ST_BODY_DRAG_AND_DROP_TO_CHANGE_ORDER"
-msgstr "Քարշել և թողնել՝ կարգը փոխելու համար"
-
-msgid "IDS_ST_BODY_SELECT_APPLICATION"
-msgstr "Ընտրել ծրագիր"
-
-msgid "IDS_ST_BODY_TAP_SHORTCUT_TO_ASSIGN_APPLICATION"
-msgstr "Թակել դյուրանցումը՝ ծրագիր վերագրելու համար"
-
-msgid "IDS_ST_OPT_EDIT_SHORTCUTS"
-msgstr "Խմբագրել դյուրանցումները"
-
-msgid "IDS_IM_BODY_HELP_TEXT"
-msgstr "Օգնության տեքստ"
-
diff --git a/lock-setting/po/is.po b/lock-setting/po/is.po
deleted file mode 100644 (file)
index 5693eed..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-msgid "IDS_ST_BODY_LOCK_SCREEN"
-msgstr "Læsa skjá"
-
-msgid "IDS_IDLE_BODY_VIEW_EVENT_NOTIFICATIONS_ON_THE_LOCK_SCREEN"
-msgstr "Skoða viðburðatilkynningar á lásskjá"
-
-msgid "IDS_IDLE_MBODY_EVENT_NOTIFICATIONS"
-msgstr "Viðburðatilkynningar"
-
-msgid "IDS_ST_BODY_CLOCK"
-msgstr "Klukka"
-
-msgid "IDS_ST_BODY_WEATHER"
-msgstr "Veður"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS_ON_LOCK_SCREEN"
-msgstr "Stilla flýtileiðir á læstum skjá"
-
-msgid "IDS_ST_BODY_SHORTCUTS"
-msgstr "Flýtileiðir"
-
-msgid "IDS_ST_BODY_DUAL_CLOCK"
-msgstr "Tvöföld klukka"
-
-msgid "IDS_ST_BODY_SHOW_HELP_TEXT_ON_LOCK_SCREEN"
-msgstr "Sýna hjálpartexta á lásskjá"
-
-msgid "IDS_ST_BODY_SHOW_DUAL_CLOCK_ON_LOCK_SCREEN_WHEN_ROAMING"
-msgstr "Sýna tvöfalda klukku á lásskjá í reiki"
-
-msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_WHILE_ROTATING_THE_DEVICE_TO_OPEN_CAMERA"
-msgstr "Pikkaðu á og haltu fingrinum á skjánum á meðan þú snýrð tækinu til að opna Myndavélina"
-
-msgid "IDS_ST_MBODY_CAMERA_QUICK_ACCESS"
-msgstr "Flýtiaðgangur myndavélar"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS"
-msgstr "Stilla flýtileiðir"
-
-msgid "IDS_ST_BODY_DRAG_AND_DROP_TO_CHANGE_ORDER"
-msgstr "Dragðu og slepptu til að breyta röð"
-
-msgid "IDS_ST_BODY_SELECT_APPLICATION"
-msgstr "Velja forrit"
-
-msgid "IDS_ST_BODY_TAP_SHORTCUT_TO_ASSIGN_APPLICATION"
-msgstr "Pikkaðu á flýtileið til að úthluta forriti"
-
-msgid "IDS_ST_OPT_EDIT_SHORTCUTS"
-msgstr "Breyta flýtileiðum"
-
-msgid "IDS_IM_BODY_HELP_TEXT"
-msgstr "Hjálpartexti"
-
diff --git a/lock-setting/po/it_IT.po b/lock-setting/po/it_IT.po
deleted file mode 100644 (file)
index d39fd3c..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-msgid "IDS_ST_BODY_LOCK_SCREEN"
-msgstr "Schermata di blocco"
-
-msgid "IDS_IDLE_BODY_VIEW_EVENT_NOTIFICATIONS_ON_THE_LOCK_SCREEN"
-msgstr "Visualizza le notifiche eventi sulla schermata di blocco"
-
-msgid "IDS_IDLE_MBODY_EVENT_NOTIFICATIONS"
-msgstr "Notifiche eventi"
-
-msgid "IDS_ST_BODY_CLOCK"
-msgstr "Orologio"
-
-msgid "IDS_ST_BODY_WEATHER"
-msgstr "Meteo"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS_ON_LOCK_SCREEN"
-msgstr "Imposta collegamenti nella schermata di blocco"
-
-msgid "IDS_ST_BODY_SHORTCUTS"
-msgstr "Collegamenti"
-
-msgid "IDS_ST_BODY_DUAL_CLOCK"
-msgstr "Doppio orologio"
-
-msgid "IDS_ST_BODY_SHOW_HELP_TEXT_ON_LOCK_SCREEN"
-msgstr "Mostra testo guida nella schermata di blocco"
-
-msgid "IDS_ST_BODY_SHOW_DUAL_CLOCK_ON_LOCK_SCREEN_WHEN_ROAMING"
-msgstr "Mostra orologio doppio nella schermata di blocco durante il roaming"
-
-msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_WHILE_ROTATING_THE_DEVICE_TO_OPEN_CAMERA"
-msgstr "Tenere premuto lo schermo mentre si ruota il dispositivo per aprire la fotocamera"
-
-msgid "IDS_ST_MBODY_CAMERA_QUICK_ACCESS"
-msgstr "Sblocco fotocamera"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS"
-msgstr "Imposta collegamenti"
-
-msgid "IDS_ST_BODY_DRAG_AND_DROP_TO_CHANGE_ORDER"
-msgstr "Trascina per modificare ordine"
-
-msgid "IDS_ST_BODY_SELECT_APPLICATION"
-msgstr "Seleziona applicazione"
-
-msgid "IDS_ST_BODY_TAP_SHORTCUT_TO_ASSIGN_APPLICATION"
-msgstr "Tocca collegamento per assegnare un'applicazione"
-
-msgid "IDS_ST_OPT_EDIT_SHORTCUTS"
-msgstr "Modifica collegamenti"
-
-msgid "IDS_IM_BODY_HELP_TEXT"
-msgstr "Testo guida"
-
diff --git a/lock-setting/po/ja_JP.po b/lock-setting/po/ja_JP.po
deleted file mode 100644 (file)
index 19c083d..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-msgid "IDS_ST_BODY_LOCK_SCREEN"
-msgstr "ロック画面"
-
-msgid "IDS_IDLE_BODY_VIEW_EVENT_NOTIFICATIONS_ON_THE_LOCK_SCREEN"
-msgstr "ロック画面にイベント通知を表示"
-
-msgid "IDS_IDLE_MBODY_EVENT_NOTIFICATIONS"
-msgstr "イベント通知"
-
-msgid "IDS_ST_BODY_CLOCK"
-msgstr "時計"
-
-msgid "IDS_ST_BODY_WEATHER"
-msgstr "天気予報"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS_ON_LOCK_SCREEN"
-msgstr "ロック画面に表示するショートカットを設定"
-
-msgid "IDS_ST_BODY_SHORTCUTS"
-msgstr "ショートカット"
-
-msgid "IDS_ST_BODY_DUAL_CLOCK"
-msgstr "デュアル時計"
-
-msgid "IDS_ST_BODY_SHOW_HELP_TEXT_ON_LOCK_SCREEN"
-msgstr "ロック画面にヘルプテキストを表示"
-
-msgid "IDS_ST_BODY_SHOW_DUAL_CLOCK_ON_LOCK_SCREEN_WHEN_ROAMING"
-msgstr "ローミング時、ロック画面にデュアル時計を表示"
-
-msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_WHILE_ROTATING_THE_DEVICE_TO_OPEN_CAMERA"
-msgstr "画面を押しながら端末を回転させてカメラを起動"
-
-msgid "IDS_ST_MBODY_CAMERA_QUICK_ACCESS"
-msgstr "カメラクイック起動"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS"
-msgstr "ショートカットを設定"
-
-msgid "IDS_ST_BODY_DRAG_AND_DROP_TO_CHANGE_ORDER"
-msgstr "ドラッグして順番を並べ替えます。"
-
-msgid "IDS_ST_BODY_SELECT_APPLICATION"
-msgstr "アプリケーションを選択"
-
-msgid "IDS_ST_BODY_TAP_SHORTCUT_TO_ASSIGN_APPLICATION"
-msgstr "ショートカットをタップしてアプリケーションを割り当てます。"
-
-msgid "IDS_ST_OPT_EDIT_SHORTCUTS"
-msgstr "ショートカットを編集"
-
-msgid "IDS_IM_BODY_HELP_TEXT"
-msgstr "ヘルプ"
-
diff --git a/lock-setting/po/ka.po b/lock-setting/po/ka.po
deleted file mode 100644 (file)
index b6b045e..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-msgid "IDS_ST_BODY_LOCK_SCREEN"
-msgstr "ეკრანის დაბლოკვა"
-
-msgid "IDS_IDLE_BODY_VIEW_EVENT_NOTIFICATIONS_ON_THE_LOCK_SCREEN"
-msgstr "მოვლენის შეტყობინებების ნახვა დაბლოკილ ეკრანზე"
-
-msgid "IDS_IDLE_MBODY_EVENT_NOTIFICATIONS"
-msgstr "მოვლენის შეტყობინებები"
-
-msgid "IDS_ST_BODY_CLOCK"
-msgstr "საათი"
-
-msgid "IDS_ST_BODY_WEATHER"
-msgstr "ამინდი"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS_ON_LOCK_SCREEN"
-msgstr "სწრაფი ღილაკების დაყენება დაბლოკილ ეკრანზე"
-
-msgid "IDS_ST_BODY_SHORTCUTS"
-msgstr "სწრაფი ღილაკები"
-
-msgid "IDS_ST_BODY_DUAL_CLOCK"
-msgstr "ორმაგი საათი"
-
-msgid "IDS_ST_BODY_SHOW_HELP_TEXT_ON_LOCK_SCREEN"
-msgstr "დახმარების ტექსტის ჩვენება დაბლოკილ ეკრანზე"
-
-msgid "IDS_ST_BODY_SHOW_DUAL_CLOCK_ON_LOCK_SCREEN_WHEN_ROAMING"
-msgstr "ორმაგი საათის ჩვენება დაბლოკილ ეკრანზე როუმინგის დროს"
-
-msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_WHILE_ROTATING_THE_DEVICE_TO_OPEN_CAMERA"
-msgstr "კამერის გასახსნელად, ხანგრძლივად შეეხეთ ეკრანს და მოაბრუნეთ აპარატი"
-
-msgid "IDS_ST_MBODY_CAMERA_QUICK_ACCESS"
-msgstr "კამერის სწრაფი გახსნა"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS"
-msgstr "ღილაკების დაყენება"
-
-msgid "IDS_ST_BODY_DRAG_AND_DROP_TO_CHANGE_ORDER"
-msgstr "აიღეთ და გადაიტანეთ, თუ გსურთ შეცვალოთ მიმდევრობა"
-
-msgid "IDS_ST_BODY_SELECT_APPLICATION"
-msgstr "აირჩიეთ პროგრამა"
-
-msgid "IDS_ST_BODY_TAP_SHORTCUT_TO_ASSIGN_APPLICATION"
-msgstr "დააკაკუნეთ სწრაფ ღილაკზე, რომ მიანიჭოთ პროგრამის გახსნის ფუნქცია"
-
-msgid "IDS_ST_OPT_EDIT_SHORTCUTS"
-msgstr "სწრაფი ღილაკების შესწორება"
-
-msgid "IDS_IM_BODY_HELP_TEXT"
-msgstr "დამხმარე ტექსტი"
-
diff --git a/lock-setting/po/kk.po b/lock-setting/po/kk.po
deleted file mode 100644 (file)
index 5f30631..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-msgid "IDS_ST_BODY_LOCK_SCREEN"
-msgstr "Экранды құлыптау"
-
-msgid "IDS_IDLE_BODY_VIEW_EVENT_NOTIFICATIONS_ON_THE_LOCK_SCREEN"
-msgstr "Құлыптау экранында оқиғалар туралы хабарландыруларды қарап шығу"
-
-msgid "IDS_IDLE_MBODY_EVENT_NOTIFICATIONS"
-msgstr "Оқиғалар туралы хабарлау"
-
-msgid "IDS_ST_BODY_CLOCK"
-msgstr "Сағат"
-
-msgid "IDS_ST_BODY_WEATHER"
-msgstr "Ауа райы"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS_ON_LOCK_SCREEN"
-msgstr "Құлып экранында белгішелерді белгілеу"
-
-msgid "IDS_ST_BODY_SHORTCUTS"
-msgstr "Тез кіру"
-
-msgid "IDS_ST_BODY_DUAL_CLOCK"
-msgstr "Қос сағат"
-
-msgid "IDS_ST_BODY_SHOW_HELP_TEXT_ON_LOCK_SCREEN"
-msgstr "Құлыптаулы экранында көмек мәтінді көрсетіңіз"
-
-msgid "IDS_ST_BODY_SHOW_DUAL_CLOCK_ON_LOCK_SCREEN_WHEN_ROAMING"
-msgstr "Роумингте қос сағатты құлып экранынан көрсетіңіз"
-
-msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_WHILE_ROTATING_THE_DEVICE_TO_OPEN_CAMERA"
-msgstr "Камераны ашу үшін құрылғыны бұрғанда экранды басып тұрыңыз"
-
-msgid "IDS_ST_MBODY_CAMERA_QUICK_ACCESS"
-msgstr "Камераға жылдам өту"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS"
-msgstr "Белгішелер орнату"
-
-msgid "IDS_ST_BODY_DRAG_AND_DROP_TO_CHANGE_ORDER"
-msgstr "Ретін өзгерту үшін сүйреп алып барыңыз"
-
-msgid "IDS_ST_BODY_SELECT_APPLICATION"
-msgstr "Бағдарлама таңдау"
-
-msgid "IDS_ST_BODY_TAP_SHORTCUT_TO_ASSIGN_APPLICATION"
-msgstr "Бағдарламаны тағайындау үшін белгішені түртіңіз"
-
-msgid "IDS_ST_OPT_EDIT_SHORTCUTS"
-msgstr "Тез кіру ретін өзгерту"
-
-msgid "IDS_IM_BODY_HELP_TEXT"
-msgstr "Анықтама мәтіні"
-
diff --git a/lock-setting/po/ko_KR.po b/lock-setting/po/ko_KR.po
deleted file mode 100644 (file)
index aca7f74..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-msgid "IDS_ST_BODY_LOCK_SCREEN"
-msgstr "잠금화면"
-
-msgid "IDS_IDLE_BODY_VIEW_EVENT_NOTIFICATIONS_ON_THE_LOCK_SCREEN"
-msgstr "잠금화면에서 일정 알림 보기"
-
-msgid "IDS_IDLE_MBODY_EVENT_NOTIFICATIONS"
-msgstr "일정 알림"
-
-msgid "IDS_ST_BODY_CLOCK"
-msgstr "시계"
-
-msgid "IDS_ST_BODY_WEATHER"
-msgstr "날씨"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS_ON_LOCK_SCREEN"
-msgstr "잠금화면에 바로가기를 설정합니다"
-
-msgid "IDS_ST_BODY_SHORTCUTS"
-msgstr "바로가기"
-
-msgid "IDS_ST_BODY_DUAL_CLOCK"
-msgstr "듀얼 시계"
-
-msgid "IDS_ST_BODY_SHOW_HELP_TEXT_ON_LOCK_SCREEN"
-msgstr "잠금화면에 도움말을 표시합니다"
-
-msgid "IDS_ST_BODY_SHOW_DUAL_CLOCK_ON_LOCK_SCREEN_WHEN_ROAMING"
-msgstr "로밍 시 잠금화면에 듀얼 시계를 표시합니다"
-
-msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_WHILE_ROTATING_THE_DEVICE_TO_OPEN_CAMERA"
-msgstr "화면을 길게 누른 채 디바이스를 회전하면 카메라가 실행됩니다"
-
-msgid "IDS_ST_MBODY_CAMERA_QUICK_ACCESS"
-msgstr "빠른 카메라 실행"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS"
-msgstr "바로가기 설정"
-
-msgid "IDS_ST_BODY_DRAG_AND_DROP_TO_CHANGE_ORDER"
-msgstr "순서를 바꾸려면 드래그하세요"
-
-msgid "IDS_ST_BODY_SELECT_APPLICATION"
-msgstr "애플리케이션 선택"
-
-msgid "IDS_ST_BODY_TAP_SHORTCUT_TO_ASSIGN_APPLICATION"
-msgstr "애플리케이션을 지정하려면 바로가기를 누르세요"
-
-msgid "IDS_ST_OPT_EDIT_SHORTCUTS"
-msgstr "바로가기 편집"
-
-msgid "IDS_IM_BODY_HELP_TEXT"
-msgstr "도움말"
-
diff --git a/lock-setting/po/lt.po b/lock-setting/po/lt.po
deleted file mode 100644 (file)
index 7067c08..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-msgid "IDS_ST_BODY_LOCK_SCREEN"
-msgstr "Užrakinimo ekranas"
-
-msgid "IDS_IDLE_BODY_VIEW_EVENT_NOTIFICATIONS_ON_THE_LOCK_SCREEN"
-msgstr "Peržiūrėti pranešimus apie įvykius užrakintame ekrane"
-
-msgid "IDS_IDLE_MBODY_EVENT_NOTIFICATIONS"
-msgstr "Pranešimai apie įvykius"
-
-msgid "IDS_ST_BODY_CLOCK"
-msgstr "Laikrodis"
-
-msgid "IDS_ST_BODY_WEATHER"
-msgstr "Oras"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS_ON_LOCK_SCREEN"
-msgstr "Nustatyti sparčiuosius mygtukus užrakinimo ekrane"
-
-msgid "IDS_ST_BODY_SHORTCUTS"
-msgstr "Sparčiosios prieigos mygtukai"
-
-msgid "IDS_ST_BODY_DUAL_CLOCK"
-msgstr "Dvigubas laikrodis"
-
-msgid "IDS_ST_BODY_SHOW_HELP_TEXT_ON_LOCK_SCREEN"
-msgstr "Rodyti pagalbos tekstą užrakintame ekrane"
-
-msgid "IDS_ST_BODY_SHOW_DUAL_CLOCK_ON_LOCK_SCREEN_WHEN_ROAMING"
-msgstr "Rodyti dvigubą laikrodį užrakinimo ekrane, kai naudojamasi tarptinkliniu ryšiu"
-
-msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_WHILE_ROTATING_THE_DEVICE_TO_OPEN_CAMERA"
-msgstr "Jei norite atidaryti fotoaparatą, bakstelėkite ir laikykite ekraną sukdami įrenginį"
-
-msgid "IDS_ST_MBODY_CAMERA_QUICK_ACCESS"
-msgstr "Gr. prieiga prie fotoap."
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS"
-msgstr "Nustatyti trumpinius"
-
-msgid "IDS_ST_BODY_DRAG_AND_DROP_TO_CHANGE_ORDER"
-msgstr "Vilkdami pakeiskite išdėstymą"
-
-msgid "IDS_ST_BODY_SELECT_APPLICATION"
-msgstr "Pasirinkti programą"
-
-msgid "IDS_ST_BODY_TAP_SHORTCUT_TO_ASSIGN_APPLICATION"
-msgstr "Bakstelėkite spartųjį mygtuką, kad priskirtumėte programą"
-
-msgid "IDS_ST_OPT_EDIT_SHORTCUTS"
-msgstr "Redaguoti nuorodas"
-
-msgid "IDS_IM_BODY_HELP_TEXT"
-msgstr "Pagalbos tekstas"
-
diff --git a/lock-setting/po/lv.po b/lock-setting/po/lv.po
deleted file mode 100644 (file)
index af7d248..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-msgid "IDS_ST_BODY_LOCK_SCREEN"
-msgstr "Bloķēšanas ekrāns"
-
-msgid "IDS_IDLE_BODY_VIEW_EVENT_NOTIFICATIONS_ON_THE_LOCK_SCREEN"
-msgstr "Skatīt notikumu paziņojumus bloķētā ekrānā"
-
-msgid "IDS_IDLE_MBODY_EVENT_NOTIFICATIONS"
-msgstr "Notikumu paziņojumi"
-
-msgid "IDS_ST_BODY_CLOCK"
-msgstr "Pulkstenis"
-
-msgid "IDS_ST_BODY_WEATHER"
-msgstr "Laiks"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS_ON_LOCK_SCREEN"
-msgstr "Iestatīt īsceļus bloķētajā ekrānā"
-
-msgid "IDS_ST_BODY_SHORTCUTS"
-msgstr "Īsceļi"
-
-msgid "IDS_ST_BODY_DUAL_CLOCK"
-msgstr "Duālais pulkstenis"
-
-msgid "IDS_ST_BODY_SHOW_HELP_TEXT_ON_LOCK_SCREEN"
-msgstr "Rādīt palīdzības tekstu bloķēšanas ekrānā"
-
-msgid "IDS_ST_BODY_SHOW_DUAL_CLOCK_ON_LOCK_SCREEN_WHEN_ROAMING"
-msgstr "Viesabonēšanas laikā bloķēšanas ekrānā rādīt duālo pulksteni"
-
-msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_WHILE_ROTATING_THE_DEVICE_TO_OPEN_CAMERA"
-msgstr "Lai atvērtu kameru, pieskarieties un turiet ekrānu, un vienlaicīgi pagrieziet ierīci"
-
-msgid "IDS_ST_MBODY_CAMERA_QUICK_ACCESS"
-msgstr "Ātra piekļuve kamerai"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS"
-msgstr "Iestatīt īsceļus"
-
-msgid "IDS_ST_BODY_DRAG_AND_DROP_TO_CHANGE_ORDER"
-msgstr "Velciet un nometiet, lai mainītu kārtību"
-
-msgid "IDS_ST_BODY_SELECT_APPLICATION"
-msgstr "Izvēlēties programmu"
-
-msgid "IDS_ST_BODY_TAP_SHORTCUT_TO_ASSIGN_APPLICATION"
-msgstr "Pieskarieties īsceļam, lai piešķirtu programmu"
-
-msgid "IDS_ST_OPT_EDIT_SHORTCUTS"
-msgstr "Rediģēt īsceļus"
-
-msgid "IDS_IM_BODY_HELP_TEXT"
-msgstr "Palīdzības teksts"
-
diff --git a/lock-setting/po/mk.po b/lock-setting/po/mk.po
deleted file mode 100644 (file)
index 2cc2c03..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-msgid "IDS_ST_BODY_LOCK_SCREEN"
-msgstr "Заклучување на екранот"
-
-msgid "IDS_IDLE_BODY_VIEW_EVENT_NOTIFICATIONS_ON_THE_LOCK_SCREEN"
-msgstr "Гледај известувања за настани на екранот за заклучување"
-
-msgid "IDS_IDLE_MBODY_EVENT_NOTIFICATIONS"
-msgstr "Известувања за настани"
-
-msgid "IDS_ST_BODY_CLOCK"
-msgstr "Часовник"
-
-msgid "IDS_ST_BODY_WEATHER"
-msgstr "Време"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS_ON_LOCK_SCREEN"
-msgstr "Постави кратенки на екранот за заклучување"
-
-msgid "IDS_ST_BODY_SHORTCUTS"
-msgstr "Кратенки"
-
-msgid "IDS_ST_BODY_DUAL_CLOCK"
-msgstr "Двоен часовник"
-
-msgid "IDS_ST_BODY_SHOW_HELP_TEXT_ON_LOCK_SCREEN"
-msgstr "Прикажи текст за помош на екранот за заклучување"
-
-msgid "IDS_ST_BODY_SHOW_DUAL_CLOCK_ON_LOCK_SCREEN_WHEN_ROAMING"
-msgstr "Прикажи двоен часовник на екранот за заклучување при роаминг"
-
-msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_WHILE_ROTATING_THE_DEVICE_TO_OPEN_CAMERA"
-msgstr "Допрете и држете го екранот додека го вртите уредот за да го отворите фотоапаратот"
-
-msgid "IDS_ST_MBODY_CAMERA_QUICK_ACCESS"
-msgstr "Брз пристап до камерата"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS"
-msgstr "Одреди кратенки"
-
-msgid "IDS_ST_BODY_DRAG_AND_DROP_TO_CHANGE_ORDER"
-msgstr "Повлечете и пуштете за да го смените редоследот"
-
-msgid "IDS_ST_BODY_SELECT_APPLICATION"
-msgstr "Избери апликација"
-
-msgid "IDS_ST_BODY_TAP_SHORTCUT_TO_ASSIGN_APPLICATION"
-msgstr "Допрете кратенка за да доделите апликација"
-
-msgid "IDS_ST_OPT_EDIT_SHORTCUTS"
-msgstr "Измени кратенки"
-
-msgid "IDS_IM_BODY_HELP_TEXT"
-msgstr "Текст за помош"
-
diff --git a/lock-setting/po/nb.po b/lock-setting/po/nb.po
deleted file mode 100644 (file)
index 167c148..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-msgid "IDS_ST_BODY_LOCK_SCREEN"
-msgstr "Skjermlås"
-
-msgid "IDS_IDLE_BODY_VIEW_EVENT_NOTIFICATIONS_ON_THE_LOCK_SCREEN"
-msgstr "Vis hendelsesvarsler på skjermlåsen"
-
-msgid "IDS_IDLE_MBODY_EVENT_NOTIFICATIONS"
-msgstr "Hendelsesvarsler"
-
-msgid "IDS_ST_BODY_CLOCK"
-msgstr "Klokke"
-
-msgid "IDS_ST_BODY_WEATHER"
-msgstr "Vær"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS_ON_LOCK_SCREEN"
-msgstr "Angi snarveier på skjermlås"
-
-msgid "IDS_ST_BODY_SHORTCUTS"
-msgstr "Snarveier"
-
-msgid "IDS_ST_BODY_DUAL_CLOCK"
-msgstr "Dobbel klokke"
-
-msgid "IDS_ST_BODY_SHOW_HELP_TEXT_ON_LOCK_SCREEN"
-msgstr "Vis hjelpetekst på skjermlås"
-
-msgid "IDS_ST_BODY_SHOW_DUAL_CLOCK_ON_LOCK_SCREEN_WHEN_ROAMING"
-msgstr "Vis dobbel klokke på skjermlås under roaming"
-
-msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_WHILE_ROTATING_THE_DEVICE_TO_OPEN_CAMERA"
-msgstr "Trykk på og hold skjermen mens du roterer enheten for å åpne Kamera"
-
-msgid "IDS_ST_MBODY_CAMERA_QUICK_ACCESS"
-msgstr "Hurtigtilgang til kamera"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS"
-msgstr "Angi snarveier"
-
-msgid "IDS_ST_BODY_DRAG_AND_DROP_TO_CHANGE_ORDER"
-msgstr "Dra og slipp for å endre rekkefølgen"
-
-msgid "IDS_ST_BODY_SELECT_APPLICATION"
-msgstr "Velg program"
-
-msgid "IDS_ST_BODY_TAP_SHORTCUT_TO_ASSIGN_APPLICATION"
-msgstr "Trykk på snarvei for å tilordne program"
-
-msgid "IDS_ST_OPT_EDIT_SHORTCUTS"
-msgstr "Rediger snarveier"
-
-msgid "IDS_IM_BODY_HELP_TEXT"
-msgstr "Hjelpetekst"
-
diff --git a/lock-setting/po/nl_NL.po b/lock-setting/po/nl_NL.po
deleted file mode 100644 (file)
index 9289e1b..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-msgid "IDS_ST_BODY_LOCK_SCREEN"
-msgstr "Vergrendelscherm"
-
-msgid "IDS_IDLE_BODY_VIEW_EVENT_NOTIFICATIONS_ON_THE_LOCK_SCREEN"
-msgstr "Meldingen van agenda-items weergeven op het vergrendelscherm"
-
-msgid "IDS_IDLE_MBODY_EVENT_NOTIFICATIONS"
-msgstr "Meldingen agenda-items"
-
-msgid "IDS_ST_BODY_CLOCK"
-msgstr "Klok"
-
-msgid "IDS_ST_BODY_WEATHER"
-msgstr "Weer"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS_ON_LOCK_SCREEN"
-msgstr "Sneltoetsen instellen op vergrendeld scherm"
-
-msgid "IDS_ST_BODY_SHORTCUTS"
-msgstr "Sneltoetsen"
-
-msgid "IDS_ST_BODY_DUAL_CLOCK"
-msgstr "Twee klokken"
-
-msgid "IDS_ST_BODY_SHOW_HELP_TEXT_ON_LOCK_SCREEN"
-msgstr "Help-tekst op vergrendeld scherm weergeven"
-
-msgid "IDS_ST_BODY_SHOW_DUAL_CLOCK_ON_LOCK_SCREEN_WHEN_ROAMING"
-msgstr "Dubbele klok weergeven op vergrendeld scherm bij roaming"
-
-msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_WHILE_ROTATING_THE_DEVICE_TO_OPEN_CAMERA"
-msgstr "Tik en houd uw vinger op het scherm terwijl u het apparaat draait om de camera te openen"
-
-msgid "IDS_ST_MBODY_CAMERA_QUICK_ACCESS"
-msgstr "Camera ontgrendelen"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS"
-msgstr "Snelkoppelingen instellen"
-
-msgid "IDS_ST_BODY_DRAG_AND_DROP_TO_CHANGE_ORDER"
-msgstr "Sleep en zet neer om volgorde te wijzigen"
-
-msgid "IDS_ST_BODY_SELECT_APPLICATION"
-msgstr "Applicatie selecteren"
-
-msgid "IDS_ST_BODY_TAP_SHORTCUT_TO_ASSIGN_APPLICATION"
-msgstr "Tik op sneltoets om applicatie toe te wijzen"
-
-msgid "IDS_ST_OPT_EDIT_SHORTCUTS"
-msgstr "Sneltoetsen wijzigen"
-
-msgid "IDS_IM_BODY_HELP_TEXT"
-msgstr "Help-tekst"
-
diff --git a/lock-setting/po/pl.po b/lock-setting/po/pl.po
deleted file mode 100644 (file)
index 3d8cbae..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-msgid "IDS_ST_BODY_LOCK_SCREEN"
-msgstr "Ekran blokady"
-
-msgid "IDS_IDLE_BODY_VIEW_EVENT_NOTIFICATIONS_ON_THE_LOCK_SCREEN"
-msgstr "Wyświetlaj powiadomienia o wydarzeniach na ekranie blokady"
-
-msgid "IDS_IDLE_MBODY_EVENT_NOTIFICATIONS"
-msgstr "Powiadomienia o wydarzen."
-
-msgid "IDS_ST_BODY_CLOCK"
-msgstr "Zegar"
-
-msgid "IDS_ST_BODY_WEATHER"
-msgstr "Pogoda"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS_ON_LOCK_SCREEN"
-msgstr "Ustaw skróty na ekranie blokady"
-
-msgid "IDS_ST_BODY_SHORTCUTS"
-msgstr "Skróty klawiszowe"
-
-msgid "IDS_ST_BODY_DUAL_CLOCK"
-msgstr "Zegar podwójny"
-
-msgid "IDS_ST_BODY_SHOW_HELP_TEXT_ON_LOCK_SCREEN"
-msgstr "Pokaż tekst pomocy na ekranie blokady"
-
-msgid "IDS_ST_BODY_SHOW_DUAL_CLOCK_ON_LOCK_SCREEN_WHEN_ROAMING"
-msgstr "Wyświetlanie zegara podwójnego na ekranie blokady podczas roamingu"
-
-msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_WHILE_ROTATING_THE_DEVICE_TO_OPEN_CAMERA"
-msgstr "Obracając urządzenie, dotknij i przytrzymaj ekran, aby otworzyć aparat"
-
-msgid "IDS_ST_MBODY_CAMERA_QUICK_ACCESS"
-msgstr "Skrót aparatu"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS"
-msgstr "Ustawianie skrótów"
-
-msgid "IDS_ST_BODY_DRAG_AND_DROP_TO_CHANGE_ORDER"
-msgstr "Przeciągnij i upuść, aby zmienić kolejność"
-
-msgid "IDS_ST_BODY_SELECT_APPLICATION"
-msgstr "Wybierz aplikację"
-
-msgid "IDS_ST_BODY_TAP_SHORTCUT_TO_ASSIGN_APPLICATION"
-msgstr "Dotknij skrótu, aby przypisać aplikację"
-
-msgid "IDS_ST_OPT_EDIT_SHORTCUTS"
-msgstr "Edytuj skróty"
-
-msgid "IDS_IM_BODY_HELP_TEXT"
-msgstr "Tekst pomocy"
-
diff --git a/lock-setting/po/pt_BR.po b/lock-setting/po/pt_BR.po
deleted file mode 100644 (file)
index 8072ea6..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-msgid "IDS_ST_BODY_LOCK_SCREEN"
-msgstr "Tela de bloqueio"
-
-msgid "IDS_IDLE_BODY_VIEW_EVENT_NOTIFICATIONS_ON_THE_LOCK_SCREEN"
-msgstr "Exibir notificações de eventos na tela de bloqueio"
-
-msgid "IDS_IDLE_MBODY_EVENT_NOTIFICATIONS"
-msgstr "Notificações de evento"
-
-msgid "IDS_ST_BODY_CLOCK"
-msgstr "Relógio"
-
-msgid "IDS_ST_BODY_WEATHER"
-msgstr "Clima"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS_ON_LOCK_SCREEN"
-msgstr "Definir atalhos na tela de bloqueio"
-
-msgid "IDS_ST_BODY_SHORTCUTS"
-msgstr "Atalhos"
-
-msgid "IDS_ST_BODY_DUAL_CLOCK"
-msgstr "Relógio duplo"
-
-msgid "IDS_ST_BODY_SHOW_HELP_TEXT_ON_LOCK_SCREEN"
-msgstr "Exibir texto de ajuda na tela bloqueada"
-
-msgid "IDS_ST_BODY_SHOW_DUAL_CLOCK_ON_LOCK_SCREEN_WHEN_ROAMING"
-msgstr "Mostrar relógio duplo na tela de bloqueio quando em roaming"
-
-msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_WHILE_ROTATING_THE_DEVICE_TO_OPEN_CAMERA"
-msgstr "Toque e segure a tela enquanto gira o dispositivo para abrir a Câmera"
-
-msgid "IDS_ST_MBODY_CAMERA_QUICK_ACCESS"
-msgstr "Acesso rápido à Câmera"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS"
-msgstr "Configurar atalhos"
-
-msgid "IDS_ST_BODY_DRAG_AND_DROP_TO_CHANGE_ORDER"
-msgstr "Arraste e solte para alterar a ordem"
-
-msgid "IDS_ST_BODY_SELECT_APPLICATION"
-msgstr "Selecionar aplicação"
-
-msgid "IDS_ST_BODY_TAP_SHORTCUT_TO_ASSIGN_APPLICATION"
-msgstr "Toque no atalho para atribuir aplicativo"
-
-msgid "IDS_ST_OPT_EDIT_SHORTCUTS"
-msgstr "Editar atalhos"
-
-msgid "IDS_IM_BODY_HELP_TEXT"
-msgstr "Texto de ajuda"
-
diff --git a/lock-setting/po/pt_PT.po b/lock-setting/po/pt_PT.po
deleted file mode 100644 (file)
index 5005ee3..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-msgid "IDS_ST_BODY_LOCK_SCREEN"
-msgstr "Ecrã bloqueado"
-
-msgid "IDS_IDLE_BODY_VIEW_EVENT_NOTIFICATIONS_ON_THE_LOCK_SCREEN"
-msgstr "Ver notificações de eventos no ecrã bloqueado"
-
-msgid "IDS_IDLE_MBODY_EVENT_NOTIFICATIONS"
-msgstr "Notificações de eventos"
-
-msgid "IDS_ST_BODY_CLOCK"
-msgstr "Relógio"
-
-msgid "IDS_ST_BODY_WEATHER"
-msgstr "Tempo"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS_ON_LOCK_SCREEN"
-msgstr "Definir atalhos no ecrã bloqueado"
-
-msgid "IDS_ST_BODY_SHORTCUTS"
-msgstr "Atalhos"
-
-msgid "IDS_ST_BODY_DUAL_CLOCK"
-msgstr "Rel. duplo"
-
-msgid "IDS_ST_BODY_SHOW_HELP_TEXT_ON_LOCK_SCREEN"
-msgstr "Mostrar texto de ajuda no ecrã bloqueado"
-
-msgid "IDS_ST_BODY_SHOW_DUAL_CLOCK_ON_LOCK_SCREEN_WHEN_ROAMING"
-msgstr "Mostrar relógio duplo no ecrã bloqueado em roaming"
-
-msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_WHILE_ROTATING_THE_DEVICE_TO_OPEN_CAMERA"
-msgstr "Toque sem soltar no ecrã ao rodar o dispositivo para abrir a Câmara"
-
-msgid "IDS_ST_MBODY_CAMERA_QUICK_ACCESS"
-msgstr "Acesso rápido à câmara"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS"
-msgstr "Definir atalhos"
-
-msgid "IDS_ST_BODY_DRAG_AND_DROP_TO_CHANGE_ORDER"
-msgstr "Arrastar e largar para alterar a ordem"
-
-msgid "IDS_ST_BODY_SELECT_APPLICATION"
-msgstr "Seleccionar aplicação"
-
-msgid "IDS_ST_BODY_TAP_SHORTCUT_TO_ASSIGN_APPLICATION"
-msgstr "Tocar no atalho para atribuir aplicação"
-
-msgid "IDS_ST_OPT_EDIT_SHORTCUTS"
-msgstr "Editar atalhos"
-
-msgid "IDS_IM_BODY_HELP_TEXT"
-msgstr "Texto de ajuda"
-
diff --git a/lock-setting/po/ro.po b/lock-setting/po/ro.po
deleted file mode 100644 (file)
index d0a832f..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-msgid "IDS_ST_BODY_LOCK_SCREEN"
-msgstr "Blocare ecran"
-
-msgid "IDS_IDLE_BODY_VIEW_EVENT_NOTIFICATIONS_ON_THE_LOCK_SCREEN"
-msgstr "Vizualizaţi pe ecranul blocat notificările privind evenimentul"
-
-msgid "IDS_IDLE_MBODY_EVENT_NOTIFICATIONS"
-msgstr "Notificări eveniment"
-
-msgid "IDS_ST_BODY_CLOCK"
-msgstr "Ceas"
-
-msgid "IDS_ST_BODY_WEATHER"
-msgstr "Vreme"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS_ON_LOCK_SCREEN"
-msgstr "Setare comenzi rapide în ecranul de blocare"
-
-msgid "IDS_ST_BODY_SHORTCUTS"
-msgstr "Comenzi rapide"
-
-msgid "IDS_ST_BODY_DUAL_CLOCK"
-msgstr "Ceas dual"
-
-msgid "IDS_ST_BODY_SHOW_HELP_TEXT_ON_LOCK_SCREEN"
-msgstr "Afişare text asistenţă pe ecranul de blocare"
-
-msgid "IDS_ST_BODY_SHOW_DUAL_CLOCK_ON_LOCK_SCREEN_WHEN_ROAMING"
-msgstr "Afişare ceas dual pe ecranul de blocare în roaming"
-
-msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_WHILE_ROTATING_THE_DEVICE_TO_OPEN_CAMERA"
-msgstr "Ţineţi apăsat pe ecran şi rotiţi dispozitivul pentru a deschide Camera foto"
-
-msgid "IDS_ST_MBODY_CAMERA_QUICK_ACCESS"
-msgstr "Acc. rapid la camera foto"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS"
-msgstr "Setare comenzi rapide"
-
-msgid "IDS_ST_BODY_DRAG_AND_DROP_TO_CHANGE_ORDER"
-msgstr "Glisaţi şi fixaţi pentru schimbarea ordinii"
-
-msgid "IDS_ST_BODY_SELECT_APPLICATION"
-msgstr "Selectare aplicaţie"
-
-msgid "IDS_ST_BODY_TAP_SHORTCUT_TO_ASSIGN_APPLICATION"
-msgstr "Atingeţi comanda rapidă pentru a atribui aplicaţia"
-
-msgid "IDS_ST_OPT_EDIT_SHORTCUTS"
-msgstr "Editare comenzi rapide"
-
-msgid "IDS_IM_BODY_HELP_TEXT"
-msgstr "Text asistenţă"
-
diff --git a/lock-setting/po/ru_RU.po b/lock-setting/po/ru_RU.po
deleted file mode 100644 (file)
index fb29213..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-msgid "IDS_ST_BODY_LOCK_SCREEN"
-msgstr "Экран блокировки"
-
-msgid "IDS_IDLE_BODY_VIEW_EVENT_NOTIFICATIONS_ON_THE_LOCK_SCREEN"
-msgstr "Просмотр уведомлений о событиях на экране блокировки"
-
-msgid "IDS_IDLE_MBODY_EVENT_NOTIFICATIONS"
-msgstr "Уведомления о событиях"
-
-msgid "IDS_ST_BODY_CLOCK"
-msgstr "Часы"
-
-msgid "IDS_ST_BODY_WEATHER"
-msgstr "Погода"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS_ON_LOCK_SCREEN"
-msgstr "Настроить ярлыки на экране блокировки"
-
-msgid "IDS_ST_BODY_SHORTCUTS"
-msgstr "Горячие клавиши"
-
-msgid "IDS_ST_BODY_DUAL_CLOCK"
-msgstr "Двойные часы"
-
-msgid "IDS_ST_BODY_SHOW_HELP_TEXT_ON_LOCK_SCREEN"
-msgstr "Показывать текст справки на экране блокировки"
-
-msgid "IDS_ST_BODY_SHOW_DUAL_CLOCK_ON_LOCK_SCREEN_WHEN_ROAMING"
-msgstr "Показывать двойные часы на экране блокировки в роуминге"
-
-msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_WHILE_ROTATING_THE_DEVICE_TO_OPEN_CAMERA"
-msgstr "Чтобы открыть камеру, прикоснитесь к экрану и, удерживая палец, поверните устройство"
-
-msgid "IDS_ST_MBODY_CAMERA_QUICK_ACCESS"
-msgstr "Быстрый доступ к камере"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS"
-msgstr "Задать ярлыки"
-
-msgid "IDS_ST_BODY_DRAG_AND_DROP_TO_CHANGE_ORDER"
-msgstr "Используйте перетаскивание, чтобы изменить порядок"
-
-msgid "IDS_ST_BODY_SELECT_APPLICATION"
-msgstr "Выбор приложения"
-
-msgid "IDS_ST_BODY_TAP_SHORTCUT_TO_ASSIGN_APPLICATION"
-msgstr "Нажмите ярлык, чтобы назначить приложение"
-
-msgid "IDS_ST_OPT_EDIT_SHORTCUTS"
-msgstr "Изменить ссылки"
-
-msgid "IDS_IM_BODY_HELP_TEXT"
-msgstr "Текст справки"
-
diff --git a/lock-setting/po/sk.po b/lock-setting/po/sk.po
deleted file mode 100644 (file)
index 5c28e7d..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-msgid "IDS_ST_BODY_LOCK_SCREEN"
-msgstr "Uzamknúť obrazovku"
-
-msgid "IDS_IDLE_BODY_VIEW_EVENT_NOTIFICATIONS_ON_THE_LOCK_SCREEN"
-msgstr "Zobraziť oznámenia udalostí na zamknutej obrazovke"
-
-msgid "IDS_IDLE_MBODY_EVENT_NOTIFICATIONS"
-msgstr "Oznámenia udalostí"
-
-msgid "IDS_ST_BODY_CLOCK"
-msgstr "Hodiny"
-
-msgid "IDS_ST_BODY_WEATHER"
-msgstr "Počasie"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS_ON_LOCK_SCREEN"
-msgstr "Nastaviť odkazy na zamknutej obrazovke"
-
-msgid "IDS_ST_BODY_SHORTCUTS"
-msgstr "Skratky"
-
-msgid "IDS_ST_BODY_DUAL_CLOCK"
-msgstr "Duálne hod."
-
-msgid "IDS_ST_BODY_SHOW_HELP_TEXT_ON_LOCK_SCREEN"
-msgstr "Zobraziť text pomocníka na zamknutej obrazovke"
-
-msgid "IDS_ST_BODY_SHOW_DUAL_CLOCK_ON_LOCK_SCREEN_WHEN_ROAMING"
-msgstr "Pri roamingu zobraziť na zamknutej obrazovke duálne hodiny"
-
-msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_WHILE_ROTATING_THE_DEVICE_TO_OPEN_CAMERA"
-msgstr "Ťuknutím na obrazovku a jej podržaním počas otáčania zariadenia môžete otvoriť aplikáciu Fotoaparát"
-
-msgid "IDS_ST_MBODY_CAMERA_QUICK_ACCESS"
-msgstr "Rýchly príst. cez fotoap."
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS"
-msgstr "Nastaviť skratky"
-
-msgid "IDS_ST_BODY_DRAG_AND_DROP_TO_CHANGE_ORDER"
-msgstr "Presunutím môžete zmeniť poradie"
-
-msgid "IDS_ST_BODY_SELECT_APPLICATION"
-msgstr "Vyberte aplikáciu"
-
-msgid "IDS_ST_BODY_TAP_SHORTCUT_TO_ASSIGN_APPLICATION"
-msgstr "Ťuknutím na odkaz priraďte aplikáciu"
-
-msgid "IDS_ST_OPT_EDIT_SHORTCUTS"
-msgstr "Upraviť odkazy"
-
-msgid "IDS_IM_BODY_HELP_TEXT"
-msgstr "Text pomocníka"
-
diff --git a/lock-setting/po/sl.po b/lock-setting/po/sl.po
deleted file mode 100644 (file)
index 805afbc..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-msgid "IDS_ST_BODY_LOCK_SCREEN"
-msgstr "Zaklepanje zaslona"
-
-msgid "IDS_IDLE_BODY_VIEW_EVENT_NOTIFICATIONS_ON_THE_LOCK_SCREEN"
-msgstr "Prikaz obvestil o dogodkih na zaklenjenem zaslonu"
-
-msgid "IDS_IDLE_MBODY_EVENT_NOTIFICATIONS"
-msgstr "Obvestila o dogodkih"
-
-msgid "IDS_ST_BODY_CLOCK"
-msgstr "Ura"
-
-msgid "IDS_ST_BODY_WEATHER"
-msgstr "Vreme"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS_ON_LOCK_SCREEN"
-msgstr "Nastavi bližnjice na zaklenjenem zaslonu"
-
-msgid "IDS_ST_BODY_SHORTCUTS"
-msgstr "Bližnjice"
-
-msgid "IDS_ST_BODY_DUAL_CLOCK"
-msgstr "Dvojna ura"
-
-msgid "IDS_ST_BODY_SHOW_HELP_TEXT_ON_LOCK_SCREEN"
-msgstr "Pokaži besedilo za pomoč na zaklenjenem zaslonu"
-
-msgid "IDS_ST_BODY_SHOW_DUAL_CLOCK_ON_LOCK_SCREEN_WHEN_ROAMING"
-msgstr "Med gostovanjem pokaži dvojno uro na zaklenjenem zaslonu"
-
-msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_WHILE_ROTATING_THE_DEVICE_TO_OPEN_CAMERA"
-msgstr "Pritisnite in pridržite prst na zaslonu in hkrati zavrtite napravo, da odprete kamero"
-
-msgid "IDS_ST_MBODY_CAMERA_QUICK_ACCESS"
-msgstr "Hitri dostop do kamere"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS"
-msgstr "Nastavi bližnjice"
-
-msgid "IDS_ST_BODY_DRAG_AND_DROP_TO_CHANGE_ORDER"
-msgstr "Povlecite in spustite, če želite spremeniti vrstni red"
-
-msgid "IDS_ST_BODY_SELECT_APPLICATION"
-msgstr "Izberite program"
-
-msgid "IDS_ST_BODY_TAP_SHORTCUT_TO_ASSIGN_APPLICATION"
-msgstr "Pritisnite bližnjico, da jo dodelite programu"
-
-msgid "IDS_ST_OPT_EDIT_SHORTCUTS"
-msgstr "Uredi bližnjice"
-
-msgid "IDS_IM_BODY_HELP_TEXT"
-msgstr "Besedilo s pomočjo"
-
diff --git a/lock-setting/po/sr.po b/lock-setting/po/sr.po
deleted file mode 100644 (file)
index c74520f..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-msgid "IDS_ST_BODY_LOCK_SCREEN"
-msgstr "Zaključavanje ekrana"
-
-msgid "IDS_IDLE_BODY_VIEW_EVENT_NOTIFICATIONS_ON_THE_LOCK_SCREEN"
-msgstr "Prikaži obaveštenja o događajima na zaključanom ekranu"
-
-msgid "IDS_IDLE_MBODY_EVENT_NOTIFICATIONS"
-msgstr "Obaveštenja o događaju"
-
-msgid "IDS_ST_BODY_CLOCK"
-msgstr "Sat"
-
-msgid "IDS_ST_BODY_WEATHER"
-msgstr "Vreme"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS_ON_LOCK_SCREEN"
-msgstr "Postavi prečice na zaključanom ekranu"
-
-msgid "IDS_ST_BODY_SHORTCUTS"
-msgstr "Prečice"
-
-msgid "IDS_ST_BODY_DUAL_CLOCK"
-msgstr "Dvostruki sat"
-
-msgid "IDS_ST_BODY_SHOW_HELP_TEXT_ON_LOCK_SCREEN"
-msgstr "Prikaži tekst pomoći na zaključanom ekranu"
-
-msgid "IDS_ST_BODY_SHOW_DUAL_CLOCK_ON_LOCK_SCREEN_WHEN_ROAMING"
-msgstr "Prikaži dvostruki sat na zaključanom ekranu u romingu"
-
-msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_WHILE_ROTATING_THE_DEVICE_TO_OPEN_CAMERA"
-msgstr "Kucni i zadrži ekran tokom rotiranja uređaja da bi otvorio/la kameru"
-
-msgid "IDS_ST_MBODY_CAMERA_QUICK_ACCESS"
-msgstr "Brzi pristup na kameri"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS"
-msgstr "Podesi prečice"
-
-msgid "IDS_ST_BODY_DRAG_AND_DROP_TO_CHANGE_ORDER"
-msgstr "Prevuci i otpusti za promenu redosleda"
-
-msgid "IDS_ST_BODY_SELECT_APPLICATION"
-msgstr "Izaberi aplikaciju"
-
-msgid "IDS_ST_BODY_TAP_SHORTCUT_TO_ASSIGN_APPLICATION"
-msgstr "Kucni prečicu za dodelu aplikacije"
-
-msgid "IDS_ST_OPT_EDIT_SHORTCUTS"
-msgstr "Izmeni prečice"
-
-msgid "IDS_IM_BODY_HELP_TEXT"
-msgstr "Tekst pomoći"
-
diff --git a/lock-setting/po/sv.po b/lock-setting/po/sv.po
deleted file mode 100644 (file)
index ea54af4..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-msgid "IDS_ST_BODY_LOCK_SCREEN"
-msgstr "Låsskärm"
-
-msgid "IDS_IDLE_BODY_VIEW_EVENT_NOTIFICATIONS_ON_THE_LOCK_SCREEN"
-msgstr "Visa händelsemeddelanden på låsskärmen"
-
-msgid "IDS_IDLE_MBODY_EVENT_NOTIFICATIONS"
-msgstr "Händelsemeddelanden"
-
-msgid "IDS_ST_BODY_CLOCK"
-msgstr "Klocka"
-
-msgid "IDS_ST_BODY_WEATHER"
-msgstr "Väder"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS_ON_LOCK_SCREEN"
-msgstr "Ställ in genvägar på låsskärmen"
-
-msgid "IDS_ST_BODY_SHORTCUTS"
-msgstr "Genvägar"
-
-msgid "IDS_ST_BODY_DUAL_CLOCK"
-msgstr "Dubbel klocka"
-
-msgid "IDS_ST_BODY_SHOW_HELP_TEXT_ON_LOCK_SCREEN"
-msgstr "Visa hjälptexten på låsskärmen"
-
-msgid "IDS_ST_BODY_SHOW_DUAL_CLOCK_ON_LOCK_SCREEN_WHEN_ROAMING"
-msgstr "Visa dubbla klockor på låsskärmen vid roaming"
-
-msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_WHILE_ROTATING_THE_DEVICE_TO_OPEN_CAMERA"
-msgstr "Tryck på och håll kvar på skärmen och rotera samtidigt enheten för att öppna Kameran"
-
-msgid "IDS_ST_MBODY_CAMERA_QUICK_ACCESS"
-msgstr "Snabbåtkomst till kameran"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS"
-msgstr "Ställ in genvägar"
-
-msgid "IDS_ST_BODY_DRAG_AND_DROP_TO_CHANGE_ORDER"
-msgstr "Dra och släpp för att ändra ordning"
-
-msgid "IDS_ST_BODY_SELECT_APPLICATION"
-msgstr "Välj program"
-
-msgid "IDS_ST_BODY_TAP_SHORTCUT_TO_ASSIGN_APPLICATION"
-msgstr "Tryck på genväg för att tilldela program"
-
-msgid "IDS_ST_OPT_EDIT_SHORTCUTS"
-msgstr "Redigera genvägar"
-
-msgid "IDS_IM_BODY_HELP_TEXT"
-msgstr "Hjälptext"
-
diff --git a/lock-setting/po/tr_TR.po b/lock-setting/po/tr_TR.po
deleted file mode 100644 (file)
index 8c5ab33..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-msgid "IDS_ST_BODY_LOCK_SCREEN"
-msgstr "Kilit ekranı"
-
-msgid "IDS_IDLE_BODY_VIEW_EVENT_NOTIFICATIONS_ON_THE_LOCK_SCREEN"
-msgstr "Kilit ekranında etkinlik bildirimlerini gör"
-
-msgid "IDS_IDLE_MBODY_EVENT_NOTIFICATIONS"
-msgstr "Etkinlik bildirimleri"
-
-msgid "IDS_ST_BODY_CLOCK"
-msgstr "Saat"
-
-msgid "IDS_ST_BODY_WEATHER"
-msgstr "Hava"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS_ON_LOCK_SCREEN"
-msgstr "Kısayolları kilit ekranında ayarla"
-
-msgid "IDS_ST_BODY_SHORTCUTS"
-msgstr "Kısayollar"
-
-msgid "IDS_ST_BODY_DUAL_CLOCK"
-msgstr "İkili saat"
-
-msgid "IDS_ST_BODY_SHOW_HELP_TEXT_ON_LOCK_SCREEN"
-msgstr "Yardım metnini kilit ekranında göster"
-
-msgid "IDS_ST_BODY_SHOW_DUAL_CLOCK_ON_LOCK_SCREEN_WHEN_ROAMING"
-msgstr "Dolaşımdayken kilit ekranında çift saat göster"
-
-msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_WHILE_ROTATING_THE_DEVICE_TO_OPEN_CAMERA"
-msgstr "Kamerayı açmak için cihazı döndürürken ekrana dokunun ve basılı tutun"
-
-msgid "IDS_ST_MBODY_CAMERA_QUICK_ACCESS"
-msgstr "Kameraya hızlı erişim"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS"
-msgstr "Kısayol ayarla"
-
-msgid "IDS_ST_BODY_DRAG_AND_DROP_TO_CHANGE_ORDER"
-msgstr "Sırayı değiştirmek için sürükle ve bırak"
-
-msgid "IDS_ST_BODY_SELECT_APPLICATION"
-msgstr "Uygulama seç"
-
-msgid "IDS_ST_BODY_TAP_SHORTCUT_TO_ASSIGN_APPLICATION"
-msgstr "Uygulama atamak için kısayola dokun"
-
-msgid "IDS_ST_OPT_EDIT_SHORTCUTS"
-msgstr "Kısayolları düzenle"
-
-msgid "IDS_IM_BODY_HELP_TEXT"
-msgstr "Yardım metni"
-
diff --git a/lock-setting/po/uk.po b/lock-setting/po/uk.po
deleted file mode 100644 (file)
index 67ef257..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-msgid "IDS_ST_BODY_LOCK_SCREEN"
-msgstr "Екран блокування"
-
-msgid "IDS_IDLE_BODY_VIEW_EVENT_NOTIFICATIONS_ON_THE_LOCK_SCREEN"
-msgstr "Перегляд сповіщень про події на екрані блокування"
-
-msgid "IDS_IDLE_MBODY_EVENT_NOTIFICATIONS"
-msgstr "Сповіщення про події"
-
-msgid "IDS_ST_BODY_CLOCK"
-msgstr "Годинник"
-
-msgid "IDS_ST_BODY_WEATHER"
-msgstr "Погода"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS_ON_LOCK_SCREEN"
-msgstr "Встановлення клавіш швидкого доступу на екрані блокування"
-
-msgid "IDS_ST_BODY_SHORTCUTS"
-msgstr "Швидкий доступ"
-
-msgid "IDS_ST_BODY_DUAL_CLOCK"
-msgstr "Подвійний годинник"
-
-msgid "IDS_ST_BODY_SHOW_HELP_TEXT_ON_LOCK_SCREEN"
-msgstr "Відображення тексту довідки на екрані блокування"
-
-msgid "IDS_ST_BODY_SHOW_DUAL_CLOCK_ON_LOCK_SCREEN_WHEN_ROAMING"
-msgstr "Відображення подвійного годинника на екрані блокування під час перебування в роумінгу"
-
-msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_WHILE_ROTATING_THE_DEVICE_TO_OPEN_CAMERA"
-msgstr "Натисніть і утримуйте екран, одночасно обертаючи пристрій, щоб відкрити камеру"
-
-msgid "IDS_ST_MBODY_CAMERA_QUICK_ACCESS"
-msgstr "Швидкий доступ до камери"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS"
-msgstr "Встановлення клавіш швидкого доступу"
-
-msgid "IDS_ST_BODY_DRAG_AND_DROP_TO_CHANGE_ORDER"
-msgstr "Перетягніть, щоб змінити порядок"
-
-msgid "IDS_ST_BODY_SELECT_APPLICATION"
-msgstr "Виберіть програму"
-
-msgid "IDS_ST_BODY_TAP_SHORTCUT_TO_ASSIGN_APPLICATION"
-msgstr "Натисніть клавішу швидкого доступу, щоб призначити програму"
-
-msgid "IDS_ST_OPT_EDIT_SHORTCUTS"
-msgstr "Редагувати клавіші шв. доступу"
-
-msgid "IDS_IM_BODY_HELP_TEXT"
-msgstr "Текст довідки"
-
diff --git a/lock-setting/po/uz.po b/lock-setting/po/uz.po
deleted file mode 100644 (file)
index 280ac1b..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-msgid "IDS_ST_BODY_LOCK_SCREEN"
-msgstr "Bloklash ekrani"
-
-msgid "IDS_IDLE_BODY_VIEW_EVENT_NOTIFICATIONS_ON_THE_LOCK_SCREEN"
-msgstr "Bloklash ekranida hodisa bildirshnomalarini ko‘rib chiqish"
-
-msgid "IDS_IDLE_MBODY_EVENT_NOTIFICATIONS"
-msgstr "Hodisa bildirishnomalari"
-
-msgid "IDS_ST_BODY_CLOCK"
-msgstr "Soat"
-
-msgid "IDS_ST_BODY_WEATHER"
-msgstr "Ob-havo"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS_ON_LOCK_SCREEN"
-msgstr "Bloklash ekranida yorliqlarni o‘rnatish"
-
-msgid "IDS_ST_BODY_SHORTCUTS"
-msgstr "Yorliqlar"
-
-msgid "IDS_ST_BODY_DUAL_CLOCK"
-msgstr "Ikkitali soat"
-
-msgid "IDS_ST_BODY_SHOW_HELP_TEXT_ON_LOCK_SCREEN"
-msgstr "Bloklash ekranida yordam matnini ko‘rsatish"
-
-msgid "IDS_ST_BODY_SHOW_DUAL_CLOCK_ON_LOCK_SCREEN_WHEN_ROAMING"
-msgstr "Rouming vaqtida bloklash ekarnida ikkitali soatni ko‘rsat"
-
-msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_WHILE_ROTATING_THE_DEVICE_TO_OPEN_CAMERA"
-msgstr "Kamerani ochish uchun, aylantirish vaqtida ekranni bosib turing"
-
-msgid "IDS_ST_MBODY_CAMERA_QUICK_ACCESS"
-msgstr "Kameraga tezkor kirish"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS"
-msgstr "Yorliqlarni o‘rnatish"
-
-msgid "IDS_ST_BODY_DRAG_AND_DROP_TO_CHANGE_ORDER"
-msgstr "Tartibni o‘zgartirish uchun tortib o‘tkazing"
-
-msgid "IDS_ST_BODY_SELECT_APPLICATION"
-msgstr "Ilova tanlash"
-
-msgid "IDS_ST_BODY_TAP_SHORTCUT_TO_ASSIGN_APPLICATION"
-msgstr "Ilovani tayinlash uchun yorliqni tanlang"
-
-msgid "IDS_ST_OPT_EDIT_SHORTCUTS"
-msgstr "Yorliqlarni tahrirlash"
-
-msgid "IDS_IM_BODY_HELP_TEXT"
-msgstr "Yordam matni"
-
diff --git a/lock-setting/po/zh_CN.po b/lock-setting/po/zh_CN.po
deleted file mode 100644 (file)
index 776d32c..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-msgid "IDS_ST_BODY_LOCK_SCREEN"
-msgstr "锁定屏幕"
-
-msgid "IDS_IDLE_BODY_VIEW_EVENT_NOTIFICATIONS_ON_THE_LOCK_SCREEN"
-msgstr "在锁屏上查看事件通知"
-
-msgid "IDS_IDLE_MBODY_EVENT_NOTIFICATIONS"
-msgstr "事件通知"
-
-msgid "IDS_ST_BODY_CLOCK"
-msgstr "时钟"
-
-msgid "IDS_ST_BODY_WEATHER"
-msgstr "天气"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS_ON_LOCK_SCREEN"
-msgstr "设置屏幕锁定时的快捷键"
-
-msgid "IDS_ST_BODY_SHORTCUTS"
-msgstr "快捷键"
-
-msgid "IDS_ST_BODY_DUAL_CLOCK"
-msgstr "双时钟"
-
-msgid "IDS_ST_BODY_SHOW_HELP_TEXT_ON_LOCK_SCREEN"
-msgstr "在锁定屏幕时显示帮助文本"
-
-msgid "IDS_ST_BODY_SHOW_DUAL_CLOCK_ON_LOCK_SCREEN_WHEN_ROAMING"
-msgstr "漫游时在锁屏上显示双时钟"
-
-msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_WHILE_ROTATING_THE_DEVICE_TO_OPEN_CAMERA"
-msgstr "点击并按住屏幕同时旋转手机以打开摄像头"
-
-msgid "IDS_ST_MBODY_CAMERA_QUICK_ACCESS"
-msgstr "照相机快速访问"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS"
-msgstr "设置快捷方式"
-
-msgid "IDS_ST_BODY_DRAG_AND_DROP_TO_CHANGE_ORDER"
-msgstr "用拖放的方式调整顺序"
-
-msgid "IDS_ST_BODY_SELECT_APPLICATION"
-msgstr "选择应用程序"
-
-msgid "IDS_ST_BODY_TAP_SHORTCUT_TO_ASSIGN_APPLICATION"
-msgstr "点击快捷方式分配应用程序"
-
-msgid "IDS_ST_OPT_EDIT_SHORTCUTS"
-msgstr "编辑快捷方式"
-
-msgid "IDS_IM_BODY_HELP_TEXT"
-msgstr "帮助文本"
-
diff --git a/lock-setting/po/zh_HK.po b/lock-setting/po/zh_HK.po
deleted file mode 100644 (file)
index 53b912e..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-msgid "IDS_ST_BODY_LOCK_SCREEN"
-msgstr "鎖定螢幕"
-
-msgid "IDS_IDLE_BODY_VIEW_EVENT_NOTIFICATIONS_ON_THE_LOCK_SCREEN"
-msgstr "於鎖定螢幕上檢視事件通知"
-
-msgid "IDS_IDLE_MBODY_EVENT_NOTIFICATIONS"
-msgstr "事件通知"
-
-msgid "IDS_ST_BODY_CLOCK"
-msgstr "時鐘"
-
-msgid "IDS_ST_BODY_WEATHER"
-msgstr "天氣"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS_ON_LOCK_SCREEN"
-msgstr "在鎖定螢幕上設定捷徑"
-
-msgid "IDS_ST_BODY_SHORTCUTS"
-msgstr "捷徑"
-
-msgid "IDS_ST_BODY_DUAL_CLOCK"
-msgstr "雙時鐘"
-
-msgid "IDS_ST_BODY_SHOW_HELP_TEXT_ON_LOCK_SCREEN"
-msgstr "於鎖定螢幕顯示說明文字"
-
-msgid "IDS_ST_BODY_SHOW_DUAL_CLOCK_ON_LOCK_SCREEN_WHEN_ROAMING"
-msgstr "當漫遊時在鎖定螢幕上顯示雙時鐘"
-
-msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_WHILE_ROTATING_THE_DEVICE_TO_OPEN_CAMERA"
-msgstr "輕觸並按住螢幕同時旋轉裝置以開啟相機"
-
-msgid "IDS_ST_MBODY_CAMERA_QUICK_ACCESS"
-msgstr "相機快速捷徑"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS"
-msgstr "設定捷徑"
-
-msgid "IDS_ST_BODY_DRAG_AND_DROP_TO_CHANGE_ORDER"
-msgstr "拖放以更改順序"
-
-msgid "IDS_ST_BODY_SELECT_APPLICATION"
-msgstr "選擇應用程式"
-
-msgid "IDS_ST_BODY_TAP_SHORTCUT_TO_ASSIGN_APPLICATION"
-msgstr "輕觸捷徑以指定應用程式"
-
-msgid "IDS_ST_OPT_EDIT_SHORTCUTS"
-msgstr "編輯捷徑"
-
-msgid "IDS_IM_BODY_HELP_TEXT"
-msgstr "說明文字"
-
diff --git a/lock-setting/po/zh_SG.po b/lock-setting/po/zh_SG.po
deleted file mode 100644 (file)
index c78be58..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-msgid "IDS_ST_BODY_LOCK_SCREEN"
-msgstr "锁定屏幕"
-
-msgid "IDS_IDLE_BODY_VIEW_EVENT_NOTIFICATIONS_ON_THE_LOCK_SCREEN"
-msgstr "在锁屏上查看事件通知"
-
-msgid "IDS_IDLE_MBODY_EVENT_NOTIFICATIONS"
-msgstr "事件通知"
-
-msgid "IDS_ST_BODY_CLOCK"
-msgstr "时钟"
-
-msgid "IDS_ST_BODY_WEATHER"
-msgstr "天气"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS_ON_LOCK_SCREEN"
-msgstr "设置锁屏快捷方式"
-
-msgid "IDS_ST_BODY_SHORTCUTS"
-msgstr "快捷键"
-
-msgid "IDS_ST_BODY_DUAL_CLOCK"
-msgstr "双时钟"
-
-msgid "IDS_ST_BODY_SHOW_HELP_TEXT_ON_LOCK_SCREEN"
-msgstr "在锁定屏幕上显示帮助文本"
-
-msgid "IDS_ST_BODY_SHOW_DUAL_CLOCK_ON_LOCK_SCREEN_WHEN_ROAMING"
-msgstr "漫游时在锁屏上显示双时钟"
-
-msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_WHILE_ROTATING_THE_DEVICE_TO_OPEN_CAMERA"
-msgstr "轻敲并按住屏幕同时旋转设备以打开摄像头"
-
-msgid "IDS_ST_MBODY_CAMERA_QUICK_ACCESS"
-msgstr "摄像头快速访问"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS"
-msgstr "设置快捷方式"
-
-msgid "IDS_ST_BODY_DRAG_AND_DROP_TO_CHANGE_ORDER"
-msgstr "用拖放的方式调整顺序"
-
-msgid "IDS_ST_BODY_SELECT_APPLICATION"
-msgstr "选择应用程序"
-
-msgid "IDS_ST_BODY_TAP_SHORTCUT_TO_ASSIGN_APPLICATION"
-msgstr "轻敲快捷方式分配应用程序"
-
-msgid "IDS_ST_OPT_EDIT_SHORTCUTS"
-msgstr "编辑快捷键"
-
-msgid "IDS_IM_BODY_HELP_TEXT"
-msgstr "帮助文本"
-
diff --git a/lock-setting/po/zh_TW.po b/lock-setting/po/zh_TW.po
deleted file mode 100644 (file)
index 5859f7f..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-msgid "IDS_ST_BODY_LOCK_SCREEN"
-msgstr "鎖定螢幕"
-
-msgid "IDS_IDLE_BODY_VIEW_EVENT_NOTIFICATIONS_ON_THE_LOCK_SCREEN"
-msgstr "於鎖定螢幕上檢視活動通知"
-
-msgid "IDS_IDLE_MBODY_EVENT_NOTIFICATIONS"
-msgstr "活動通知"
-
-msgid "IDS_ST_BODY_CLOCK"
-msgstr "時鐘"
-
-msgid "IDS_ST_BODY_WEATHER"
-msgstr "氣象"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS_ON_LOCK_SCREEN"
-msgstr "在鎖定螢幕上設定捷徑"
-
-msgid "IDS_ST_BODY_SHORTCUTS"
-msgstr "捷徑"
-
-msgid "IDS_ST_BODY_DUAL_CLOCK"
-msgstr "雙時鐘"
-
-msgid "IDS_ST_BODY_SHOW_HELP_TEXT_ON_LOCK_SCREEN"
-msgstr "於鎖定螢幕顯示說明文字"
-
-msgid "IDS_ST_BODY_SHOW_DUAL_CLOCK_ON_LOCK_SCREEN_WHEN_ROAMING"
-msgstr "漫遊時在鎖定螢幕上顯示雙時鐘"
-
-msgid "IDS_ST_BODY_TAP_AND_HOLD_THE_SCREEN_WHILE_ROTATING_THE_DEVICE_TO_OPEN_CAMERA"
-msgstr "輕觸並按住螢幕同時旋轉裝置以開啟相機"
-
-msgid "IDS_ST_MBODY_CAMERA_QUICK_ACCESS"
-msgstr "相機快速捷徑"
-
-msgid "IDS_ST_BODY_SET_SHORTCUTS"
-msgstr "設定捷徑"
-
-msgid "IDS_ST_BODY_DRAG_AND_DROP_TO_CHANGE_ORDER"
-msgstr "拖放以變更順序"
-
-msgid "IDS_ST_BODY_SELECT_APPLICATION"
-msgstr "選擇應用程式"
-
-msgid "IDS_ST_BODY_TAP_SHORTCUT_TO_ASSIGN_APPLICATION"
-msgstr "輕觸捷徑以指定應用程式"
-
-msgid "IDS_ST_OPT_EDIT_SHORTCUTS"
-msgstr "編輯快捷鍵"
-
-msgid "IDS_IM_BODY_HELP_TEXT"
-msgstr "說明文字"
-
diff --git a/packaging/.starter.spec.swp b/packaging/.starter.spec.swp
new file mode 100644 (file)
index 0000000..72fd2e3
Binary files /dev/null and b/packaging/.starter.spec.swp differ
diff --git a/packaging/starter-pre.service b/packaging/starter-pre.service
new file mode 100644 (file)
index 0000000..b9949f2
--- /dev/null
@@ -0,0 +1,6 @@
+[Unit]
+Description=Pre actions for "starter"
+
+[Service]
+Type=oneshot
+ExecStart=/etc/init.d/rd3starter
diff --git a/packaging/starter.changes b/packaging/starter.changes
deleted file mode 100644 (file)
index 1ec467a..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-* Thu Aug  1 21:47:53 UTC 2013 - tracy.graydon@intel.com
-- Fix lang rpmlint errors and invalid group
-
diff --git a/packaging/starter.manifest b/packaging/starter.manifest
deleted file mode 100644 (file)
index 017d22d..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-<manifest>
- <request>
-    <domain name="_"/>
- </request>
-</manifest>
index 63d0e3f..08e4873 100644 (file)
@@ -1,12 +1,16 @@
 [Unit]
 Description=Start the "starter" program
-Before=core-efl.target
-After=boot-animation.service
+Requires=starter-pre.service
+After=starter-pre.service wm_ready.service ac.service deviced.service launchpad-preload.service
 
 [Service]
 ExecStart=/usr/bin/starter
 Restart=always
-RestartSec=3
+RestartSec=0
+KillSignal=SIGKILL
+User=system
+Group=system
+SmackProcessLabel=starter
 
 [Install]
-WantedBy=core-efl.target
+WantedBy=tizen-system.target
index ccd64df..42631ff 100644 (file)
@@ -1,53 +1,58 @@
-%bcond_with x
-%bcond_with wayland
-
+#sbs-git:slp/pkgs/s/starter starter 0.3 f75832f2c50c8930cf1a6bfcffbac648bcde87d9
 Name:       starter
 Summary:    starter
-Version: 0.4.62
-Release:    3
-Group:      Base/Startup
-License:    TO_BE/FILLED_IN
+Version: 0.5.52
+Release:    1
+Group:      TO_BE/FILLED_IN
+License:    Apache-2.0
 Source0:    starter-%{version}.tar.gz
 Source1:    starter.service
 Source2:    starter.path
-Source1001:    starter.manifest
-Requires(post): /usr/bin/vconftool
+Source3:    starter-pre.service
 BuildRequires:  cmake
-BuildRequires:  pkgconfig(ail)
 BuildRequires:  pkgconfig(appcore-efl)
 BuildRequires:  pkgconfig(aul)
 BuildRequires:  pkgconfig(capi-appfw-application)
+BuildRequires:  pkgconfig(capi-appfw-app-manager)
 BuildRequires:  pkgconfig(capi-system-media-key)
+BuildRequires:  pkgconfig(capi-network-bluetooth)
+BuildRequires:  pkgconfig(capi-system-system-settings)
+
+%if "%{?profile}" == "mobile"
+BuildRequires:  tts
+BuildRequires:  tts-devel
+#BuildRequires:  pkgconfig(capi-message-port)
+BuildRequires:  pkgconfig(security-server)
+BuildRequires:  pkgconfig(efl-assist)
+%endif
+
+BuildRequires:  pkgconfig(feedback)
 BuildRequires:  pkgconfig(db-util)
 BuildRequires:  pkgconfig(dlog)
 BuildRequires:  pkgconfig(ecore)
 BuildRequires:  pkgconfig(edje)
-BuildRequires:  pkgconfig(eet)
+BuildRequires: pkgconfig(edbus)
 BuildRequires:  pkgconfig(eina)
 BuildRequires:  pkgconfig(elementary)
 BuildRequires:  pkgconfig(evas)
 BuildRequires:  pkgconfig(glib-2.0)
-BuildRequires:  pkgconfig(heynoti)
-BuildRequires:  pkgconfig(sysman)
 BuildRequires:  pkgconfig(syspopup-caller)
-BuildRequires:  pkgconfig(tapi)
 BuildRequires:  pkgconfig(ui-gadget-1)
-%if %{with x}
-BuildRequires:  pkgconfig(utilX)
-BuildRequires:  pkgconfig(x11)
-BuildRequires:  pkgconfig(xcomposite)
-BuildRequires:  pkgconfig(xext)
-BuildRequires:  pkgconfig(ecore-x)
-%endif
+#BuildRequires:  pkgconfig(utilX)
 BuildRequires:  pkgconfig(vconf)
-BuildRequires:  pkgconfig(capi-system-info)
+BuildRequires: pkgconfig(alarm-service)
 BuildRequires: pkgconfig(pkgmgr-info)
+BuildRequires: pkgconfig(deviced)
+BuildRequires: pkgconfig(edbus)
+BuildRequires:  pkgconfig(dbus-1)
+BuildRequires:  pkgconfig(dbus-glib-1)
+#BuildRequires: model-build-features
 BuildRequires:  cmake
 BuildRequires:  edje-bin
-BuildRequires: gettext
-BuildRequires: gettext-tools
-
+BuildRequires:  gettext
+BuildRequires:  gettext-tools
 Requires(post): /usr/bin/vconftool
+Requires: sys-assert
 
 %define _systemddir /usr/lib/systemd
 %define _userdir %{_systemddir}/user
@@ -56,34 +61,65 @@ Requires(post): /usr/bin/vconftool
 %description
 Description: Starter
 
+
 %prep
 %setup -q
-cp %{SOURCE1001} .
 
 %build
-%cmake . \
-%if %{with wayland} && !%{with x}
--Dwith_wayland=TRUE
+%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 "%{?profile}" == "mobile"
+echo "profile is 'mobile'"
+%define TIZEN_PROFILE_NAME "MOBILE"
+export CFLAGS="$CFLAGS -DTIZEN_PROFILE_MOBILE"
+export CXXFLAGS="$CXXFLAGS -DTIZEN_PROFILE_MOBILE"
+%else if "%{?profile}" == "wearable"
+echo "profile is 'wearable'"
+%define TIZEN_PROFILE_NAME "WEARABLE"
+export CFLAGS="$CFLAGS -DTIZEN_PROFILE_WEARABLE"
+export CXXFLAGS="$CXXFLAGS -DTIZEN_PROFILE_WEARABLE"
+%endif
+
+%ifarch %{arm}
+export CFLAGS="$CFLAGS -DTIZEN_BUILD_TARGET"
+export CXXFLAGS="$CXXFLAGS -DTIZEN_BUILD_TARGET"
 %else
--Dwith_x=TRUE
+export CFLAGS="$CFLAGS -DTIZEN_BUILD_EMULATOR"
+export CXXFLAGS="$CXXFLAGS -DTIZEN_BUILD_EMULATOR"
 %endif
 
+cmake . -DTIZEN_PROFILE_NAME=%{TIZEN_PROFILE_NAME} -DCMAKE_INSTALL_PREFIX=%{_prefix}
+
+make
 make -j1
 %install
 rm -rf %{buildroot}
 %make_install
 
-mkdir -p %{buildroot}/usr/share/license
 mkdir -p %{buildroot}%{_userdir}
 install -m 0644 %SOURCE1 %{buildroot}%{_userdir}/
 install -m 0644 %SOURCE2 %{buildroot}%{_userdir}/
 mkdir -p %{buildroot}%{_wantsdir}
 ln -s ../starter.path %{buildroot}%{_wantsdir}/starter.path
+
+mkdir -p %{buildroot}%{_libdir}/systemd/system/multi-user.target.wants
+install -m 0644 %SOURCE1 %{buildroot}%{_libdir}/systemd/system/starter.service
+install -m 0644 %SOURCE3 %{buildroot}%{_libdir}/systemd/system/starter-pre.service
+ln -s ../starter.service %{buildroot}%{_libdir}/systemd/system/multi-user.target.wants/starter.service
+mkdir -p %{buildroot}%{_libdir}/systemd/system/tizen-system.target.wants
+install -m 0644 %SOURCE2 %{buildroot}%{_libdir}/systemd/system/wait-lock.service
+ln -s ../wait-lock.service %{buildroot}%{_libdir}/systemd/system/tizen-system.target.wants/
 mkdir -p %{buildroot}/usr/share/license
-cp -f LICENSE.Flora %{buildroot}/usr/share/license/%{name}
+cp -f LICENSE %{buildroot}/usr/share/license/%{name}
 mkdir -p %{buildroot}/opt/data/home-daemon
 
-%find_lang ug-lockscreen-options
+mkdir -p %{buildroot}%{_sysconfdir}/systemd/default-extra-dependencies/ignore-units.d/
+ln -s %{_libdir}/systemd/system/starter.service %{buildroot}%{_sysconfdir}/systemd/default-extra-dependencies/ignore-units.d/
+ln -s %{_libdir}/systemd/system/starter-pre.service %{buildroot}%{_sysconfdir}/systemd/default-extra-dependencies/ignore-units.d/
 
 %post
 change_file_executable()
@@ -94,37 +130,61 @@ change_file_executable()
     fi
 }
 
-GOPTION="-u 5000 -f"
+GOPTION="-u 200 -g 5000 -f"
+SOPTION="-s system::vconf_inhouse"
+POPTION="-s starter_private::vconf"
+LOPTION="-s starter::vconf"
+
+vconftool set -t string file/private/lockscreen/pkgname "org.tizen.lockscreen" $GOPTION $POPTION
+vconftool set -t string file/private/lockscreen/default_pkgname "org.tizen.lockscreen" $GOPTION $POPTION
+#vconftool set -t string db/setting/menuscreen/package_name "org.tizen.homescreen" -u 200 -g 200 $SOPTION
+
+vconftool set -t int memory/idle_lock/state 0 -i $GOPTION $LOPTION
+vconftool set -t bool memory/lockscreen/phone_lock_verification 0 -i $GOPTION $SOPTION
+
+vconftool set -t int memory/idle-screen/safemode 0 -i $GOPTION $SOPTION
 
-vconftool set -t int "memory/starter/sequence" 1 -i $GOPTION
-vconftool set -t int "memory/starter/use_volume_key" 0 -i $GOPTION
-vconftool set -t string file/private/lockscreen/pkgname "org.tizen.lockscreen" -u 5000 -g 5000 -f
-vconftool set -t int memory/idle_lock/state "0" -i $GOPTION
-vconftool set -t bool memory/lockscreen/phone_lock_verification 0 -i $GOPTION
+vconftool set -t int memory/starter/sequence 1 -i $GOPTION $SOPTION
+vconftool set -t int memory/starter/use_volume_key 0 -i $GOPTION $SOPTION
+vconftool set -t int db/starter/is_fallback 0 -i $GOPTION $SOPTION
+vconftool set -t string db/starter/fallback_pkg "org.tizen.homescreen" $GOPTION $SOPTION
 
-vconftool set -t bool db/lockscreen/event_notification_display 1 $GOPTION
-vconftool set -t bool db/lockscreen/clock_display 1 $GOPTION
-vconftool set -t bool db/lockscreen/help_text_display 0 $GOPTION
+vconftool set -t int memory/lockscreen/security_auto_lock 1 -i $GOPTION $SOPTION
 
-vconftool set -t int memory/idle-screen/is_idle_screen_launched "0" -i -u 5000 -f
-vconftool set -t int memory/idle-screen/top "0" -i -f
-vconftool set -t int memory/idle-screen/safemode "0" -i -f
+vconftool set -t int file/private/lockscreen/bt_out -70 $GOPTION $POPTION
+vconftool set -t int file/private/lockscreen/bt_in -60 $GOPTION $POPTION
 
-ln -sf /etc/init.d/rd4starter /etc/rc.d/rc4.d/S81starter
-ln -sf /etc/init.d/rd3starter /etc/rc.d/rc3.d/S43starter
 
-%postun -p /sbin/ldconfig
+mkdir -p %{_sysconfdir}/systemd/default-extra-dependencies/ignore-units.d/
+ln -s %{_libdir}/systemd/system/wait-lock.service %{_sysconfdir}/systemd/default-extra-dependencies/ignore-units.d/
 
-%files -f ug-lockscreen-options.lang
-%manifest %{name}.manifest
+#ln -sf /etc/init.d/rd4starter /etc/rc.d/rc4.d/S81starter
+#ln -sf /etc/init.d/rd4starter /etc/rc.d/rc3.d/S81starter
+
+sync
+
+%files
+%manifest starter.manifest
 %defattr(-,root,root,-)
 %{_sysconfdir}/init.d/rd4starter
 %{_sysconfdir}/init.d/rd3starter
 %{_bindir}/starter
-/usr/ug/lib/libug-lockscreen-options.so
-/usr/ug/lib/libug-lockscreen-options.so.0.1.0
+%{_libdir}/systemd/system/starter.service
+%{_libdir}/systemd/system/multi-user.target.wants/starter.service
+%{_sysconfdir}/systemd/default-extra-dependencies/ignore-units.d/starter.service
+%{_libdir}/systemd/system/starter-pre.service
+%{_sysconfdir}/systemd/default-extra-dependencies/ignore-units.d/starter-pre.service
+%{_libdir}/systemd/system/wait-lock.service
+%{_libdir}/systemd/system/tizen-system.target.wants/wait-lock.service
+/usr/share/license/%{name}
+/opt/data/home-daemon
+/usr/share/locale/*/LC_MESSAGES/*
+/etc/smack/accesses.d/starter.efl
+
 %{_userdir}/starter.service
 %{_userdir}/starter.path
 %{_wantsdir}/starter.path
-/usr/share/license/%{name}
-/opt/data/home-daemon
+
+%if "%{?profile}" == "mobile"
+/usr/share/starter/res/edje/*
+%endif
diff --git a/packaging/wait-lock.service b/packaging/wait-lock.service
new file mode 100644 (file)
index 0000000..1147161
--- /dev/null
@@ -0,0 +1,14 @@
+[Unit]
+Description=wait lockscreen
+After=tizen-boot.target boot-animation.service
+Requires=tizen-boot.target
+Before=tizen-system.target
+ConditionPathExists=|/tmp/.passwordlock
+
+[Service]
+Type=oneshot
+ExecStart=/bin/sh -c 'while [ -e /tmp/.passwordlock ]; do sleep 0.5 ; done'
+TimeoutSec=7s
+
+[Install]
+WantedBy=tizen-system.target
diff --git a/po/CMakeLists.txt b/po/CMakeLists.txt
new file mode 100644 (file)
index 0000000..51ec894
--- /dev/null
@@ -0,0 +1,24 @@
+# for i18n
+
+SET(POFILES az.po bg.po ca.po cs.po da.po de.po el_GR.po en.po en_US.po es_ES.po et.po eu.po fi.po fr_CA.po fr.po gl.po hr.po hu.po hy.po is.po it_IT.po ka.po kk.po ko_KR.po lt.po lv.po mn_MN.po nb.po nl.po pl.po pt_BR.po pt_PT.po ro.po ru_RU.po sk.po sl.po sr.po sv.po tr_TR.po uk.po uz.po)
+
+SET(MSGFMT "/usr/bin/msgfmt")
+
+FOREACH(pofile ${POFILES})
+        SET(pofile ${CMAKE_CURRENT_SOURCE_DIR}/${pofile})
+        MESSAGE("PO: ${pofile}")
+        GET_FILENAME_COMPONENT(absPofile ${pofile} ABSOLUTE)
+        GET_FILENAME_COMPONENT(lang ${absPofile} NAME_WE)
+        SET(moFile ${CMAKE_CURRENT_BINARY_DIR}/${lang}.mo)
+        ADD_CUSTOM_COMMAND(
+                        OUTPUT ${moFile}
+                        COMMAND ${MSGFMT} -o ${moFile} ${absPofile}
+                        DEPENDS ${absPofile}
+        )
+        INSTALL(FILES ${moFile}
+                        DESTINATION ${LOCALEDIR}/${lang}/LC_MESSAGES RENAME ${PROJECT_NAME}.mo)
+        SET(moFiles ${moFiles} ${moFile})
+ENDFOREACH(pofile)
+
+MESSAGE(".mo files: ${moFiles}")
+ADD_CUSTOM_TARGET(po ALL DEPENDS ${moFiles})
diff --git a/po/az.po b/po/az.po
new file mode 100644 (file)
index 0000000..7d952f2
--- /dev/null
+++ b/po/az.po
@@ -0,0 +1,57 @@
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "%s-ə başlamaq mümkün deyildir."
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "Xəbərdarlıq"
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "PIN daxil et."
+
+msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB"
+msgstr "Mesaja baxmaq üçün PIN daxil et"
+
+msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB"
+msgstr "Zəng jurnalına baxmaq üçün PIN daxil et"
+
+msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "%d saniyə yenidən cəhd et."
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "Yanlış PIN."
+
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "1 cəhd qalmışdır."
+
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "%d cəhd qalıb."
+
+msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG"
+msgstr "Siz %1$d dəfə cihazın kilidini səhv açmağa cəhd etmisiniz. Sizin cihazın defolt parametrlərinə bərpa edilməsi və bütün məlumatların silinməsi üçün %2$d cəhdiniz qalır."
+
+msgid "IDS_LCKSCN_POP_YOU_HAVE_MADE_P1SD_UNSUCCESSFUL_ATTEMPTS_TO_UNLOCK_YOUR_DEVICE_TRY_AGAIN_IN_P2SD_SECONDS"
+msgstr "Siz cihazı kiliddən açmaq üçün %1$d dəfə uğursuz cəhd etmisiniz. %2$d saniyə ərzində yenidən cəhd edin."
+
+msgid "IDS_LCKSCN_HEADER_UNABLE_TO_UNLOCK_SCREEN_ABB"
+msgstr "Ekr kilid açmaq müm olm"
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "Kodu daxil et."
+
+msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"
+msgstr "%1$d - %2$d rəqəm və ya hərf tələb olunur."
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "Yanlış şifrə."
+
+msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED"
+msgstr "Siz %d dəfə cihazın kilidini səhv açmağa cəhd etmisiniz. Bu, zavod parametrlərinə bərpa edəcək və bütün məlumatlar silinəcək"
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_ST_BUTTON_CANCEL"
+msgstr "Ləğv et"
+
+msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "Təcili zəng"
+
diff --git a/po/bg.po b/po/bg.po
new file mode 100644 (file)
index 0000000..0247ac8
--- /dev/null
+++ b/po/bg.po
@@ -0,0 +1,57 @@
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "Не може да се стартира %s."
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "Предупреждение"
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "Въведете PIN."
+
+msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB"
+msgstr "Въведете PIN за преглед на съобщението"
+
+msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB"
+msgstr "Въведете PIN за преглед на дневника на повикванията"
+
+msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "Опитайте пак след %d сек."
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "Неправилен PIN."
+
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "1 оставащ опит."
+
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "Остават %d опита."
+
+msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG"
+msgstr "Опитахте да отключите устройството неуспешно %1$d пъти. Остават ви още %2$d опита, преди устройството да се рестартира до фабричните настройки по подразбиране и всички данни да бъдат изтрити."
+
+msgid "IDS_LCKSCN_POP_YOU_HAVE_MADE_P1SD_UNSUCCESSFUL_ATTEMPTS_TO_UNLOCK_YOUR_DEVICE_TRY_AGAIN_IN_P2SD_SECONDS"
+msgstr "Направили сте %1$d неуспешни опита да отключите устройството си. Опитайте отново след %2$d секунди."
+
+msgid "IDS_LCKSCN_HEADER_UNABLE_TO_UNLOCK_SCREEN_ABB"
+msgstr "Екранът не може да се отключи"
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "Въвеждане на парола"
+
+msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"
+msgstr "Задължителни са %1$d до %2$d цифри или букви."
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "Грешна парола."
+
+msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED"
+msgstr "Опитахте да отключите устройството неуспешно %d пъти. Сега то ще се рестартира до фабричните настройки по подразбиране и всички данни ще бъдат изтрити."
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_ST_BUTTON_CANCEL"
+msgstr "Отказ"
+
+msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "Спешно повикване"
+
diff --git a/po/ca.po b/po/ca.po
new file mode 100644 (file)
index 0000000..d359ba4
--- /dev/null
+++ b/po/ca.po
@@ -0,0 +1,57 @@
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "No es pot iniciar %s"
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "Advertiment"
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "Introdueixi PIN"
+
+msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB"
+msgstr "Introdueixi el PIN per veure el missatge"
+
+msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB"
+msgstr "Introdueixi el PIN per veure el registre de trucades"
+
+msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "Torni a intentar en %d s"
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "PIN incorrecte"
+
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "Queda 1 intent"
+
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "Queden %d intents"
+
+msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG"
+msgstr "Ha intentat desbloquejar el dispositiu de forma incorrecta %1$d cops. Li queden %2$d intents abans que el dispositiu es restableixi als valors predeterminats de fàbrica i s'esborrin totes les dades."
+
+msgid "IDS_LCKSCN_POP_YOU_HAVE_MADE_P1SD_UNSUCCESSFUL_ATTEMPTS_TO_UNLOCK_YOUR_DEVICE_TRY_AGAIN_IN_P2SD_SECONDS"
+msgstr "Ha intentat desbloquejar el dispositiu de manera incorrecta %1$d cops. Torni-ho a intentar en %2$d segons."
+
+msgid "IDS_LCKSCN_HEADER_UNABLE_TO_UNLOCK_SCREEN_ABB"
+msgstr "No es pot desbloq. la pantalla"
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "Introduir contrasenya"
+
+msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"
+msgstr "Calen de %1$d a %2$d dígits o lletres"
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "Contrasenya incorrecta"
+
+msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED"
+msgstr "Ha intentat desbloquejar el dispositiu de forma incorrecta %d cops. Ara es restablirà als valors predeterminats de fàbrica i s'esborraran totes les dades."
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "Acceptar"
+
+msgid "IDS_ST_BUTTON_CANCEL"
+msgstr "Cancel"
+
+msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "Trucada d'emergència"
+
diff --git a/po/cs.po b/po/cs.po
new file mode 100644 (file)
index 0000000..13d0c23
--- /dev/null
+++ b/po/cs.po
@@ -0,0 +1,57 @@
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "Nelze spustit %s."
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "Upozornění"
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "Zadat PIN."
+
+msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB"
+msgstr "Zadejte PIN kód pro zobrazení zprávy"
+
+msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB"
+msgstr "Zadejte PIN kód pro zobrazení protokolu hovorů"
+
+msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "Opakujte akci za %d s."
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "Chybný PIN."
+
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "Zbývá 1 pokus."
+
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "Počet zbývajících pokusů: %d."
+
+msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG"
+msgstr "%1$dkrát jste se chybně pokusili odemknout zařízení. Po %2$d dalších neúspěšných pokusech se obnoví výchozí nastavení zařízení a všechna data budou vymazána."
+
+msgid "IDS_LCKSCN_POP_YOU_HAVE_MADE_P1SD_UNSUCCESSFUL_ATTEMPTS_TO_UNLOCK_YOUR_DEVICE_TRY_AGAIN_IN_P2SD_SECONDS"
+msgstr "%1$dkrát jste se neúspěšně pokusili odemknout zařízení. Opakujte akci za %2$d sekund."
+
+msgid "IDS_LCKSCN_HEADER_UNABLE_TO_UNLOCK_SCREEN_ABB"
+msgstr "Displej nelze odemknout"
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "Zadejte heslo."
+
+msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"
+msgstr "Musí obsahovat %1$d až %2$d číslic nebo písmen."
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "Nesprávné heslo."
+
+msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED"
+msgstr "%dkrát jste se chybně pokusili odemknout zařízení. Nyní se obnoví výchozí nastavení a všechna data budou vymazána."
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_ST_BUTTON_CANCEL"
+msgstr "Storno"
+
+msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "Tísňové volání"
+
diff --git a/po/da.po b/po/da.po
new file mode 100644 (file)
index 0000000..665ae60
--- /dev/null
+++ b/po/da.po
@@ -0,0 +1,57 @@
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "Kunne ikke starte %s."
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "Advarsel"
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "Angiv PIN-kode."
+
+msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB"
+msgstr "Angiv PIN-kode for at se besked"
+
+msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB"
+msgstr "Angiv PIN-kode for at se opkaldslog"
+
+msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "Prøv igen om %d sekunder."
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "Forkert PIN-kode."
+
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "1 forsøg tilbage."
+
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "%d forsøg tilbage."
+
+msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG"
+msgstr "Du har brugt %1$d forkerte forsøg på at oplåse enheden. Du har %2$d forsøg tilbage, før enheden nulstilles til fabriksstandarderne, og alle data slettes."
+
+msgid "IDS_LCKSCN_POP_YOU_HAVE_MADE_P1SD_UNSUCCESSFUL_ATTEMPTS_TO_UNLOCK_YOUR_DEVICE_TRY_AGAIN_IN_P2SD_SECONDS"
+msgstr "Du har foretaget %1$d mislykkede forsøg på at låse din enhed op. Prøv igen om %2$d sekunder."
+
+msgid "IDS_LCKSCN_HEADER_UNABLE_TO_UNLOCK_SCREEN_ABB"
+msgstr "Kan ikke låse skærmen op"
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "Angiv adgangskode."
+
+msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"
+msgstr "%1$d til %2$d cifre eller bogstaver krævet."
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "Forkert adgangskode."
+
+msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED"
+msgstr "Du har forgæves forsøgt at låse enheden op %d gange. Den nulstilles nu til fabriksstandarderne, og alle data slettes."
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_ST_BUTTON_CANCEL"
+msgstr "Annullér"
+
+msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "Nødopkald"
+
diff --git a/po/de.po b/po/de.po
new file mode 100644 (file)
index 0000000..7a02dda
--- /dev/null
+++ b/po/de.po
@@ -0,0 +1,57 @@
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "%s kann nicht gestartet werden"
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "Warnung"
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "PIN eingeben"
+
+msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB"
+msgstr "Geben Sie die PIN ein, um die Nachricht anzuzeigen."
+
+msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB"
+msgstr "Geben Sie die PIN ein, um das Anrufprotokoll anzuzeigen."
+
+msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "In %d s erneut versuchen."
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "Falsche PIN"
+
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "Noch 1 Versuch"
+
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "%d Versuche übrig"
+
+msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG"
+msgstr "Sie haben %1$d Mal fehlerhaft versucht, das Gerät zu entsperren. Sie haben noch %2$d Versuche. Danach wird das Gerät auf die Werkseinstellungen zurückgesetzt, und alle Daten werden gelöscht."
+
+msgid "IDS_LCKSCN_POP_YOU_HAVE_MADE_P1SD_UNSUCCESSFUL_ATTEMPTS_TO_UNLOCK_YOUR_DEVICE_TRY_AGAIN_IN_P2SD_SECONDS"
+msgstr "Sie haben %1$d Mal vergeblich versucht, das Gerät zu entsperren. Versuchen Sie es in %2$d Sekunden erneut."
+
+msgid "IDS_LCKSCN_HEADER_UNABLE_TO_UNLOCK_SCREEN_ABB"
+msgstr "Entsperren nicht moglich"
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "Passwort eingeben"
+
+msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"
+msgstr "Es sind %1$d bis %2$d Ziffern oder Buchstaben erforderlich."
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "Falsches Passwort"
+
+msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED"
+msgstr "Sie haben %d Mal vergeblich versucht, das Gerät zu entsperren. Das Gerät wird jetzt auf die Werkseinstellungen zurückgesetzt und alle Daten gelöscht."
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_ST_BUTTON_CANCEL"
+msgstr "Abbruch"
+
+msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "Notruf"
+
diff --git a/po/el_GR.po b/po/el_GR.po
new file mode 100644 (file)
index 0000000..dd9d747
--- /dev/null
@@ -0,0 +1,57 @@
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "Αδύνατη η εκκίνηση του %s."
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "Προειδοποίηση"
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "Εισαγωγή PIN κλειδώματος."
+
+msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB"
+msgstr "Καταχώριση PIN για προβολή του μηνύματος"
+
+msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB"
+msgstr "Καταχώριση PIN για προβολή του αρχείου κλήσεων"
+
+msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "Δοκιμ. ξανά σε %d δευτ."
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "Λανθασμένο PIN κλειδώματος"
+
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "Απομένει 1 προσπάθεια."
+
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "%d προσπάθειες απομένουν."
+
+msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG"
+msgstr "Έχετε επιχειρήσει να ξεκλειδώσετε τη συσκευή %1$d φορές εσφαλμένα. Έχουν απομείνει %2$d προσπάθειες μέχρι την επαναφορά των εργοστασιακών ρυθμίσεων και τη διαγραφή όλων των δεδομένων της συσκευής"
+
+msgid "IDS_LCKSCN_POP_YOU_HAVE_MADE_P1SD_UNSUCCESSFUL_ATTEMPTS_TO_UNLOCK_YOUR_DEVICE_TRY_AGAIN_IN_P2SD_SECONDS"
+msgstr "Προσπαθήσατε %1$d φορές να ξεκλειδώσετε τη συσκευή σας χωρίς επιτυχία. Δοκιμάστε ξανά σε %2$d δευτερόλεπτα."
+
+msgid "IDS_LCKSCN_HEADER_UNABLE_TO_UNLOCK_SCREEN_ABB"
+msgstr "Ξεκλείδωμα οθόνης μη δυνατό"
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "Εισαγωγή κωδικού."
+
+msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"
+msgstr "Απαιτούνται από %1$d έως %2$d ψηφία ή γράμματα."
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "Λάθος κωδικός."
+
+msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED"
+msgstr "Έχετε επιχειρήσει να ξεκλειδώσετε τη συσκευή %d φορές εσφαλμένα. Θα γίνει επαναφορά των εργοστασιακών ρυθμίσεων όλα τα δεδομένα θα διαγραφούν."
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_ST_BUTTON_CANCEL"
+msgstr "Ακύρωση"
+
+msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "Κλήση έκτακτης ανάγκης"
+
diff --git a/po/en.po b/po/en.po
new file mode 100644 (file)
index 0000000..095d766
--- /dev/null
+++ b/po/en.po
@@ -0,0 +1,57 @@
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "Unable to launch %s."
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "Warning"
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "Enter PIN."
+
+msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB"
+msgstr "Enter PIN to view message"
+
+msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB"
+msgstr "Enter PIN to view call log"
+
+msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "Try again in %d seconds."
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "Incorrect PIN."
+
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "1 attempt left."
+
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "%d attempts left."
+
+msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG"
+msgstr "You have attempted to unlock the device incorrectly %1$d times. You have %2$d attempts left before the device is reset to factory defaults and all data is erased."
+
+msgid "IDS_LCKSCN_POP_YOU_HAVE_MADE_P1SD_UNSUCCESSFUL_ATTEMPTS_TO_UNLOCK_YOUR_DEVICE_TRY_AGAIN_IN_P2SD_SECONDS"
+msgstr "You have made %1$d unsuccessful attempts to unlock your device. Try again in %2$d seconds."
+
+msgid "IDS_LCKSCN_HEADER_UNABLE_TO_UNLOCK_SCREEN_ABB"
+msgstr "Unable to unlock screen"
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "Enter password."
+
+msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"
+msgstr "%1$d to %2$d digits or letters required."
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "Incorrect password."
+
+msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED"
+msgstr "You have attempted to unlock the device incorrectly %d times. It will now be reset to factory defaults and all data will be erased."
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_ST_BUTTON_CANCEL"
+msgstr "Cancel"
+
+msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "Emergency call"
+
diff --git a/po/en_US.po b/po/en_US.po
new file mode 100644 (file)
index 0000000..e8b6322
--- /dev/null
@@ -0,0 +1,57 @@
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "Unable to launch %s."
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "Warning"
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "Enter PIN"
+
+msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB"
+msgstr "Enter PIN to view message"
+
+msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB"
+msgstr "Enter PIN to view call log"
+
+msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "Try again in %d seconds."
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "Incorrect PIN."
+
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "1 attempt left."
+
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "%d attempts left."
+
+msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG"
+msgstr "You have attempted to unlock the device incorrectly %1$d times. You have %2$d attempts left before the device is reset to factory defaults and all data is erased."
+
+msgid "IDS_LCKSCN_POP_YOU_HAVE_MADE_P1SD_UNSUCCESSFUL_ATTEMPTS_TO_UNLOCK_YOUR_DEVICE_TRY_AGAIN_IN_P2SD_SECONDS"
+msgstr "You have made %1$d unsuccessful attempts to unlock your device. Try again in %2$d seconds."
+
+msgid "IDS_LCKSCN_HEADER_UNABLE_TO_UNLOCK_SCREEN_ABB"
+msgstr "Unable to unlock screen"
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "Enter password"
+
+msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"
+msgstr "%1$d to %2$d digits or letters required."
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "Incorrect password."
+
+msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED"
+msgstr "You have attempted to unlock the device incorrectly %d times. It will now be reset to factory defaults and all data will be erased."
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_ST_BUTTON_CANCEL"
+msgstr "Cancel"
+
+msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "Emergency call"
+
diff --git a/po/es_ES.po b/po/es_ES.po
new file mode 100644 (file)
index 0000000..1eb44bf
--- /dev/null
@@ -0,0 +1,57 @@
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "No se puede iniciar %s"
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "Aviso"
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "Introducir PIN"
+
+msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB"
+msgstr "Introduzca el PIN para ver el mensaje"
+
+msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB"
+msgstr "Introduzca el PIN para ver el registro de llamadas"
+
+msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "Int. de nuevo en %d seg"
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "PIN incorrecto"
+
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "Último intento"
+
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "Quedan %d intentos."
+
+msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG"
+msgstr "Ha intentado desbloquear el dispositivo de forma incorrecta %1$d veces. Le quedan %2$d intentos antes de que el dispositivo se restablezca a los valores predeterminados de fábrica y se eliminen todos los datos."
+
+msgid "IDS_LCKSCN_POP_YOU_HAVE_MADE_P1SD_UNSUCCESSFUL_ATTEMPTS_TO_UNLOCK_YOUR_DEVICE_TRY_AGAIN_IN_P2SD_SECONDS"
+msgstr "Ha intentado desbloquear su dispositivo %1$d veces sin éxito. Vuelva a intentarlo dentro de %2$d segundos."
+
+msgid "IDS_LCKSCN_HEADER_UNABLE_TO_UNLOCK_SCREEN_ABB"
+msgstr "No se puede desbloq pantalla"
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "Introducir contraseña"
+
+msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"
+msgstr "Se requieren de %1$d a %2$d dígitos o letras"
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "Contraseña incorrecta"
+
+msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED"
+msgstr "Ha intentado desbloquear el dispositivo de forma incorrecta %d veces. Ahora se restablecerá a los valores predeterminados de fábrica y se eliminarán todos los datos."
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_ST_BUTTON_CANCEL"
+msgstr "Cancelar"
+
+msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "Llamada de emergencia"
+
diff --git a/po/es_US.po b/po/es_US.po
new file mode 100644 (file)
index 0000000..99df3f4
--- /dev/null
@@ -0,0 +1,57 @@
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "No es posible iniciar %s."
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "Aviso"
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "Introducir PIN."
+
+msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB"
+msgstr "Introducir PIN para ver mensaje"
+
+msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB"
+msgstr "Introducir PIN para ver registro de llamadas"
+
+msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "Intentar de nuevo en %d seg."
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "PIN incorrecto."
+
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "Último intento."
+
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "Quedan %d intentos."
+
+msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG"
+msgstr "Intentó desbloquear el dispositivo incorrectamente %1$d veces. Le quedan %2$d intentos antes de que el dispositivo se restablezca a sus valores predeterminados de fábrica y se eliminen todos los datos."
+
+msgid "IDS_LCKSCN_POP_YOU_HAVE_MADE_P1SD_UNSUCCESSFUL_ATTEMPTS_TO_UNLOCK_YOUR_DEVICE_TRY_AGAIN_IN_P2SD_SECONDS"
+msgstr "Ha intentado desbloquear su dispositivo %1$d veces sin éxito. Vuelva a intentarlo dentro de %2$d segundos."
+
+msgid "IDS_LCKSCN_HEADER_UNABLE_TO_UNLOCK_SCREEN_ABB"
+msgstr "No es posible desbloquear"
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "Introducir contraseña."
+
+msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"
+msgstr "Se requieren de %1$d a %2$d dígitos o letras."
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "Contraseña incorrecta."
+
+msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED"
+msgstr "Intentó desbloquear el dispositivo incorrectamente %d veces. Ahora se restablecerá a sus valores predeterminados de fábrica y se eliminarán todos los datos."
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "Aceptar"
+
+msgid "IDS_ST_BUTTON_CANCEL"
+msgstr "Cancelar"
+
+msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "Llamada de emergencia"
+
diff --git a/po/et.po b/po/et.po
new file mode 100644 (file)
index 0000000..dac6335
--- /dev/null
+++ b/po/et.po
@@ -0,0 +1,57 @@
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "Üksust %s ei saa käivitada."
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "Hoiatus"
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "Sisestage PIN-kood."
+
+msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB"
+msgstr "Sisestage sõnumi kuvamiseks PIN-kood"
+
+msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB"
+msgstr "Sisestage kõnelogi kuvamiseks PIN-kood"
+
+msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "Proovige %d sek parast."
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "Vale PIN-kood."
+
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "1 katse on jäänud."
+
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "%d katset jäänud."
+
+msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG"
+msgstr "Te olete proovinud seadet valesti lukust avada %1$d korda. %2$d katset on jäänud enne, kui seade lähtestatakse tehase vaikeseadetele ja kõik andmed kustutatakse."
+
+msgid "IDS_LCKSCN_POP_YOU_HAVE_MADE_P1SD_UNSUCCESSFUL_ATTEMPTS_TO_UNLOCK_YOUR_DEVICE_TRY_AGAIN_IN_P2SD_SECONDS"
+msgstr "Olete teinud seadme avamisel %1$d ebaõnnestunud katset. Proovige %2$d sekundi pärast uuesti."
+
+msgid "IDS_LCKSCN_HEADER_UNABLE_TO_UNLOCK_SCREEN_ABB"
+msgstr "Ekraani ei saa avada"
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "Sisestage parool."
+
+msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"
+msgstr "Nõutud on %1$d kuni %2$d numbrit või tähte."
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "Vale parool."
+
+msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED"
+msgstr "Te olete proovinud seadet valesti lukust avada %d korda. Nüüd lähtestatakse see tehase vaikeseadetele ning kõik andmed kustutatakse."
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_ST_BUTTON_CANCEL"
+msgstr "Tühista"
+
+msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "Hädaabikõne"
+
diff --git a/po/eu.po b/po/eu.po
new file mode 100644 (file)
index 0000000..6fc807e
--- /dev/null
+++ b/po/eu.po
@@ -0,0 +1,57 @@
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "Ezin da %s abiatu"
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "Oharra"
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "PINa idatzi"
+
+msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB"
+msgstr "Idatzi PINa mezua ikusteko"
+
+msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB"
+msgstr "Idatzi PINa dei erregistroa ikusteko"
+
+msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "Saiatu berriz %d segundoren ondoren"
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "PIN okerra"
+
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "Ahalegin 1 gelditzen zaizu"
+
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "%d saiakera geratzen dira"
+
+msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG"
+msgstr "Gailua modu desegokian desblokeatzen saiatu zara %1$d aldiz. %2$d saio geratzen zaizkizu gailuan fabrikako hobespenak berrezarri eta datu guztiak ezabatu aurretik."
+
+msgid "IDS_LCKSCN_POP_YOU_HAVE_MADE_P1SD_UNSUCCESSFUL_ATTEMPTS_TO_UNLOCK_YOUR_DEVICE_TRY_AGAIN_IN_P2SD_SECONDS"
+msgstr "Gailua desblokeatzeko %1$d saio oker egin dituzu. Saiatu berriz %2$d segundo barru."
+
+msgid "IDS_LCKSCN_HEADER_UNABLE_TO_UNLOCK_SCREEN_ABB"
+msgstr "Ezin izan da pantaila desblokeatu"
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "Pasahitza idatzi"
+
+msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"
+msgstr "%1$d eta %2$d digitu edo letra artean behar dira"
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "Pasahitz okerra"
+
+msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED"
+msgstr "Gailua modu desegokian desblokeatzen saiatu zara %d aldiz. Orain, fabrikako hobespenak berrezarri eta datu guztiak ezabatuko dira."
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "Ados"
+
+msgid "IDS_ST_BUTTON_CANCEL"
+msgstr "Ezeztatu"
+
+msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "Emergentzia deia"
+
diff --git a/po/fi.po b/po/fi.po
new file mode 100644 (file)
index 0000000..ccd0f4c
--- /dev/null
+++ b/po/fi.po
@@ -0,0 +1,57 @@
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "Sovellusta %s ei voi käynnistää."
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "Varoitus"
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "Anna PIN-koodi."
+
+msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB"
+msgstr "Anna PIN-koodi viestin tarkastelua varten"
+
+msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB"
+msgstr "Anna PIN-koodi puhelulokin tarkastelua varten"
+
+msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "Yritä %d s kul. uudelleen."
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "Virheellinen PIN-koodi."
+
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "1 yritys jäljellä"
+
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "%d yritystä jäljellä"
+
+msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG"
+msgstr "Olet yrittänyt poistaa laitteen lukituksen virheellisesti %1$d kertaa. Sinulla on %2$d yrityskertaa jäljellä, ennen kuin laitteen tehdasasetukset palautetaan ja kaikki tiedot poistetaan."
+
+msgid "IDS_LCKSCN_POP_YOU_HAVE_MADE_P1SD_UNSUCCESSFUL_ATTEMPTS_TO_UNLOCK_YOUR_DEVICE_TRY_AGAIN_IN_P2SD_SECONDS"
+msgstr "Laitteen lukituksen poistaminen epäonnistui %1$d kertaa. Yritä %2$d sekunnin kuluttua uudelleen."
+
+msgid "IDS_LCKSCN_HEADER_UNABLE_TO_UNLOCK_SCREEN_ABB"
+msgstr "Näytön lukit. ei voi poistaa"
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "Kirjoita salasana."
+
+msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"
+msgstr "Oltava %1$d–%2$d numeroa tai kirjainta."
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "Virheellinen salasana"
+
+msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED"
+msgstr "Olet yrittänyt poistaa laitteen lukituksen virheellisesti %d kertaa. Laitteen tehdasasetukset palautetaan ja kaikki tiedot poistetaan."
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_ST_BUTTON_CANCEL"
+msgstr "Peruuta"
+
+msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "Hätäpuhelu"
+
diff --git a/po/fr.po b/po/fr.po
new file mode 100644 (file)
index 0000000..d6c48b6
--- /dev/null
+++ b/po/fr.po
@@ -0,0 +1,57 @@
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "Impossible de lancer %s."
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "Avertissement"
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "Saisir le code PIN."
+
+msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB"
+msgstr "Saisir le code PIN pour afficher le message"
+
+msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB"
+msgstr "Saisir le code PIN pour afficher le journal d'appels"
+
+msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "Réessayez dans %d secondes."
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "Code PIN incorrect"
+
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "1 essai restant"
+
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "%d essais restants"
+
+msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG"
+msgstr "Vous avez essayé de déverrouiller l'appareil de façon incorrecte à %1$d reprises. Il reste %2$d tentatives avant le rétablissement des paramètres d'origine et la suppression de toutes les données."
+
+msgid "IDS_LCKSCN_POP_YOU_HAVE_MADE_P1SD_UNSUCCESSFUL_ATTEMPTS_TO_UNLOCK_YOUR_DEVICE_TRY_AGAIN_IN_P2SD_SECONDS"
+msgstr "Le déverrouillage de votre appareil a échoué à %1$d reprises. Réessayez dans %2$d secondes."
+
+msgid "IDS_LCKSCN_HEADER_UNABLE_TO_UNLOCK_SCREEN_ABB"
+msgstr "Impossible déverrouiller écran"
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "Saisir le mot de passe."
+
+msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"
+msgstr "%1$d à %2$d chiffres ou lettres requis"
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "Mot de passe incorrect"
+
+msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED"
+msgstr "Vous avez essayé de déverrouiller l'appareil de façon incorrecte à %d reprises. Les paramètres d'origine vont maintenant être rétablis et toutes les données effacées."
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_ST_BUTTON_CANCEL"
+msgstr "Annuler"
+
+msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "Appel d'urgence"
+
diff --git a/po/fr_CA.po b/po/fr_CA.po
new file mode 100644 (file)
index 0000000..9e115c7
--- /dev/null
@@ -0,0 +1,57 @@
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "Impossible de lancer %s."
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "Avertissement"
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "Saisir le NIP."
+
+msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB"
+msgstr "Saisir le code NIP pour afficher le message"
+
+msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB"
+msgstr "Saisir le code NIP pour afficher le journal d'appels"
+
+msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "Réessayez ds %d secondes."
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "NIP incorrect"
+
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "1 essai restant."
+
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "%d essais restants."
+
+msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG"
+msgstr "Vous avez essayé de déverrouiller l'appareil de façon incorrecte à %1$d reprises. Il reste %2$d tentatives avant le rétablissement des paramètres d'origine et la suppression de toutes les données."
+
+msgid "IDS_LCKSCN_POP_YOU_HAVE_MADE_P1SD_UNSUCCESSFUL_ATTEMPTS_TO_UNLOCK_YOUR_DEVICE_TRY_AGAIN_IN_P2SD_SECONDS"
+msgstr "Le déverrouillage de votre appareil a échoué à %1$d reprises. Réessayez dans %2$d secondes."
+
+msgid "IDS_LCKSCN_HEADER_UNABLE_TO_UNLOCK_SCREEN_ABB"
+msgstr "Impossible déverrouiller écran"
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "Saisir le mot de passe."
+
+msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"
+msgstr "%1$d à %2$d chiffres ou lettres requis."
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "Mot de passe incorrect."
+
+msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED"
+msgstr "Vous avez essayé de déverrouiller l'appareil de façon incorrecte à %d reprises. Les paramètres d'origine vont maintenant être rétablis et toutes les données effacées."
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_ST_BUTTON_CANCEL"
+msgstr "Annuler"
+
+msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "Appel d'urgence"
+
diff --git a/po/gl.po b/po/gl.po
new file mode 100644 (file)
index 0000000..0b8cf03
--- /dev/null
+++ b/po/gl.po
@@ -0,0 +1,57 @@
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "Non se pode iniciar %s"
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "Aviso"
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "Introducir PIN"
+
+msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB"
+msgstr "Introduce o PIN para ver a mensaxe"
+
+msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB"
+msgstr "Introduce o PIN para ver o rexistro de chamadas"
+
+msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "Ténteo de novo en %d seg."
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "PIN incorrecto"
+
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "Queda 1 intento"
+
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "Quedan %d intentos"
+
+msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG"
+msgstr "Tentaches desbloquear o dispositivo incorrectamente %1$d veces. Quédanche %2$d intentos antes de que se restablezan os axustes predeterminados de fábrica e se eliminen todos os datos do dispositivo."
+
+msgid "IDS_LCKSCN_POP_YOU_HAVE_MADE_P1SD_UNSUCCESSFUL_ATTEMPTS_TO_UNLOCK_YOUR_DEVICE_TRY_AGAIN_IN_P2SD_SECONDS"
+msgstr "Realizaches %1$d intentos sen éxito de desbloquear o dispositivo. Téntao de novo dentro de %2$d segundos."
+
+msgid "IDS_LCKSCN_HEADER_UNABLE_TO_UNLOCK_SCREEN_ABB"
+msgstr "Imposible desbloquear pantalla"
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "Introduza o contrasinal"
+
+msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"
+msgstr "Precísanse entre %1$d e %2$d díxitos ou letras"
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "Contrasinal non válido"
+
+msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED"
+msgstr "Tentaches desbloquear o dispositivo incorrectamente %d veces. Agora restableceranse os axustes predeterminados de fábrica e borraranse todos os datos."
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "Aceptar"
+
+msgid "IDS_ST_BUTTON_CANCEL"
+msgstr "Cancelar"
+
+msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "Chamada de urxencia"
+
diff --git a/po/hr.po b/po/hr.po
new file mode 100644 (file)
index 0000000..2922fde
--- /dev/null
+++ b/po/hr.po
@@ -0,0 +1,57 @@
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "Nemoguće pokrenuti %s."
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "Upozorenje"
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "Unesite PIN."
+
+msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB"
+msgstr "Unesite PIN za prikaz poruke"
+
+msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB"
+msgstr "Unesite PIN za prikaz popisa poziva"
+
+msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "Ponovite nakon %d sek."
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "Neispravan PIN."
+
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "Još 1 pokušaj."
+
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "%d pokušaja preostalo."
+
+msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG"
+msgstr "Pokušali ste neispravno otključati uređaj %1$d puta. Imate još %2$d pokušaja prije nego što se uređaj vrati na tvornički zadane postavke te se svi podaci izbrišu."
+
+msgid "IDS_LCKSCN_POP_YOU_HAVE_MADE_P1SD_UNSUCCESSFUL_ATTEMPTS_TO_UNLOCK_YOUR_DEVICE_TRY_AGAIN_IN_P2SD_SECONDS"
+msgstr "Neuspješno ste pokušali otključati uređaj %1$d puta. Pokušajte ponovno za %2$d sekundi."
+
+msgid "IDS_LCKSCN_HEADER_UNABLE_TO_UNLOCK_SCREEN_ABB"
+msgstr "Nije moguće otključati zaslon"
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "Unesite lozinku."
+
+msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"
+msgstr "Potrebno je %1$d do %2$d znamenki ili slova."
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "Neispravna lozinka."
+
+msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED"
+msgstr "Pokušali ste neispravno otključati uređaj %d puta. Vratit će se na tvornički zadane postavke i svi će podaci biti izbrisani."
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_ST_BUTTON_CANCEL"
+msgstr "Prekid"
+
+msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "SOS poziv"
+
diff --git a/po/hu.po b/po/hu.po
new file mode 100644 (file)
index 0000000..92f5620
--- /dev/null
+++ b/po/hu.po
@@ -0,0 +1,57 @@
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "A(z) %s nem indítható el."
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "Figyelmeztetés"
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "Írja be a PIN-kódot!"
+
+msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB"
+msgstr "Adja meg a PIN-t az üzenet megjelenítéséhez"
+
+msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB"
+msgstr "Adja meg a PIN-t a hívásnapló megjelenítéséhez"
+
+msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "Prób. újra %d mp múlva."
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "Hibás PIN-kód"
+
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "Még 1 próbálkozásra van."
+
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "%d kísérlet maradt."
+
+msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG"
+msgstr "%1$d alkalommal helytelenül kísérelte meg az eszköz feloldását. További %2$d sikertelen kísérlet esetén visszaállnak az eszköz gyári alapértelmezései, és minden adat törlődik róla."
+
+msgid "IDS_LCKSCN_POP_YOU_HAVE_MADE_P1SD_UNSUCCESSFUL_ATTEMPTS_TO_UNLOCK_YOUR_DEVICE_TRY_AGAIN_IN_P2SD_SECONDS"
+msgstr "%1$d alkalommal sikertelenül próbálta feloldani az eszközt. Próbálja újra %2$d másodperc múlva."
+
+msgid "IDS_LCKSCN_HEADER_UNABLE_TO_UNLOCK_SCREEN_ABB"
+msgstr "Nem oldható fel a képernyő"
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "Írja be a jelszót."
+
+msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"
+msgstr "%1$d–%2$d számjegy vagy betű szükséges."
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "Téves jelszó"
+
+msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED"
+msgstr "%d alkalommal helytelenül kísérelte meg az eszköz feloldását. Most visszaállnak az eszköz gyári alapértelmezései, és minden adat törlődik róla."
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_ST_BUTTON_CANCEL"
+msgstr "Mégse"
+
+msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "Segélyhívás"
+
diff --git a/po/hy.po b/po/hy.po
new file mode 100644 (file)
index 0000000..1fd5932
--- /dev/null
+++ b/po/hy.po
@@ -0,0 +1,57 @@
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "Հնարավոր չէ գործարկել %s-ը:"
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "Զգուշացում"
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "Մուտքագրեք PIN-ը:"
+
+msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB"
+msgstr "Մուտքագրեք PIN՝ հաղորդագրությունը դիտելու համար"
+
+msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB"
+msgstr "Մուտքագրեք PIN՝ կանչերի մատյանը դիտելու համար"
+
+msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "Նորից փորձեք %d վրկ.-ից:"
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "Սխալ PIN:"
+
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "1 փորձ է մնացել:"
+
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "Մնացել է %d փորձ:"
+
+msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG"
+msgstr "Դուք սարքի արգելաբացման սխալ փորձ եք արել %1$d անգամ: Ձեզ %2$d փորձ է մնացել, նախքան սարքը կհետադարձվի գործարանային կանխադրվածքի, և բոլոր տվյալները կջնջվեն:"
+
+msgid "IDS_LCKSCN_POP_YOU_HAVE_MADE_P1SD_UNSUCCESSFUL_ATTEMPTS_TO_UNLOCK_YOUR_DEVICE_TRY_AGAIN_IN_P2SD_SECONDS"
+msgstr "Դուք կատարել եք Ձեր սարքն արգելաբացելու %1$d անհաջող փորձ: Նորից փորձեք %2$d վայրկյանից:"
+
+msgid "IDS_LCKSCN_HEADER_UNABLE_TO_UNLOCK_SCREEN_ABB"
+msgstr "Անհնար է արգելաբացել էկրանը"
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "Մուտքագրեք գաղտնաբառը:"
+
+msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"
+msgstr "Պահանջվում է %1$d-ից %2$d թվանշան կամ տառ:"
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "Սխալ գաղտնաբառ:"
+
+msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED"
+msgstr "Դուք սարքի արգելաբացման սխալ փորձ եք արել %d անգամ: Այն հիմա կհետադարձվի գործարանային կանխադրվածքի, և բոլոր տվյալները կջնջվեն"
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_ST_BUTTON_CANCEL"
+msgstr "Չեղարկել"
+
+msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "Հրատապ զանգ"
+
diff --git a/po/is.po b/po/is.po
new file mode 100644 (file)
index 0000000..ac0da16
--- /dev/null
+++ b/po/is.po
@@ -0,0 +1,57 @@
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "Mistókst að opna %s."
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "Viðvörun"
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "Sláðu inn PIN-númeri."
+
+msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB"
+msgstr "Sláðu inn PIN-númer til að skoða skilaboð"
+
+msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB"
+msgstr "Sláðu inn PIN-númer til að skoða símtalaskrá"
+
+msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "Reyndu aftur eftir %d sek."
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "Rangt PIN-númer."
+
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "1 tilraun eftir."
+
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "%d tilraunir eftir."
+
+msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG"
+msgstr "Þú hefur reynt að opna tækið á rangan hátt %1$d sinnum. Þú átt %2$d tilraunir eftir áður en tækið verður núllstillt og öllum gögnum þess eytt."
+
+msgid "IDS_LCKSCN_POP_YOU_HAVE_MADE_P1SD_UNSUCCESSFUL_ATTEMPTS_TO_UNLOCK_YOUR_DEVICE_TRY_AGAIN_IN_P2SD_SECONDS"
+msgstr "Þú hefur gert %1$d misheppnaðar tilraunir til að opna tækið. Reyndu aftur eftir %2$d sekúndur."
+
+msgid "IDS_LCKSCN_HEADER_UNABLE_TO_UNLOCK_SCREEN_ABB"
+msgstr "Ekki er hægt að opna skjá"
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "Rita aðgangsorð."
+
+msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"
+msgstr "Slá þarf inn %1$d til %2$d stafi."
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "Rangt aðgangsorð."
+
+msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED"
+msgstr "Þú hefur reynt að opna tækið á rangan hátt %d sinnum. Það verður nú endurstillt á grunnstillingar framleiðanda og öllum gögnum verður eytt."
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "Í lagi"
+
+msgid "IDS_ST_BUTTON_CANCEL"
+msgstr "Hætta v."
+
+msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "Neyðarhringing"
+
diff --git a/po/it_IT.po b/po/it_IT.po
new file mode 100644 (file)
index 0000000..1f8b41e
--- /dev/null
@@ -0,0 +1,57 @@
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "Impossibile avviare %s."
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "Avviso"
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "Inserisci PIN."
+
+msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB"
+msgstr "Inserite il PIN per visualizzare il messaggio"
+
+msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB"
+msgstr "Inserite il PIN per visualizzare il registro chiamate"
+
+msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "Riprovate tra %d secondi."
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "PIN errato."
+
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "1 tentativo rimasto."
+
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "%d tentativi rimasti."
+
+msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG"
+msgstr "Avete tentato per %1$d volte di sbloccare il dispositivo in modo errato. Sono rimasti %2$d tentativi prima che il dispositivo venga ripristinato ai valori predefiniti di fabbrica e che tutti i dati vengano eliminati."
+
+msgid "IDS_LCKSCN_POP_YOU_HAVE_MADE_P1SD_UNSUCCESSFUL_ATTEMPTS_TO_UNLOCK_YOUR_DEVICE_TRY_AGAIN_IN_P2SD_SECONDS"
+msgstr "Avete effettuato %1$d tentativi errati per sbloccare il dispositivo. Riprovate tra %2$d secondi."
+
+msgid "IDS_LCKSCN_HEADER_UNABLE_TO_UNLOCK_SCREEN_ABB"
+msgstr "Impossibile sbloccare schermo"
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "Inserisci password."
+
+msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"
+msgstr "Sono necessarie da %1$d a %2$d cifre o lettere."
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "Password errata."
+
+msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED"
+msgstr "%d tentativi errati di sblocco del dispositivo. Il dispositivo verrà ripristinato ai valori predefiniti di fabbrica e i dati verranno eliminati."
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_ST_BUTTON_CANCEL"
+msgstr "Annulla"
+
+msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "Chiamata di emergenza"
+
diff --git a/po/ka.po b/po/ka.po
new file mode 100644 (file)
index 0000000..2a7888e
--- /dev/null
+++ b/po/ka.po
@@ -0,0 +1,57 @@
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "ვერ გაიხსნება %s."
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "გაფრთხილება"
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "შეიყვანეთ PIN."
+
+msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB"
+msgstr "შეიყვანეთ PIN, რომ ნახოთ შეტყობინება"
+
+msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB"
+msgstr "შეიყვანეთ PIN, რომ ნახოთ ზარების ჟურნალი"
+
+msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "კიდევ ცადეთ %d წამში."
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "არასწორი PIN."
+
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "დარჩა 1 ცდა."
+
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "%d ცდა დარჩა."
+
+msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG"
+msgstr "თქვენ აპარატის განბლოკვის %1$d არასწორი მცდელობა გქონდათ. თქვენ დაგრჩათ %2$d მცდელობა, სანამ დაბრუნდება აპარატის საწყისი ქარხნული პარამეტრები და წაიშლება ყველა მონაცემი."
+
+msgid "IDS_LCKSCN_POP_YOU_HAVE_MADE_P1SD_UNSUCCESSFUL_ATTEMPTS_TO_UNLOCK_YOUR_DEVICE_TRY_AGAIN_IN_P2SD_SECONDS"
+msgstr "თქვენ გქონდათ აპარატის განბლოკვის %1$d წარუმატებელი მცდელობა. ისევ სცადეთ %2$d წამში."
+
+msgid "IDS_LCKSCN_HEADER_UNABLE_TO_UNLOCK_SCREEN_ABB"
+msgstr "ეკრანის განბლოკვა შეუძლებელია"
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "პაროლის შეყვანა."
+
+msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"
+msgstr "უნდა იყოს %1$d-%2$d ციფრი ან ასო."
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "პაროლი არასწორია."
+
+msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED"
+msgstr "თქვენ აპარატის განბლოკვის %d არასწორი მცდელობა გქონდათ. ახლა დაბრუნდება საწყისი ქარხნული პარამეტრები და წაიშლება ყველა მონაცემი"
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_ST_BUTTON_CANCEL"
+msgstr "გაუქმება"
+
+msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "საგანგებო ზარი"
+
diff --git a/po/kk.po b/po/kk.po
new file mode 100644 (file)
index 0000000..246740a
--- /dev/null
+++ b/po/kk.po
@@ -0,0 +1,57 @@
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "%s іске қосу мүмкін емес."
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "Ескерту"
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "PIN енгізу."
+
+msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB"
+msgstr "Хабарды көру үшін, PIN кодын енгізу"
+
+msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB"
+msgstr "Қоңыраулар журналын көру үшін, PIN кодын енгізу"
+
+msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "%d сек кейін қайталаңыз."
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "Қате PIN."
+
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "1 әрекет қалды."
+
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "%d әрекеттену аяқталды."
+
+msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG"
+msgstr "Құрылғының құлпын ашуда %1$d рет қателестіңіз. Құрылғының зауыттық параметрлері қалпына келтіріліп, барлық деректердің өшірілуінен бұрын %2$d талпынысыңыз қалды."
+
+msgid "IDS_LCKSCN_POP_YOU_HAVE_MADE_P1SD_UNSUCCESSFUL_ATTEMPTS_TO_UNLOCK_YOUR_DEVICE_TRY_AGAIN_IN_P2SD_SECONDS"
+msgstr "Құрылғы құлпын ашу үшін, %1$d рет сәтсіз әрекет жасалды. Әрекетті %2$d секундтан кейін қайталаңыз."
+
+msgid "IDS_LCKSCN_HEADER_UNABLE_TO_UNLOCK_SCREEN_ABB"
+msgstr "Экран құлпын ашу мүмкін емес"
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "Кілтсөз енгізіңіз."
+
+msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"
+msgstr "%1$d-%2$d сан немесе әріп талап етіледі."
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "Қате кілтсөз."
+
+msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED"
+msgstr "%d рет дұрыс емес құрылғының құлпын ашу әрекетін жасадыңыз. Зауыттық әдепкі параметрлер қалпына келтіріліп, бүкіл деректер өшіріледі"
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_ST_BUTTON_CANCEL"
+msgstr "Тоқтату"
+
+msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "Шұғыл қоңырау шалу"
+
diff --git a/po/ko_KR.po b/po/ko_KR.po
new file mode 100644 (file)
index 0000000..d45618f
--- /dev/null
@@ -0,0 +1,57 @@
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "%s을(를) 실행할 수 없습니다."
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "경고"
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "PIN을 입력하세요."
+
+msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB"
+msgstr "메시지를 보려면 PIN을 입력하세요"
+
+msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB"
+msgstr "통화기록을 보려면 PIN을 입력하세요"
+
+msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "%d초 후에 다시 시도하세요."
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "잘못된 PIN을 입력하였습니다."
+
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "입력 기회가 1회 남았습니다."
+
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "입력 기회가 %d회 남았습니다."
+
+msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG"
+msgstr "잠금해제 비밀번호를 %1$d회 잘못 입력하였습니다. 디바이스 설정 및 데이터가 기본 설정으로 초기화되기까지 비밀번호를 %2$d회 입력할 수 있습니다."
+
+msgid "IDS_LCKSCN_POP_YOU_HAVE_MADE_P1SD_UNSUCCESSFUL_ATTEMPTS_TO_UNLOCK_YOUR_DEVICE_TRY_AGAIN_IN_P2SD_SECONDS"
+msgstr "잠금해제를 %1$d회 잘못 입력하였습니다. %2$d초 후에 다시 시도하세요."
+
+msgid "IDS_LCKSCN_HEADER_UNABLE_TO_UNLOCK_SCREEN_ABB"
+msgstr "화면 잠금을 해제할 수 없음"
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "비밀번호를 입력하세요."
+
+msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"
+msgstr "%1$d-%2$d자의 숫자 또는 문자를 입력하세요."
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "잘못된 비밀번호를 입력하였습니다."
+
+msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED"
+msgstr "잠금해제 비밀번호를 %d회 잘못 입력하였습니다. 디바이스 설정을 기본 설정으로 초기화하고 모든 데이터를 삭제합니다."
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "확인"
+
+msgid "IDS_ST_BUTTON_CANCEL"
+msgstr "취소"
+
+msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "긴급전화"
+
diff --git a/po/lt.po b/po/lt.po
new file mode 100644 (file)
index 0000000..9b2dc46
--- /dev/null
+++ b/po/lt.po
@@ -0,0 +1,57 @@
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "Negalima paleisti %s."
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "Perspėjimas"
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "Įvesti PIN kodą."
+
+msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB"
+msgstr "Įveskite PIN žinutės peržiūrai"
+
+msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB"
+msgstr "Įveskite PIN skambučių žurnalo peržiūrai"
+
+msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "Bandykite dar po %d sek."
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "Netinkamas PIN kodas."
+
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "Liko 1 bandymas."
+
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "%d likę bandymai."
+
+msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG"
+msgstr "Neteisingai bandėte atrakinti įrenginį %1$d kartus (-ų). Prieš grąžinant įrenginio gamyklinius numatytuosius nustatymus ir ištrinant visus duomenis, turėsite %2$d bandymus (-ų)."
+
+msgid "IDS_LCKSCN_POP_YOU_HAVE_MADE_P1SD_UNSUCCESSFUL_ATTEMPTS_TO_UNLOCK_YOUR_DEVICE_TRY_AGAIN_IN_P2SD_SECONDS"
+msgstr "Jūs %1$d k. nesėkmingai bandėte atrakinti įrenginį. Bandykite dar kartą po %2$d sek."
+
+msgid "IDS_LCKSCN_HEADER_UNABLE_TO_UNLOCK_SCREEN_ABB"
+msgstr "Neįmanoma atrakinti ekrano"
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "Įvesti slaptažodį."
+
+msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"
+msgstr "Reikia nurodyti %1$d–%2$d skaitmenis (-ų) ar raides (-ių)."
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "Neteisingas slaptažodis."
+
+msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED"
+msgstr "Neteisingai bandėte atrakinti įrenginį %d kartus (-ų). Dabar bus iš naujo nustatyti gamykliniai numatytieji nustatymai ir ištrinti visi duomenys."
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "Gerai"
+
+msgid "IDS_ST_BUTTON_CANCEL"
+msgstr "Atšaukti"
+
+msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "Pagalbos skambučiai"
+
diff --git a/po/lv.po b/po/lv.po
new file mode 100644 (file)
index 0000000..2c4e8eb
--- /dev/null
+++ b/po/lv.po
@@ -0,0 +1,57 @@
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "Nevar palaist %s."
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "Brīdinājums"
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "Ievadiet PIN kodu."
+
+msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB"
+msgstr "Ievadiet PIN kodu, lai skatītu ziņu"
+
+msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB"
+msgstr "Ievadiet PIN kodu, lai skatītu zvanu žurnālu"
+
+msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "Mēģiniet vēlr.pēc %d sek."
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "Nepareizs PIN."
+
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "Atlicis 1 mēģinājums."
+
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "Atlikuši %d mēģinājumi."
+
+msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG"
+msgstr "Jūs %1$d reizes nepareizi mēģinājāt atbloķēt ierīci. Jums ir atlikuši %2$d mēģinājumi, pirms ierīcē tiks atjaunoti rūpnīcas noklusējuma iestatījumi un visi dati tiks izdzēsti."
+
+msgid "IDS_LCKSCN_POP_YOU_HAVE_MADE_P1SD_UNSUCCESSFUL_ATTEMPTS_TO_UNLOCK_YOUR_DEVICE_TRY_AGAIN_IN_P2SD_SECONDS"
+msgstr "Jūs esat veicis %1$d neveiksmīgus ierīces atbloķēšanas mēģinājumus. Mēģiniet vēlreiz pēc %2$d sekundēm."
+
+msgid "IDS_LCKSCN_HEADER_UNABLE_TO_UNLOCK_SCREEN_ABB"
+msgstr "Nevar atbloķēt ekrānu"
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "Ievadiet paroli."
+
+msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"
+msgstr "Nepieciešams ievadīt no %1$d līdz %2$d cipariem vai burtiem."
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "Nepareiza parole."
+
+msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED"
+msgstr "Jūs %d reizes neveiksmīgi mēģinājāt atbloķēt ierīci. Tagad tajā tiks atjaunoti rūpnīcas iestatījumi un visi dati tiks izdzēsti."
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "Labi"
+
+msgid "IDS_ST_BUTTON_CANCEL"
+msgstr "Atcelt"
+
+msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "Ārkārtas zvans"
+
diff --git a/po/mn_MN.po b/po/mn_MN.po
new file mode 100644 (file)
index 0000000..05ed489
--- /dev/null
@@ -0,0 +1,57 @@
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "Unable to launch %s."
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "Анхааруулга"
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "PIN код оруулах"
+
+msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB"
+msgstr "PIN оруулж зурвас үз"
+
+msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB"
+msgstr "PIN оруулж дуудлагын бүртгэл үз"
+
+msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "%d сек дараа дахин оролд"
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "Буруу PIN код"
+
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "1 оролдлого үлдсэн."
+
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "%d оролдлого үлдсэн."
+
+msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG"
+msgstr "Та төхөөрөмжийг нээх гэж %1$d удаа буруу оролдсон. Төхөөрөмж үйлдвэрийн өгөгдмөл тохиргоо руугаа буцан орж, бүх өгөгдөл арилах хүртэл %2$d удаа оролдох боломж үлдсэн."
+
+msgid "IDS_LCKSCN_POP_YOU_HAVE_MADE_P1SD_UNSUCCESSFUL_ATTEMPTS_TO_UNLOCK_YOUR_DEVICE_TRY_AGAIN_IN_P2SD_SECONDS"
+msgstr "Та төхөөрөмжөө нээх гэж %1$d удаа амжилтгүй оролдсон. %2$d секундын дараа дахин оролд."
+
+msgid "IDS_LCKSCN_HEADER_UNABLE_TO_UNLOCK_SCREEN_ABB"
+msgstr "Дэлгэц нээх боломжгүй"
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "Нууц үг оруулах"
+
+msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"
+msgstr "%1$d to %2$d digits or letters required."
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "Буруу нууц үг"
+
+msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED"
+msgstr "Та төхөөрөмжийг нээх гэж %d удаа буруу оролдсон. Энэ одоо үйлдвэрийн өгөгдмөл тохиргоо руугаа буцаж орох бөгөөд бүх өгөгдөл арилна"
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_ST_BUTTON_CANCEL"
+msgstr "Цуцлах"
+
+msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "Яаралтай тусламжийн дуудлага"
+
diff --git a/po/nb.po b/po/nb.po
new file mode 100644 (file)
index 0000000..440a9cd
--- /dev/null
+++ b/po/nb.po
@@ -0,0 +1,57 @@
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "Kan ikke starte %s."
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "Advarsel"
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "Angi PIN."
+
+msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB"
+msgstr "Angi PIN-kode for å vise melding"
+
+msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB"
+msgstr "Angi PIN-kode for å vise samtalelogg"
+
+msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "Prøv på nytt om %d sek."
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "Ugyldig PIN."
+
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "1 forsøk gjenstår."
+
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "%d forsøk igjen."
+
+msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG"
+msgstr "Du har prøvd å låse opp enheten på feil måte %1$d ganger. Du har %2$d forsøk igjen før enheten tilbakestilles til fabrikkstandarder og alle data slettes."
+
+msgid "IDS_LCKSCN_POP_YOU_HAVE_MADE_P1SD_UNSUCCESSFUL_ATTEMPTS_TO_UNLOCK_YOUR_DEVICE_TRY_AGAIN_IN_P2SD_SECONDS"
+msgstr "Du har gjort %1$d feil forsøk på å låse opp enheten. Prøv på nytt om %2$d sekunder."
+
+msgid "IDS_LCKSCN_HEADER_UNABLE_TO_UNLOCK_SCREEN_ABB"
+msgstr "Kan ikke låse opp skjermen"
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "Angi passord."
+
+msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"
+msgstr "%1$d til %2$d sifre eller bokstaver nødvendige."
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "Feil passord."
+
+msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED"
+msgstr "Du har prøvd å låse opp enheten på feil måte %d ganger. Den vil nå bli tilbakestilt til fabrikkstandardene og alle data vil bli slettet."
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_ST_BUTTON_CANCEL"
+msgstr "Avbryt"
+
+msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "Nødanrop"
+
diff --git a/po/nl.po b/po/nl.po
new file mode 100644 (file)
index 0000000..b627760
--- /dev/null
+++ b/po/nl.po
@@ -0,0 +1,57 @@
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "Kan %s niet starten."
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "Waarschuwing"
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "PIN invoeren"
+
+msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB"
+msgstr "Pincode invoeren voor weergave bericht"
+
+msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB"
+msgstr "Pincode invoeren voor weergave oproepenlijst"
+
+msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "Probeer opn. over %d sec."
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "Onjuiste PIN."
+
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "1 poging over."
+
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "%d pogingen over."
+
+msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG"
+msgstr "U hebt %1$d keer een onjuiste poging gedaan om het apparaat te ontgrendelen. U hebt nog %2$d pogingen over voordat het apparaat wordt teruggezet op de fabrieksinstellingen en alle gegevens worden gewist."
+
+msgid "IDS_LCKSCN_POP_YOU_HAVE_MADE_P1SD_UNSUCCESSFUL_ATTEMPTS_TO_UNLOCK_YOUR_DEVICE_TRY_AGAIN_IN_P2SD_SECONDS"
+msgstr "U hebt %1$d mislukte pogingen gedaan om uw apparaat te ontgrendelen. Probeer het opnieuw over %2$d seconden."
+
+msgid "IDS_LCKSCN_HEADER_UNABLE_TO_UNLOCK_SCREEN_ABB"
+msgstr "Kan scherm niet ontgrendelen"
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "Wachtwoord invoeren"
+
+msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"
+msgstr "%1$d tot %2$d cijfers of letters vereist."
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "Onjuist wachtwoord."
+
+msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED"
+msgstr "U hebt %d keer een onjuiste poging gedaan om het apparaat te ontgrendelen. Het wordt nu teruggezet op de fabrieksinstellingen en alle gegevens worden gewist."
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_ST_BUTTON_CANCEL"
+msgstr "Annuleer"
+
+msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "Noodoproep"
+
diff --git a/po/pl.po b/po/pl.po
new file mode 100644 (file)
index 0000000..c7515a4
--- /dev/null
+++ b/po/pl.po
@@ -0,0 +1,57 @@
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "Nie można uruchomić %s."
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "Ostrzeżenie"
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "Wpisz PIN."
+
+msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB"
+msgstr "Podaj kod PIN, aby wyświetlić wiadomość"
+
+msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB"
+msgstr "Podaj kod PIN, aby wyświetlić spis połączeń"
+
+msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "Ponów próbę za %d sek."
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "Nieprawidłowy PIN."
+
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "Pozostała 1 próba."
+
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "Pozostało prób: %d."
+
+msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG"
+msgstr "Nieprawidłowych prób odblokowania urządzenia: %1$d. Pozostałych prób przed wyzerowaniem urządzenia do domyślnych ustawień fabrycznych i usunięciem wszystkich danych: %2$d."
+
+msgid "IDS_LCKSCN_POP_YOU_HAVE_MADE_P1SD_UNSUCCESSFUL_ATTEMPTS_TO_UNLOCK_YOUR_DEVICE_TRY_AGAIN_IN_P2SD_SECONDS"
+msgstr "Liczba nieudanych prób odblokowania urządzenia: %1$d. Spróbuj ponownie za %2$d s."
+
+msgid "IDS_LCKSCN_HEADER_UNABLE_TO_UNLOCK_SCREEN_ABB"
+msgstr "Nie można odblokować ekranu"
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "Wpisz hasło."
+
+msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"
+msgstr "Wymaganych jest co najmniej cyfr lub liter: %1$d do %2$d."
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "Błędne hasło."
+
+msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED"
+msgstr "Podjęto nieprawidłową próbę odblokowania urządzenia %d razy. W urządzeniu zostaną przywrócone domyślne ustawienia fabryczne oraz zostaną z niego usunięte wszystkie dane."
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_ST_BUTTON_CANCEL"
+msgstr "Anuluj"
+
+msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "Połączenie alarmowe"
+
diff --git a/po/pt_BR.po b/po/pt_BR.po
new file mode 100644 (file)
index 0000000..ae67d43
--- /dev/null
@@ -0,0 +1,57 @@
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "Impossível iniciar %s."
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "Aviso"
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "Insira o PIN."
+
+msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB"
+msgstr "Insira o PIN para visualizar a mensagem"
+
+msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB"
+msgstr "Insira o PIN para visualizar o registro de chamadas"
+
+msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "Tente nov. dentro %d seg."
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "PIN incorreto."
+
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "Resta 1 tentativa."
+
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "Restam %d tentativas."
+
+msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG"
+msgstr "Você tentou desbloquear o dispositivo incorretamente %1$d vezes. Você tem %2$d tentativas restantes antes do dispositivo ser redefinido para os padrões de fábrica e todos os dados serem apagados."
+
+msgid "IDS_LCKSCN_POP_YOU_HAVE_MADE_P1SD_UNSUCCESSFUL_ATTEMPTS_TO_UNLOCK_YOUR_DEVICE_TRY_AGAIN_IN_P2SD_SECONDS"
+msgstr "Você fez %1$d tentativas sem sucesso para desbloquear seu dispositivo. Tente novamente em %2$d segundos."
+
+msgid "IDS_LCKSCN_HEADER_UNABLE_TO_UNLOCK_SCREEN_ABB"
+msgstr "Impossível desbloquear a tela"
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "Insira senha."
+
+msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"
+msgstr "São necessários de %1$d a %2$d dígitos ou letras."
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "Senha incorreta."
+
+msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED"
+msgstr "Você tentou desbloquear o dispositivo incorretamente %d vezes. Ele será redefinido agora para os padrões de fábrica e todos os dados serão apagados."
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_ST_BUTTON_CANCEL"
+msgstr "Cancelar"
+
+msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "Chamada de emergência"
+
diff --git a/po/pt_PT.po b/po/pt_PT.po
new file mode 100644 (file)
index 0000000..b49a15b
--- /dev/null
@@ -0,0 +1,57 @@
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "Impossível iniciar %s."
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "Aviso"
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "Introduzir PIN."
+
+msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB"
+msgstr "Introduza PIN para ver mensagem"
+
+msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB"
+msgstr "Introduza PIN para ver registo de chamadas"
+
+msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "Tente nov. dentro %d seg."
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "PIN incorrecto."
+
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "Resta 1 tentativa."
+
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "%d tentativas restantes."
+
+msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG"
+msgstr "Tentou desbloquear o dispositivo incorrectamente %1$d vezes. Tem %2$d tentativas até serem repostos no dispositivo os valores de fábrica e todos os dados serem apagados."
+
+msgid "IDS_LCKSCN_POP_YOU_HAVE_MADE_P1SD_UNSUCCESSFUL_ATTEMPTS_TO_UNLOCK_YOUR_DEVICE_TRY_AGAIN_IN_P2SD_SECONDS"
+msgstr "Fez %1$d tentativas mal sucedidas de desbloquear o seu dispositivo. Tente de novo daqui a %2$d segundos."
+
+msgid "IDS_LCKSCN_HEADER_UNABLE_TO_UNLOCK_SCREEN_ABB"
+msgstr "Impossível desbloquear ecrã"
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "Introduzir palavra-passe."
+
+msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"
+msgstr "São necessários %1$d a %2$d dígitos ou letras."
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "Palavra-passe incorrecta."
+
+msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED"
+msgstr "Tentou desbloquear o dispositivo incorrectamente %d vezes. Este vai ser reposto para as predefinições de fábrica e todos os dados serão apagados."
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_ST_BUTTON_CANCEL"
+msgstr "Cancelar"
+
+msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "Chamada de emergência"
+
diff --git a/po/ro.po b/po/ro.po
new file mode 100644 (file)
index 0000000..e809592
--- /dev/null
+++ b/po/ro.po
@@ -0,0 +1,57 @@
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "Imposibil de lansat %s"
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "Avertisment"
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "Introduceţi PIN."
+
+msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB"
+msgstr "Introduceţi codul PIN pentru a vizualiza mesajul"
+
+msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB"
+msgstr "Introduceţi codul PIN pentru a vizualiza jurnalul de apeluri"
+
+msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "Reîncercaţi peste %d sec."
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "PIN incorect"
+
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "1 încercare rămasă"
+
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "%d încercări rămase"
+
+msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG"
+msgstr "Aţi încercat să deblocaţi incorect dispozitivul de %1$d ori. Mai aveţi %2$d încercări înainte ca dispozitivul să fie resetat la valorile implicite din fabrică şi înainte ca toate datele să fie şterse."
+
+msgid "IDS_LCKSCN_POP_YOU_HAVE_MADE_P1SD_UNSUCCESSFUL_ATTEMPTS_TO_UNLOCK_YOUR_DEVICE_TRY_AGAIN_IN_P2SD_SECONDS"
+msgstr "Aţi avut %1$d încercări nereuşite de a debloca dispozitivul. Reîncercaţi peste %2$d secunde."
+
+msgid "IDS_LCKSCN_HEADER_UNABLE_TO_UNLOCK_SCREEN_ABB"
+msgstr "Ecranul nu se poate debloca"
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "Introduceţi parola."
+
+msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"
+msgstr "Sunt necesare între %1$d şi %2$d cifre sau litere."
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "Parolă incorectă"
+
+msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED"
+msgstr "Aţi încercat să deblocaţi incorect dispozitivul de %d ori. Acesta va fi resetat acum la valorile implicite din fabrică şi toate datele vor fi şterse."
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_ST_BUTTON_CANCEL"
+msgstr "Anulare"
+
+msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "Apel de urgenţă"
+
diff --git a/po/ru_RU.po b/po/ru_RU.po
new file mode 100644 (file)
index 0000000..21a79ae
--- /dev/null
@@ -0,0 +1,57 @@
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "Невозможно запустить %s."
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "Предупреждение"
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "Введите PIN."
+
+msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB"
+msgstr "Введите PIN-код, чтобы просмотреть сообщение"
+
+msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB"
+msgstr "Введите PIN-код, чтобы просмотреть журнал вызовов"
+
+msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "Повторите через %d сек."
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "Неверный PIN"
+
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "Осталась 1 попытка."
+
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "Осталось попыток: %d."
+
+msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG"
+msgstr "Число неудачных попыток разблокировки устройства: %1$d. Осталось попыток: %2$d, после чего настройки будут сброшены до заводских значений, а все данные — удалены."
+
+msgid "IDS_LCKSCN_POP_YOU_HAVE_MADE_P1SD_UNSUCCESSFUL_ATTEMPTS_TO_UNLOCK_YOUR_DEVICE_TRY_AGAIN_IN_P2SD_SECONDS"
+msgstr "Число неудачных попыток разблокировки устройства: %1$d. Повторите попытку через %2$d сек."
+
+msgid "IDS_LCKSCN_HEADER_UNABLE_TO_UNLOCK_SCREEN_ABB"
+msgstr "Невозможно разблокир-ть экран"
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "Введите пароль."
+
+msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"
+msgstr "Требуется от %1$d до %2$d цифр или букв."
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "Неправильный пароль"
+
+msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED"
+msgstr "Число неудачных попыток разблокировки устройства: %d. Настройки будут сброшены до заводских значений, а все данные — удалены"
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "ОК"
+
+msgid "IDS_ST_BUTTON_CANCEL"
+msgstr "Отмена"
+
+msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "Экстренный вызов"
+
diff --git a/po/sk.po b/po/sk.po
new file mode 100644 (file)
index 0000000..b889a7c
--- /dev/null
+++ b/po/sk.po
@@ -0,0 +1,57 @@
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "Nedá sa spustiť %s."
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "Varovanie"
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "Zadať PIN"
+
+msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB"
+msgstr "Zadajte kód PIN na zobrazenie správy"
+
+msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB"
+msgstr "Zadajte kód PIN na zobrazenie denníka hovorov"
+
+msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "Skúste znova o %d sekúnd."
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "Nesprávny PIN."
+
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "Zostáva 1 pokus."
+
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "Počet zostávajúcich pokusov: %d."
+
+msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG"
+msgstr "%1$d-krát ste sa pokúsili nesprávne odomknúť zariadenie. Zostávajú vám ešte %2$d pokusy a potom sa pre zariadenie obnovia predvolené nastavenia od výrobcu a vymažú sa všetky údaje."
+
+msgid "IDS_LCKSCN_POP_YOU_HAVE_MADE_P1SD_UNSUCCESSFUL_ATTEMPTS_TO_UNLOCK_YOUR_DEVICE_TRY_AGAIN_IN_P2SD_SECONDS"
+msgstr "Dokončili ste vykonanie %1$d neúspešných pokusov o odomknutie zariadenia. Skúste to znova po uplynutí %2$d sekúnd."
+
+msgid "IDS_LCKSCN_HEADER_UNABLE_TO_UNLOCK_SCREEN_ABB"
+msgstr "Obrazovka sa nedá odomknúť"
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "Zadajte heslo."
+
+msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"
+msgstr "Vyžaduje sa %1$d až %2$d číslic alebo písmen."
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "Nesprávne heslo."
+
+msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED"
+msgstr "%d-krát ste sa pokúsili nesprávne odomknúť zariadenie. Teraz sa preň obnovia predvolené nastavenia od výrobcu a vymažú sa všetky údaje."
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_ST_BUTTON_CANCEL"
+msgstr "Zrušiť"
+
+msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "Tiesňový hovor"
+
diff --git a/po/sl.po b/po/sl.po
new file mode 100644 (file)
index 0000000..4af9bcc
--- /dev/null
+++ b/po/sl.po
@@ -0,0 +1,57 @@
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "Ni mogoče zagnati %s."
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "Opozorilo"
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "Vnesite PIN."
+
+msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB"
+msgstr "Za prikaz sporočila vnesite kodo PIN"
+
+msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB"
+msgstr "Za prikaz dnevnika klicev vnesite kodo PIN"
+
+msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "Poskusite znova čez %d s."
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "Napačna koda PIN."
+
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "Preostal je še 1 poskus."
+
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "%d preostalih poizkusov."
+
+msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG"
+msgstr "Napravo ste %1$d-krat poskusili odkleniti nepravilno. Imate še %2$d poskusov, preden bo naprava ponastavljena na privzete tovarniške nastavitve in bodo izbrisani vsi podatki."
+
+msgid "IDS_LCKSCN_POP_YOU_HAVE_MADE_P1SD_UNSUCCESSFUL_ATTEMPTS_TO_UNLOCK_YOUR_DEVICE_TRY_AGAIN_IN_P2SD_SECONDS"
+msgstr "%1$d-krat ste neuspešno poskusili odkleniti napravo. Poskusite znova čez %2$d s."
+
+msgid "IDS_LCKSCN_HEADER_UNABLE_TO_UNLOCK_SCREEN_ABB"
+msgstr "Zaslona ni mogoče odkleniti"
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "Vnesite geslo."
+
+msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"
+msgstr "Zahtevanih je od %1$d do %2$d znakov ali črk."
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "Napačno geslo."
+
+msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED"
+msgstr "Napravo ste %d-krat poskusili odkleniti nepravilno. Zdaj bo ponastavljena na privzete tovarniške nastavitve in vsi podatki bodo izbrisani."
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "V redu"
+
+msgid "IDS_ST_BUTTON_CANCEL"
+msgstr "Prekliči"
+
+msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "Klic v sili"
+
diff --git a/po/sr.po b/po/sr.po
new file mode 100644 (file)
index 0000000..cd330bd
--- /dev/null
+++ b/po/sr.po
@@ -0,0 +1,57 @@
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "Nemoguće pokrenuti %s."
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "Upozorenje"
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "Unesi PIN kod."
+
+msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB"
+msgstr "Unesi PIN kôd da bi prikazao/la poruku"
+
+msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB"
+msgstr "Unesi PIN kôd da bi prikazao/la dnevnik poziva"
+
+msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "Probaj opet za %d sekundi."
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "Neispravan PIN kod."
+
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "1 pokušaj preostao."
+
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "%d pokušaja ostalo."
+
+msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG"
+msgstr "%1$d puta si pogrešio/la u pokušaju da otključaš uređaj. Preostalo ti je %2$d pokušaja pre vraćanja uređaja na podrazumevana fabrička podešavanja i brisanja svih podataka."
+
+msgid "IDS_LCKSCN_POP_YOU_HAVE_MADE_P1SD_UNSUCCESSFUL_ATTEMPTS_TO_UNLOCK_YOUR_DEVICE_TRY_AGAIN_IN_P2SD_SECONDS"
+msgstr "%1$d neuspešnih pokušaja otključavanja uređaja. Pokušaj ponovo za %2$d sekundi."
+
+msgid "IDS_LCKSCN_HEADER_UNABLE_TO_UNLOCK_SCREEN_ABB"
+msgstr "Nije moguće otključati ekran"
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "Unesi šifru."
+
+msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"
+msgstr "Obavezno je između %1$d i %2$d cifara ili slova."
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "Pogrešna šifra"
+
+msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED"
+msgstr "%d puta si pogrešio/la u pokušaju da otključaš uređaj. Uređaj će se sada vratiti na podrazumevana fabrička podešavanja i svi podaci će biti izbrisani."
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_ST_BUTTON_CANCEL"
+msgstr "Otkaži"
+
+msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "Pozivi u hitnim slučajevima"
+
diff --git a/po/sv.po b/po/sv.po
new file mode 100644 (file)
index 0000000..6f4d91d
--- /dev/null
+++ b/po/sv.po
@@ -0,0 +1,57 @@
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "Kan inte starta %s."
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "Varning"
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "Ange PIN."
+
+msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB"
+msgstr "Ange PIN-koden för att visa meddelandet"
+
+msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB"
+msgstr "Ange PIN-koden för att visa samtalsloggen"
+
+msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "Försök igen om %d sek."
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "Fel PIN-kod."
+
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "1 försök kvar."
+
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "%d försök kvar."
+
+msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG"
+msgstr "Du har försökt låsa upp enheten på fel sätt %1$d gånger. Du har %2$d försök kvar innan enheten återställs till fabriksinställningar och alla data raderas."
+
+msgid "IDS_LCKSCN_POP_YOU_HAVE_MADE_P1SD_UNSUCCESSFUL_ATTEMPTS_TO_UNLOCK_YOUR_DEVICE_TRY_AGAIN_IN_P2SD_SECONDS"
+msgstr "Du har gjort %1$d misslyckade försök att låsa upp enheten. Försök igen om %2$d sekunder."
+
+msgid "IDS_LCKSCN_HEADER_UNABLE_TO_UNLOCK_SCREEN_ABB"
+msgstr "Kan inte låsa upp skärmen"
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "Ange lösenord."
+
+msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"
+msgstr "%1$d till %2$d siffror eller bokstäver krävs."
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "Fel lösenord."
+
+msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED"
+msgstr "Du har försökt att låsa upp enheten felaktigt %d gånger. Enheten kommer nu att återställas till fabriksinställningarna och alla data kommer att raderas."
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_ST_BUTTON_CANCEL"
+msgstr "Avbryt"
+
+msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "Nödsamtal"
+
diff --git a/po/tr_TR.po b/po/tr_TR.po
new file mode 100644 (file)
index 0000000..8d5a977
--- /dev/null
@@ -0,0 +1,57 @@
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "%s öğesi başlatılamıyor."
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "Uyarı"
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "PIN'i girin."
+
+msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB"
+msgstr "Mesajı görüntülemek için PIN'i girin"
+
+msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB"
+msgstr "Arama kaydını görüntülemek için PIN'i girin"
+
+msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "%d saniye içinde de tekrar deneyin."
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "PIN yanlış."
+
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "1 deneme hakkı kaldı."
+
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "%d deneme kaldı."
+
+msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG"
+msgstr "Cihazın kilidini açmak için şifreyi %1$d kez yanlış girdiniz. Cihaz varsayılan fabrika ayarlarına sıfırlanmadan ve tüm veriler silinmeden önce %2$d deneme hakkınız kaldı."
+
+msgid "IDS_LCKSCN_POP_YOU_HAVE_MADE_P1SD_UNSUCCESSFUL_ATTEMPTS_TO_UNLOCK_YOUR_DEVICE_TRY_AGAIN_IN_P2SD_SECONDS"
+msgstr "Cihazınızın kilidini açmak için %1$d başarısız denemede bulundunuz. %2$d saniye içinde tekrar deneyin."
+
+msgid "IDS_LCKSCN_HEADER_UNABLE_TO_UNLOCK_SCREEN_ABB"
+msgstr "Ekran kilidi açılamıyor"
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "Şifreyi girin."
+
+msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"
+msgstr "%1$d - %2$d hane veya harf gerekli."
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "Şifre yanlış."
+
+msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED"
+msgstr "Cihazın kilidini %d defa yanlış açma girişiminde bulundunuz. Cihaz şimdi fabrika ayarlarına sıfırlanacak ve tüm veriler silinecektir."
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "Tamam"
+
+msgid "IDS_ST_BUTTON_CANCEL"
+msgstr "İptal"
+
+msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "Acil arama"
+
diff --git a/po/uk.po b/po/uk.po
new file mode 100644 (file)
index 0000000..b64c13d
--- /dev/null
+++ b/po/uk.po
@@ -0,0 +1,57 @@
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "Неможливо запустити %s."
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "Попередження"
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "Введіть PIN."
+
+msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB"
+msgstr "Введіть PIN-код, щоб переглянути повідомлення"
+
+msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB"
+msgstr "Введіть PIN-код, щоб переглянути журнал викликів"
+
+msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "Повт.спробу через %d сек."
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "Хибний PIN."
+
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "Залишилась 1 спроба."
+
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "%d спроби залишилось."
+
+msgid "IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG"
+msgstr "Кількість невдалих спроб розблокування пристрою: %1$d. Залишилася %2$d спроб, перш ніж установки пристрою буде скинуто до стандартних заводських значень, а всі дані видалено."
+
+msgid "IDS_LCKSCN_POP_YOU_HAVE_MADE_P1SD_UNSUCCESSFUL_ATTEMPTS_TO_UNLOCK_YOUR_DEVICE_TRY_AGAIN_IN_P2SD_SECONDS"
+msgstr "Здійснено %1$d невдалих спроб розблокування пристрою. Спробуйте ще раз через %2$d сек."
+
+msgid "IDS_LCKSCN_HEADER_UNABLE_TO_UNLOCK_SCREEN_ABB"
+msgstr "Неможливо розблокувати екран"
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "Введіть пароль."
+
+msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"
+msgstr "Потрібно ввести від %1$d до %2$d цифр або літер."
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "Хибний пароль."
+
+msgid "IDS_LCKSCN_BODY_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_PD_TIMES_IT_WILL_NOW_BE_RESET_TO_FACTORY_DEFAULTS_AND_ALL_DATA_WILL_BE_ERASED"
+msgstr "Кількість невдалих спроб розблокування пристрою: %d. Установки буде скинуто до заводських та усі дані буде стерто"
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "ОК"
+
+msgid "IDS_ST_BUTTON_CANCEL"
+msgstr "Скасувати"
+
+msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "Екстрений виклик"
+
diff --git a/po/uz.po b/po/uz.po
new file mode 100644 (file)
index 0000000..9533af6
--- /dev/null
+++ b/po/uz.po
@@ -0,0 +1,6 @@
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "Unable to launch %s."
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "Warning"
+
old mode 100755 (executable)
new mode 100644 (file)
index 0304170..b6507e2
@@ -6,21 +6,19 @@
 #      sleep 0.1
 #done
 
-while [ ! -f /tmp/amd_ready ];
+while [ ! -f /run/.wm_ready];
 do
-        sleep 0.1
+        /bin/sleep 0.1
 done
 
 vconf_set_safemode()
 {
-       if [ -f /opt/etc/.safemode ]
+       if [ -f /opt/etc/.safeboot ]
        then
-               vconftool set -t int memory/idle-screen/safemode "1" -i -f
+               /usr/bin/vconftool set -t int memory/idle-screen/safemode "1" -f
        else
-               vconftool set -t int memory/idle-screen/safemode "0" -i -f
+               /usr/bin/vconftool set -t int memory/idle-screen/safemode "0" -f
        fi
 }
 vconf_set_safemode
-
-echo -e "<2>[${_G}menu-daemon start${C_}]" > /dev/kmsg
-/usr/bin/starter &
+exit 0
old mode 100755 (executable)
new mode 100644 (file)
index e5a896c..409c90c
@@ -1,11 +1,11 @@
 #!/bin/sh
 vconf_set_safemode()
 {
-       if [ -f /opt/etc/.safemode ]
+       if [ -f /opt/etc/.safeboot ]
        then
-               vconftool set -t int memory/idle-screen/safemode "1" -i -f
+               /usr/bin/vconftool set -t int memory/idle-screen/safemode "1" -i -f
        else
-               vconftool set -t int memory/idle-screen/safemode "0" -i -f
+               /usr/bin/vconftool set -t int memory/idle-screen/safemode "0" -i -f
        fi
 }
 vconf_set_safemode
diff --git a/res/CMakeLists.txt b/res/CMakeLists.txt
new file mode 100755 (executable)
index 0000000..2ab7c7b
--- /dev/null
@@ -0,0 +1 @@
+ADD_SUBDIRECTORY(edje)
diff --git a/res/edje/CMakeLists.txt b/res/edje/CMakeLists.txt
new file mode 100755 (executable)
index 0000000..a1ccc4d
--- /dev/null
@@ -0,0 +1,3 @@
+IF("${TIZEN_PROFILE_NAME}" STREQUAL "MOBILE")
+ADD_SUBDIRECTORY(mobile)
+ENDIF()
diff --git a/res/edje/mobile/CMakeLists.txt b/res/edje/mobile/CMakeLists.txt
new file mode 100755 (executable)
index 0000000..f82b90b
--- /dev/null
@@ -0,0 +1,15 @@
+ADD_CUSTOM_TARGET(lock_btn.edj
+                COMMAND edje_cc -id ${CMAKE_CURRENT_SOURCE_DIR}/images
+                               ${CMAKE_CURRENT_SOURCE_DIR}/lock_btn.edc ${CMAKE_BINARY_DIR}/res/edje/mobile/lock_btn.edj
+                               DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/lock_btn.edc
+)
+ADD_DEPENDENCIES(${PROJECT_NAME} lock_btn.edj)
+INSTALL(FILES lock_btn.edj DESTINATION /usr/share/starter/res/edje)
+
+ADD_CUSTOM_TARGET(lock_pwd.edj
+                COMMAND edje_cc -id ${CMAKE_CURRENT_SOURCE_DIR}/images
+                               ${CMAKE_CURRENT_SOURCE_DIR}/lock_pwd.edc ${CMAKE_BINARY_DIR}/res/edje/mobile/lock_pwd.edj
+                               DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/lock_pwd.edc
+)
+ADD_DEPENDENCIES(${PROJECT_NAME} lock_pwd.edj)
+INSTALL(FILES lock_pwd.edj DESTINATION /usr/share/starter/res/edje)
diff --git a/res/edje/mobile/images/B09_btn_doubletab_h.png b/res/edje/mobile/images/B09_btn_doubletab_h.png
new file mode 100755 (executable)
index 0000000..9c027fe
Binary files /dev/null and b/res/edje/mobile/images/B09_btn_doubletab_h.png differ
diff --git a/res/edje/mobile/images/Notification_ic_message.png b/res/edje/mobile/images/Notification_ic_message.png
new file mode 100755 (executable)
index 0000000..8f25d40
Binary files /dev/null and b/res/edje/mobile/images/Notification_ic_message.png differ
diff --git a/res/edje/mobile/images/Notification_ic_missedcall.png b/res/edje/mobile/images/Notification_ic_missedcall.png
new file mode 100755 (executable)
index 0000000..6591749
Binary files /dev/null and b/res/edje/mobile/images/Notification_ic_missedcall.png differ
diff --git a/res/edje/mobile/images/RB07_icon_back_01.png b/res/edje/mobile/images/RB07_icon_back_01.png
new file mode 100755 (executable)
index 0000000..f224b04
Binary files /dev/null and b/res/edje/mobile/images/RB07_icon_back_01.png differ
diff --git a/res/edje/mobile/images/RB07_icon_back_dim.png b/res/edje/mobile/images/RB07_icon_back_dim.png
new file mode 100755 (executable)
index 0000000..6a1be74
Binary files /dev/null and b/res/edje/mobile/images/RB07_icon_back_dim.png differ
diff --git a/res/edje/mobile/images/RB07_icon_back_normal.png b/res/edje/mobile/images/RB07_icon_back_normal.png
new file mode 100755 (executable)
index 0000000..d573787
Binary files /dev/null and b/res/edje/mobile/images/RB07_icon_back_normal.png differ
diff --git a/res/edje/mobile/images/RB07_icon_back_press.png b/res/edje/mobile/images/RB07_icon_back_press.png
new file mode 100755 (executable)
index 0000000..00d0f76
Binary files /dev/null and b/res/edje/mobile/images/RB07_icon_back_press.png differ
diff --git a/res/edje/mobile/images/RB07_icon_enter.png b/res/edje/mobile/images/RB07_icon_enter.png
new file mode 100755 (executable)
index 0000000..0fb460e
Binary files /dev/null and b/res/edje/mobile/images/RB07_icon_enter.png differ
diff --git a/res/edje/mobile/images/RB07_icon_shift_focused.png b/res/edje/mobile/images/RB07_icon_shift_focused.png
new file mode 100755 (executable)
index 0000000..4a18b36
Binary files /dev/null and b/res/edje/mobile/images/RB07_icon_shift_focused.png differ
diff --git a/res/edje/mobile/images/RB07_icon_shift_normal.png b/res/edje/mobile/images/RB07_icon_shift_normal.png
new file mode 100755 (executable)
index 0000000..de568be
Binary files /dev/null and b/res/edje/mobile/images/RB07_icon_shift_normal.png differ
diff --git a/res/edje/mobile/images/RB07_icon_shift_press.png b/res/edje/mobile/images/RB07_icon_shift_press.png
new file mode 100755 (executable)
index 0000000..0190d7c
Binary files /dev/null and b/res/edje/mobile/images/RB07_icon_shift_press.png differ
diff --git a/res/edje/mobile/images/RB07_icon_space.png b/res/edje/mobile/images/RB07_icon_space.png
new file mode 100755 (executable)
index 0000000..a383215
Binary files /dev/null and b/res/edje/mobile/images/RB07_icon_space.png differ
diff --git a/res/edje/mobile/images/RB07_icon_space_press.png b/res/edje/mobile/images/RB07_icon_space_press.png
new file mode 100755 (executable)
index 0000000..da4b3e6
Binary files /dev/null and b/res/edje/mobile/images/RB07_icon_space_press.png differ
diff --git a/res/edje/mobile/images/RB07_key_btn_01.png b/res/edje/mobile/images/RB07_key_btn_01.png
new file mode 100755 (executable)
index 0000000..666a8c4
Binary files /dev/null and b/res/edje/mobile/images/RB07_key_btn_01.png differ
diff --git a/res/edje/mobile/images/RB07_key_btn_02.png b/res/edje/mobile/images/RB07_key_btn_02.png
new file mode 100755 (executable)
index 0000000..9a38142
Binary files /dev/null and b/res/edje/mobile/images/RB07_key_btn_02.png differ
diff --git a/res/edje/mobile/images/RB07_key_btn_perss.png b/res/edje/mobile/images/RB07_key_btn_perss.png
new file mode 100755 (executable)
index 0000000..62dcdba
Binary files /dev/null and b/res/edje/mobile/images/RB07_key_btn_perss.png differ
diff --git a/res/edje/mobile/images/RB07_key_btn_press.png b/res/edje/mobile/images/RB07_key_btn_press.png
new file mode 100755 (executable)
index 0000000..5b6f4da
Binary files /dev/null and b/res/edje/mobile/images/RB07_key_btn_press.png differ
diff --git a/res/edje/mobile/images/RB07_key_btn_qwerty_01.png b/res/edje/mobile/images/RB07_key_btn_qwerty_01.png
new file mode 100755 (executable)
index 0000000..67afa2b
Binary files /dev/null and b/res/edje/mobile/images/RB07_key_btn_qwerty_01.png differ
diff --git a/res/edje/mobile/images/RB07_key_btn_qwerty_02.png b/res/edje/mobile/images/RB07_key_btn_qwerty_02.png
new file mode 100755 (executable)
index 0000000..669a2bd
Binary files /dev/null and b/res/edje/mobile/images/RB07_key_btn_qwerty_02.png differ
diff --git a/res/edje/mobile/images/RB07_keypad_bg.png b/res/edje/mobile/images/RB07_keypad_bg.png
new file mode 100755 (executable)
index 0000000..547ec6a
Binary files /dev/null and b/res/edje/mobile/images/RB07_keypad_bg.png differ
diff --git a/res/edje/mobile/images/circular_gauge_bg.png b/res/edje/mobile/images/circular_gauge_bg.png
new file mode 100644 (file)
index 0000000..49bfae1
Binary files /dev/null and b/res/edje/mobile/images/circular_gauge_bg.png differ
diff --git a/res/edje/mobile/images/circular_gauge_password.png b/res/edje/mobile/images/circular_gauge_password.png
new file mode 100644 (file)
index 0000000..1031ac0
Binary files /dev/null and b/res/edje/mobile/images/circular_gauge_password.png differ
diff --git a/res/edje/mobile/images/circular_gauge_pin.png b/res/edje/mobile/images/circular_gauge_pin.png
new file mode 100644 (file)
index 0000000..a7e7dfe
Binary files /dev/null and b/res/edje/mobile/images/circular_gauge_pin.png differ
diff --git a/res/edje/mobile/images/dismiss_button.png b/res/edje/mobile/images/dismiss_button.png
new file mode 100755 (executable)
index 0000000..e4f1c4d
Binary files /dev/null and b/res/edje/mobile/images/dismiss_button.png differ
diff --git a/res/edje/mobile/images/edit_btn_icon_keyboard_nor.png b/res/edje/mobile/images/edit_btn_icon_keyboard_nor.png
new file mode 100755 (executable)
index 0000000..da150ad
Binary files /dev/null and b/res/edje/mobile/images/edit_btn_icon_keyboard_nor.png differ
diff --git a/res/edje/mobile/images/edit_btn_icon_keyboard_press.png b/res/edje/mobile/images/edit_btn_icon_keyboard_press.png
new file mode 100755 (executable)
index 0000000..7b7742d
Binary files /dev/null and b/res/edje/mobile/images/edit_btn_icon_keyboard_press.png differ
diff --git a/res/edje/mobile/images/event_clock_colon.png b/res/edje/mobile/images/event_clock_colon.png
new file mode 100644 (file)
index 0000000..26a51c6
Binary files /dev/null and b/res/edje/mobile/images/event_clock_colon.png differ
diff --git a/res/edje/mobile/images/event_close_bg.#.png b/res/edje/mobile/images/event_close_bg.#.png
new file mode 100755 (executable)
index 0000000..2d56842
Binary files /dev/null and b/res/edje/mobile/images/event_close_bg.#.png differ
diff --git a/res/edje/mobile/images/event_list_bg.#.png b/res/edje/mobile/images/event_list_bg.#.png
new file mode 100755 (executable)
index 0000000..8d497e1
Binary files /dev/null and b/res/edje/mobile/images/event_list_bg.#.png differ
diff --git a/res/edje/mobile/images/event_list_divider.#.png b/res/edje/mobile/images/event_list_divider.#.png
new file mode 100755 (executable)
index 0000000..3be1e5e
Binary files /dev/null and b/res/edje/mobile/images/event_list_divider.#.png differ
diff --git a/res/edje/mobile/images/event_number_bg.#.png b/res/edje/mobile/images/event_number_bg.#.png
new file mode 100644 (file)
index 0000000..de0f8a5
Binary files /dev/null and b/res/edje/mobile/images/event_number_bg.#.png differ
diff --git a/res/edje/mobile/images/fahrenheit_icon.png b/res/edje/mobile/images/fahrenheit_icon.png
new file mode 100755 (executable)
index 0000000..5629e1a
Binary files /dev/null and b/res/edje/mobile/images/fahrenheit_icon.png differ
diff --git a/res/edje/mobile/images/gradation_bg.#.png b/res/edje/mobile/images/gradation_bg.#.png
new file mode 100755 (executable)
index 0000000..3589b3b
Binary files /dev/null and b/res/edje/mobile/images/gradation_bg.#.png differ
diff --git a/res/edje/mobile/images/icon_backtocall_nor.png b/res/edje/mobile/images/icon_backtocall_nor.png
new file mode 100755 (executable)
index 0000000..ab0140c
Binary files /dev/null and b/res/edje/mobile/images/icon_backtocall_nor.png differ
diff --git a/res/edje/mobile/images/icon_backtocall_press.png b/res/edje/mobile/images/icon_backtocall_press.png
new file mode 100755 (executable)
index 0000000..96781af
Binary files /dev/null and b/res/edje/mobile/images/icon_backtocall_press.png differ
diff --git a/res/edje/mobile/images/indicator_high.png b/res/edje/mobile/images/indicator_high.png
new file mode 100755 (executable)
index 0000000..815ddc5
Binary files /dev/null and b/res/edje/mobile/images/indicator_high.png differ
diff --git a/res/edje/mobile/images/indicator_nor.png b/res/edje/mobile/images/indicator_nor.png
new file mode 100755 (executable)
index 0000000..3ab25a7
Binary files /dev/null and b/res/edje/mobile/images/indicator_nor.png differ
diff --git a/res/edje/mobile/images/keyboard_basic_pad.png b/res/edje/mobile/images/keyboard_basic_pad.png
new file mode 100755 (executable)
index 0000000..2cf16b4
Binary files /dev/null and b/res/edje/mobile/images/keyboard_basic_pad.png differ
diff --git a/res/edje/mobile/images/keyboard_basic_pad_press.png b/res/edje/mobile/images/keyboard_basic_pad_press.png
new file mode 100755 (executable)
index 0000000..5b6f4da
Binary files /dev/null and b/res/edje/mobile/images/keyboard_basic_pad_press.png differ
diff --git a/res/edje/mobile/images/keypad_press_bg.png b/res/edje/mobile/images/keypad_press_bg.png
new file mode 100755 (executable)
index 0000000..533ebb9
Binary files /dev/null and b/res/edje/mobile/images/keypad_press_bg.png differ
diff --git a/res/edje/mobile/images/lock_circle_line_camera.png b/res/edje/mobile/images/lock_circle_line_camera.png
new file mode 100755 (executable)
index 0000000..476de64
Binary files /dev/null and b/res/edje/mobile/images/lock_circle_line_camera.png differ
diff --git a/res/edje/mobile/images/lock_circle_line_camera_drag.png b/res/edje/mobile/images/lock_circle_line_camera_drag.png
new file mode 100755 (executable)
index 0000000..491bd4f
Binary files /dev/null and b/res/edje/mobile/images/lock_circle_line_camera_drag.png differ
diff --git a/res/edje/mobile/images/ls_back_01_nor.png b/res/edje/mobile/images/ls_back_01_nor.png
new file mode 100755 (executable)
index 0000000..c98baf2
Binary files /dev/null and b/res/edje/mobile/images/ls_back_01_nor.png differ
diff --git a/res/edje/mobile/images/ls_back_01_press.png b/res/edje/mobile/images/ls_back_01_press.png
new file mode 100755 (executable)
index 0000000..5904846
Binary files /dev/null and b/res/edje/mobile/images/ls_back_01_press.png differ
diff --git a/res/edje/mobile/images/ls_back_02_nor.png b/res/edje/mobile/images/ls_back_02_nor.png
new file mode 100755 (executable)
index 0000000..af67780
Binary files /dev/null and b/res/edje/mobile/images/ls_back_02_nor.png differ
diff --git a/res/edje/mobile/images/ls_back_02_press.png b/res/edje/mobile/images/ls_back_02_press.png
new file mode 100755 (executable)
index 0000000..bd59d79
Binary files /dev/null and b/res/edje/mobile/images/ls_back_02_press.png differ
diff --git a/res/edje/mobile/images/ls_button_02_default.png b/res/edje/mobile/images/ls_button_02_default.png
new file mode 100755 (executable)
index 0000000..357247e
Binary files /dev/null and b/res/edje/mobile/images/ls_button_02_default.png differ
diff --git a/res/edje/mobile/images/ls_button_02_press.png b/res/edje/mobile/images/ls_button_02_press.png
new file mode 100755 (executable)
index 0000000..e713390
Binary files /dev/null and b/res/edje/mobile/images/ls_button_02_press.png differ
diff --git a/res/edje/mobile/images/ls_button_default.png b/res/edje/mobile/images/ls_button_default.png
new file mode 100755 (executable)
index 0000000..5273c7b
Binary files /dev/null and b/res/edje/mobile/images/ls_button_default.png differ
diff --git a/res/edje/mobile/images/ls_button_press.png b/res/edje/mobile/images/ls_button_press.png
new file mode 100755 (executable)
index 0000000..e914596
Binary files /dev/null and b/res/edje/mobile/images/ls_button_press.png differ
diff --git a/res/edje/mobile/images/ls_button_sos_phone.png b/res/edje/mobile/images/ls_button_sos_phone.png
new file mode 100755 (executable)
index 0000000..db1b0a5
Binary files /dev/null and b/res/edje/mobile/images/ls_button_sos_phone.png differ
diff --git a/res/edje/mobile/images/ls_button_x.png b/res/edje/mobile/images/ls_button_x.png
new file mode 100755 (executable)
index 0000000..56a04a8
Binary files /dev/null and b/res/edje/mobile/images/ls_button_x.png differ
diff --git a/res/edje/mobile/images/ls_password_box_01.png b/res/edje/mobile/images/ls_password_box_01.png
new file mode 100755 (executable)
index 0000000..2e48149
Binary files /dev/null and b/res/edje/mobile/images/ls_password_box_01.png differ
diff --git a/res/edje/mobile/images/ls_password_box_02.png b/res/edje/mobile/images/ls_password_box_02.png
new file mode 100755 (executable)
index 0000000..5a4069b
Binary files /dev/null and b/res/edje/mobile/images/ls_password_box_02.png differ
diff --git a/res/edje/mobile/images/ls_password_dot.png b/res/edje/mobile/images/ls_password_dot.png
new file mode 100755 (executable)
index 0000000..8951595
Binary files /dev/null and b/res/edje/mobile/images/ls_password_dot.png differ
diff --git a/res/edje/mobile/images/ls_password_star_01.png b/res/edje/mobile/images/ls_password_star_01.png
new file mode 100755 (executable)
index 0000000..088eb12
Binary files /dev/null and b/res/edje/mobile/images/ls_password_star_01.png differ
diff --git a/res/edje/mobile/images/ls_phone_01_nor.png b/res/edje/mobile/images/ls_phone_01_nor.png
new file mode 100755 (executable)
index 0000000..3580d84
Binary files /dev/null and b/res/edje/mobile/images/ls_phone_01_nor.png differ
diff --git a/res/edje/mobile/images/ls_phone_01_press.png b/res/edje/mobile/images/ls_phone_01_press.png
new file mode 100755 (executable)
index 0000000..798851d
Binary files /dev/null and b/res/edje/mobile/images/ls_phone_01_press.png differ
diff --git a/res/edje/mobile/images/quick_shot.png b/res/edje/mobile/images/quick_shot.png
new file mode 100755 (executable)
index 0000000..7f60b81
Binary files /dev/null and b/res/edje/mobile/images/quick_shot.png differ
diff --git a/res/edje/mobile/images/quick_shot_drag.png b/res/edje/mobile/images/quick_shot_drag.png
new file mode 100755 (executable)
index 0000000..34ea67f
Binary files /dev/null and b/res/edje/mobile/images/quick_shot_drag.png differ
diff --git a/res/edje/mobile/lock_btn.edc b/res/edje/mobile/lock_btn.edc
new file mode 100755 (executable)
index 0000000..1856b9c
--- /dev/null
@@ -0,0 +1,458 @@
+/*
+ * 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.
+ */
+
+
+styles {
+       style {
+               name: "unlock_text";
+               base: "font=Tizen:style=Regular color=#FFFFFFFF color_class=ATO017 font_size=10 text_class=ATO017 style=shadow shadow_color=#000000bf align: 0.5 0.0 wrap=word";
+       }
+}
+
+#define TEXT_BUTTON_CLASS "ATO007"
+
+
+collections
+{
+       group
+       {
+               name: "elm/button/base/emg_cal_btn";
+               parts
+               {
+                       part
+                       {
+                               name: "elm.swallow.content";
+                               type: RECT;
+                               mouse_events: 1;
+                               repeat_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       color: 0 0 0 0;
+                                       visible: 1;
+                                       rel1.relative: 0.0 0.0;
+                                       rel2.relative: 1.0 1.0;
+                                       align: 0.0 0.0;
+                               }
+                       }
+                       part
+                       {
+                               name: "elm.text";
+                               type: TEXT;
+                               effect: "SHADOW";
+                               mouse_events: 1;
+                               repeat_events: 1;
+                               description
+                               {
+                                       state: "default" 0.0;
+                                       fixed: 1 1;
+                                       color: 255 255 255 255;
+                                       visible: 1;
+                                       rel1.relative: 0.0 0.0;
+                                       rel2.relative: 1.0 1.0;
+                                       text
+                                       {
+                                               align: 0.0 0.5;
+                                               size: 28;
+                                               text_class: TEXT_BUTTON_CLASS;
+                                       }
+                               }
+                               description
+                               {
+                                       state: "pressed" 0.0;
+                                       inherit: "default" 0.0;
+                                       color: 255 255 255 120;
+                               }
+                       }
+               }
+               programs
+               {
+                       program
+                       {
+                               name: "mouse,clicked";
+                               signal: "mouse,clicked,1";
+                               source: "elm.swallow.content";
+                               action: SIGNAL_EMIT "elm,action,click" "";
+                       }
+                       program
+                       {
+                               name: "button,pressed";
+                               signal: "mouse,down,1";
+                               action: STATE_SET "pressed" 0.0;
+                               source: "elm.swallow.content";
+                               target: "elm.text";
+                       }
+                       program
+                       {
+                               name: "button,unpressed";
+                               signal: "mouse,up,1";
+                               action: STATE_SET "default" 0.0;
+                               source: "elm.swallow.content";
+                               target: "elm.text";
+                       }
+               }
+       }
+
+       group
+       {
+               name: "elm/button/base/tizen_account_btn";
+               parts
+               {
+                       part
+                       {
+                               name: "elm.swallow.content";
+                               type: RECT;
+                               mouse_events: 1;
+                               repeat_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       color: 0 0 0 0;
+                                       visible: 1;
+                                       rel1.relative: 0.0 0.0;
+                                       rel2.relative: 1.0 1.0;
+                                       align: 0.0 0.0;
+                               }
+                       }
+                       part
+                       {
+                               name: "elm.text";
+                               type: TEXTBLOCK;
+                               effect: "SHADOW";
+                               mouse_events: 1;
+                               repeat_events: 1;
+                               description
+                               {
+                                       state: "default" 0.0;
+                                       fixed: 1 1;
+                                       color: 255 255 255 255;
+                                       visible: 1;
+                                       rel1.relative: 0.0 0.0;
+                                       rel2.relative: 1.0 1.0;
+                                       text
+                                       {
+                                               style: "unlock_text";
+                                       }
+                               }
+                               description
+                               {
+                                       state: "pressed" 0.0;
+                                       inherit: "default" 0.0;
+                                       color: 255 255 255 120;
+                               }
+                       }
+               }
+
+               programs
+               {
+                       program
+                       {
+                               name: "mouse,clicked";
+                               signal: "mouse,clicked,1";
+                               source: "elm.swallow.content";
+                               action: SIGNAL_EMIT "elm,action,click" "";
+                       }
+                       program
+                       {
+                               name: "button,pressed";
+                               signal: "mouse,down,1";
+                               action: STATE_SET "pressed" 0.0;
+                               source: "elm.swallow.content";
+                               target: "elm.text";
+                       }
+                       program
+                       {
+                               name: "button,unpressed";
+                               signal: "mouse,up,1";
+                               action: STATE_SET "default" 0.0;
+                               source: "elm.swallow.content";
+                               target: "elm.text";
+                       }
+               }
+       }
+
+       group
+       {
+               name: "elm/button/base/right_button";
+               parts
+               {
+                       part
+                       {
+                               name: "elm.swallow.content";
+                               type: RECT;
+                               mouse_events: 1;
+                               repeat_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       color: 0 0 0 0;
+                                       visible: 1;
+                                       rel1.relative: 0.0 0.0;
+                                       rel2.relative: 1.0 1.0;
+                                       align: 1.0 0.0;
+                               }
+                       }
+                       part {
+                               name: "effect";
+                               type: RECT;
+                               mouse_events: 1;
+                               repeat_events: 1;
+                               description
+                               {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                               }
+                               description
+                               {
+                                       state: "pressed" 0.0;
+                                       //color_class: AO018;
+                                       visible: 1;
+                                       rel1.to: "elm.text";
+                                       rel1.offset: -3 0;
+                                       rel2.to: "elm.text";
+                                       rel2.offset: 3 0;
+                               }
+                       }
+                       part
+                       {
+                               name: "elm.text";
+                               type: TEXT;
+                               effect: "SHADOW";
+                               mouse_events: 1;
+                               repeat_events: 1;
+                               description
+                               {
+                                       state: "default" 0.0;
+                                       fixed: 1 1;
+                                       color: 255 255 255 255;
+                                       visible: 1;
+                                       rel1.relative: 1.0 0.0;
+                                       rel2.relative: 1.0 1.0;
+                                       align: 1.0 0.5;
+                                       max: -1 40;
+                                       text
+                                       {
+                                               align: 1.0 0.5;
+                                               size: 28;
+                                               //text_class: "ATO007";
+                                               min: 1 0;
+                                               ellipsis: -1;
+                                       }
+                               }
+                       }
+               }
+
+               programs
+               {
+                       program
+                       {
+                               name: "mouse,clicked";
+                               signal: "mouse,clicked,1";
+                               source: "elm.swallow.content";
+                               action: SIGNAL_EMIT "elm,action,click" "";
+                       }
+                       program
+                       {
+                               name: "button,pressed";
+                               signal: "mouse,down,1";
+                               action: STATE_SET "pressed" 0.0;
+                               source: "elm.swallow.content";
+                               target: "effect";
+                       }
+                       program
+                       {
+                               name: "button,unpressed";
+                               signal: "mouse,up,1";
+                               action: STATE_SET "default" 0.0;
+                               source: "elm.swallow.content";
+                               target: "effect";
+                       }
+               }
+       }
+
+       group
+       {
+               name: "elm/button/base/left_button";
+               parts
+               {
+                       part
+                       {
+                               name: "elm.swallow.content";
+                               type: RECT;
+                               mouse_events: 1;
+                               repeat_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       color: 0 0 0 0;
+                                       visible: 1;
+                                       rel1.relative: 0.0 0.0;
+                                       rel2.relative: 1.0 1.0;
+                                       align: 0.0 0.0;
+                               }
+                       }
+                       part {
+                               name: "effect";
+                               type: RECT;
+                               mouse_events: 1;
+                               repeat_events: 1;
+                               description
+                               {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                               }
+                               description
+                               {
+                                       state: "pressed" 0.0;
+                                       color_class: AO018;
+                                       visible: 1;
+                                       rel1.to: "elm.text";
+                                       rel1.offset: -3 -3;
+                                       rel2.to: "elm.text";
+                                       rel2.offset: 3 3;
+                               }
+                       }
+                       part
+                       {
+                               name: "elm.text";
+                               type: TEXT;
+                               effect: "SHADOW";
+                               mouse_events: 1;
+                               repeat_events: 1;
+                               description
+                               {
+                                       state: "default" 0.0;
+                                       fixed: 1 1;
+                                       color: 255 255 255 255;
+                                       visible: 1;
+                                       rel1.relative: 0.0 0.0;
+                                       rel2.relative: 0.0 1.0;
+                                       align: 0.0 0.5;
+                                       text
+                                       {
+                                               align: 0.0 0.5;
+                                               size: 28;
+                                               //text_class: "ATO007";
+                                               min: 1 0;
+                                               ellipsis: -1;
+                                       }
+                               }
+                       }
+               }
+
+               programs
+               {
+                       program
+                       {
+                               name: "mouse,clicked";
+                               signal: "mouse,clicked,1";
+                               source: "elm.text";
+                               action: SIGNAL_EMIT "elm,action,click" "";
+                       }
+                       program
+                       {
+                               name: "button,pressed";
+                               signal: "mouse,down,1";
+                               action: STATE_SET "pressed" 0.0;
+                               source: "elm.text";
+                               target: "effect";
+                       }
+                       program
+                       {
+                               name: "button,unpressed";
+                               signal: "mouse,up,1";
+                               action: STATE_SET "default" 0.0;
+                               source: "elm.text";
+                               target: "effect";
+                       }
+               }
+       }
+
+       group
+       {
+               name: "elm/button/base/center_button";
+               parts
+               {
+                       part
+                       {
+                               name: "elm.swallow.content";
+                               type: RECT;
+                               mouse_events: 1;
+                               repeat_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       color: 0 0 0 0;
+                                       visible: 1;
+                                       rel1.relative: 0.0 0.0;
+                                       rel2.relative: 1.0 1.0;
+                                       align: 0.0 0.0;
+                               }
+                       }
+                       part
+                       {
+                               name: "elm.text";
+                               type: TEXT;
+                               effect: "SHADOW";
+                               mouse_events: 1;
+                               repeat_events: 1;
+                               description
+                               {
+                                       state: "default" 0.0;
+                                       fixed: 1 1;
+                                       color: 255 255 255 255;
+                                       visible: 1;
+                                       rel1.relative: 0.0 0.0;
+                                       rel2.relative: 1.0 1.0;
+                                       text
+                                       {
+                                               align: 0.5 0.5;
+                                               size: 28;
+                                               //text_class: "ATO007";
+                                       }
+                               }
+                               description
+                               {
+                                       state: "pressed" 0.0;
+                                       inherit: "default" 0.0;
+                                       color: 255 255 255 128;
+                               }
+                       }
+               }
+
+               programs
+               {
+                       program
+                       {
+                               name: "mouse,clicked";
+                               signal: "mouse,clicked,1";
+                               source: "elm.swallow.content";
+                               action: SIGNAL_EMIT "elm,action,click" "";
+                       }
+                       program
+                       {
+                               name: "button,pressed";
+                               signal: "mouse,down,1";
+                               action: STATE_SET "pressed" 0.0;
+                               source: "elm.swallow.content";
+                               target: "elm.text";
+                       }
+                       program
+                       {
+                               name: "button,unpressed";
+                               signal: "mouse,up,1";
+                               action: STATE_SET "default" 0.0;
+                               source: "elm.swallow.content";
+                               target: "elm.text";
+                       }
+               }
+       }
+}
diff --git a/res/edje/mobile/lock_pwd.edc b/res/edje/mobile/lock_pwd.edc
new file mode 100755 (executable)
index 0000000..ac80a9f
--- /dev/null
@@ -0,0 +1,416 @@
+/*
+ * 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.
+ */
+
+#define WINDOW_HEIGHT 960
+#define WINDOW_WIDTH 540
+#define INDICATOR_SIZE 38
+
+/* simple password */
+#define NUMBER_KEYPAD_PANEL_WIDTH      WINDOW_WIDTH
+#define NUMBER_KEYPAD_PANEL_HEIGHT     WINDOW_HEIGHT
+#define NUMBER_KEYPAD_BUTTON_WIDTH     112
+#define NUMBER_KEYPAD_BUTTON_HEIGHT    112
+#define NUMBER_KEYPAD_BUTTON_PAD_X     68
+#define NUMBER_KEYPAD_BUTTON_PAD_Y     10
+
+#define NUMBER_KEYPAD_REL_W(x)         ((x)/NUMBER_KEYPAD_PANEL_WIDTH)
+#define NUMBER_KEYPAD_REL_H(y)         ((y)/NUMBER_KEYPAD_PANEL_HEIGHT)
+#define NUMBER_KEYPAD_BUTTON_REL_W(x)  ((x)/NUMBER_KEYPAD_BUTTON_WIDTH)
+#define NUMBER_KEYPAD_BUTTON_REL_H(y)  ((y)/NUMBER_KEYPAD_BUTTON_HEIGHT)
+
+#define PASS_KEY_NUM_SIZE 54
+#define PASS_KEY_SUB_SIZE 24
+
+#define DOT_WIDTH 20
+#define DOT_HEIGHT 20
+
+/* simple password - button pressed color */
+#define LOCK_TEXT_COLOR                245 245 245 255
+#define LOCK_TEXT_COLOR2               0 0 0 0
+#define LOCK_TEXT_COLOR3               0 0 0 178
+#define BUTTON_PRESSED_COLOR           179 179 179 179
+
+/* complex password */
+#define LINE_COLOR "AO021"
+#define LINE_SHADOW_COLOR "AO017"
+#define INFO_FONT_COLOR "ATO033"
+#define PASS_FONT_COLOR "ATO035"
+#define PASS_FONT_SIZE 43
+#define INFO_FONT_SIZE 30
+
+#define IME_RESIZED 1
+#define IME_DOWN 2
+
+
+collections {
+       base_scale: 1.8;
+
+#include "lock_pwd_simple.edc"
+#include "lock_pwd_complex.edc"
+
+       group {
+               name: "lock_pwd";
+               parts {
+                       part {
+                               name: "bg";
+                               type: SPACER;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; }
+                                       rel2 { relative: 1.0 1.0; }
+                               }
+                       }
+                       part {
+                               name: "sw.bg";
+                               type: SWALLOW;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { to: "bg"; }
+                                       rel2 { to: "bg"; }
+                               }
+                       }
+                       part {
+                               name: "sw.lock_pwd";
+                               type: SWALLOW;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { to: "bg"; }
+                                       rel2 { to: "bg"; }
+                               }
+                       }
+               }
+               programs {
+               }
+       }
+
+       group {
+               name: "lock-control-panel";
+               parts {
+                       part {
+                               name: "bg";
+                               type: SPACER;
+                               description {
+                                       state: "default" 0.0;
+                               }
+                       }
+                       part {
+                               name: "padding.top";
+                               type: SPACER;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "bg"; }
+                                       rel2 { relative: 1.0 0.0; to: "bg"; }
+                               }
+                       }
+                       part {
+                               name: "padding.left";
+                               type: SPACER;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "bg"; }
+                                       rel2 { relative: 40/WINDOW_WIDTH 1.0; to: "bg"; }
+                               }
+                       }
+                       part {
+                               name: "padding.right";
+                               type: SPACER;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: (WINDOW_WIDTH - 40)/WINDOW_WIDTH 0.0; to: "bg"; }
+                                       rel2 { relative: 1.0 1.0; to: "bg"; }
+                               }
+                       }
+                       part {
+                               name: "padding.bottom";
+                               type: SPACER;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 65/110; to: "bg"; }
+                                       rel2 { relative: 1.0 1.0; to: "bg"; }
+                               }
+                               description {
+                                       state: "button2_visible" 0.0;
+                                       rel1 { relative: 0.0 84/110; to: "bg"; }
+                                       rel2 { relative: 1.0 1.0; to: "bg"; }
+                               }
+                       }
+                       part {
+                               name: "button1,bg";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events: 1;
+                               repeat_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       fixed: 1 1;
+                                       rel1 { to: "button1"; offset: -3 0; }
+                                       rel2 { to: "button1"; offset: 3 0; }
+                                       visible: 1;
+                                       min: 1 40;
+                                       color: 0 0 0 0;
+                               }
+                               description {
+                                       state: "pressed" 0.0;
+                                       fixed: 1 1;
+                                       rel1 { to: "button1"; offset: -3 0; }
+                                       rel2 { to: "button1"; offset: 3 0; }
+                                       visible: 1;
+                                       color_class: AO018;
+                                       min: 1 40;
+                               }
+                       }
+                       part {
+                               name: "button1";
+                               type: SWALLOW;
+                               scale: 1;
+                               mouse_events: 1;
+                               repeat_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       fixed: 1 1;
+                                       min: 300 40;
+                                       max: 300 40;
+                                       align: 0.0 0.5;
+                                       rel1 {
+                                               relative: 1.0 0.5;
+                                               to_x: "padding.left";
+                                               to_y: "bg";
+                                       }
+                                       rel2 {
+                                               relative: 1.0  0.5;
+                                               to_x: "padding.left";
+                                               to_y: "bg";
+                                       }
+                               }
+                               description {
+                                       state: "button2_visible" 0.0;
+                                       inherit: "default";
+                                       align: 0.0 0.0;
+                                       rel1 {
+                                               relative: 1.0 1.0;
+                                               to_x: "padding.left";
+                                               to_y: "padding.top";
+                                       }
+                                       rel2 {
+                                               relative: 1.0 1.0;
+                                               to_x: "padding.left";
+                                               to_y: "padding.top";
+                                       }
+                               }
+                       }
+                       part {
+                               name: "button2,bg";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events: 1;
+                               repeat_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                               }
+                               description {
+                                       state: "pressed" 0.0;
+                                       rel1 { to: "button2"; offset: -3 0; }
+                                       rel2 { to: "button2"; offset: 3 0; }
+                                       visible: 1;
+                                       color_class: AO018;
+                                       min: 1 40;
+                               }
+                               description {
+                                       state: "button2_visible" 0.0;
+                                       rel1 { to: "button2"; }
+                                       rel2 { to: "button2"; }
+                                       visible: 1;
+                                       color: 0 0 0 0;
+                                       min: 1 40;
+                               }
+                       }
+                       part {
+                               name: "button2";
+                               type: SWALLOW;
+                               scale: 1;
+                               mouse_events: 1;
+                               repeat_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                               }
+                               description {
+                                       state: "button2_visible" 0.0;
+                                       min: 300 40;
+                                       max: 300 40;
+                                       fixed: 1 1;
+                                       align: 0.0 1.0;
+                                       rel1 {
+                                               relative: 1.0 0.0;
+                                               to_x: "padding.left";
+                                               to_y: "padding.bottom";
+                                       }
+                                       rel2 {
+                                               relative: 1.0 0.0;
+                                               to_x: "padding.left";
+                                               to_y: "padding.bottom";
+                                       }
+                               }
+                       }
+                       /* cancel */
+                       part {
+                               name: "button3.clipper";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { to: "button3"; }
+                                       rel2 { to: "button3"; }
+                                       color: 255 255 255 255;
+                                       visible: 1;
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       color: 178 178 178 178;
+                               }
+                       }
+                       part {
+                               name: "button3";
+                               type: SWALLOW;
+                               scale: 1;
+                               clip_to: "button3.clipper";
+                               description {
+                                       state: "default" 0.0;
+                                       fixed: 1 1;
+                                       fixed: 1 1;
+                                       min: 130 40;
+                                       max: 130 40;
+                                       align: 1.0 0.5;
+                                       rel1 {
+                                               relative: 0.0 0.5;
+                                               to_x: "padding.right";
+                                               to_y: "bg";
+                                       }
+                                       rel2 {
+                                               relative: 0.0 0.5;
+                                               to_x: "padding.right";
+                                               to_y: "bg";
+                                       }
+                               }
+                       }
+                       part {
+                               name: "button3.block";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events: 1;
+                               repeat_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { to: "button3"; }
+                                       rel2 { to: "button3"; }
+                                       color: 0 0 0 0;
+                                       visible: 0;
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+               }
+               programs {
+                       program {
+                               name: "show,button2";
+                               signal: "show,button2";
+                               source: "button2";
+                               action: STATE_SET "button2_visible" 0.0;
+                               target: "padding.bottom";
+                               target: "button1";
+                               target: "button2";
+                               target: "button2,bg";
+                       }
+                       program {
+                               name: "hide,button2";
+                               signal: "hide,button2";
+                               source: "button2";
+                               action: STATE_SET "default" 0.0;
+                               target: "padding.bottom";
+                               target: "button1";
+                               target: "button2";
+                               target: "button2,bg";
+                       }
+                       program {
+                               name: "button1,clicked";
+                               signal: "mouse,clicked,1";
+                               source: "button1,bg";
+                               action: SIGNAL_EMIT "emg_button" "clicked";
+                       }
+                       program {
+                               name: "button2,clicked";
+                               signal: "mouse,clicked,1";
+                               source: "button2,bg";
+                               action: SIGNAL_EMIT "account_button" "clicked";
+                       }
+                       program {
+                               name: "button1,down";
+                               signal: "mouse,down,1";
+                               source: "button1,bg";
+                               action: STATE_SET "pressed" 0.0;
+                               target: "button1,bg";
+                       }
+                       program {
+                               name: "button1,up";
+                               signal: "mouse,up,1";
+                               source: "button1,bg";
+                               action: STATE_SET "default" 0.0;
+                               target: "button1,bg";
+                       }
+                       program {
+                               name: "button2,down";
+                               signal: "mouse,down,1";
+                               source: "button2,bg";
+                               action: STATE_SET "pressed" 0.0;
+                               target: "button2,bg";
+                       }
+                       program {
+                               name: "button2,up";
+                               signal: "mouse,up,1";
+                               source: "button2,bg";
+                               action: STATE_SET "button2_visible" 0.0;
+                               target: "button2,bg";
+                       }
+                       program {
+                               signal: "button3,enable";
+                               source: "prog";
+                               action: STATE_SET "default" 0.0;
+                               target: "button3.clipper";
+                               target: "button3.block";
+                       }
+                       program {
+                               signal: "button3,disable";
+                               source: "prog";
+                               action: STATE_SET "show" 0.0;
+                               target: "button3.clipper";
+                               target: "button3.block";
+                       }
+               }
+       }
+}
diff --git a/res/edje/mobile/lock_pwd_complex.edc b/res/edje/mobile/lock_pwd_complex.edc
new file mode 100755 (executable)
index 0000000..86f4a78
--- /dev/null
@@ -0,0 +1,148 @@
+/*
+ * 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.
+ */
+
+styles {
+       style {
+               name: "style_complex_title";
+               base: "font=Tizen:style=Regular color=#ffffffff color_class=ATO033 font_size=30 wrap=mixed align=center style=shadow shadow_color=#000000bf text_class=ATO033";
+               tag: "br" "\n";
+               tag: "hilight" "+ color=#ffff";
+               tag: "b" "+ color=#ffff";
+               tag: "tab" "\t";
+       }
+}
+
+       group {
+               name: "lock-complex-password";
+               parts {
+                       part {
+                               name: "bg";
+                               type: SPACER;
+                               description {
+                                       state: "default" 0.0;
+                               }
+                       }
+                       part {
+                               name: "title";
+                               type: TEXTBLOCK;
+                               effect: "SHADOW";
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative : NUMBER_KEYPAD_REL_W(14) NUMBER_KEYPAD_REL_H(INDICATOR_SIZE+49); to : "bg"; }
+                                       rel2 { relative : NUMBER_KEYPAD_REL_W(526) NUMBER_KEYPAD_REL_H(INDICATOR_SIZE+49+42); to : "bg"; }
+                                       color_class: "ATO033";
+                                       fixed: 1 1;
+                                       text {
+                                               min: 0 1;
+                                               align: 0.5 0.5;
+                                               style: "style_complex_title";
+                                               text : "Enter PIN";
+                                       }
+                               }
+                               description {
+                                       state: "show_title" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                               description {
+                                       state: "hide_title" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 0;
+                               }
+                       }
+                       part {
+                               name: "entry";
+                               type: SWALLOW;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative : NUMBER_KEYPAD_REL_W(34) NUMBER_KEYPAD_REL_H(INDICATOR_SIZE+49+42+42+18); to : "bg"; }
+                                       rel2 { relative : NUMBER_KEYPAD_REL_W(506) NUMBER_KEYPAD_REL_H(INDICATOR_SIZE+49+42+42+18+65); to : "bg"; }
+                               }
+                       }
+                       part {
+                               name: "underline";
+                               type: RECT;
+                               description {
+                                       state: "default" 0.0;
+                                       color_class: LINE_COLOR;
+                                       fixed: 1 1;
+                                       rel1 { relative: 0.0 1.0; to: "entry"; offset : 0 11; }
+                                       rel2 { relative: 1.0 1.0; to: "entry"; offset : 0 11; }
+                                       min: 0 3;
+                                       max: -1 3;
+                               }
+                       }
+                       part {
+                               name: "underline_shadow";
+                               type: RECT;
+                               description {
+                                       state: "default" 0.0;
+                                       color_class: LINE_SHADOW_COLOR;
+                                       fixed: 1 1;
+                                       rel1 { relative: 0.0 0.0; to: "underline"; }
+                                       rel2 { relative: 1.0 1.0; to: "underline"; }
+                                       min: 0 1;
+                                       max: -1 1;
+                               }
+                       }
+                       /* Bottom : changed by IME height */
+                       part {
+                               name: "control_panel";
+                               type: SWALLOW;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 {
+                                               relative: 0.0 (INDICATOR_SIZE+312+478)/NUMBER_KEYPAD_PANEL_HEIGHT; to: "bg";
+                                       }
+                                       rel2 {
+                                               relative: 1.0 1.0; to: "bg";
+                                       }
+                               }
+                       }
+               }
+               program {
+                       name: "show.title";
+                       signal: "show_title";
+                       action: STATE_SET "show_title" 0.0;
+                       source: "title";
+                       target: "title";
+               }
+               program {
+                       name: "hide.title";
+                       signal: "hide_title";
+                       action: STATE_SET "hide_title" 0.0;
+                       source: "title";
+                       target: "title";
+               }
+               script {
+                       public message(Msg_Type:type, id, ...) {
+                               if((type == MSG_INT_SET) && (id == IME_RESIZED)) {
+                                       new h;
+                                       h = getarg(2);
+
+                                       custom_state(PART:"control_panel", "default", 0.0);
+                                       set_state_val(PART:"control_panel", STATE_REL1_OFFSET, 0, -1*h);
+                                       set_state_val(PART:"control_panel", STATE_REL2_OFFSET, 0, -1*h);
+                                       set_state(PART:"control_panel", "custom", 0.0);
+                               }
+                               if((type == MSG_INT_SET) && (id == IME_DOWN)) {
+                                       set_state(PART:"control_panel", "default", 0.0);
+                               }
+                       }
+               }
+       }
diff --git a/res/edje/mobile/lock_pwd_simple.edc b/res/edje/mobile/lock_pwd_simple.edc
new file mode 100755 (executable)
index 0000000..b260c89
--- /dev/null
@@ -0,0 +1,476 @@
+/*
+ * 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.
+ */
+
+#define PART_KEYPAD_BUTTON_NUMBER(keypad_button, offx, offy, button_number, button_text) \
+                       part { \
+                               name: keypad_button; \
+                               type: RECT; \
+                               scale: 1; \
+                               mouse_events: 1; \
+                               repeat_events: 1; \
+                               description { \
+                                       state: "default" 0.0; \
+                                       color: 0 0 0 0; \
+                                       rel1 { relative: NUMBER_KEYPAD_REL_W(34+offx) NUMBER_KEYPAD_REL_H(38+312+offy); to:"bg";} \
+                                       rel2 { relative: NUMBER_KEYPAD_REL_W(34+offx+NUMBER_KEYPAD_BUTTON_WIDTH) NUMBER_KEYPAD_REL_H(38+312+offy+NUMBER_KEYPAD_BUTTON_HEIGHT); to:"bg"; } \
+                               } \
+                               description { \
+                                       state: "pressed" 0.0; \
+                                       inherit: "default" 0.0; \
+                               } \
+                               description { \
+                                       state: "hide" 0.0; \
+                                       visible: 0; \
+                               } \
+                       } \
+                       part { \
+                               name: keypad_button"_feedback"; \
+                               type: IMAGE; \
+                               scale: 1; \
+                               repeat_events: 1; \
+                               description { \
+                                       state: "default" 0.0; \
+                                       rel1.to: keypad_button; \
+                                       rel2.to: keypad_button; \
+                                       fixed: 1 1; \
+                                       image { \
+                                               normal: "keypad_press_bg.png"; \
+                                       } \
+                                       color_class: "AO018"; \
+                                       visible: 0; \
+                               } \
+                               description { \
+                                       state: "pressed" 0.0; \
+                                       inherit: "default" 0.0; \
+                                       visible: 1; \
+                               } \
+                       } \
+                       part { \
+                               name: keypad_button"_number"; \
+                               type: TEXT; \
+                               scale: 1; \
+                               effect: "SHADOW"; \
+                               mouse_events: 0; \
+                               repeat_events: 1; \
+                               description { \
+                                       state: "default" 0.0; \
+                                       visible: 1; \
+                                       rel1 { relative: 0.0 (14)/NUMBER_KEYPAD_BUTTON_HEIGHT; to: keypad_button;} \
+                                       rel2 { relative: 1.0 (14+50)/NUMBER_KEYPAD_BUTTON_HEIGHT; to: keypad_button;} \
+                                       fixed: 1 1; \
+                                       align: 0.5 0.5; \
+                                       color_class: PASS_KEY_NUM_COLOR; \
+                                       text { \
+                                               align: 0.5 0.5; \
+                                               size: PASS_KEY_NUM_SIZE; \
+                                               text: button_number; \
+                                               font: "Tizen:style=Regular"; \
+                                               text_class: "tizen"; \
+                                       } \
+                               } \
+                               description { \
+                                       state: "hide" 0.0; \
+                                       inherit: "default" 0.0; \
+                                       visible: 0; \
+                               } \
+                               description { \
+                                       state: "center" 0.0; \
+                                       inherit: "default" 0.0; \
+                                       rel1 { relative: 0.0 0.0; to: keypad_button;} \
+                                       rel2 { relative: 1.0 1.0; to: keypad_button;} \
+                                       align: 0.5 0.5; \
+                                       text { \
+                                               align: 0.5 0.5; \
+                                               size: PASS_KEY_NUM_SIZE; \
+                                               text: button_number; \
+                                               font: "Tizen:style=Regular"; \
+                                               text_class: "tizen"; \
+                                       } \
+                               } \
+                       } \
+                       part { \
+                               name: keypad_button"_text"; \
+                               type: TEXT; \
+                               scale: 1; \
+                               effect: "SHADOW"; \
+                               mouse_events: 0; \
+                               repeat_events: 1; \
+                               description { \
+                                       state: "default" 0.0; \
+                                       visible: 1; \
+                                       rel1 { relative: 0.0  (14+50+9)/NUMBER_KEYPAD_BUTTON_HEIGHT; to: keypad_button;} \
+                                       rel2 { relative: 1.0  (14+50+9+26)/NUMBER_KEYPAD_BUTTON_HEIGHT; to: keypad_button;} \
+                                       fixed: 1 1; \
+                                       align: 0.5 0.5; \
+                                       color_class: PASS_KEY_SUB_COLOR; \
+                                       text { \
+                                               size: PASS_KEY_SUB_SIZE; \
+                                               text: button_text; \
+                                               align: 0.5 0.5; \
+                                               font: "Tizen:style=Regular"; \
+                                               text_class: "tizen"; \
+                                       } \
+                               } \
+                               description { \
+                                       state: "hide" 0.0; \
+                                       inherit: "default" 0.0; \
+                                       visible: 0; \
+                               } \
+                       }
+
+#define PROG_KEYPAD_BUTTON(keypad_button) \
+                       program { \
+                               name: "down_"keypad_button; \
+                               signal: "mouse,down,*"; \
+                               source: keypad_button; \
+                               script { \
+                                       set_state(PART:keypad_button"_feedback", "pressed", 0.0); \
+                                       emit("keypad_down", keypad_button); \
+                               } \
+                       } \
+                       program { \
+                               name: "multi_down_"keypad_button; \
+                               signal: "multi_down_"keypad_button; \
+                               source: keypad_button; \
+                               script { \
+                                       set_state(PART:keypad_button"_feedback", "pressed", 0.0); \
+                                       emit("keypad_down", keypad_button); \
+                               } \
+                       } \
+                       program { \
+                               name: "ani_"keypad_button; \
+                               signal: "ani"; \
+                               source: keypad_button; \
+                               action: STATE_SET "default" 0.0; \
+                               transition: SINUSOIDAL 0.05; \
+                               target: keypad_button"_feedback"; \
+                       } \
+                       program { \
+                               name: "up_"keypad_button; \
+                               signal: "mouse,up,1"; \
+                               source: keypad_button; \
+                               script { \
+                                       emit("keypad_down_up", keypad_button); \
+                                       emit("ani", keypad_button); \
+                               } \
+                       } \
+                       program { \
+                               name: "multi_up_"keypad_button; \
+                               signal: "multi_up_"keypad_button; \
+                               source: keypad_button; \
+                               script { \
+                                       emit("keypad_down_up", keypad_button); \
+                                       emit("ani", keypad_button); \
+                               } \
+                       } \
+                       program { \
+                               name: "clicked_"keypad_button; \
+                               signal: "mouse,clicked,1"; \
+                               source: keypad_button; \
+                               script { \
+                                       emit("keypad_down_clicked", keypad_button); \
+                               } \
+                       } \
+                       program { \
+                               name: "multi_clicked_"keypad_button; \
+                               signal: "multi_clicked_"keypad_button; \
+                               source: keypad_button; \
+                               script { \
+                                       emit("keypad_down_clicked", keypad_button); \
+                               } \
+                       } \
+
+
+#define PANEL_PART(idx) \
+       part { \
+               name: "dot"idx; \
+               type: IMAGE; \
+               description { \
+                       state: "default" 0.0; \
+                       min: DOT_WIDTH DOT_HEIGHT; \
+                       max: DOT_WIDTH DOT_HEIGHT; \
+                       rel1 { relative: NUMBER_KEYPAD_REL_W(105 + idx*(72+14)) NUMBER_KEYPAD_REL_H(38+156); to: "bg"; } \
+                       rel2 { relative: NUMBER_KEYPAD_REL_W(105 + idx*(72+14)+72) NUMBER_KEYPAD_REL_H(38+156+72); to: "bg"; } \
+                       fixed: 1 1; \
+                       image { \
+                               normal: "ls_password_dot.png"; \
+                       } \
+                       visible: 0; \
+               } \
+               description { \
+                       state: "show" 0.0; \
+                       inherit: "default" 0.0; \
+                       visible: 1; \
+               } \
+       } \
+       part { \
+               name: "panel"idx; \
+               type: TEXT; \
+               effect: "SHADOW"; \
+               description { \
+                       state: "default" 0.0; \
+                       rel1 { relative: NUMBER_KEYPAD_REL_W(105 + idx*(72+14)) NUMBER_KEYPAD_REL_H(38+156); to: "bg"; } \
+                       rel2 { relative: NUMBER_KEYPAD_REL_W(105 + idx*(72+14)+72) NUMBER_KEYPAD_REL_H(38+156+72); to: "bg"; } \
+                       fixed: 1 1; \
+                       text { \
+                               size: 68; \
+                               font: "Tizen:style=Regular"; \
+                               text_class: "tizen"; \
+                       } \
+                       visible: 0; \
+               } \
+               description { \
+                       state: "show" 0.0; \
+                       inherit: "default" 0.0; \
+                       visible: 1; \
+               } \
+       } \
+
+#define INPUT_PROGRAM(idx) \
+       program { \
+               name: "input_show"idx; \
+               action: STATE_SET "show" 0.0; \
+               source: "keyboard"; \
+               signal: "input_show"idx; \
+               target: "panel"idx; \
+       } \
+       program { \
+               name: "input_hide"idx; \
+               action: STATE_SET "default" 0.0; \
+               source: "keyboard"; \
+               signal: "input_hide"idx; \
+               target: "panel"idx; \
+       } \
+       program { \
+               name: "dot_show"idx; \
+               action: STATE_SET "show" 0.0; \
+               source: "keyboard"; \
+               signal: "dot_show"idx; \
+               target: "dot"idx; \
+               after: "input_hide"idx; \
+       } \
+       program { \
+               name: "dot_hide"idx; \
+               action: STATE_SET "default" 0.0; \
+               source: "keyboard"; \
+               signal: "dot_hide"idx; \
+               target: "dot"idx; \
+               after: "input_hide"idx; \
+       } \
+
+
+#define PART_DBG(part_name, R, G, B, A) \
+       part { \
+               name: part_name",dbg"; \
+               type: RECT; \
+               mouse_events: 1; \
+               repeat_events: 1; \
+               description { \
+                       state: "default" 0.0; \
+                       rel1 { relative: 0.0 0.0; to: part_name; } \
+                       rel2 { relative: 1.0 1.0; to: part_name; } \
+                       color: R G B A; \
+               } \
+       } \
+
+styles {
+       style {
+               name: "style_simple_title";
+               base: "font=Tizen:style=Regular color=#ffffffff color_class=ATO033 font_size=30 wrap=mixed align=center style=shadow shadow_color=#000000bf text_class=ATO033";
+               tag: "br" "\n";
+               tag: "hilight" "+ color=#ffff";
+               tag: "b" "+ color=#ffff";
+               tag: "tab" "\t";
+       }
+}
+
+       group {
+               name: "lock-simple-password";
+               images {
+                       image: "ls_password_dot.png" COMP;
+                       image: "ls_back_02_nor.png" COMP;
+                       image: "ls_back_02_press.png" COMP;
+                       image: "keypad_press_bg.png" COMP;
+               }
+               parts {
+                       part {
+                               name: "bg";
+                               type: SPACER;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                               }
+                       }
+                       part {
+                               name: "title";
+                               type: TEXTBLOCK;
+                               effect: "SHADOW";
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: NUMBER_KEYPAD_REL_W(14) NUMBER_KEYPAD_REL_H(INDICATOR_SIZE+70); to: "bg"; }
+                                       rel2 { relative: NUMBER_KEYPAD_REL_W(526) NUMBER_KEYPAD_REL_H((INDICATOR_SIZE+70+42)); to: "bg"; }
+                                       min: 512 42;
+                                       fixed: 1 1;
+                                       color_class: "ATO033";
+                                       text {
+                                               min: 0 1;
+                                               align: 0.5 0.5;
+                                               style: "style_simple_title";
+                                               text: "Enter PIN";
+                                       }
+                               }
+                               description {
+                                       state: "show_title" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                               description {
+                                       state: "hide_title" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 0;
+                               }
+                       }
+
+                       PANEL_PART(0)
+                       PANEL_PART(1)
+                       PANEL_PART(2)
+                       PANEL_PART(3)
+
+                       PART_KEYPAD_BUTTON_NUMBER("1", 0, 0, "1", "");
+                       PART_KEYPAD_BUTTON_NUMBER("2", NUMBER_KEYPAD_BUTTON_WIDTH+NUMBER_KEYPAD_BUTTON_PAD_X, 0, "2", "ABC");
+                       PART_KEYPAD_BUTTON_NUMBER("3", 2*(NUMBER_KEYPAD_BUTTON_WIDTH+NUMBER_KEYPAD_BUTTON_PAD_X), 0, "3", "DEF");
+                       PART_KEYPAD_BUTTON_NUMBER("4", 0, NUMBER_KEYPAD_BUTTON_HEIGHT+NUMBER_KEYPAD_BUTTON_PAD_Y, "4", "GHI");
+                       PART_KEYPAD_BUTTON_NUMBER("5", NUMBER_KEYPAD_BUTTON_WIDTH+NUMBER_KEYPAD_BUTTON_PAD_X, NUMBER_KEYPAD_BUTTON_HEIGHT+NUMBER_KEYPAD_BUTTON_PAD_Y, "5", "JKL");
+                       PART_KEYPAD_BUTTON_NUMBER("6", 2*(NUMBER_KEYPAD_BUTTON_WIDTH+NUMBER_KEYPAD_BUTTON_PAD_X), NUMBER_KEYPAD_BUTTON_HEIGHT+NUMBER_KEYPAD_BUTTON_PAD_Y, "6", "MNO");
+                       PART_KEYPAD_BUTTON_NUMBER("7", 0, 2*(NUMBER_KEYPAD_BUTTON_HEIGHT+NUMBER_KEYPAD_BUTTON_PAD_Y), "7", "PQRS");
+                       PART_KEYPAD_BUTTON_NUMBER("8", NUMBER_KEYPAD_BUTTON_WIDTH+NUMBER_KEYPAD_BUTTON_PAD_X, 2*(NUMBER_KEYPAD_BUTTON_HEIGHT+NUMBER_KEYPAD_BUTTON_PAD_Y), "8", "TUV");
+                       PART_KEYPAD_BUTTON_NUMBER("9", 2*(NUMBER_KEYPAD_BUTTON_WIDTH+NUMBER_KEYPAD_BUTTON_PAD_X), 2*(NUMBER_KEYPAD_BUTTON_HEIGHT+NUMBER_KEYPAD_BUTTON_PAD_Y), "9", "WXYZ");
+                       PART_KEYPAD_BUTTON_NUMBER("0", NUMBER_KEYPAD_BUTTON_WIDTH+NUMBER_KEYPAD_BUTTON_PAD_X, 3*(NUMBER_KEYPAD_BUTTON_HEIGHT+NUMBER_KEYPAD_BUTTON_PAD_Y), "0", "");
+
+                       part {
+                               name: "Backspace_feedback";
+                               type: IMAGE;
+                               scale: 1;
+                               mouse_events: 1;
+                               repeat_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 {
+                                               relative: NUMBER_KEYPAD_REL_W(34+2*(NUMBER_KEYPAD_BUTTON_WIDTH+NUMBER_KEYPAD_BUTTON_PAD_X)) NUMBER_KEYPAD_REL_H(INDICATOR_SIZE+312+3*(NUMBER_KEYPAD_BUTTON_HEIGHT+NUMBER_KEYPAD_BUTTON_PAD_Y));
+                                               to: "bg";
+                                       }
+                                       rel2 {
+                                               relative: NUMBER_KEYPAD_REL_W(34+2*(NUMBER_KEYPAD_BUTTON_WIDTH+NUMBER_KEYPAD_BUTTON_PAD_X)+NUMBER_KEYPAD_BUTTON_WIDTH) NUMBER_KEYPAD_REL_H(INDICATOR_SIZE+312+3*(NUMBER_KEYPAD_BUTTON_HEIGHT+NUMBER_KEYPAD_BUTTON_PAD_Y)+NUMBER_KEYPAD_BUTTON_HEIGHT);
+                                               to: "bg";
+                                       }
+                                       image {
+                                               normal: "keypad_press_bg.png";
+                                       }
+                                       color_class: "AO018";
+                                       visible: 0;
+                                       color: BUTTON_PRESSED_COLOR;
+                               }
+                               description {
+                                       state: "pressed" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                               description {
+                                       state: "hide" 0.0;
+                                       inherit: "default" 0.0;
+                               }
+                       }
+                       part {
+                               name: "Backspace";
+                               type: IMAGE;
+                               scale: 1;
+                               repeat_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1.to: "Backspace_feedback";
+                                       rel2.to: "Backspace_feedback";
+                                       min: 92 68;
+                                       max: 92 68;
+                                       fixed: 1 1;
+                                       image.normal: "ls_back_02_nor.png";
+                                       align: 0.5 0.5;
+                               }
+                               description {
+                                       state: "pressed" 0.0;
+                                       inherit: "default" 0.0;
+                                       image.normal: "ls_back_02_press.png";
+                               }
+                       }
+                       /* Bottom */
+                       part {
+                               name: "control_panel";
+                               type: SWALLOW;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 {
+                                               relative: 0.0 (INDICATOR_SIZE+312+478)/NUMBER_KEYPAD_PANEL_HEIGHT; to: "bg";
+                                       }
+                                       rel2 {
+                                               relative: 1.0 1.0; to: "bg";
+                                       }
+                               }
+                       }
+               }
+               programs {
+                       program {
+                               name: "init.layout";
+                               signal: "load";
+                               source: "";
+                               script {
+                                       set_state(PART:"0_number", "center", 0.0);
+                               }
+                       }
+
+                       INPUT_PROGRAM(0)
+                       INPUT_PROGRAM(1)
+                       INPUT_PROGRAM(2)
+                       INPUT_PROGRAM(3)
+
+                       PROG_KEYPAD_BUTTON("1")
+                       PROG_KEYPAD_BUTTON("2")
+                       PROG_KEYPAD_BUTTON("3")
+                       PROG_KEYPAD_BUTTON("4")
+                       PROG_KEYPAD_BUTTON("5")
+                       PROG_KEYPAD_BUTTON("6")
+                       PROG_KEYPAD_BUTTON("7")
+                       PROG_KEYPAD_BUTTON("8")
+                       PROG_KEYPAD_BUTTON("9")
+                       PROG_KEYPAD_BUTTON("0")
+                       PROG_KEYPAD_BUTTON("Backspace")
+               }
+               program {
+                       name: "show.title";
+                       signal: "show_title";
+                       action: STATE_SET "show_title" 0.0;
+                       source: "title";
+                       target: "title";
+               }
+               program {
+                       name: "hide.title";
+                       signal: "hide_title";
+                       action: STATE_SET "hide_title" 0.0;
+                       source: "title";
+                       target: "title";
+               }
+       }
+
diff --git a/src/dbus_util.c b/src/dbus_util.c
new file mode 100644 (file)
index 0000000..0147607
--- /dev/null
@@ -0,0 +1,395 @@
+/*
+ * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <E_DBus.h>
+#include <dbus/dbus-glib.h>
+#include <dbus/dbus-glib-lowlevel.h>
+
+#include "dbus_util.h"
+#include "util.h"
+
+#define DBUS_HOME_BUS_NAME "org.tizen.coreapps.home"
+#define DBUS_HOME_RAISE_PATH "/Org/Tizen/Coreapps/home/raise"
+#define DBUS_HOME_RAISE_INTERFACE DBUS_HOME_BUS_NAME".raise"
+#define DBUS_HOME_RAISE_MEMBER "homeraise"
+
+#define DBUS_REPLY_TIMEOUT (120 * 1000)
+
+#define POWEROFF_BUS_NAME       "org.tizen.system.popup"
+#define POWEROFF_OBJECT_PATH    "/Org/Tizen/System/Popup/Poweroff"
+#define POWEROFF_INTERFACE_NAME POWEROFF_BUS_NAME".Poweroff"
+#define METHOD_POWEROFF_NAME   "PopupLaunch"
+
+#define CPU_BOOSTER_OBJECT_PATH DEVICED_OBJECT_PATH"/PmQos"
+#define CPU_BOOSTER_INTERFACE  DEVICED_BUS_NAME".PmQos"
+#define METHOD_CPU_BOOSTER             "AppLaunchHome"
+#define DBUS_CPU_BOOSTER_SEC   200
+
+#define METHOD_LOCK_PMQOS_NAME "LockScreen"
+#define DBUS_LOCK_PMQOS_SEC (2 * 1000)
+
+static struct _info {
+       DBusConnection *connection;
+} s_info = {
+       .connection = NULL,
+};
+
+
+
+static DBusConnection *_dbus_connection_get(void)
+{
+       DBusError derror;
+       DBusConnection *connection = NULL;
+
+       if (s_info.connection) {
+               return s_info.connection;
+       }
+
+       _W("no connection for dbus. get dbus connection");
+
+       dbus_error_init(&derror);
+       connection = dbus_bus_get_private(DBUS_BUS_SYSTEM, &derror);
+       if (!connection) {
+               _E("Failed to get dbus connection:%s", derror.message);
+               dbus_error_free(&derror);
+               return NULL;
+       }
+       dbus_connection_setup_with_g_main(connection, NULL);
+       dbus_error_free(&derror);
+
+       s_info.connection = connection;
+
+       return s_info.connection;
+}
+
+
+
+static int _append_variant(DBusMessageIter *iter, const char *sig, char *param[])
+{
+       char *ch;
+       int i;
+       int int_type;
+       uint64_t int64_type;
+
+       if (!sig || !param)
+               return 0;
+
+       for (ch = (char*)sig, i = 0; *ch != '\0'; ++i, ++ch) {
+               switch (*ch) {
+               case 'i':
+                       int_type = atoi(param[i]);
+                       dbus_message_iter_append_basic(iter, DBUS_TYPE_INT32, &int_type);
+                       break;
+               case 'u':
+                       int_type = atoi(param[i]);
+                       dbus_message_iter_append_basic(iter, DBUS_TYPE_UINT32, &int_type);
+                       break;
+               case 't':
+                       int64_type = atoi(param[i]);
+                       dbus_message_iter_append_basic(iter, DBUS_TYPE_UINT64, &int64_type);
+                       break;
+               case 's':
+                       dbus_message_iter_append_basic(iter, DBUS_TYPE_STRING, &param[i]);
+                       break;
+               default:
+                       return -EINVAL;
+               }
+       }
+
+       return 0;
+}
+
+
+
+static DBusMessage *_invoke_dbus_method_sync(const char *dest, const char *path,
+               const char *interface, const char *method,
+               const char *sig, char *param[])
+{
+       DBusConnection *conn = NULL;
+       DBusMessage *msg;
+       DBusMessageIter iter;
+       DBusMessage *reply;
+       DBusError err;
+       int r;
+
+       conn = (DBusConnection *)_dbus_connection_get();
+       if (!conn) {
+               _E("dbus_bus_get error");
+               return NULL;
+       }
+
+       msg = dbus_message_new_method_call(dest, path, interface, method);
+       if (!msg) {
+               _E("dbus_message_new_method_call(%s:%s-%s)", path, interface, method);
+               return NULL;
+       }
+
+       dbus_message_iter_init_append(msg, &iter);
+       r = _append_variant(&iter, sig, param);
+       if (r < 0) {
+               _E("append_variant error(%d)", r);
+               dbus_message_unref(msg);
+               return NULL;
+       }
+
+       dbus_error_init(&err);
+
+       reply = dbus_connection_send_with_reply_and_block(conn, msg, DBUS_REPLY_TIMEOUT, &err);
+       dbus_message_unref(msg);
+       if (!reply) {
+               _E("dbus_connection_send error(%s:%s)", err.name, err.message);
+               dbus_error_free(&err);
+               return NULL;
+       }
+
+       return reply;
+}
+
+
+
+static int _invoke_dbus_method_async(const char *dest, const char *path,
+               const char *interface, const char *method,
+               const char *sig, char *param[])
+{
+       DBusConnection *conn;
+       DBusMessage *msg;
+       DBusMessageIter iter;
+       int r;
+
+       conn = dbus_bus_get(DBUS_BUS_SYSTEM, NULL);
+       if (!conn) {
+               _E("dbus_bus_get error");
+               return 0;
+       }
+
+       msg = dbus_message_new_method_call(dest, path, interface, method);
+       if (!msg) {
+               _E("dbus_message_new_method_call(%s:%s-%s)", path, interface, method);
+               return 0;
+       }
+
+       dbus_message_iter_init_append(msg, &iter);
+       r = _append_variant(&iter, sig, param);
+       if (r < 0) {
+               _E("append_variant error(%d)", r);
+               dbus_message_unref(msg);
+               return 0;
+       }
+
+       r = dbus_connection_send(conn, msg, NULL);
+       dbus_message_unref(msg);
+       if (r != TRUE) {
+               _E("dbus_connection_send error(%s:%s:%s-%s)", dest, path, interface, method);
+               return 0;
+       }
+
+       _D("dbus_connection_send, ret=%d", r);
+       return 1;
+}
+
+
+
+static int _dbus_message_send(const char *path, const char *interface, const char *member)
+{
+       int ret = 0;
+       DBusMessage *msg = NULL;
+       DBusConnection *conn = NULL;
+
+       conn = (DBusConnection *)_dbus_connection_get();
+       if (!conn) {
+               _E("dbus_bus_get error");
+               return -1;
+       }
+
+       msg = dbus_message_new_signal(path, interface, member);
+       if (!msg) {
+               _E("dbus_message_new_signal(%s:%s-%s)", path, interface, member);
+               return -1;
+       }
+
+       ret = dbus_connection_send(conn, msg, NULL); //async call
+       dbus_message_unref(msg);
+       if (ret != TRUE) {
+               _E("dbus_connection_send error(%s:%s-%s)", path, interface, member);
+               return -ECOMM;
+       }
+       _D("dbus_connection_send, ret=%d", ret);
+       return 0;
+}
+
+
+
+void dbus_util_send_home_raise_signal(void)
+{
+       int ret = 0;
+
+       ret = _dbus_message_send(
+                       DBUS_HOME_RAISE_PATH,
+                       DBUS_HOME_RAISE_INTERFACE,
+                       DBUS_HOME_RAISE_MEMBER);
+       _E("Sending HOME RAISE signal, result:%d", ret);
+}
+
+
+
+int dbus_util_send_oomadj(int pid, int oom_adj_value)
+{
+       DBusError err;
+       DBusMessage *msg;
+       char *pa[4];
+       char buf1[BUF_SIZE_16];
+       char buf2[BUF_SIZE_16];
+       int ret, val;
+
+       if(pid <= 0){
+               _E("Pid is invalid");
+               return -1;
+       }
+
+       snprintf(buf1, sizeof(buf1), "%d", pid);
+       snprintf(buf2, sizeof(buf2), "%d", oom_adj_value);
+
+       pa[0] = DEVICED_SET_METHOD;
+       pa[1] = "2";
+       pa[2] = buf1;
+       pa[3] = buf2;
+
+       msg = _invoke_dbus_method_sync(DEVICED_BUS_NAME, DEVICED_PATH, DEVICED_INTERFACE, DEVICED_SET_METHOD, "siss", pa);
+       if (!msg)
+               return -EBADMSG;
+
+       dbus_error_init(&err);
+
+       ret = dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &val, DBUS_TYPE_INVALID);
+       if (!ret) {
+               _E("no message : [%s:%s]", err.name, err.message);
+               val = -EBADMSG;
+       }
+
+       dbus_message_unref(msg);
+       dbus_error_free(&err);
+
+       _D("%s-%s : %d", DEVICED_INTERFACE, pa[0], val);
+       return val;
+}
+
+
+
+void dbus_util_send_cpu_booster_signal(void)
+{
+       int ret = 0;
+       char *arr[1];
+       char val[BUF_SIZE_32];
+
+       snprintf(val, sizeof(val), "%d", DBUS_CPU_BOOSTER_SEC);
+       arr[0] = val;
+
+       ret = _invoke_dbus_method_async(DEVICED_BUS_NAME, CPU_BOOSTER_OBJECT_PATH, CPU_BOOSTER_INTERFACE,
+                       METHOD_CPU_BOOSTER, "i", arr);
+       ret_if(!ret);
+
+       _D("%s-%s", CPU_BOOSTER_INTERFACE, METHOD_CPU_BOOSTER);
+}
+
+
+
+void dbus_util_send_poweroff_signal(void)
+{
+       int ret = 0;
+
+       ret = _invoke_dbus_method_async(POWEROFF_BUS_NAME, POWEROFF_OBJECT_PATH, POWEROFF_INTERFACE_NAME,
+                       METHOD_POWEROFF_NAME, NULL, NULL);
+       ret_if(!ret);
+
+       _D("%s-%s", POWEROFF_INTERFACE_NAME, METHOD_POWEROFF_NAME);
+}
+
+
+
+void dbus_util_send_lock_PmQos_signal(void)
+{
+       int ret = 0;
+
+       char *arr[1];
+       char val[BUF_SIZE_32];
+
+       snprintf(val, sizeof(val), "%d", DBUS_LOCK_PMQOS_SEC);
+       arr[0] = val;
+
+       ret = _invoke_dbus_method_async(DEVICED_BUS_NAME, CPU_BOOSTER_OBJECT_PATH, CPU_BOOSTER_INTERFACE,
+                       METHOD_LOCK_PMQOS_NAME, "i", arr);
+       ret_if(!ret);
+
+       _D("%s-%s", CPU_BOOSTER_INTERFACE, METHOD_LOCK_PMQOS_NAME);
+}
+
+
+
+int dbus_util_receive_lcd_status(void (*changed_cb)(void *data, DBusMessage *msg), void *data)
+{
+       E_DBus_Connection *conn;
+       E_DBus_Signal_Handler *handler;
+
+       e_dbus_init();
+
+       conn = e_dbus_bus_get(DBUS_BUS_SYSTEM);
+       if (conn == NULL) {
+               _E("e_dbus_bus_get error");
+               return 0;
+       }
+
+       handler = e_dbus_signal_handler_add(conn, NULL, DISPLAY_OBJECT_PATH,
+                                                               DEVICED_INTERFACE_DISPLAY, MEMBER_LCD_ON,
+                                                               changed_cb, data);
+       if (handler == NULL) {
+               _E("e_dbus_signal_handler_add error");
+               return 0;
+       }
+
+       handler = e_dbus_signal_handler_add(conn, NULL, DISPLAY_OBJECT_PATH,
+                                                               DEVICED_INTERFACE_DISPLAY, MEMBER_LCD_OFF,
+                                                               changed_cb, data);
+       if (handler == NULL) {
+               _E("e_dbus_signal_handler_add error");
+               return 0;
+       }
+
+       return 1;
+}
+
+char *dbus_util_msg_arg_get_str(DBusMessage *msg)
+{
+       int ret = 0;
+       DBusError derror;
+       const char *state = NULL;
+       dbus_error_init(&derror);
+
+       ret = dbus_message_get_args(msg, &derror, DBUS_TYPE_STRING, &state, DBUS_TYPE_INVALID);
+       goto_if(!ret, ERROR);
+
+       dbus_error_free(&derror);
+
+       return strdup(state);
+
+ERROR:
+       _E("Failed to get reply (%s:%s)", derror.name, derror.message);
+       dbus_error_free(&derror);
+
+       return NULL;
+}
+
+
+
diff --git a/src/hw_key.c b/src/hw_key.c
deleted file mode 100755 (executable)
index 359d0fc..0000000
+++ /dev/null
@@ -1,332 +0,0 @@
- /*
-  * Copyright 2012  Samsung Electronics Co., Ltd
-  *
-  * Licensed under the Flora License, Version 1.1 (the "License");
-  * you may not use this file except in compliance with the License.
-  * You may obtain a copy of the License at
-  *
-  *     http://floralicense.org/license/
-  *
-  * Unless required by applicable law or agreed to in writing, software
-  * distributed under the License is distributed on an "AS IS" BASIS,
-  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  * See the License for the specific language governing permissions and
-  * limitations under the License.
-  */
-
-
-
-#include <ail.h>
-#include <bundle.h>
-#include <Elementary.h>
-
-#ifndef WAYLAND
-#include <Ecore_X.h>
-#include <utilX.h>
-#endif
-
-#include <Ecore_Input.h>
-#include <sysman.h>
-#include <syspopup_caller.h>
-#include <vconf.h>
-#include <system/media_key.h>
-
-#include "hw_key.h"
-#include "menu_daemon.h"
-#include "util.h"
-
-#define TASKMGR_PKG_NAME "org.tizen.taskmgr"
-#define CAMERA_PKG_NAME "org.tizen.camera-app"
-#define CALLLOG_PKG_NAME "org.tizen.calllog"
-#define MUSIC_PLAYER_PKG_NAME "org.tizen.music-player"
-
-
-
-static struct {
-       Ecore_X_Window win;
-       Ecore_Event_Handler *key_up;
-       Ecore_Event_Handler *key_down;
-       Ecore_Timer *long_press;
-       Ecore_Timer *single_timer;
-       Ecore_Timer *volume_up_long_press;
-       Ecore_Timer *volume_down_long_press;
-       Eina_Bool cancel;
-} key_info = {
-       .win = 0x0,
-       .key_up = NULL,
-       .key_down = NULL,
-       .long_press = NULL,
-       .single_timer = NULL,
-       .volume_up_long_press = NULL,
-       .volume_down_long_press = NULL,
-       .cancel = EINA_FALSE,
-};
-
-
-
-static Eina_Bool _launch_taskmgr_cb(void* data)
-{
-       int val1 = -1;
-       int val2 = -1;
-       _D("Launch TASKMGR");
-
-       key_info.long_press = NULL;
-
-       if (vconf_get_int(VCONFKEY_PM_STATE, &val1) < 0) {
-               _E("Cannot get VCONFKEY_PM_STATE");
-               return ECORE_CALLBACK_CANCEL;
-       }
-       if (vconf_get_int(VCONFKEY_IDLE_LOCK_STATE, &val2) < 0) {
-               _E("Cannot get VCONFKEY_IDLE_LOCK_STATE");
-               return ECORE_CALLBACK_CANCEL;
-       }
-
-       if ((val1 == VCONFKEY_PM_STATE_NORMAL) && (val2 == VCONFKEY_IDLE_UNLOCK)) {
-               _D("LCD ON, UNLOCK state => launch taskmgr");
-               if (menu_daemon_open_app(TASKMGR_PKG_NAME) < 0)
-                       _E("Failed to launch the taskmgr");
-       } else {
-               _D("Can't launch TASKMGR pm state : %d lock state : %d", val1, val2);
-       }
-
-       return ECORE_CALLBACK_CANCEL;
-}
-
-
-
-static Eina_Bool _launch_by_home_key(void *data)
-{
-       key_info.single_timer = NULL;
-       syspopup_destroy_all();
-       menu_daemon_open_homescreen(NULL);
-       return ECORE_CALLBACK_CANCEL;
-}
-
-
-
-inline static int _release_home_key(void)
-{
-       retv_if(NULL == key_info.long_press, EXIT_SUCCESS);
-       ecore_timer_del(key_info.long_press);
-       key_info.long_press = NULL;
-
-       if (NULL == key_info.single_timer) {
-               key_info.single_timer = ecore_timer_add(0.3, _launch_by_home_key, NULL);
-               return EXIT_SUCCESS;
-       }
-       ecore_timer_del(key_info.single_timer);
-       key_info.single_timer = NULL;
-
-       syspopup_destroy_all();
-
-       return EXIT_SUCCESS;
-}
-
-
-
-inline static void _release_multimedia_key(const char *value)
-{
-       ret_if(NULL == value);
-
-       _D("Multimedia key is released with %s", value);
-
-       bundle *b;
-       b = bundle_create();
-       if (!b) {
-               _E("Cannot create bundle");
-               return;
-       }
-       bundle_add(b, "multimedia_key", value);
-
-       int ret;
-       ret = menu_daemon_launch_app(MUSIC_PLAYER_PKG_NAME, b);
-       if (ret < 0)
-               _E("Failed to launch the running apps, ret : %d", ret);
-
-       bundle_free(b);
-}
-
-
-
-static Eina_Bool _key_release_cb(void *data, int type, void *event)
-{
-       Evas_Event_Key_Up *ev = event;
-       int val = -1;
-
-       _D("Released");
-
-       if (!ev) {
-               _D("Invalid event object");
-               return ECORE_CALLBACK_RENEW;
-       }
-
-#ifndef WAYLAND
-       if (!strcmp(ev->keyname, KEY_END)) {
-       } else if (!strcmp(ev->keyname, KEY_CONFIG)) {
-       } else if (!strcmp(ev->keyname, KEY_SEND)) {
-       } else if (!strcmp(ev->keyname, KEY_HOME)) {
-
-               if (vconf_get_int(VCONFKEY_IDLE_LOCK_STATE, &val) < 0) {
-                       _D("Cannot get VCONFKEY_IDLE_LOCK_STATE");
-               }
-               if (val == VCONFKEY_IDLE_LOCK) {
-                       _D("lock state, ignore home key..!!");
-                       return ECORE_CALLBACK_RENEW;
-               }
-
-               if (EINA_TRUE == key_info.cancel) {
-                       _D("Cancel key is activated");
-                       if (key_info.long_press) {
-                               ecore_timer_del(key_info.long_press);
-                               key_info.long_press = NULL;
-                       }
-
-                       if (key_info.single_timer) {
-                               ecore_timer_del(key_info.single_timer);
-                               key_info.single_timer = NULL;
-                       }
-
-                       return ECORE_CALLBACK_RENEW;
-               }
-
-               _release_home_key();
-       } else if (!strcmp(ev->keyname, KEY_PAUSE)) {
-       } else if (!strcmp(ev->keyname, KEY_CANCEL)) {
-               _D("CANCEL Key is released");
-               key_info.cancel = EINA_FALSE;
-       } else if (!strcmp(ev->keyname, KEY_MEDIA)) {
-               _release_multimedia_key("KEY_PLAYCD");
-       }
-#endif
-
-       return ECORE_CALLBACK_RENEW;
-}
-
-
-
-static Eina_Bool _key_press_cb(void *data, int type, void *event)
-{
-       Evas_Event_Key_Down *ev = event;
-       int val = -1;
-
-       _D("Pressed");
-
-       if (!ev) {
-               _D("Invalid event object");
-               return ECORE_CALLBACK_RENEW;
-       }
-
-#ifndef WAYLAND
-       if (!strcmp(ev->keyname, KEY_SEND)) {
-               _D("Launch calllog");
-               if (menu_daemon_open_app(CALLLOG_PKG_NAME) < 0)
-                       _E("Failed to launch %s", CALLLOG_PKG_NAME);
-       } else if(!strcmp(ev->keyname, KEY_CONFIG)) {
-               _D("Launch camera");
-               if (menu_daemon_open_app(CAMERA_PKG_NAME) < 0)
-                       _E("Failed to launch %s", CAMERA_PKG_NAME);
-       } else if (!strcmp(ev->keyname, KEY_HOME)) {
-               if (vconf_get_int(VCONFKEY_IDLE_LOCK_STATE, &val) < 0) {
-                       _D("Cannot get VCONFKEY_IDLE_LOCK_STATE");
-               }
-               if (val == VCONFKEY_IDLE_LOCK) {
-                       _D("lock state, ignore home key..!!");
-                       return ECORE_CALLBACK_RENEW;
-               }
-               if (key_info.long_press) {
-                       ecore_timer_del(key_info.long_press);
-                       key_info.long_press = NULL;
-               }
-
-               key_info.long_press = ecore_timer_add(0.5, _launch_taskmgr_cb, NULL);
-               if (!key_info.long_press)
-                       _E("Failed to add timer for long press detection");
-       } else if (!strcmp(ev->keyname, KEY_CANCEL)) {
-               _D("Cancel button is pressed");
-               key_info.cancel = EINA_TRUE;
-       } else if (!strcmp(ev->keyname, KEY_MEDIA)) {
-               _D("Media key is pressed");
-       }
-#endif
-
-       return ECORE_CALLBACK_RENEW;
-}
-
-
-
-void _media_key_event_cb(media_key_e key, media_key_event_e status, void *user_data)
-{
-       _D("MEDIA KEY EVENT");
-       if (MEDIA_KEY_STATUS_PRESSED == status) return;
-
-       if (MEDIA_KEY_PAUSE == key) {
-               _release_multimedia_key("KEY_PAUSECD");
-       } else if (MEDIA_KEY_PLAY == key) {
-               _release_multimedia_key("KEY_PLAYCD");
-       }
-}
-
-
-
-void create_key_window(void)
-{
-#ifndef WAYLAND
-       key_info.win = ecore_x_window_input_new(0, 0, 0, 1, 1);
-       if (!key_info.win) {
-               _D("Failed to create hidden window");
-               return;
-       }
-       ecore_x_event_mask_unset(key_info.win, ECORE_X_EVENT_MASK_NONE);
-       ecore_x_icccm_title_set(key_info.win, "menudaemon,key,receiver");
-       ecore_x_netwm_name_set(key_info.win, "menudaemon,key,receiver");
-       ecore_x_netwm_pid_set(key_info.win, getpid());
-
-       utilx_grab_key(ecore_x_display_get(), key_info.win, KEY_HOME, SHARED_GRAB);
-       utilx_grab_key(ecore_x_display_get(), key_info.win, KEY_VOLUMEDOWN, SHARED_GRAB);
-       utilx_grab_key(ecore_x_display_get(), key_info.win, KEY_VOLUMEUP, SHARED_GRAB);
-       utilx_grab_key(ecore_x_display_get(), key_info.win, KEY_CONFIG, SHARED_GRAB);
-       utilx_grab_key(ecore_x_display_get(), key_info.win, KEY_MEDIA, SHARED_GRAB);
-
-       key_info.key_up = ecore_event_handler_add(ECORE_EVENT_KEY_UP, _key_release_cb, NULL);
-       if (!key_info.key_up)
-               _D("Failed to register a key up event handler");
-
-       key_info.key_down = ecore_event_handler_add(ECORE_EVENT_KEY_DOWN, _key_press_cb, NULL);
-       if (!key_info.key_down)
-               _D("Failed to register a key down event handler");
-
-       media_key_reserve(_media_key_event_cb, NULL);
-#endif
-}
-
-
-
-void destroy_key_window(void)
-{
-#ifndef WAYLAND
-       utilx_ungrab_key(ecore_x_display_get(), key_info.win, KEY_HOME);
-       utilx_ungrab_key(ecore_x_display_get(), key_info.win, KEY_VOLUMEDOWN);
-       utilx_ungrab_key(ecore_x_display_get(), key_info.win, KEY_VOLUMEUP);
-       utilx_ungrab_key(ecore_x_display_get(), key_info.win, KEY_CONFIG);
-       utilx_ungrab_key(ecore_x_display_get(), key_info.win, KEY_MEDIA);
-
-       if (key_info.key_up) {
-               ecore_event_handler_del(key_info.key_up);
-               key_info.key_up = NULL;
-       }
-
-       if (key_info.key_down) {
-               ecore_event_handler_del(key_info.key_down);
-               key_info.key_down = NULL;
-       }
-
-       ecore_x_window_delete_request_send(key_info.win);
-       key_info.win = 0x0;
-
-       media_key_release();
-#endif
-}
-
-
-
-// End of a file
diff --git a/src/lock-daemon.c b/src/lock-daemon.c
deleted file mode 100755 (executable)
index 2ceb5be..0000000
+++ /dev/null
@@ -1,663 +0,0 @@
- /*
-  * Copyright 2012  Samsung Electronics Co., Ltd
-  *
-  * Licensed under the Flora License, Version 1.1 (the "License");
-  * you may not use this file except in compliance with the License.
-  * You may obtain a copy of the License at
-  *
-  *     http://floralicense.org/license/
-  *
-  * Unless required by applicable law or agreed to in writing, software
-  * distributed under the License is distributed on an "AS IS" BASIS,
-  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  * See the License for the specific language governing permissions and
-  * limitations under the License.
-  */
-
-
-
-#include <Elementary.h>
-
-#include <vconf.h>
-#include <vconf-keys.h>
-
-#include <glib.h>
-#include <poll.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <sys/socket.h>
-#include <sys/un.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-#include <errno.h>
-#include <unistd.h>
-#include <sys/param.h>
-#include <errno.h>
-
-#include "lockd-debug.h"
-#include "lock-daemon.h"
-#include "lockd-process-mgr.h"
-#include "lockd-window-mgr.h"
-#include "starter-util.h"
-#include "menu_daemon.h"
-
-static int phone_lock_pid;
-
-struct lockd_data {
-       int lock_app_pid;
-       int phone_lock_app_pid;
-       int lock_type;
-       Eina_Bool request_recovery;
-       lockw_data *lockw;
-       GPollFD *gpollfd;
-};
-
-#define PHLOCK_SOCK_PREFIX "/tmp/phlock"
-#define PHLOCK_SOCK_MAXBUFF 65535
-#define PHLOCK_APP_CMDLINE "/usr/apps/org.tizen.lockscreen/bin/lockscreen"
-#define PHLOCK_UNLOCK_CMD "unlock"
-#define PHLOCK_LAUNCH_CMD "launch_phone_lock"
-#define LAUNCH_INTERVAL 100*1000
-
-static int lockd_launch_app_lockscreen(struct lockd_data *lockd);
-
-static void lockd_unlock_lockscreen(struct lockd_data *lockd);
-
-static int _lockd_get_lock_type(void)
-{
-       int lock_type = 0;
-       int ret = 0;
-
-       vconf_get_int(VCONFKEY_SETAPPL_SCREEN_LOCK_TYPE_INT, &lock_type);
-
-       if (lock_type == SETTING_SCREEN_LOCK_TYPE_PASSWORD ||
-               lock_type == SETTING_SCREEN_LOCK_TYPE_SIMPLE_PASSWORD) {
-               ret = 1;
-       } else if (lock_type == SETTING_SCREEN_LOCK_TYPE_SWIPE ||
-               lock_type == SETTING_SCREEN_LOCK_TYPE_MOTION) {
-               ret = 0;
-       } else {
-               ret = 2;
-       }
-
-       LOCKD_DBG("_lockd_get_lock_type ret(%d), lock_type (%d)", ret, lock_type);
-
-       return ret;
-}
-
-static void _lockd_notify_pm_state_cb(keynode_t * node, void *data)
-{
-       LOCKD_DBG("PM state Notification!!");
-
-       struct lockd_data *lockd = (struct lockd_data *)data;
-       int val = -1;
-
-       if (lockd == NULL) {
-               LOCKD_ERR("lockd is NULL");
-               return;
-       }
-
-       if (vconf_get_int(VCONFKEY_PM_STATE, &val) < 0) {
-               LOCKD_ERR("Cannot get VCONFKEY_PM_STATE");
-               return;
-       }
-
-       if (val == VCONFKEY_PM_STATE_LCDOFF) {
-               lockd->lock_type = _lockd_get_lock_type();
-               lockd_launch_app_lockscreen(lockd);
-       }
-}
-
-static void
-_lockd_notify_lock_state_cb(keynode_t * node, void *data)
-{
-       LOCKD_DBG("lock state changed!!");
-
-       struct lockd_data *lockd = (struct lockd_data *)data;
-       int val = -1;
-
-       if (lockd == NULL) {
-               LOCKD_ERR("lockd is NULL");
-               return;
-       }
-
-       if (vconf_get_int(VCONFKEY_IDLE_LOCK_STATE, &val) < 0) {
-               LOCKD_ERR("Cannot get VCONFKEY_IDLE_LOCK_STATE");
-               return;
-       }
-
-       if (val == VCONFKEY_IDLE_UNLOCK) {
-               LOCKD_DBG("unlocked..!!");
-               if (lockd->lock_app_pid != 0) {
-                       LOCKD_DBG("terminate lock app..!!");
-                       lockd_process_mgr_terminate_lock_app(lockd->lock_app_pid, 1);
-               }
-       }
-}
-
-static Eina_Bool lockd_set_lock_state_cb(void *data)
-{
-       LOCKD_DBG("%s, %d", __func__, __LINE__);
-       vconf_set_int(VCONFKEY_IDLE_LOCK_STATE, VCONFKEY_IDLE_LOCK);
-       return ECORE_CALLBACK_CANCEL;
-}
-
-static void
-_lockd_notify_phone_lock_verification_cb(keynode_t * node, void *data)
-{
-       LOCKD_DBG("%s, %d", __func__, __LINE__);
-
-       struct lockd_data *lockd = (struct lockd_data *)data;
-       int val = -1;
-
-       if (lockd == NULL) {
-               LOCKD_ERR("lockd is NULL");
-               return;
-       }
-
-       if (vconf_get_bool(VCONFKEY_LOCKSCREEN_PHONE_LOCK_VERIFICATION, &val) < 0) {
-               LOCKD_ERR("Cannot get %s", VCONFKEY_LOCKSCREEN_PHONE_LOCK_VERIFICATION);
-               return;
-       }
-
-       if (val == TRUE) {
-               lockd_window_mgr_finish_lock(lockd->lockw);
-               vconf_set_int(VCONFKEY_IDLE_LOCK_STATE, VCONFKEY_IDLE_UNLOCK);
-       }
-}
-
-static int lockd_app_dead_cb(int pid, void *data)
-{
-       LOCKD_DBG("app dead cb call! (pid : %d)", pid);
-
-       struct lockd_data *lockd = (struct lockd_data *)data;
-
-       if (pid == lockd->lock_app_pid) {
-               LOCKD_DBG("lock app(pid:%d) is destroyed.", pid);
-
-               lockd_unlock_lockscreen(lockd);
-       }
-
-       menu_daemon_check_dead_signal(pid);
-
-       return 0;
-
-}
-
-static Eina_Bool lockd_app_create_cb(void *data, int type, void *event)
-{
-       struct lockd_data *lockd = (struct lockd_data *)data;
-
-       if (lockd == NULL) {
-               return ECORE_CALLBACK_PASS_ON;
-       }
-       LOCKD_DBG("%s, %d", __func__, __LINE__);
-       if (lockd_window_set_window_effect(lockd->lockw, lockd->lock_app_pid,
-                                      event) == EINA_TRUE) {
-               if(lockd_window_set_window_property(lockd->lockw, lockd->lock_app_pid,
-                                                event) == EINA_FALSE) {
-                       LOCKD_ERR("window is not matched..!!");
-               }
-       }
-       return ECORE_CALLBACK_PASS_ON;
-}
-
-static Eina_Bool lockd_app_show_cb(void *data, int type, void *event)
-{
-       struct lockd_data *lockd = (struct lockd_data *)data;
-
-       if (lockd == NULL) {
-               return EINA_TRUE;
-       }
-       LOCKD_DBG("%s, %d", __func__, __LINE__);
-       if (lockd_window_set_window_property(lockd->lockw, lockd->lock_app_pid,
-                               event)) {
-               ecore_idler_add(lockd_set_lock_state_cb, NULL);
-       }
-       return EINA_FALSE;
-}
-
-static int lockd_launch_app_lockscreen(struct lockd_data *lockd)
-{
-       LOCKD_DBG("launch app lock screen");
-
-       int call_state = -1, phlock_state = -1, factory_mode = -1, test_mode = -1;
-       int r = 0;
-
-       WRITE_FILE_LOG("%s", "Launch lockscreen in starter");
-
-       if (lockd_process_mgr_check_lock(lockd->lock_app_pid) == TRUE) {
-               LOCKD_DBG("Lock Screen App is already running.");
-               r = lockd_process_mgr_restart_lock(lockd->lock_type);
-               if (r < 0) {
-                       LOCKD_DBG("Restarting Lock Screen App is fail [%d].", r);
-                       usleep(LAUNCH_INTERVAL);
-               } else {
-                       LOCKD_DBG("Restarting Lock Screen App, pid[%d].", r);
-                       return 1;
-               }
-       }
-
-       vconf_get_int(VCONFKEY_CALL_STATE, &call_state);
-       if (call_state != VCONFKEY_CALL_OFF) {
-               LOCKD_DBG
-                   ("Current call state(%d) does not allow to launch lock screen.",
-                    call_state);
-               return 0;
-       }
-
-       lockd->lock_app_pid =
-               lockd_process_mgr_start_lock(lockd, lockd_app_dead_cb,
-                               lockd->lock_type);
-       if (lockd->lock_app_pid < 0)
-               return 0;
-       lockd_window_mgr_finish_lock(lockd->lockw);
-       lockd_window_mgr_ready_lock(lockd, lockd->lockw, lockd_app_create_cb,
-                       lockd_app_show_cb);
-
-       return 1;
-}
-
-static void lockd_unlock_lockscreen(struct lockd_data *lockd)
-{
-       LOCKD_DBG("unlock lock screen");
-       lockd->lock_app_pid = 0;
-
-       vconf_set_int(VCONFKEY_IDLE_LOCK_STATE, VCONFKEY_IDLE_UNLOCK);
-       lockd_window_mgr_finish_lock(lockd->lockw);
-}
-
-inline static void lockd_set_sock_option(int fd, int cli)
-{
-       int size;
-       int ret;
-       struct timeval tv = { 1, 200 * 1000 };
-
-       size = PHLOCK_SOCK_MAXBUFF;
-       ret = setsockopt(fd, SOL_SOCKET, SO_SNDBUF, &size, sizeof(size));
-       if(ret != 0)
-               return;
-       ret = setsockopt(fd, SOL_SOCKET, SO_RCVBUF, &size, sizeof(size));
-       if(ret != 0)
-               return;
-       if (cli) {
-               ret = setsockopt(fd, SOL_SOCKET, SO_RCVTIMEO, &tv, sizeof(tv));
-               if(ret != 0)
-                       return;
-       }
-}
-
-static int lockd_create_sock(void)
-{
-       struct sockaddr_un saddr;
-       int fd;
-
-       fd = socket(AF_UNIX, SOCK_STREAM, 0);
-       if (fd < 0) {
-               if (errno == EINVAL) {
-                       fd = socket(AF_UNIX, SOCK_STREAM, 0);
-                       if (fd < 0) {
-                               LOCKD_DBG
-                                   ("second chance - socket create error");
-                               return -1;
-                       }
-               } else {
-                       LOCKD_DBG("socket error");
-                       return -1;
-               }
-       }
-
-       bzero(&saddr, sizeof(saddr));
-       saddr.sun_family = AF_UNIX;
-
-       strncpy(saddr.sun_path, PHLOCK_SOCK_PREFIX, strlen(PHLOCK_SOCK_PREFIX));
-       saddr.sun_path[strlen(PHLOCK_SOCK_PREFIX)] = 0;
-
-       unlink(saddr.sun_path);
-
-       if (bind(fd, (struct sockaddr *)&saddr, sizeof(saddr)) < 0) {
-               LOCKD_DBG("bind error");
-               close(fd);
-               return -1;
-       }
-
-       if (chmod(saddr.sun_path, (S_IRWXU | S_IRWXG | S_IRWXO)) < 0) {
-               LOCKD_DBG("failed to change the socket permission");
-               close(fd);
-               return -1;
-       }
-
-       lockd_set_sock_option(fd, 0);
-
-       if (listen(fd, 10) == -1) {
-               LOCKD_DBG("listen error");
-               close(fd);
-               return -1;
-       }
-
-       return fd;
-}
-
-static gboolean lockd_glib_check(GSource * src)
-{
-       GSList *fd_list;
-       GPollFD *tmp;
-
-       fd_list = src->poll_fds;
-       do {
-               tmp = (GPollFD *) fd_list->data;
-               if ((tmp->revents & (POLLIN | POLLPRI)))
-                       return TRUE;
-               fd_list = fd_list->next;
-       } while (fd_list);
-
-       return FALSE;
-}
-
-static char *lockd_read_cmdline_from_proc(int pid)
-{
-       int memsize = 32;
-       char path[32];
-       char *cmdline = NULL, *tempptr = NULL;
-       FILE *fp = NULL;
-
-       snprintf(path, sizeof(path), "/proc/%d/cmdline", pid);
-
-       fp = fopen(path, "r");
-       if (fp == NULL) {
-               LOCKD_DBG("Cannot open cmdline on pid[%d]", pid);
-               return NULL;
-       }
-
-       cmdline = malloc(32);
-       if (cmdline == NULL) {
-               LOCKD_DBG("%s", "Out of memory");
-               fclose(fp);
-               return NULL;
-       }
-
-       bzero(cmdline, memsize);
-       if (fgets(cmdline, 32, fp) == NULL) {
-               LOCKD_DBG("%s", "Cannot read cmdline");
-               free(cmdline);
-               fclose(fp);
-               return NULL;
-       }
-
-       while (cmdline[memsize - 2] != 0) {
-               cmdline[memsize - 1] = (char)fgetc(fp);
-               tempptr = realloc(cmdline, memsize + 32);
-               if (tempptr == NULL) {
-                       fclose(fp);
-                       LOCKD_DBG("%s", "Out of memory");
-                       return NULL;
-               }
-               cmdline = tempptr;
-               bzero(cmdline + memsize, 32);
-               fgets(cmdline + memsize, 32, fp);
-               memsize += 32;
-       }
-
-       if (fp != NULL)
-               fclose(fp);
-       return cmdline;
-}
-
-static int lockd_sock_handler(void *data)
-{
-       int cl;
-       int len;
-       int sun_size;
-       int clifd = -1;
-       char cmd[PHLOCK_SOCK_MAXBUFF];
-       char *cmdline = NULL;
-       int val = -1;
-       int fd = -1;
-       int recovery_state = -1;
-       GPollFD *gpollfd;
-
-       struct ucred cr;
-       struct sockaddr_un lockd_addr;
-       struct lockd_data *lockd = (struct lockd_data *)data;
-
-       if ((lockd == NULL) || (lockd->gpollfd == NULL)) {
-               LOCKD_DBG("lockd->gpollfd is NULL");
-               return -1;
-       }
-       gpollfd = (GPollFD *)lockd->gpollfd;
-       fd = gpollfd->fd;
-
-       cl = sizeof(cr);
-       sun_size = sizeof(struct sockaddr_un);
-
-       if ((clifd =
-            accept(fd, (struct sockaddr *)&lockd_addr,
-                   (socklen_t *) & sun_size)) == -1) {
-               if (errno != EINTR)
-                       LOCKD_DBG("accept error");
-               return -1;
-       }
-
-       if (getsockopt(clifd, SOL_SOCKET, SO_PEERCRED, &cr, (socklen_t *) & cl)
-           < 0) {
-               LOCKD_DBG("peer information error");
-               close(clifd);
-               return -1;
-       }
-       LOCKD_DBG("Peer's pid=%d, uid=%d, gid=%d\n", cr.pid, cr.uid, cr.gid);
-
-       memset(cmd, 0, PHLOCK_SOCK_MAXBUFF);
-
-       lockd_set_sock_option(clifd, 1);
-
-       len = recv(clifd, cmd, PHLOCK_SOCK_MAXBUFF, 0);
-       cmd[PHLOCK_SOCK_MAXBUFF - 1] = '\0';
-
-       if (len != strlen(cmd)) {
-               LOCKD_DBG("recv error %d %d", len, strlen(cmd));
-               close(clifd);
-               return -1;
-       }
-
-       LOCKD_DBG("cmd %s", cmd);
-
-       cmdline = lockd_read_cmdline_from_proc(cr.pid);
-       if (cmdline == NULL) {
-               LOCKD_DBG("Error on opening /proc/%d/cmdline", cr.pid);
-               close(clifd);
-               return -1;
-       }
-
-       LOCKD_DBG("/proc/%d/cmdline : %s", cr.pid, cmdline);
-       LOCKD_DBG("phone_lock_pid : %d vs cr.pid : %d", phone_lock_pid, cr.pid);
-
-       if ((!strncmp(cmdline, PHLOCK_APP_CMDLINE, strlen(cmdline)))
-           && (!strncmp(cmd, PHLOCK_UNLOCK_CMD, strlen(cmd)))) {
-               LOCKD_DBG("cmd is %s\n", PHLOCK_UNLOCK_CMD);
-
-               if (phone_lock_pid == cr.pid) {
-                       LOCKD_DBG("pid [%d] %s is verified, unlock..!!\n", cr.pid,
-                                 cmdline);
-                       lockd_process_mgr_terminate_phone_lock(phone_lock_pid);
-                       phone_lock_pid = 0;
-                       vconf_set_bool(VCONFKEY_LOCKSCREEN_PHONE_LOCK_VERIFICATION, TRUE);
-               }
-       } else if (!strncmp(cmd, PHLOCK_LAUNCH_CMD, strlen(cmd))) {
-               LOCKD_DBG("cmd is %s\n", PHLOCK_LAUNCH_CMD);
-               if (_lockd_get_lock_type() == 1) {
-                       lockd->lock_type = 1;
-                       lockd_launch_app_lockscreen(lockd);
-               }
-       }
-
-       if(cmdline != NULL) {
-               free(cmdline);
-               cmdline = NULL;
-       }
-
-       close(clifd);
-       return 0;
-}
-
-static gboolean lockd_glib_handler(gpointer data)
-{
-       if (lockd_sock_handler(data) < 0) {
-               LOCKD_DBG("lockd_sock_handler is failed..!!");
-       }
-       return TRUE;
-}
-
-static gboolean lockd_glib_dispatch(GSource * src, GSourceFunc callback,
-                                   gpointer data)
-{
-       callback(data);
-       return TRUE;
-}
-
-static gboolean lockd_glib_prepare(GSource * src, gint * timeout)
-{
-       return FALSE;
-}
-
-static GSourceFuncs funcs = {
-       .prepare = lockd_glib_prepare,
-       .check = lockd_glib_check,
-       .dispatch = lockd_glib_dispatch,
-       .finalize = NULL
-};
-
-static int lockd_init_sock(struct lockd_data *lockd)
-{
-       int fd;
-       GPollFD *gpollfd;
-       GSource *src;
-       int ret;
-
-       fd = lockd_create_sock();
-       if (fd < 0) {
-               LOCKD_DBG("lock daemon create sock failed..!!");
-       }
-
-       src = g_source_new(&funcs, sizeof(GSource));
-
-       gpollfd = (GPollFD *) g_malloc(sizeof(GPollFD));
-       gpollfd->events = POLLIN;
-       gpollfd->fd = fd;
-
-       lockd->gpollfd = gpollfd;
-
-       g_source_add_poll(src, lockd->gpollfd);
-       g_source_set_callback(src, (GSourceFunc) lockd_glib_handler,
-                             (gpointer) lockd, NULL);
-       g_source_set_priority(src, G_PRIORITY_LOW);
-
-       ret = g_source_attach(src, NULL);
-       if (ret == 0)
-               return -1;
-
-       g_source_unref(src);
-
-       return 0;
-}
-
-static void lockd_init_vconf(struct lockd_data *lockd)
-{
-       int val = -1;
-
-       if (vconf_notify_key_changed
-           (VCONFKEY_PM_STATE, _lockd_notify_pm_state_cb, lockd) != 0) {
-               LOCKD_ERR("Fail vconf_notify_key_changed : VCONFKEY_PM_STATE");
-       }
-
-       if (vconf_notify_key_changed
-           (VCONFKEY_LOCKSCREEN_PHONE_LOCK_VERIFICATION,
-            _lockd_notify_phone_lock_verification_cb, lockd) != 0) {
-               if (vconf_get_bool(VCONFKEY_LOCKSCREEN_PHONE_LOCK_VERIFICATION, &val) < 0) {
-                       LOCKD_ERR
-                           ("Cannot get %s", VCONFKEY_LOCKSCREEN_PHONE_LOCK_VERIFICATION);
-                       vconf_set_bool(VCONFKEY_LOCKSCREEN_PHONE_LOCK_VERIFICATION, 0);
-                       if (vconf_notify_key_changed
-                           (VCONFKEY_LOCKSCREEN_PHONE_LOCK_VERIFICATION,
-                            _lockd_notify_phone_lock_verification_cb,
-                            lockd) != 0) {
-                               LOCKD_ERR
-                                   ("Fail vconf_notify_key_changed : %s", VCONFKEY_LOCKSCREEN_PHONE_LOCK_VERIFICATION);
-                       }
-               } else {
-                       LOCKD_ERR
-                           ("Fail vconf_notify_key_changed : %s", VCONFKEY_LOCKSCREEN_PHONE_LOCK_VERIFICATION);
-               }
-       }
-
-       if (vconf_notify_key_changed
-           (VCONFKEY_IDLE_LOCK_STATE,
-            _lockd_notify_lock_state_cb,
-            lockd) != 0) {
-               LOCKD_ERR
-                   ("[Error] vconf notify : lock state");
-       }
-}
-
-static void lockd_start_lock_daemon(void *data)
-{
-       struct lockd_data *lockd = NULL;
-       int r = 0;
-
-       lockd = (struct lockd_data *)data;
-
-       if (!lockd) {
-               return;
-       }
-
-       LOCKD_DBG("%s, %d", __func__, __LINE__);
-
-       lockd_init_vconf(lockd);
-
-       r = lockd_init_sock(lockd);
-       if (r < 0) {
-               LOCKD_DBG("lockd init socket failed: %d", r);
-       }
-
-       lockd->lockw = lockd_window_init();
-
-       aul_listen_app_dead_signal(lockd_app_dead_cb, data);
-
-       LOCKD_DBG("%s, %d", __func__, __LINE__);
-}
-
-int start_lock_daemon(int launch_lock)
-{
-       struct lockd_data *lockd = NULL;
-       int val = -1;
-       int recovery_state = -1;
-       int first_boot = 0;
-       int lock_type = 0;
-       int ret = 0;
-
-       LOCKD_DBG("%s, %d", __func__, __LINE__);
-
-       lockd = (struct lockd_data *)malloc(sizeof(struct lockd_data));
-       memset(lockd, 0x0, sizeof(struct lockd_data));
-       lockd_start_lock_daemon(lockd);
-
-       if (launch_lock == FALSE) {
-               LOCKD_DBG("Don't launch lockscreen..");
-               return 0;
-       }
-
-       if (vconf_get_bool(VCONFKEY_PWLOCK_FIRST_BOOT, &first_boot) < 0) {
-               LOCKD_ERR("Cannot get %s vconfkey", VCONFKEY_PWLOCK_FIRST_BOOT);
-       } else if (first_boot == 1) {
-               LOCKD_DBG("first_boot : %d \n", first_boot);
-               return 0;
-       }
-
-       lock_type = _lockd_get_lock_type();
-       if (lock_type == 1) {
-               lockd->request_recovery = FALSE;
-       }
-       lockd->lock_type = lock_type;
-       ret = lockd_launch_app_lockscreen(lockd);
-       return ret;
-}
diff --git a/src/lockd-debug.c b/src/lockd-debug.c
deleted file mode 100755 (executable)
index 72c7227..0000000
+++ /dev/null
@@ -1,94 +0,0 @@
- /*
-  * Copyright 2012  Samsung Electronics Co., Ltd
-  *
-  * Licensed under the Flora License, Version 1.1 (the "License");
-  * you may not use this file except in compliance with the License.
-  * You may obtain a copy of the License at
-  *
-  *     http://floralicense.org/license/
-  *
-  * Unless required by applicable law or agreed to in writing, software
-  * distributed under the License is distributed on an "AS IS" BASIS,
-  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  * See the License for the specific language governing permissions and
-  * limitations under the License.
-  */
-
-
-
-#include <stdio.h>
-#include <stdarg.h>
-#include <fcntl.h>
-#include <time.h>
-#include <string.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <glib.h>
-
-#include "lockd-debug.h"
-
-#define LINEMAX 256
-#define MAXFILELEN     1048576
-#define LOGFILE "/tmp/starter.log"
-
-void lockd_log_t(char *fmt, ...)
-{
-       va_list ap;
-       FILE *fd = 0;
-       char buf[LINEMAX] = { 0, };
-       char debugString[LINEMAX] = { 0, };
-
-       va_start(ap, fmt);
-       vsnprintf(buf, sizeof(buf), fmt, ap);
-       va_end(ap);
-       int fileLen = 0;
-       struct tm local_t;
-       time_t current_time = 0;
-       bzero((char *)&debugString, LINEMAX);
-       time(&current_time);
-       gmtime_r(&current_time, &local_t);
-       int len = snprintf(debugString, sizeof(debugString),
-                          "[%d-%02d-%02d, %02d:%02d:%02d]: ",
-                          local_t.tm_year + 1900, local_t.tm_mon + 1,
-                          local_t.tm_mday, local_t.tm_hour, local_t.tm_min,
-                          local_t.tm_sec);
-       if (len == -1) {
-               return;
-       } else {
-               debugString[len] = '\0';
-       }
-       len = g_strlcat(debugString, buf, LINEMAX);
-       if (len >= LINEMAX) {
-               return;
-       } else {
-               debugString[len] = '\n';
-       }
-       if ((fd = fopen(LOGFILE, "at+")) == NULL) {
-               LOCKD_DBG("File fopen fail for writing Pwlock information");
-       } else {
-               int pid = -1;
-               if (fwrite(debugString, strlen(debugString), 1, fd) < 1) {
-                       LOCKD_DBG
-                           ("File fwrite fail for writing Pwlock information");
-                       fclose(fd);
-                       if ((pid = fork()) < 0) {
-                       } else if (pid == 0) {
-                               execl("/bin/rm", "rm", "-f", LOGFILE,
-                                     (char *)0);
-                       }
-               } else {
-                       fseek(fd, 0l, SEEK_END);
-                       fileLen = ftell(fd);
-                       if (fileLen > MAXFILELEN) {
-                               fclose(fd);
-                               if ((pid = fork()) < 0) {
-                                       return;
-                               } else if (pid == 0) {
-                                       execl("/bin/rm", "rm", "-f", LOGFILE,
-                                             (char *)0);
-                               }
-                       } else
-                               fclose(fd);
-               }
-       }
-}
diff --git a/src/lockd-process-mgr.c b/src/lockd-process-mgr.c
deleted file mode 100755 (executable)
index f9bc863..0000000
+++ /dev/null
@@ -1,176 +0,0 @@
- /*
-  * Copyright 2012  Samsung Electronics Co., Ltd
-  *
-  * Licensed under the Flora License, Version 1.1 (the "License");
-  * you may not use this file except in compliance with the License.
-  * You may obtain a copy of the License at
-  *
-  *     http://floralicense.org/license/
-  *
-  * Unless required by applicable law or agreed to in writing, software
-  * distributed under the License is distributed on an "AS IS" BASIS,
-  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  * See the License for the specific language governing permissions and
-  * limitations under the License.
-  */
-
-
-
-#include <vconf.h>
-#include <vconf-keys.h>
-
-#include <aul.h>
-
-#include "lockd-debug.h"
-#include "lockd-process-mgr.h"
-#include "starter-vconf.h"
-
-#define LOCKD_DEFAULT_PKG_NAME "org.tizen.lockscreen"
-#define LOCKD_DEFAULT_LOCKSCREEN "org.tizen.lockscreen"
-#define LOCKD_PHONE_LOCK_PKG_NAME "org.tizen.lockscreen"
-#define RETRY_MAXCOUNT 30
-#define RELAUNCH_INTERVAL 100*1000
-
-static char *_lockd_process_mgr_get_pkgname(void)
-{
-       char *pkgname = NULL;
-
-       pkgname = vconf_get_str(VCONFKEY_SETAPPL_3RD_LOCK_PKG_NAME_STR);
-
-       LOCKD_DBG("pkg name is %s", pkgname);
-
-       if (pkgname == NULL) {
-               return LOCKD_DEFAULT_PKG_NAME;
-       }
-
-       return pkgname;
-}
-
-int lockd_process_mgr_restart_lock(int phone_lock_state)
-{
-       char *lock_app_path = NULL;
-       int pid;
-
-       lock_app_path = _lockd_process_mgr_get_pkgname();
-       pid = aul_launch_app(lock_app_path, NULL);
-
-       LOCKD_DBG("Reset : aul_launch_app(%s, NULL), pid = %d", lock_app_path,
-                 pid);
-
-       return pid;
-}
-
-int lockd_process_mgr_start_lock(void *data, int (*dead_cb) (int, void *),
-                            int phone_lock_state)
-{
-       char *lock_app_path = NULL;
-       int pid;
-       int ret;
-
-       lock_app_path = _lockd_process_mgr_get_pkgname();
-
-       int i;
-       for (i=0; i<RETRY_MAXCOUNT; i++)
-       {
-               pid = aul_launch_app(lock_app_path, NULL);
-
-               LOCKD_DBG("aul_launch_app(%s), pid = %d", lock_app_path, pid);
-
-               if (pid == AUL_R_ECOMM) {
-                       LOCKD_DBG("Relaunch lock application [%d]times", i);
-                       usleep(RELAUNCH_INTERVAL);
-               } else if (pid == AUL_R_ERROR) {
-                       LOCKD_DBG("launch[%s] is failed, launch default lock screen", lock_app_path);
-                       ret = vconf_set_str(VCONFKEY_SETAPPL_3RD_LOCK_PKG_NAME_STR, LOCKD_DEFAULT_LOCKSCREEN);
-                       if (ret != 0) {
-                               LOCKD_ERR("set failed");
-                       }
-                       pid = aul_launch_app(LOCKD_DEFAULT_LOCKSCREEN, NULL);
-                       if (pid >0) {
-                               return pid;
-                       }
-               } else {
-                       return pid;
-               }
-       }
-       LOCKD_DBG("Relaunch lock application failed..!!");
-       return pid;
-}
-
-int lockd_process_mgr_start_normal_lock(void *data, int (*dead_cb) (int, void *))
-{
-       int pid = 0;
-
-       int i;
-       for (i=0; i<RETRY_MAXCOUNT; i++)
-       {
-               pid = aul_launch_app(LOCKD_DEFAULT_PKG_NAME, NULL);
-
-               LOCKD_DBG("aul_launch_app(%s), pid = %d", LOCKD_DEFAULT_PKG_NAME, pid);
-
-               if (pid == AUL_R_ECOMM) {
-                       LOCKD_DBG("Relaunch lock application [%d]times", i);
-                       usleep(RELAUNCH_INTERVAL);
-               } else if (pid == AUL_R_ERROR) {
-                       LOCKD_DBG("launch[%s] is failed, launch default lock screen", LOCKD_DEFAULT_PKG_NAME);
-                       pid = aul_launch_app(LOCKD_DEFAULT_LOCKSCREEN, NULL);
-                       if (pid >0) {
-                               return pid;
-                       }
-               } else {
-                       return pid;
-               }
-       }
-       LOCKD_DBG("Relaunch lock application failed..!!");
-       return pid;
-}
-
-int lockd_process_mgr_start_phone_lock(void)
-{
-       int pid = 0;
-
-       pid = aul_launch_app(LOCKD_PHONE_LOCK_PKG_NAME, NULL);
-       LOCKD_DBG("aul_launch_app(%s, b), pid = %d", LOCKD_PHONE_LOCK_PKG_NAME,
-                 pid);
-       return pid;
-}
-
-void lockd_process_mgr_terminate_lock_app(int lock_app_pid, int state)
-{
-       LOCKD_DBG
-           ("lockd_process_mgr_terminate_lock_app,  state:%d\n",
-            state);
-
-       if (state == 1) {
-               if (lock_app_pid != 0) {
-                       LOCKD_DBG("Terminate Lock app(pid : %d)", lock_app_pid);
-                       aul_terminate_pid(lock_app_pid);
-               }
-       }
-}
-
-void lockd_process_mgr_terminate_phone_lock(int phone_lock_pid)
-{
-       LOCKD_DBG("Terminate Phone Lock(pid : %d)", phone_lock_pid);
-       aul_terminate_pid(phone_lock_pid);
-}
-
-int lockd_process_mgr_check_lock(int pid)
-{
-       char buf[128];
-       LOCKD_DBG("%s, %d", __func__, __LINE__);
-
-       if (aul_app_get_pkgname_bypid(pid, buf, sizeof(buf)) < 0) {
-               LOCKD_DBG("no such pkg by pid %d\n", pid);
-       } else {
-               LOCKD_DBG("app pkgname = %s, pid = %d\n", buf, pid);
-               if (aul_app_is_running(buf) == TRUE) {
-                       LOCKD_DBG("%s [pid = %d] is running\n", buf, pid);
-                       return TRUE;
-               } else {
-                       LOCKD_DBG("[pid = %d] is exist but %s is not running\n",
-                                 pid, buf);
-               }
-       }
-       return FALSE;
-}
diff --git a/src/lockd-window-mgr.c b/src/lockd-window-mgr.c
deleted file mode 100755 (executable)
index bf36ffe..0000000
+++ /dev/null
@@ -1,303 +0,0 @@
- /*
-  * Copyright 2012  Samsung Electronics Co., Ltd
-  *
-  * Licensed under the Flora License, Version 1.1 (the "License");
-  * you may not use this file except in compliance with the License.
-  * You may obtain a copy of the License at
-  *
-  *     http://floralicense.org/license/
-  *
-  * Unless required by applicable law or agreed to in writing, software
-  * distributed under the License is distributed on an "AS IS" BASIS,
-  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  * See the License for the specific language governing permissions and
-  * limitations under the License.
-  */
-
-
-
-#include <Elementary.h>
-
-#ifndef WAYLAND
-#include <Ecore_X.h>
-#include <utilX.h>
-#endif
-
-#include <ui-gadget.h>
-#include <vconf.h>
-#include <bundle.h>
-#include <appcore-efl.h>
-#include <app.h>
-
-#include "lockd-debug.h"
-#include "lockd-window-mgr.h"
-
-#define PACKAGE                        "starter"
-#define SOS_KEY_COUNT          3
-#define SOS_KEY_INTERVAL       0.5
-
-struct _lockw_data {
-       Evas_Object *main_win;
-       Evas_Object *main_layout;
-
-       Ecore_X_Window lock_x_window;
-
-       Ecore_Event_Handler *h_keydown;
-       Ecore_Event_Handler *h_wincreate;
-       Ecore_Event_Handler *h_winshow;
-
-       Ecore_Timer *pTimerId;
-       int volume_key_cnt;
-
-       int phone_lock_state;
-       int phone_lock_app_pid;
-};
-
-static Eina_Bool _lockd_window_key_down_cb(void *data, int type, void *event)
-{
-       Ecore_Event_Key *ev = event;
-
-       LOCKD_DBG("Key Down CB : %s", ev->keyname);
-
-       return ECORE_CALLBACK_PASS_ON;
-}
-
-#ifndef WAYLAND
-static int
-_lockd_window_check_validate_rect(Ecore_X_Display * dpy, Ecore_X_Window window)
-{
-       Ecore_X_Window root;
-       Ecore_X_Window child;
-
-       int rel_x = 0;
-       int rel_y = 0;
-       int abs_x = 0;
-       int abs_y = 0;
-
-       unsigned int width = 0;
-       unsigned int height = 0;
-       unsigned int border = 0;
-       unsigned int depth = 0;
-
-       Eina_Bool ret = FALSE;
-
-       root = ecore_x_window_root_first_get();
-
-       if (XGetGeometry
-           (dpy, window, &root, &rel_x, &rel_y, &width, &height, &border,
-            &depth)) {
-               if (XTranslateCoordinates
-                   (dpy, window, root, 0, 0, &abs_x, &abs_y, &child)) {
-                       if ((abs_x - border) >= 480 || (abs_y - border) >= 800
-                           || (width + abs_x) <= 0 || (height + abs_y) <= 0) {
-                               ret = FALSE;
-                       } else {
-                               ret = TRUE;
-                       }
-               }
-       }
-
-       return ret;
-}
-#endif
-
-#ifndef WAYLAND
-static Window get_user_created_window(Window win)
-{
-       Atom type_ret = 0;
-       int ret, size_ret = 0;
-       unsigned long num_ret = 0, bytes = 0;
-       unsigned char *prop_ret = NULL;
-       unsigned int xid;
-       Atom prop_user_created_win;
-
-       prop_user_created_win =
-           XInternAtom(ecore_x_display_get(), "_E_USER_CREATED_WINDOW", False);
-
-       ret =
-           XGetWindowProperty(ecore_x_display_get(), win,
-                              prop_user_created_win, 0L, 1L, False, 0,
-                              &type_ret, &size_ret, &num_ret, &bytes,
-                              &prop_ret);
-
-       if (ret != Success) {
-               if (prop_ret)
-                       XFree((void *)prop_ret);
-               return win;
-       } else if (!prop_ret) {
-               return win;
-       }
-
-       memcpy(&xid, prop_ret, sizeof(unsigned int));
-       XFree((void *)prop_ret);
-
-       return xid;
-
-}
-#endif
-
-Eina_Bool
-lockd_window_set_window_property(lockw_data * data, int lock_app_pid,
-                                void *event)
-{
-#ifndef WAYLAND
-       Ecore_X_Event_Window_Create *e = event;
-       Ecore_X_Window user_window = 0;
-       lockw_data *lockw = (lockw_data *) data;
-       int pid = 0;
-
-       if (!lockw) {
-               return EINA_FALSE;
-       }
-       LOCKD_DBG("%s, %d", __func__, __LINE__);
-
-       user_window = get_user_created_window((Window) (e->win));
-
-       int ret = ecore_x_netwm_pid_get(user_window, &pid);
-       if(ret != 1) {
-               return EINA_FALSE;
-       }
-
-       LOCKD_DBG("Check PID(%d) window. (lock_app_pid : %d)\n", pid,
-                 lock_app_pid);
-
-       if (lock_app_pid == pid) {
-               if (_lockd_window_check_validate_rect
-                   (ecore_x_display_get(), user_window) == TRUE) {
-                       lockw->lock_x_window = user_window;
-                       LOCKD_DBG
-                           ("This is lock application. Set window property. win id : %x",
-                            user_window);
-
-                       ecore_x_icccm_name_class_set(user_window, "LOCK_SCREEN",
-                                                    "LOCK_SCREEN");
-                       ecore_x_netwm_window_type_set(user_window,
-                                                     ECORE_X_WINDOW_TYPE_NOTIFICATION);
-                       utilx_set_system_notification_level(ecore_x_display_get
-                                                           (), user_window,
-                                                           UTILX_NOTIFICATION_LEVEL_NORMAL);
-                       utilx_set_window_opaque_state(ecore_x_display_get(),
-                                                     user_window,
-                                                     UTILX_OPAQUE_STATE_ON);
-                       return EINA_TRUE;
-               }
-       }
-#endif
-
-       return EINA_FALSE;
-}
-
-Eina_Bool
-lockd_window_set_window_effect(lockw_data * data, int lock_app_pid, void *event)
-{
-#ifndef WAYLAND
-       Ecore_X_Event_Window_Create *e = event;
-       Ecore_X_Window user_window = 0;
-       int pid = 0;
-
-       user_window = get_user_created_window((Window) (e->win));
-       int ret = ecore_x_netwm_pid_get(user_window, &pid);
-       if(ret != 1) {
-               return EINA_FALSE;
-       }
-
-       LOCKD_DBG("%s, %d", __func__, __LINE__);
-
-       LOCKD_DBG("PID(%d) window created. (lock_app_pid : %d)\n", pid,
-                 lock_app_pid);
-
-       if (lock_app_pid == pid) {
-               if (_lockd_window_check_validate_rect
-                   (ecore_x_display_get(), user_window) == TRUE) {
-                       LOCKD_DBG
-                           ("This is lock application. Disable window effect. win id : %x\n",
-                            user_window);
-
-#if 0  //window effect is not available now
-                       utilx_set_window_effect_state(ecore_x_display_get(),
-                                                     user_window, 0);
-#endif
-                       return EINA_TRUE;
-               }
-       }
-#endif
-
-       return EINA_FALSE;
-}
-
-void lockd_window_set_phonelock_pid(lockw_data * data, int phone_lock_pid)
-{
-       lockw_data *lockw = (lockw_data *) data;
-
-       if (!lockw) {
-               return;
-       }
-       LOCKD_DBG("%s, %d", __func__, __LINE__);
-       lockw->phone_lock_app_pid = phone_lock_pid;
-       LOCKD_DBG("%s, %d, lockw->phone_lock_app_pid = %d", __func__, __LINE__,
-                 lockw->phone_lock_app_pid);
-}
-
-void
-lockd_window_mgr_ready_lock(void *data, lockw_data * lockw,
-                           Eina_Bool(*create_cb) (void *, int, void *),
-                           Eina_Bool(*show_cb) (void *, int, void *))
-{
-       if (lockw == NULL) {
-               LOCKD_ERR("lockw is NULL.");
-               return;
-       }
-#ifndef WAYLAND
-       lockw->h_wincreate =
-           ecore_event_handler_add(ECORE_X_EVENT_WINDOW_CREATE, create_cb,
-                                   data);
-       lockw->h_winshow =
-           ecore_event_handler_add(ECORE_X_EVENT_WINDOW_SHOW, show_cb, data);
-
-       lockw->volume_key_cnt = 0;
-
-       lockw->h_keydown =
-           ecore_event_handler_add(ECORE_EVENT_KEY_DOWN,
-                                   _lockd_window_key_down_cb, lockw);
-#endif
-}
-
-void lockd_window_mgr_finish_lock(lockw_data * lockw)
-{
-#ifndef WAYLAND
-       Ecore_X_Window xwin;
-
-       if (lockw == NULL) {
-               LOCKD_ERR("lockw is NULL.");
-               return;
-       }
-       if (lockw->h_wincreate != NULL) {
-               ecore_event_handler_del(lockw->h_wincreate);
-               lockw->h_wincreate = NULL;
-       }
-       if (lockw->h_winshow != NULL) {
-               ecore_event_handler_del(lockw->h_winshow);
-               lockw->h_winshow = NULL;
-       }
-
-       ecore_x_pointer_ungrab();
-
-       if (lockw->h_keydown != NULL) {
-               ecore_event_handler_del(lockw->h_keydown);
-               lockw->h_keydown = NULL;
-       }
-#endif
-}
-
-lockw_data *lockd_window_init(void)
-{
-       lockw_data *lockw = NULL;
-       long pid;
-
-       lockw = (lockw_data *) malloc(sizeof(lockw_data));
-       memset(lockw, 0x0, sizeof(lockw_data));
-
-       pid = getpid();
-
-       return lockw;
-}
diff --git a/src/menu_daemon.c b/src/menu_daemon.c
deleted file mode 100755 (executable)
index 821e373..0000000
+++ /dev/null
@@ -1,418 +0,0 @@
- /*
-  * Copyright 2012  Samsung Electronics Co., Ltd
-  *
-  * Licensed under the Flora License, Version 1.1 (the "License");
-  * you may not use this file except in compliance with the License.
-  * You may obtain a copy of the License at
-  *
-  *     http://floralicense.org/license/
-  *
-  * Unless required by applicable law or agreed to in writing, software
-  * distributed under the License is distributed on an "AS IS" BASIS,
-  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  * See the License for the specific language governing permissions and
-  * limitations under the License.
-  */
-
-
-
-#include <ail.h>
-#include <aul.h>
-#include <db-util.h>
-#include <Elementary.h>
-#include <errno.h>
-#include <fcntl.h>
-#include <pkgmgr-info.h>
-#include <stdio.h>
-#include <sysman.h>
-#include <syspopup_caller.h>
-#include <sys/types.h>
-#include <sys/wait.h>
-#include <unistd.h>
-#include <vconf.h>
-
-#include "hw_key.h"
-#include "pkg_event.h"
-#include "util.h"
-#include "xmonitor.h"
-
-
-int errno;
-
-
-#define QUERY_UPDATE_NAME "UPDATE app_info SET name='%s' where package='%s';"
-#define SAT_DESKTOP_FILE "/opt/share/applications/org.tizen.sat-ui.desktop"
-#define RELAUNCH_INTERVAL 100*1000
-#define RETRY_MAXCOUNT 30
-
-#define DEAD_TIMER_SEC 2.0
-#define DEAD_TIMER_COUNT_MAX 2
-#define MENU_SCREEN_PKG_NAME "org.tizen.menu-screen"
-
-static struct info {
-       pid_t home_pid;
-       pid_t volume_pid;
-       int power_off;
-
-       int dead_count;
-       Ecore_Timer *dead_timer;
-} s_info = {
-       .home_pid = -1,
-       .volume_pid = -1,
-       .power_off = 0,
-
-       .dead_count = 0,
-       .dead_timer = NULL,
-};
-
-
-
-#define RETRY_COUNT 5
-int menu_daemon_open_app(const char *pkgname)
-{
-       register int i;
-       int r = AUL_R_ETIMEOUT;
-       for (i = 0; AUL_R_ETIMEOUT == r && i < RETRY_COUNT; i ++) {
-               r = aul_open_app(pkgname);
-               if (0 <= r) return r;
-               else {
-                       _D("aul_open_app error(%d)", r);
-                       _F("cannot open an app(%s) by %d", pkgname, r);
-               }
-               usleep(500000);
-       }
-
-       return r;
-}
-
-
-
-int menu_daemon_launch_app(const char *pkgname, bundle *b)
-{
-       register int i;
-       int r = AUL_R_ETIMEOUT;
-       for (i = 0; AUL_R_ETIMEOUT == r && i < RETRY_COUNT; i ++) {
-               r = aul_launch_app(pkgname, b);
-               if (0 <= r) return r;
-               else {
-                       _D("aul_launch_app error(%d)", r);
-                       _F("cannot launch an app(%s) by %d", pkgname, r);
-               }
-               usleep(500000);
-       }
-
-       return r;
-}
-
-
-
-bool menu_daemon_is_homescreen(pid_t pid)
-{
-       if (s_info.home_pid == pid) return true;
-       return false;
-}
-
-
-
-inline char *menu_daemon_get_selected_pkgname(void)
-{
-       char *pkgname = NULL;
-
-       pkgname = vconf_get_str(VCONFKEY_SETAPPL_SELECTED_PACKAGE_NAME);
-       retv_if(NULL == pkgname, NULL);
-
-       return pkgname;
-}
-
-
-
-static bool _exist_package(char *pkgid)
-{
-       int ret = 0;
-       pkgmgrinfo_pkginfo_h handle = NULL;
-
-       ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &handle);
-       if (PMINFO_R_OK != ret || NULL == handle) {
-               _D("%s doesn't exist in this binary", pkgid);
-               return false;
-       }
-
-       pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
-
-       return true;
-}
-
-
-
-inline void menu_daemon_open_homescreen(const char *pkgname)
-{
-       char *homescreen = NULL;
-       char *tmp = NULL;
-
-       system("echo -e '[${_G}menu-daemon launches home-screen${C_}]' > /dev/kmsg");
-
-       if (NULL == pkgname) {
-               tmp = menu_daemon_get_selected_pkgname();
-               ret_if(NULL == tmp);
-               homescreen = tmp;
-       } else {
-               homescreen = (char *) pkgname;
-       }
-
-       syspopup_destroy_all();
-
-       int ret;
-       ret = menu_daemon_open_app(homescreen);
-       _D("can%s launch %s now. (%d)", ret < 0 ? "not" : "", homescreen, ret);
-       if (ret < 0 && strcmp(homescreen, HOME_SCREEN_PKG_NAME) && _exist_package(HOME_SCREEN_PKG_NAME)) {
-               _E("cannot launch package %s", homescreen);
-
-               if (0 != vconf_set_str(VCONFKEY_SETAPPL_SELECTED_PACKAGE_NAME, HOME_SCREEN_PKG_NAME)) {
-                       _E("Cannot set value(%s) into key(%s)", VCONFKEY_SETAPPL_SELECTED_PACKAGE_NAME, HOME_SCREEN_PKG_NAME);
-               }
-
-               while (AUL_R_ETIMEOUT == ret) {
-                       _E("Failed to open a default home, %s", HOME_SCREEN_PKG_NAME);
-                       ret = menu_daemon_open_app(HOME_SCREEN_PKG_NAME);
-               }
-       }
-
-       if (ret < 0) {
-               _E("Critical! Starter cannot launch anymore[%d]", ret);
-               _F("Critical! Starter cannot launch anymore[%d]", ret);
-       }
-
-       s_info.home_pid = ret;
-       if (ret > 0) {
-               if (-1 == sysconf_set_mempolicy_bypid(ret, OOM_IGNORE)) {
-                       _E("Cannot set the memory policy for Home-screen(%d)", ret);
-               } else {
-                       _D("Set the memory policy for Home-screen(%d)", ret);
-               }
-       }
-
-       if (tmp) free(tmp);
-}
-
-
-
-static void _show_cb(keynode_t* node, void *data)
-{
-       int seq;
-
-       _D("[MENU_DAEMON] _show_cb is invoked");
-
-       if (node) {
-               seq = vconf_keynode_get_int(node);
-       } else {
-               if (vconf_get_int(VCONFKEY_STARTER_SEQUENCE, &seq) < 0) {
-                       _E("Failed to get sequence info");
-                       return;
-               }
-       }
-
-       switch (seq) {
-               case 0:
-                       if (s_info.home_pid > 0) {
-                               int pid;
-                               _D("pid[%d] is terminated.", s_info.home_pid);
-                               pid = s_info.home_pid;
-                               s_info.home_pid = -1;
-
-                               if (aul_terminate_pid(pid) != AUL_R_OK)
-                                       _E("Failed to terminate %d", s_info.home_pid);
-                       }
-                       break;
-               case 1:
-                       menu_daemon_open_homescreen(NULL);
-                       break;
-               default:
-                       _E("False sequence [%d]", seq);
-                       break;
-       }
-
-       return;
-}
-
-
-
-static void _pkg_changed(keynode_t* node, void *data)
-{
-       char *pkgname;
-       int seq;
-
-       if (vconf_get_int(VCONFKEY_STARTER_SEQUENCE, &seq) < 0) {
-               _E("Do nothing, there is no sequence info yet");
-               return;
-       }
-
-       if (seq < 1) {
-               _E("Sequence is not ready yet, do nothing");
-               return;
-       }
-
-       _D("_pkg_changed is invoked");
-
-       pkgname = menu_daemon_get_selected_pkgname();
-       if (!pkgname)
-               return;
-
-       _D("pkg_name : %s", pkgname);
-
-       if (s_info.home_pid > 0) {
-               char old_pkgname[256];
-
-               if (aul_app_get_pkgname_bypid(s_info.home_pid, old_pkgname, sizeof(old_pkgname)) == AUL_R_OK) {
-                       if (!strcmp(pkgname, old_pkgname)) {
-                               _D("Package is changed but same package is selected");
-                               free(pkgname);
-                               return;
-                       }
-               }
-
-               if (AUL_R_OK != aul_terminate_pid(s_info.home_pid))
-                       _D("Failed to terminate pid %d", s_info.home_pid);
-
-               s_info.dead_count = 0;
-               if (s_info.dead_timer) {
-                       ecore_timer_del(s_info.dead_timer);
-                       s_info.dead_timer = NULL;
-               }
-       } else {
-               /* If there is no running home */
-               menu_daemon_open_homescreen(pkgname);
-       }
-
-       free(pkgname);
-       return;
-}
-
-
-
-static void _launch_volume(void)
-{
-       int pid;
-       int i;
-       _D("_launch_volume");
-
-       for (i=0; i<RETRY_MAXCOUNT; i++)
-       {
-               pid = syspopup_launch("volume", NULL);
-
-               _D("syspopup_launch(volume), pid = %d", pid);
-
-               if (pid <0) {
-                       _D("syspopup_launch(volume)is failed [%d]times", i);
-                       usleep(RELAUNCH_INTERVAL);
-               } else {
-                       s_info.volume_pid = pid;
-                       return;
-               }
-       }
-}
-
-static Eina_Bool _dead_timer_cb(void *data)
-{
-       char *appid = (char *)data;
-       retv_if(!appid, ECORE_CALLBACK_CANCEL);
-
-       _D("dead count : %s(%d)", appid, s_info.dead_count);
-
-       if (s_info.dead_count >= DEAD_TIMER_COUNT_MAX) {
-               _D("Change homescreen package to default");
-               if (vconf_set_str(VCONFKEY_SETAPPL_SELECTED_PACKAGE_NAME, MENU_SCREEN_PKG_NAME) != 0) {
-                       _D("cannot set the vconfkey as : %s", MENU_SCREEN_PKG_NAME);
-                       return ECORE_CALLBACK_CANCEL;
-               }
-       }
-
-       s_info.dead_timer = NULL;
-       s_info.dead_count = 0;
-
-       return ECORE_CALLBACK_CANCEL;
-}
-
-int menu_daemon_check_dead_signal(int pid)
-{
-       if (s_info.power_off) {
-               _D("Power off. ignore dead cb\n");
-               return 0;
-       }
-
-       _D("Process %d is termianted", pid);
-
-       if (pid < 0)
-               return 0;
-
-       if (pid == s_info.home_pid) {
-               s_info.dead_count++;
-               _D("home dead count : %d", s_info.dead_count);
-
-               char *pkgname = NULL;
-               pkgname = menu_daemon_get_selected_pkgname();
-               retv_if(NULL == pkgname, 0);
-
-               if (!s_info.dead_timer) {
-                       _D("Add dead timer");
-                       s_info.dead_timer = ecore_timer_add(DEAD_TIMER_SEC, _dead_timer_cb, (void *)pkgname);
-               }
-
-               _D("pkg_name : %s", pkgname);
-               menu_daemon_open_homescreen(pkgname);
-               free(pkgname);
-       } else if (pid == s_info.volume_pid) {
-               _launch_volume();
-       } else {
-               _D("Unknown process, ignore it (pid %d, home pid %d)",
-                               pid, s_info.home_pid);
-       }
-
-
-       return 0;
-}
-
-
-
-void menu_daemon_init(void *data)
-{
-       _D( "[MENU_DAEMON]menu_daemon_init is invoked");
-
-       aul_launch_init(NULL,NULL);
-
-       create_key_window();
-       if (xmonitor_init() < 0) _E("cannot init xmonitor");
-
-       pkg_event_init();
-       _launch_volume();
-
-       if (unlink(SAT_DESKTOP_FILE) != 0)
-               _E("cannot remove sat-ui desktop.");
-
-       if (vconf_notify_key_changed(VCONFKEY_SETAPPL_SELECTED_PACKAGE_NAME, _pkg_changed, NULL) < 0)
-               _E("Failed to add the callback for package change event");
-
-       if (vconf_notify_key_changed(VCONFKEY_STARTER_SEQUENCE, _show_cb, NULL) < 0)
-               _E("Failed to add the callback for show event");
-
-       _pkg_changed(NULL, NULL);
-       vconf_set_int(VCONFKEY_IDLE_SCREEN_LAUNCHED, VCONFKEY_IDLE_SCREEN_LAUNCHED_TRUE);
-}
-
-
-
-void menu_daemon_fini(void)
-{
-       if (vconf_ignore_key_changed(VCONFKEY_SETAPPL_SELECTED_PACKAGE_NAME, _pkg_changed) < 0)
-               _E("Failed to ignore the callback for package change event");
-
-       if (vconf_ignore_key_changed(VCONFKEY_STARTER_SEQUENCE, _show_cb) < 0)
-               _E("Failed to ignore the callback for show event");
-
-       xmonitor_fini();
-       pkg_event_fini();
-       destroy_key_window();
-}
-
-
-
-// End of a file
diff --git a/src/mobile/home_mgr.c b/src/mobile/home_mgr.c
new file mode 100644 (file)
index 0000000..6054378
--- /dev/null
@@ -0,0 +1,427 @@
+/*
+ * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <aul.h>
+#include <app.h>
+#include <db-util.h>
+#include <Elementary.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <pkgmgr-info.h>
+#include <stdio.h>
+#include <dd-deviced.h>
+#include <sys/types.h>
+#include <sys/wait.h>
+#include <unistd.h>
+#include <vconf.h>
+
+#include "util.h"
+#include "dbus_util.h"
+#include "status.h"
+#include "process_mgr.h"
+#include "popup.h"
+
+#define HOME_TERMINATED "home_terminated"
+#define ISTRUE "TRUE"
+#define SYSPOPUPID_VOLUME "volume"
+
+#define DEAD_TIMER_SEC 2.0
+#define DEAD_TIMER_COUNT_MAX 2
+
+#define VCONFKEY_STARTER_IS_FALLBACK "db/starter/is_fallback"
+#define VCONFKEY_STARTER_FALLBACK_PKG "db/starter/fallback_pkg"
+
+
+
+int errno;
+static struct {
+       pid_t home_pid;
+       pid_t volume_pid;
+       int power_off;
+
+       Ecore_Timer *dead_timer;
+       int dead_count;
+
+       Evas_Object *popup;
+} s_home_mgr = {
+       .home_pid = (pid_t)-1,
+       .volume_pid = (pid_t)-1,
+       .power_off = 0,
+
+       .dead_timer = NULL,
+       .dead_count = 0,
+
+       .popup = NULL,
+};
+
+
+
+static void _after_launch_home(int pid)
+{
+       if (dbus_util_send_oomadj(pid, OOM_ADJ_VALUE_HOMESCREEN) < 0){
+               _E("failed to send oom dbus signal");
+       }
+       s_home_mgr.home_pid = pid;
+}
+
+
+
+static int _change_home_cb(const char *appid, const char *key, const char *value, void *cfn, void *afn)
+{
+       if (!strcmp(appid, MENU_SCREEN_PKG_NAME)) {
+               _E("We cannot do anything anymore.");
+       } else if (!strcmp(appid, status_active_get()->setappl_selected_package_name)) {
+               if (vconf_set_str(VCONFKEY_SETAPPL_SELECTED_PACKAGE_NAME, MENU_SCREEN_PKG_NAME) != 0) {
+                       _E("cannot set the vconf key as %s", MENU_SCREEN_PKG_NAME);
+               }
+               /* change_home func will be called by changing the home */
+               return 0;
+       }
+       _E("cannot change home");
+       return -1;
+}
+
+
+
+#define SERVICE_OPERATION_MAIN_KEY "__APP_SVC_OP_TYPE__"
+#define SERVICE_OPERATION_MAIN_VALUE "http://tizen.org/appcontrol/operation/main"
+void home_mgr_open_home(const char *appid)
+{
+       char *home_appid = NULL;
+
+       if (status_passive_get()->idle_screen_safemode) {
+               home_appid = MENU_SCREEN_PKG_NAME;
+       } else if (!appid) {
+               home_appid = status_active_get()->setappl_selected_package_name;
+       } else {
+               home_appid = (char *) appid;
+       }
+       ret_if(!home_appid);
+
+       if (!strncmp(home_appid, MENU_SCREEN_PKG_NAME, strlen(home_appid))) {
+               process_mgr_must_launch(home_appid, SERVICE_OPERATION_MAIN_KEY, SERVICE_OPERATION_MAIN_VALUE, _change_home_cb, _after_launch_home);
+       } else {
+               process_mgr_must_open(home_appid, _change_home_cb, _after_launch_home);
+       }
+}
+
+
+
+static int _show_home_cb(status_active_key_e key, void *data)
+{
+       int seq = status_active_get()->starter_sequence;
+       int is_fallback = 0;
+       char *fallback_pkg = NULL;
+
+       _D("[MENU_DAEMON] _show_home_cb is invoked(%d)", seq);
+
+       switch (seq) {
+       case 0:
+               if (s_home_mgr.home_pid > 0) {
+                       _D("Home[%d] has to be terminated.", s_home_mgr.home_pid);
+                       if (aul_terminate_pid(s_home_mgr.home_pid) != AUL_R_OK) {
+                               _E("Failed to terminate %d", s_home_mgr.home_pid);
+                       }
+                       s_home_mgr.home_pid = -1; /* to freeze the dead_cb */
+               }
+               break;
+       case 1:
+               if (vconf_get_int(VCONFKEY_STARTER_IS_FALLBACK, &is_fallback) < 0) {
+                       _E("Failed to get vconfkey : %s", VCONFKEY_STARTER_IS_FALLBACK);
+               }
+
+               if (is_fallback) {
+                       fallback_pkg = vconf_get_str(VCONFKEY_STARTER_FALLBACK_PKG);
+                       if (!fallback_pkg) {
+                               _E("Failed to get vconfkey : %s", VCONFKEY_STARTER_FALLBACK_PKG);
+                               home_mgr_open_home(NULL);
+                               break;
+                       }
+                       _D("fallback pkg : %s", fallback_pkg);
+
+                       if (vconf_set_str(VCONFKEY_SETAPPL_SELECTED_PACKAGE_NAME, fallback_pkg) < 0) {
+                               _E("Failed to set vconfkey : %s", VCONFKEY_SETAPPL_SELECTED_PACKAGE_NAME);
+                               home_mgr_open_home(NULL);
+                               free(fallback_pkg);
+                               break;
+                       }
+
+                       if (vconf_set_int(VCONFKEY_STARTER_IS_FALLBACK, 0)) {
+                               _E("Failed to set vconfkey : %s", VCONFKEY_STARTER_IS_FALLBACK);
+                       }
+
+                       free(fallback_pkg);
+               } else {
+                       home_mgr_open_home(NULL);
+               }
+               break;
+       default:
+               _E("False sequence [%d]", seq);
+               break;
+       }
+
+       return 1;
+}
+
+
+
+static int _change_selected_package_name(status_active_key_e key, void *data)
+{
+       char *appid = NULL;
+       int seq = status_active_get()->starter_sequence;
+
+       if (seq < 1) {
+               _E("Sequence is not ready yet, do nothing");
+               return 1;
+       }
+
+       _D("_change_selected_package_name is invoked");
+
+       appid = status_active_get()->setappl_selected_package_name;
+       if (!appid) {
+               return 1;
+       }
+       _SECURE_D("pkg_name : %s", appid);
+
+       if (s_home_mgr.home_pid > 0) {
+               char old_appid[BUF_SIZE_512] = { 0 , };
+
+               if (aul_app_get_pkgname_bypid(s_home_mgr.home_pid, old_appid, sizeof(old_appid)) == AUL_R_OK) {
+                       if (!strcmp(appid, old_appid)) {
+                               _D("Package is changed but same package is selected");
+                               return 1;
+                       }
+               }
+
+               if (AUL_R_OK != aul_terminate_pid(s_home_mgr.home_pid)) {
+                       _D("Failed to terminate pid %d", s_home_mgr.home_pid);
+               }
+               s_home_mgr.home_pid = -1;
+               s_home_mgr.dead_count = 0;
+               if (s_home_mgr.dead_timer) {
+                       ecore_timer_del(s_home_mgr.dead_timer);
+                       s_home_mgr.dead_timer = NULL;
+               }
+       }
+
+       home_mgr_open_home(appid);
+
+       return 1;
+}
+
+
+
+static void _after_launch_volume(int pid)
+{
+       if (dbus_util_send_oomadj(pid, OOM_ADJ_VALUE_DEFAULT) < 0){
+               _E("failed to send oom dbus signal");
+       }
+       s_home_mgr.volume_pid = pid;
+}
+
+
+
+static void _launch_after_home(int pid)
+{
+       if (pid > 0) {
+               if(dbus_util_send_oomadj(pid, OOM_ADJ_VALUE_HOMESCREEN) < 0){
+                       _E("failed to send oom dbus signal");
+               }
+       }
+       s_home_mgr.home_pid = pid;
+}
+
+
+
+static void _launch_home(const char *appid)
+{
+       const char *home_appid = NULL;
+
+       if (status_passive_get()->idle_screen_safemode) {
+               home_appid = MENU_SCREEN_PKG_NAME;
+       } else if (!appid) {
+               home_appid = status_active_get()->setappl_selected_package_name;
+       } else {
+               home_appid = (char *) appid;
+       }
+       ret_if(!home_appid);
+
+       process_mgr_must_launch(home_appid, HOME_TERMINATED, ISTRUE, _change_home_cb, _launch_after_home);
+}
+
+
+
+static void _popup_del_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+       _D("popup is deleted");
+
+       s_home_mgr.popup = NULL;
+}
+
+
+
+static Eina_Bool _dead_timer_cb(void *data)
+{
+       Evas_Object *popup = NULL;
+       char title[BUF_SIZE_128] = { 0, };
+       char text[BUF_SIZE_1024] = { 0, };
+
+       char *appid = (char *)data;
+       retv_if(!appid, ECORE_CALLBACK_CANCEL);
+
+       _D("dead count : %s(%d)", appid, s_home_mgr.dead_count);
+
+       if (s_home_mgr.dead_count >= DEAD_TIMER_COUNT_MAX) {
+               _D("Change homescreen package to default");
+
+               if (vconf_set_str(VCONFKEY_SETAPPL_SELECTED_PACKAGE_NAME, MENU_SCREEN_PKG_NAME) != 0) {
+                       _E("cannot set the vconf key as %s", MENU_SCREEN_PKG_NAME);
+                       return ECORE_CALLBACK_RENEW;
+               }
+
+               strncpy(title, _("IDS_COM_POP_WARNING"), sizeof(title));
+               title[sizeof(title) - 1] = '\0';
+
+               snprintf(text, sizeof(text), _("IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"), appid);
+               _D("title : %s / text : %s", title, text);
+
+               if (!s_home_mgr.popup) {
+                       popup = popup_create(title, text);
+                       if (!popup) {
+                               _E("Failed to create popup");
+                       } else {
+                               s_home_mgr.popup = popup;
+                               evas_object_event_callback_add(popup, EVAS_CALLBACK_DEL, _popup_del_cb, NULL);
+                       }
+               }
+
+               /* set fallback status */
+               if (vconf_set_int(VCONFKEY_STARTER_IS_FALLBACK, 1) < 0) {
+                       _E("Failed to set vconfkey : %s", VCONFKEY_STARTER_IS_FALLBACK);
+               }
+
+               if (vconf_set_str(VCONFKEY_STARTER_FALLBACK_PKG, appid) < 0) {
+                       _E("Failed to set vconfkey : %s", VCONFKEY_STARTER_FALLBACK_PKG);
+               }
+       }
+
+       s_home_mgr.dead_timer = NULL;
+       s_home_mgr.dead_count = 0;
+
+       return ECORE_CALLBACK_CANCEL;
+}
+
+
+
+int home_mgr_check_dead_signal(int pid, void *data)
+{
+       char *appid = NULL;
+
+       _D("Process %d is termianted", pid);
+
+       if (pid < 0) {
+               _E("pid : %d", pid);
+               return 0;
+       }
+
+       if (s_home_mgr.power_off) {
+               _E("power off");
+               return 0;
+       }
+
+       appid = status_active_get()->setappl_selected_package_name;
+       if (!appid) {
+               _E("appid is NULL");
+               return 0;
+       }
+
+       if (pid == s_home_mgr.home_pid) {
+               s_home_mgr.dead_count++;
+               _D("home dead count : %d", s_home_mgr.dead_count);
+
+               if (!s_home_mgr.dead_timer) {
+                       _D("Add dead timer");
+                       s_home_mgr.dead_timer = ecore_timer_add(DEAD_TIMER_SEC, _dead_timer_cb, (void *)appid);
+               }
+
+               _launch_home(appid);
+       } else if (pid == s_home_mgr.volume_pid) {
+               process_mgr_must_syspopup_launch(SYSPOPUPID_VOLUME, NULL, NULL, NULL, _after_launch_volume);
+       } else {
+               _D("Unknown process, ignore it (dead pid %d, home pid %d)", pid, s_home_mgr.home_pid);
+       }
+
+       return 0;
+}
+
+
+
+static int _power_off_cb(status_active_key_e key, void *data)
+{
+       int val = status_active_get()->sysman_power_off_status;
+
+       if (val == VCONFKEY_SYSMAN_POWER_OFF_DIRECT || val == VCONFKEY_SYSMAN_POWER_OFF_RESTART) {
+               s_home_mgr.power_off = 1;
+       } else {
+               s_home_mgr.power_off = 0;
+       }
+
+       _D("power off status : %d", s_home_mgr.power_off);
+
+       return 1;
+}
+
+
+
+static Eina_Bool _launch_volume_idler_cb(void *data)
+{
+       process_mgr_must_syspopup_launch(SYSPOPUPID_VOLUME, NULL, NULL, NULL, _after_launch_volume);
+       return ECORE_CALLBACK_CANCEL;
+}
+
+
+
+void home_mgr_init(void *data)
+{
+       _D( "[MENU_DAEMON]home_mgr_init is invoked");
+
+       status_active_register_cb(STATUS_ACTIVE_KEY_STARTER_SEQUENCE, _show_home_cb, NULL);
+       status_active_register_cb(STATUS_ACTIVE_KEY_SYSMAN_POWER_OFF_STATUS, _power_off_cb, NULL);
+       status_active_register_cb(STATUS_ACTIVE_KEY_SETAPPL_SELECTED_PACKAGE_NAME, _change_selected_package_name, NULL);
+       _change_selected_package_name(STATUS_ACTIVE_KEY_SETAPPL_SELECTED_PACKAGE_NAME, NULL);
+
+       ecore_idler_add(_launch_volume_idler_cb, NULL);
+
+       aul_listen_app_dead_signal(home_mgr_check_dead_signal, NULL);
+}
+
+
+
+void home_mgr_fini(void)
+{
+       if (s_home_mgr.volume_pid > 0) {
+               process_mgr_terminate_app(s_home_mgr.volume_pid, 1);
+               s_home_mgr.volume_pid = -1;
+       }
+
+       status_active_unregister_cb(STATUS_ACTIVE_KEY_STARTER_SEQUENCE, _show_home_cb);
+       status_active_unregister_cb(STATUS_ACTIVE_KEY_SYSMAN_POWER_OFF_STATUS, _power_off_cb);
+       status_active_unregister_cb(STATUS_ACTIVE_KEY_SETAPPL_SELECTED_PACKAGE_NAME, _change_selected_package_name);
+}
+
+
+
+// End of a file
diff --git a/src/mobile/hw_key.c b/src/mobile/hw_key.c
new file mode 100644 (file)
index 0000000..dbb1eaa
--- /dev/null
@@ -0,0 +1,500 @@
+/*
+ * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <app.h>
+#include <bundle.h>
+#include <Elementary.h>
+//#include <Ecore_X.h>
+#include <Ecore_Input.h>
+#include <dd-deviced.h>
+#include <syspopup_caller.h>
+//#include <utilX.h>
+#include <vconf.h>
+#include <system/media_key.h>
+#include <aul.h>
+#include <feedback.h>
+
+#include "hw_key.h"
+#include "home_mgr.h"
+#include "util.h"
+#include "dbus_util.h"
+#include "lock_mgr.h"
+#include "status.h"
+#include "process_mgr.h"
+#include "lock_pwd_util.h"
+
+#define APPID_CAMERA "org.tizen.camera-app"
+#define APPID_CALLLOG "org.tizen.calllog"
+#define APPID_MUSIC_PLAYER "org.tizen.music-player"
+#define APPID_TASKMGR "org.tizen.task-mgr"
+#define APPID_BROWSER "org.tizen.browser"
+#define APPID_EMAIL "org.tizen.email"
+#define APPID_DIALER "org.tizen.phone"
+
+#define STR_ATOM_XKEY_COMPOSITION "_XKEY_COMPOSITION"
+#define STR_ATOM_KEYROUTER_NOTIWINDOW "_KEYROUTER_NOTIWINDOW"
+
+#define LONG_PRESS_TIMER_SEC 0.4
+#define HOMEKEY_TIMER_SEC 0.2
+#define CANCEL_KEY_TIMER_SEC 0.3
+
+static struct {
+       //Ecore_X_Window win;
+       Ecore_Event_Handler *key_up;
+       Ecore_Event_Handler *key_down;
+       Ecore_Timer *home_long_press_timer;
+       Ecore_Timer *home_multi_press_timer;
+       Eina_Bool cancel;
+       //Ecore_X_Window keyrouter_notiwindow;
+       int homekey_count;
+} key_info = {
+       //.win = 0x0,
+       .key_up = NULL,
+       .key_down = NULL,
+       .home_long_press_timer = NULL,
+       .home_multi_press_timer = NULL,
+       .cancel = EINA_FALSE,
+       //.keyrouter_notiwindow = 0x0,
+       .homekey_count = 0,
+};
+
+
+
+static void _after_launch_taskmgr(int pid)
+{
+       if(0 < pid) {
+               if(dbus_util_send_oomadj(pid, OOM_ADJ_VALUE_DEFAULT) < 0){
+                       _E("failed to send oom dbus signal");
+               }
+       }
+}
+
+
+
+static Eina_Bool _launch_taskmgr_cb(void* data)
+{
+       int val = -1;
+
+       _D("Launch TASKMGR");
+
+       key_info.home_long_press_timer = NULL;
+
+       if (vconf_get_int(VCONFKEY_IDLE_LOCK_STATE, &val) < 0) {
+               _E("Cannot get VCONFKEY for lock state");
+       } else if (VCONFKEY_IDLE_LOCK == val) {
+               _E("lock state, ignore home key long press..!!");
+               return ECORE_CALLBACK_CANCEL;
+       }
+
+       process_mgr_must_launch(APPID_TASKMGR, NULL, NULL, NULL, _after_launch_taskmgr);
+
+       return ECORE_CALLBACK_CANCEL;
+}
+
+
+
+static void _release_multimedia_key(const char *value)
+{
+       ret_if(NULL == value);
+       _D("Multimedia key is released with %s", value);
+       process_mgr_must_launch(APPID_MUSIC_PLAYER, "multimedia_key", value, NULL, NULL);
+}
+
+
+
+static Eina_Bool _launch_by_home_key(void *data)
+{
+       int ret = 0;
+
+       if (status_passive_get()->idle_lock_state > VCONFKEY_IDLE_UNLOCK) {
+               return ECORE_CALLBACK_CANCEL;
+       }
+
+       ret = home_mgr_open_home(NULL);
+       if(ret > 0) {
+               dbus_util_send_home_raise_signal();
+       }
+
+       return ECORE_CALLBACK_CANCEL;
+}
+
+
+
+static Eina_Bool _home_multi_press_timer_cb(void *data)
+{
+       _W("homekey count[%d]", key_info.homekey_count);
+
+       key_info.home_multi_press_timer = NULL;
+
+       if(0 == key_info.homekey_count % 2) {
+               key_info.homekey_count = 0;
+               return ECORE_CALLBACK_CANCEL;
+       } else if(key_info.homekey_count >= 3) {
+               key_info.homekey_count = 0;
+               return ECORE_CALLBACK_CANCEL;
+       }
+
+       /* Single homekey operation */
+       key_info.homekey_count = 0;
+       _launch_by_home_key(data);
+
+       return ECORE_CALLBACK_CANCEL;
+
+}
+
+
+
+#define SERVICE_OPERATION_POPUP_SEARCH "http://samsung.com/appcontrol/operation/search"
+#define SEARCH_PKG_NAME "org.tizen.sfinder"
+static int _launch_search(void)
+{
+       app_control_h app_control;
+       int ret = APP_CONTROL_ERROR_NONE;
+
+       app_control_create(&app_control);
+       app_control_set_operation(app_control, APP_CONTROL_OPERATION_DEFAULT);
+       app_control_set_app_id(app_control, SEARCH_PKG_NAME);
+
+       ret = app_control_send_launch_request(app_control, NULL, NULL);
+
+       if(ret != APP_CONTROL_ERROR_NONE) {
+               _E("Cannot launch search!! err[%d]", ret);
+       }
+
+       app_control_destroy(app_control);
+       return ret;
+}
+
+
+
+static void _cancel_key_events(void)
+{
+       key_info.homekey_count = 0;
+
+       if (key_info.home_long_press_timer) {
+               ecore_timer_del(key_info.home_long_press_timer);
+               key_info.home_long_press_timer = NULL;
+       }
+
+       if(key_info.home_multi_press_timer) {
+               ecore_timer_del(key_info.home_multi_press_timer);
+               key_info.home_multi_press_timer = NULL;
+       }
+}
+
+
+
+#if 0
+static Eina_Bool _key_release_cb(void *data, int type, void *event)
+{
+       Evas_Event_Key_Up *ev = event;
+
+       retv_if(!ev, ECORE_CALLBACK_RENEW);
+       retv_if(!ev->keyname, ECORE_CALLBACK_RENEW);
+
+       _D("_key_release_cb : %s Released", ev->keyname);
+
+       /* Priority 1 : Cancel event */
+       if (!strcmp(ev->keyname, KEY_CANCEL)) {
+               _D("CANCEL Key is released");
+               key_info.cancel = EINA_FALSE;
+               return ECORE_CALLBACK_RENEW;
+       }
+
+       if (EINA_TRUE == key_info.cancel) {
+               _D("CANCEL is on");
+               return ECORE_CALLBACK_RENEW;
+       }
+
+       /* Priority 2 : Execute before checking the lock status */
+       if (!strcmp(ev->keyname, KEY_MEDIA)) {
+               _release_multimedia_key("KEY_PLAYCD");
+               return ECORE_CALLBACK_RENEW;
+       }
+
+       /* Priority 3 : Check the lock status */
+       if ((status_passive_get()->idle_lock_state  == VCONFKEY_IDLE_LOCK)
+               && (status_active_get()->setappl_screen_lock_type_int > SETTING_SCREEN_LOCK_TYPE_NONE)) {
+               if (!strcmp(ev->keyname, KEY_BACK)) {
+                       _D("Back key is released");
+                       lock_pwd_util_back_key_relased();
+               } else {
+                       _D("phone lock state, ignore home key.");
+               }
+               return ECORE_CALLBACK_RENEW;
+       }
+
+       /* Priority 4 : These keys are only activated after checking the lock state */
+       if (!strcmp(ev->keyname, KEY_END)) {
+       } else if (!strcmp(ev->keyname, KEY_CONFIG)) {
+       } else if (!strcmp(ev->keyname, KEY_SEND)) {
+       } else if (!strcmp(ev->keyname, KEY_HOME)) {
+               _W("Home Key is released");
+
+               syspopup_destroy_all();
+
+               if(key_info.home_multi_press_timer) {
+                       _D("delete homekey timer");
+                       ecore_timer_del(key_info.home_multi_press_timer);
+                       key_info.home_multi_press_timer = NULL;
+               }
+
+               if (key_info.home_long_press_timer) {
+                       ecore_timer_del(key_info.home_long_press_timer);
+                       key_info.home_long_press_timer = NULL;
+               } else {
+                       key_info.homekey_count = 0;
+                       return ECORE_CALLBACK_RENEW;
+               }
+
+               key_info.home_multi_press_timer = ecore_timer_add(HOMEKEY_TIMER_SEC, _home_multi_press_timer_cb, NULL);
+               if (!key_info.home_multi_press_timer) {
+                       _E("Critical! cannot add a timer for home multi press");
+               }
+               return ECORE_CALLBACK_RENEW;
+       } else if (!strcmp(ev->keyname, KEY_PAUSE)) {
+       } else if (!strcmp(ev->keyname, KEY_APPS)) {
+               _D("App tray key is released");
+       } else if (!strcmp(ev->keyname, KEY_TASKSWITCH)) {
+               _D("Task switch key is released");
+               _launch_taskmgr_cb(NULL);
+       } else if (!strcmp(ev->keyname, KEY_WEBPAGE)) {
+               _D("Web page key is released");
+               process_mgr_must_open(APPID_BROWSER, NULL, NULL);
+       } else if (!strcmp(ev->keyname, KEY_MAIL)) {
+               _D("Mail key is released");
+               process_mgr_must_open(APPID_EMAIL, NULL, NULL);
+       } else if (!strcmp(ev->keyname, KEY_CONNECT)) {
+               _D("Connect key is released");
+               process_mgr_must_open(APPID_DIALER, NULL, NULL);
+       } else if (!strcmp(ev->keyname, KEY_SEARCH)) {
+               _D("Search key is released");
+               if (_launch_search() < 0) {
+                       _E("Failed to launch the search");
+               }
+       } else if (!strcmp(ev->keyname, KEY_VOICE)) {
+               _D("Voice key is released");
+       }
+
+       return ECORE_CALLBACK_RENEW;
+}
+#endif
+
+
+
+#if 0
+static Eina_Bool _key_press_cb(void *data, int type, void *event)
+{
+       Evas_Event_Key_Down *ev = event;
+
+       retv_if(!ev, ECORE_CALLBACK_RENEW);
+       retv_if(!ev->keyname, ECORE_CALLBACK_RENEW);
+
+       _D("_key_press_cb : %s Pressed", ev->keyname);
+
+       /* Priority 1 : Cancel */
+       /*              every reserved events have to be canceld when cancel key is pressed */
+       if (!strcmp(ev->keyname, KEY_CANCEL)) {
+               _D("Cancel button is pressed");
+               key_info.cancel = EINA_TRUE;
+               _cancel_key_events();
+               return ECORE_CALLBACK_RENEW;
+       }
+
+       if (EINA_TRUE == key_info.cancel) {
+               _D("CANCEL is on");
+               return ECORE_CALLBACK_RENEW;
+       }
+
+       /* Priority 2 : Check the lock status */
+       if ((status_passive_get()->idle_lock_state == VCONFKEY_IDLE_LOCK)
+               && (status_active_get()->setappl_screen_lock_type_int > SETTING_SCREEN_LOCK_TYPE_NONE)) {
+               _D("phone lock state, ignore key events.");
+               _cancel_key_events();
+               return ECORE_CALLBACK_RENEW;
+       }
+
+       /* Priority 3 : other keys */
+       if (!strcmp(ev->keyname, KEY_SEND)) {
+               _D("Launch calllog");
+               process_mgr_must_open(APPID_CALLLOG, NULL, NULL);
+       } else if(!strcmp(ev->keyname, KEY_CONFIG)) {
+               _D("Launch camera");
+               process_mgr_must_open(APPID_CAMERA, NULL, NULL);
+       } else if (!strcmp(ev->keyname, KEY_HOME)) {
+               _W("Home Key is pressed");
+               if (key_info.home_long_press_timer) {
+                       ecore_timer_del(key_info.home_long_press_timer);
+                       key_info.home_long_press_timer = NULL;
+               }
+
+               key_info.homekey_count++;
+               _W("homekey count : %d", key_info.homekey_count);
+
+               if(key_info.home_multi_press_timer) {
+                       ecore_timer_del(key_info.home_multi_press_timer);
+                       key_info.home_multi_press_timer = NULL;
+                       _D("delete homekey timer");
+               }
+
+               _D("create long press timer");
+               key_info.home_long_press_timer = ecore_timer_add(LONG_PRESS_TIMER_SEC, _launch_taskmgr_cb, NULL);
+               if (!key_info.home_long_press_timer) {
+                       _E("Failed to add timer for long press detection");
+               }
+       } else if (!strcmp(ev->keyname, KEY_MEDIA)) {
+               _D("Media key is pressed");
+       } else if (!strcmp(ev->keyname, KEY_APPS)) {
+               _D("App tray key is pressed");
+       } else if (!strcmp(ev->keyname, KEY_TASKSWITCH)) {
+               _D("Task switch key is pressed");
+       } else if (!strcmp(ev->keyname, KEY_WEBPAGE)) {
+               _D("Web page key is pressed");
+       } else if (!strcmp(ev->keyname, KEY_MAIL)) {
+               _D("Mail key is pressed");
+       } else if (!strcmp(ev->keyname, KEY_SEARCH)) {
+               _D("Search key is pressed");
+       } else if (!strcmp(ev->keyname, KEY_VOICE)) {
+               _D("Voice key is pressed");
+       } else if (!strcmp(ev->keyname, KEY_CONNECT)) {
+               _D("Connect key is pressed");
+       }
+
+       return ECORE_CALLBACK_RENEW;
+}
+#endif
+
+
+
+#if 0
+void _media_key_event_cb(media_key_e key, media_key_event_e status, void *user_data)
+{
+       _D("MEDIA KEY EVENT : %d", key);
+       if (MEDIA_KEY_STATUS_PRESSED == status) return;
+
+       switch (key) {
+       case MEDIA_KEY_PAUSE:
+               _release_multimedia_key("KEY_PAUSECD");
+               break;
+       case MEDIA_KEY_PLAY:
+               _release_multimedia_key("KEY_PLAYCD");
+               break;
+       case MEDIA_KEY_PLAYPAUSE:
+               _release_multimedia_key("KEY_PLAYPAUSECD");
+               break;
+       default:
+               _E("cannot reach here, key[%d]", key);
+               break;
+       }
+}
+#endif
+
+
+
+void hw_key_create_window(void)
+{
+       int ret;
+#if 0 //build error
+       Ecore_X_Atom atomNotiWindow;
+       Ecore_X_Window keyrouter_notiwindow;
+
+       key_info.win = ecore_x_window_input_new(0, 0, 0, 1, 1);
+       if (!key_info.win) {
+               _D("Failed to create hidden window");
+               return;
+       }
+       ecore_x_event_mask_unset(key_info.win, ECORE_X_EVENT_MASK_NONE);
+       ecore_x_icccm_title_set(key_info.win, "menudaemon,key,receiver");
+       ecore_x_netwm_name_set(key_info.win, "menudaemon,key,receiver");
+       ecore_x_netwm_pid_set(key_info.win, getpid());
+
+       utilx_grab_key(ecore_x_display_get(), key_info.win, KEY_HOME, SHARED_GRAB);
+       utilx_grab_key(ecore_x_display_get(), key_info.win, KEY_VOLUMEDOWN, SHARED_GRAB);
+       utilx_grab_key(ecore_x_display_get(), key_info.win, KEY_VOLUMEUP, SHARED_GRAB);
+       utilx_grab_key(ecore_x_display_get(), key_info.win, KEY_CONFIG, SHARED_GRAB);
+       utilx_grab_key(ecore_x_display_get(), key_info.win, KEY_MEDIA, SHARED_GRAB);
+       utilx_grab_key(ecore_x_display_get(), key_info.win, KEY_APPS, SHARED_GRAB);
+       utilx_grab_key(ecore_x_display_get(), key_info.win, KEY_TASKSWITCH, SHARED_GRAB);
+       utilx_grab_key(ecore_x_display_get(), key_info.win, KEY_WEBPAGE, SHARED_GRAB);
+       utilx_grab_key(ecore_x_display_get(), key_info.win, KEY_MAIL, SHARED_GRAB);
+       utilx_grab_key(ecore_x_display_get(), key_info.win, KEY_SEARCH, SHARED_GRAB);
+       utilx_grab_key(ecore_x_display_get(), key_info.win, KEY_VOICE, SHARED_GRAB);
+       utilx_grab_key(ecore_x_display_get(), key_info.win, KEY_CONNECT, SHARED_GRAB);
+       utilx_grab_key(ecore_x_display_get(), key_info.win, KEY_POWER, SHARED_GRAB);
+
+       key_info.key_up = ecore_event_handler_add(ECORE_EVENT_KEY_UP, _key_release_cb, NULL);
+       if (!key_info.key_up)
+               _E("Failed to register a key up event handler");
+
+       key_info.key_down = ecore_event_handler_add(ECORE_EVENT_KEY_DOWN, _key_press_cb, NULL);
+       if (!key_info.key_down)
+               _E("Failed to register a key down event handler");
+
+       /* Get notifwindow */
+       atomNotiWindow = ecore_x_atom_get(STR_ATOM_KEYROUTER_NOTIWINDOW);
+       ret = ecore_x_window_prop_window_get(ecore_x_window_root_first_get(), atomNotiWindow, &keyrouter_notiwindow, 1);
+       if (ret > 0) {
+               _D("Succeed to get keyrouter notiwindow ! ret = %d (win=0x%x)\n"
+                               , ret, keyrouter_notiwindow);
+               ecore_x_window_sniff(keyrouter_notiwindow);
+               key_info.keyrouter_notiwindow = keyrouter_notiwindow;
+       } else {
+               _E("Failed to get keyrouter notiwindow! ret = %d, atomNotiWindow = 0x%x, keyrouter_notiwindow = 0x%x"
+                               , ret, atomNotiWindow, keyrouter_notiwindow);
+       }
+
+       media_key_reserve(_media_key_event_cb, NULL);
+#endif
+}
+
+
+
+void hw_key_destroy_window(void)
+{
+#if 0 //build error
+       utilx_ungrab_key(ecore_x_display_get(), key_info.win, KEY_HOME);
+       utilx_ungrab_key(ecore_x_display_get(), key_info.win, KEY_VOLUMEDOWN);
+       utilx_ungrab_key(ecore_x_display_get(), key_info.win, KEY_VOLUMEUP);
+       utilx_ungrab_key(ecore_x_display_get(), key_info.win, KEY_CONFIG);
+       utilx_ungrab_key(ecore_x_display_get(), key_info.win, KEY_MEDIA);
+       utilx_ungrab_key(ecore_x_display_get(), key_info.win, KEY_APPS);
+       utilx_ungrab_key(ecore_x_display_get(), key_info.win, KEY_TASKSWITCH);
+       utilx_ungrab_key(ecore_x_display_get(), key_info.win, KEY_WEBPAGE);
+       utilx_ungrab_key(ecore_x_display_get(), key_info.win, KEY_MAIL);
+       utilx_ungrab_key(ecore_x_display_get(), key_info.win, KEY_SEARCH);
+       utilx_ungrab_key(ecore_x_display_get(), key_info.win, KEY_VOICE);
+       utilx_ungrab_key(ecore_x_display_get(), key_info.win, KEY_CONNECT);
+
+       if (key_info.key_up) {
+               ecore_event_handler_del(key_info.key_up);
+               key_info.key_up = NULL;
+       }
+
+       if (key_info.key_down) {
+               ecore_event_handler_del(key_info.key_down);
+               key_info.key_down = NULL;
+       }
+
+       ecore_x_window_delete_request_send(key_info.win);
+       key_info.win = 0x0;
+
+       media_key_release();
+#endif
+}
+
+
+
+// End of a file
diff --git a/src/mobile/lock_mgr.c b/src/mobile/lock_mgr.c
new file mode 100644 (file)
index 0000000..4aca455
--- /dev/null
@@ -0,0 +1,700 @@
+/*
+ * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <vconf.h>
+#include <vconf-keys.h>
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <fcntl.h>
+#include <errno.h>
+#include <unistd.h>
+#include <feedback.h>
+#include <time.h>
+#include <dd-deviced.h>
+#include <dd-display.h>
+#include <aul.h>
+#include <system_settings.h>
+#include <efl_assist.h>
+
+#include "lock_mgr.h"
+#include "package_mgr.h"
+#include "process_mgr.h"
+#include "hw_key.h"
+#include "dbus_util.h"
+#include "util.h"
+#include "status.h"
+#include "lock_pwd_util.h"
+#include "lock_pwd_simple.h"
+#include "lock_pwd_control_panel.h"
+
+#define PASSWORD_LOCK_PROGRESS "/tmp/.passwordlock"
+
+static struct {
+       int checkfd;
+       alarm_id_t alarm_id;    /* -1 : None, others : set alarm */
+       Eina_Bool is_alarm;     /* EINA_TRUE : can use alarm EINA_FALSE : cannot use */
+
+       int old_lock_type;
+       char *lock_appid;
+       int lock_pid;
+       int lcd_state;
+
+       lockw_data *lockw;
+} s_lock_mgr = {
+       .checkfd = 0,
+       .alarm_id = -1,
+       .is_alarm = EINA_FALSE,
+
+       .old_lock_type = 0,
+       .lock_appid = NULL,
+       .lock_pid = -1,
+       .lcd_state = -1,
+
+       .lockw = NULL,
+};
+
+
+
+int lock_mgr_lcd_state_get(void)
+{
+       return s_lock_mgr.lcd_state;
+}
+
+
+
+int lock_mgr_lock_pid_get(void)
+{
+       return s_lock_mgr.lock_pid;
+}
+
+
+
+static int _alarm_del(alarm_id_t id, void * user_param)
+{
+       int ret = ALARMMGR_RESULT_SUCCESS;
+
+       _D("delete alarm id : %d", id);
+
+       ret = alarmmgr_remove_alarm(id);
+       if (ret != ALARMMGR_RESULT_SUCCESS) {
+               _E("Failed to remove alarm(%d)", ret );
+       }
+
+       return 0;
+}
+
+
+
+static void _alarm_unset(void)
+{
+       int ret = ALARMMGR_RESULT_SUCCESS;
+
+       ret = alarmmgr_enum_alarm_ids(_alarm_del, NULL);
+       if (ret != ALARMMGR_RESULT_SUCCESS) {
+               _E("Failed to get list of alarm ids");
+       }
+}
+
+
+
+static void _alarm_lockscreen_launch(alarm_id_t alarm_id, void *data)
+{
+       int ret = ALARMMGR_RESULT_SUCCESS;
+
+       _D("alarm id : %d", alarm_id);
+
+       /* launch lockscreen */
+       lock_mgr_lockscreen_launch();
+
+       if (alarm_id != -1) {
+               if (alarm_id != s_lock_mgr.alarm_id) {
+                       _E("alarm ids are different callback->id(%d), s_lock_mgr.alarm_id(%d)", alarm_id, s_lock_mgr.alarm_id);
+                       /* delete all registering alarm*/
+                       _alarm_unset();
+                       s_lock_mgr.alarm_id = -1;
+               } else {
+                       ret = alarmmgr_remove_alarm(alarm_id);
+                       if (ret != ALARMMGR_RESULT_SUCCESS) {
+                               _E("Failed to remove alaram(%d)", ret);
+                               /* delete all registering alarm*/
+                               _alarm_unset();
+                       }
+                       s_lock_mgr.alarm_id = -1;
+               }
+       }
+}
+
+
+
+static Eina_Bool _alarm_set(int sec)
+{
+       time_t current_time;
+       struct tm current_tm;
+       alarm_entry_t *alarm_info;
+       alarm_id_t alarm_id;
+       alarm_date_t alarm_time;
+       int ret = ALARMMGR_RESULT_SUCCESS;
+
+       /* delete before registering alarm ids */
+       if (s_lock_mgr.alarm_id != -1){
+               _E("ad->alarm_id(%d) deleted", s_lock_mgr.alarm_id);
+               ret = alarmmgr_remove_alarm(s_lock_mgr.alarm_id);
+               if (ret != ALARMMGR_RESULT_SUCCESS) {
+                       _E("Failed to remove alarm(%d) : %d", ret, s_lock_mgr.alarm_id);
+                       _alarm_unset();
+               }
+               s_lock_mgr.alarm_id = -1;
+       }
+
+       /* set alarm after sec */
+       time(&current_time);
+
+       _D("%s, after %d SEC.s alarm set", ctime(&current_time), sec);
+       localtime_r(&current_time, &current_tm);
+
+       alarm_info = alarmmgr_create_alarm();
+       retv_if(!alarm_info, EINA_FALSE);
+
+       alarm_time.year = 0;
+       alarm_time.month = 0;
+       alarm_time.day = 0;
+       alarm_time.hour = current_tm.tm_hour;
+       alarm_time.min = current_tm.tm_min;
+       alarm_time.sec = current_tm.tm_sec + sec;
+
+       alarmmgr_set_repeat_mode(alarm_info, ALARM_REPEAT_MODE_ONCE, 0);
+       alarmmgr_set_time(alarm_info, alarm_time);
+       alarmmgr_set_type(alarm_info, ALARM_TYPE_VOLATILE);
+
+       ret = alarmmgr_add_alarm_with_localtime(alarm_info, NULL, &alarm_id);
+       if (ret != ALARMMGR_RESULT_SUCCESS) {
+               _E("Failed to add alarm with localtime(%d)", ret);
+               alarmmgr_free_alarm(alarm_info) ;
+               return EINA_FALSE;
+       }
+
+       _D("alarm id(%d) is set", alarm_id);
+       s_lock_mgr.alarm_id = alarm_id;
+       alarmmgr_free_alarm(alarm_info) ;
+
+       return EINA_TRUE;
+}
+
+
+
+static Eina_Bool _alarm_init(void)
+{
+       int ret = 0;
+
+       /* alarm id initialize */
+       s_lock_mgr.alarm_id = -1;
+
+       ret = alarmmgr_init(PACKAGE_NAME);
+       if (ret != ALARMMGR_RESULT_SUCCESS) {
+               _E("Failed to initialize alarmmgr(%d)", ret);
+               return EINA_FALSE;
+       }
+
+       ret = alarmmgr_set_cb((alarm_cb_t)_alarm_lockscreen_launch, NULL);
+       if (ret != ALARMMGR_RESULT_SUCCESS) {
+               _E("Failed to set cb func(%d)", ret);
+               return EINA_FALSE;
+       }
+
+       _D("alarm init success");
+
+       return EINA_TRUE;
+}
+
+
+
+
+void lock_mgr_sound_play(lock_sound_type_e type)
+{
+       int val = status_passive_get()->setappl_sound_lock_bool;
+       ret_if(!val);
+
+       switch(type) {
+       case LOCK_SOUND_LOCK:
+               feedback_play_type(FEEDBACK_TYPE_SOUND, FEEDBACK_PATTERN_LOCK);
+               break;
+       case LOCK_SOUND_UNLOCK:
+               feedback_play_type(FEEDBACK_TYPE_SOUND, FEEDBACK_PATTERN_UNLOCK);
+               break;
+       case LOCK_SOUND_BTN_KEY:
+               feedback_play_type(FEEDBACK_TYPE_SOUND, FEEDBACK_PATTERN_SIP);
+               break;
+       case LOCK_SOUND_TAP:
+               feedback_play_type(FEEDBACK_TYPE_SOUND, FEEDBACK_PATTERN_TOUCH_TAP);
+               break;
+       default:
+               break;
+       }
+}
+
+
+
+void lock_mgr_idle_lock_state_set(int lock_state)
+{
+       _D("lock state : %d", lock_state);
+
+       if (lock_state < VCONFKEY_IDLE_UNLOCK) {
+               _E("Can't set lock_state : %d out of range", lock_state);
+       } else {
+               vconf_set_int(VCONFKEY_IDLE_LOCK_STATE, lock_state);
+       }
+}
+
+
+
+static void _after_launch_lock(int pid)
+{
+       int idle_lock_state = 0;
+
+       if (dbus_util_send_oomadj(pid, OOM_ADJ_VALUE_DEFAULT) < 0) {
+               _E("cannot send oomadj for pid[%d]", pid);
+       }
+       process_mgr_set_lock_priority(pid);
+       display_unlock_state(LCD_OFF, PM_SLEEP_MARGIN);
+       s_lock_mgr.lock_pid = pid;
+
+       idle_lock_state = status_passive_get()->idle_lock_state;
+       if (!idle_lock_state) {
+               lock_mgr_idle_lock_state_set(VCONFKEY_IDLE_LOCK);
+               lock_mgr_sound_play(LOCK_SOUND_LOCK);
+       }
+}
+
+
+
+static int _lock_changed_cb(const char *appid, const char *key, const char *value, void *cfn, void *afn)
+{
+       if (!strncmp(appid, status_passive_get()->setappl_3rd_lock_pkg_name_str, strlen(appid))) {
+               _E("We cannot do anything anymore.");
+       } else {
+               if (vconf_set_str(VCONFKEY_SETAPPL_3RD_LOCK_PKG_NAME_STR, appid) != 0) {
+                       _E("Failed to set vconfkey : %s", VCONFKEY_SETAPPL_3RD_LOCK_PKG_NAME_STR);
+                       return -1;
+               } else {
+                       if (s_lock_mgr.lock_appid) free(s_lock_mgr.lock_appid);
+                       s_lock_mgr.lock_appid = strdup(appid);
+                       retv_if(!s_lock_mgr.lock_appid, -1);
+                       return 0;
+               }
+       }
+       _E("cannot change lock");
+       return -1;
+}
+
+
+
+static void _other_lockscreen_unlock(void)
+{
+       _D("unlock other lock screen");
+
+       window_mgr_unregister_event(s_lock_mgr.lockw);
+       window_mgr_fini(s_lock_mgr.lockw);
+       s_lock_mgr.lockw = NULL;
+}
+
+
+
+static Eina_Bool _lock_create_cb(void *data, int type, void *event)
+{
+       _D("lockw(%p), lock_pid(%d)", s_lock_mgr.lockw, s_lock_mgr.lock_pid);
+
+       if (window_mgr_set_effect(s_lock_mgr.lockw, s_lock_mgr.lock_pid, event) == EINA_TRUE) {
+               //FIXME sometimes show cb is not called.
+               if (window_mgr_set_prop(s_lock_mgr.lockw, s_lock_mgr.lock_pid, event) == EINA_FALSE) {
+                       _E("window is not matched..!!");
+               }
+       }
+       return ECORE_CALLBACK_PASS_ON;
+}
+
+
+
+static Eina_Bool _lock_show_cb(void *data, int type, void *event)
+{
+       _D("lockw(%p), lock_pid(%d)", s_lock_mgr.lockw, s_lock_mgr.lock_pid);
+
+       if (window_mgr_set_prop(s_lock_mgr.lockw, s_lock_mgr.lock_pid, event)) {
+               int lock_type = status_active_get()->setappl_screen_lock_type_int;
+               _D("lock type : %d", lock_type);
+
+               window_mgr_set_scroll_prop(s_lock_mgr.lockw, lock_type);
+       }
+
+       return ECORE_CALLBACK_CANCEL;
+}
+
+
+
+static Eina_Bool _lock_hide_cb(void *data, int type, void *event)
+{
+       int pwd_win_visible = lock_pwd_util_win_visible_get();
+       int lock_type = status_active_get()->setappl_screen_lock_type_int;
+       _D("pwd win visible(%d), lock type(%d)", pwd_win_visible, lock_type);
+
+
+       if (!pwd_win_visible) {
+               lock_mgr_idle_lock_state_set(VCONFKEY_IDLE_UNLOCK);
+               lock_mgr_sound_play(LOCK_SOUND_UNLOCK);
+               s_lock_mgr.lock_pid = 0;
+               if (lock_type == SETTING_SCREEN_LOCK_TYPE_OTHER) {
+                       _other_lockscreen_unlock();
+               }
+       }
+
+       window_mgr_unregister_event(s_lock_mgr.lockw);
+
+       return ECORE_CALLBACK_CANCEL;
+}
+
+
+
+static void _lcd_off_by_timeout(void)
+{
+       int idle_lock_state = 0;
+       int accessibility_lock_time = 0;
+
+       idle_lock_state = status_passive_get()->idle_lock_state;
+       if (idle_lock_state == VCONFKEY_IDLE_LOCK) {
+               _D("VCONFKEY is set(not need to set alarm), lock_pid : %d", s_lock_mgr.lock_pid);
+               return;
+       }
+
+       if (s_lock_mgr.alarm_id != -1) {
+               _E("Alarm is set yet (alarm_id = %d) : do nothing", s_lock_mgr.alarm_id);
+               return;
+       }
+
+       accessibility_lock_time = status_passive_get()->setappl_accessibility_lock_time_int;
+       _D("accessibility lock time : %d", accessibility_lock_time);
+       if (accessibility_lock_time == 0) {
+               _alarm_lockscreen_launch(-1, NULL);
+               return;
+       } else {
+               if (s_lock_mgr.is_alarm) {
+                       _D("set alarm %d sec", accessibility_lock_time);
+                       if (_alarm_set(accessibility_lock_time) != EINA_TRUE) {
+                               _E("Failed to set alarm");
+                               _alarm_lockscreen_launch(-1, NULL);
+                       }
+               } else {
+                       _E("is_alarm is EINA_FALSE");
+                       _alarm_lockscreen_launch(-1, NULL);
+               }
+       }
+}
+
+
+
+static void _on_lcd_changed_receive(void *data, DBusMessage *msg)
+{
+       int lcd_on = 0;
+       int lcd_off = 0;
+
+       _D("LCD signal is received");
+
+       lcd_on = dbus_message_is_signal(msg, DEVICED_INTERFACE_DISPLAY, MEMBER_LCD_ON);
+       lcd_off = dbus_message_is_signal(msg, DEVICED_INTERFACE_DISPLAY, MEMBER_LCD_OFF);
+
+       if (lcd_on) {
+               _W("LCD on");
+               s_lock_mgr.lcd_state = LCD_STATE_ON;
+
+               /* delete all alarm registering */
+               _D("delete alarm : id(%d)", s_lock_mgr.alarm_id);
+               _alarm_unset();
+               s_lock_mgr.alarm_id = -1;
+
+               if (lock_pwd_util_win_visible_get()) {
+                       _D("Password lock is ON");
+                       lock_pwd_control_panel_resume();
+               } else {
+                       _D("Password lock is OFF");
+               }
+       } else if (lcd_off) {
+               s_lock_mgr.lcd_state = LCD_STATE_OFF;
+               char *lcd_off_source = dbus_util_msg_arg_get_str(msg);
+               ret_if(!lcd_off_source);
+
+               int idle_lock_state = status_passive_get()->idle_lock_state;
+               int lock_type = status_active_get()->setappl_screen_lock_type_int;
+               _D("idle_lock_state(%d), lock type(%d)", idle_lock_state, lock_type);
+
+               if (lock_pwd_util_win_visible_get()) {
+                       _D("Password lock is ON");
+                       lock_pwd_control_panel_pause();
+                       if (!lock_pwd_simple_is_blocked_get()) {
+                               if (lock_type == SETTING_SCREEN_LOCK_TYPE_SIMPLE_PASSWORD ||
+                                               lock_type == SETTING_SCREEN_LOCK_TYPE_PASSWORD ||
+                                               lock_type == SETTING_SCREEN_LOCK_TYPE_SWIPE) {
+                                       display_lock_state(LCD_OFF, STAY_CUR_STATE, 0);
+                                       dbus_util_send_lock_PmQos_signal();
+                               }
+                               lock_pwd_util_view_init();
+                       }
+               } else {
+                       _D("Password lock is OFF");
+                       if (!strncmp(lcd_off_source, "powerkey", strlen(lcd_off_source))) {
+                               _D("LCD off by Powerkey");
+                               if (idle_lock_state == VCONFKEY_IDLE_UNLOCK) {
+                                       if (lock_type == SETTING_SCREEN_LOCK_TYPE_SIMPLE_PASSWORD ||
+                                                       lock_type == SETTING_SCREEN_LOCK_TYPE_PASSWORD ||
+                                                       lock_type == SETTING_SCREEN_LOCK_TYPE_SWIPE) {
+                                               display_lock_state(LCD_OFF, STAY_CUR_STATE, 0);
+                                               dbus_util_send_lock_PmQos_signal();
+                                       }
+                                       lock_mgr_lockscreen_launch();
+                               }
+                       } else if(!strncmp(lcd_off_source, "timeout", strlen(lcd_off_source))) {
+                               _D("LCD off by timeout");
+                               _lcd_off_by_timeout();
+                       } else {
+                               _E("Dbus message is unknow : %s", lcd_off_source);
+                       }
+               }
+
+               free(lcd_off_source);
+       } else {
+               _E("%s dbus_message_is_signal error", DEVICED_INTERFACE_DISPLAY);
+       }
+}
+
+
+
+Eina_Bool lock_mgr_lockscreen_launch(void)
+{
+       int lock_type = 0;
+       Evas_Object *lock_pwd_win = NULL;
+
+       lock_type = status_active_get()->setappl_screen_lock_type_int;
+       _D("lock type : %d", lock_type);
+
+       //PM LOCK - don't go to sleep
+       display_lock_state(LCD_OFF, STAY_CUR_STATE, 0);
+
+       /* reset window mgr before start win mgr  */
+       window_mgr_unregister_event(s_lock_mgr.lockw);
+       window_mgr_register_event(NULL, s_lock_mgr.lockw, _lock_create_cb, _lock_show_cb, _lock_hide_cb);
+
+       switch (lock_type) {
+       case SETTING_SCREEN_LOCK_TYPE_NONE:
+               _E("Lockscreen type is NONE");
+               return EINA_TRUE;
+       case SETTING_SCREEN_LOCK_TYPE_SWIPE:
+               process_mgr_must_launch(LOCK_MGR_DEFAULT_PKG_NAME, NULL, NULL, _lock_changed_cb, _after_launch_lock);
+               goto_if(s_lock_mgr.lock_pid < 0, ERROR);
+               break;
+       case SETTING_SCREEN_LOCK_TYPE_SIMPLE_PASSWORD:
+       case SETTING_SCREEN_LOCK_TYPE_PASSWORD:
+               process_mgr_must_launch(LOCK_MGR_DEFAULT_PKG_NAME, NULL, NULL, _lock_changed_cb, _after_launch_lock);
+               goto_if(s_lock_mgr.lock_pid < 0, ERROR);
+
+               if (dbus_util_send_oomadj(s_lock_mgr.lock_pid, OOM_ADJ_VALUE_DEFAULT) < 0){
+                       _E("Failed to send oom dbus signal");
+               }
+
+               process_mgr_set_lock_priority(s_lock_mgr.lock_pid);
+               display_unlock_state(LCD_OFF, PM_SLEEP_MARGIN);
+
+               /* password lockscreen */
+               lock_pwd_win = lock_pwd_util_win_get();
+               if (!lock_pwd_win) {
+                       lock_pwd_util_create(EINA_TRUE);
+               } else {
+                       lock_pwd_util_win_show();
+               }
+               break;
+       case SETTING_SCREEN_LOCK_TYPE_OTHER:
+               if (!package_mgr_exist_app(status_passive_get()->setappl_3rd_lock_pkg_name_str)) {
+                       process_mgr_must_launch(status_passive_get()->setappl_3rd_lock_pkg_name_str, NULL, NULL, _lock_changed_cb, _after_launch_lock);
+               } else {
+                       _D("launch default lockscreen");
+                       process_mgr_must_launch(LOCK_MGR_DEFAULT_PKG_NAME, NULL, NULL, _lock_changed_cb, _after_launch_lock);
+               }
+               goto_if(s_lock_mgr.lock_pid < 0, ERROR);
+
+               break;
+       default:
+               _E("type error(%d)", lock_type);
+               goto ERROR;
+       }
+
+       _W("lock_pid : %d", s_lock_mgr.lock_pid);
+
+       return EINA_TRUE;
+
+ERROR:
+       _E("Failed to launch lockscreen");
+       display_unlock_state(LCD_OFF, PM_SLEEP_MARGIN);
+
+       return EINA_FALSE;
+}
+
+
+
+static void _check_ongoing(bool ongoing)
+{
+       if (ongoing) {
+               /* check previous process */
+               if (s_lock_mgr.checkfd) {
+                       _E("checkfd fail");
+                       return;
+               }
+
+               if (access(PASSWORD_LOCK_PROGRESS, F_OK) == 0) {
+                       _E("file(%s) is exist", PASSWORD_LOCK_PROGRESS);
+                       return;
+               }
+
+               /* make tmp file */
+               s_lock_mgr.checkfd = creat(PASSWORD_LOCK_PROGRESS, 0640);
+
+               if (s_lock_mgr.checkfd < 0) {
+                       _E("Failed to make %s file", PASSWORD_LOCK_PROGRESS);
+                       s_lock_mgr.checkfd = 0;
+               }
+
+               _W("make %s file", PASSWORD_LOCK_PROGRESS);
+               s_lock_mgr.checkfd = 1;
+       } else {
+               if (!s_lock_mgr.checkfd) {
+                       _E("checkfd is NULL");
+                       return;
+               }
+
+               if (unlink(PASSWORD_LOCK_PROGRESS) < 0) {
+                       _E("Failed to remove %s file", PASSWORD_LOCK_PROGRESS);
+               }
+
+               close(s_lock_mgr.checkfd);
+               s_lock_mgr.checkfd = 0;
+               _W("delete %s file", PASSWORD_LOCK_PROGRESS);
+       }
+}
+
+
+
+static void _lock_daemon_init(void)
+{
+       s_lock_mgr.lock_appid = strdup(status_passive_get()->setappl_3rd_lock_pkg_name_str);
+       if (!s_lock_mgr.lock_appid) {
+               s_lock_mgr.lock_appid = strdup(LOCK_MGR_DEFAULT_PKG_NAME);
+       }
+
+       if (s_lock_mgr.lock_appid && !package_mgr_exist_app(s_lock_mgr.lock_appid)) {
+               _SECURE_E("%s is not exist, default lock screen pkg name is set to %s", s_lock_mgr.lock_appid, LOCK_MGR_DEFAULT_PKG_NAME);
+               free(s_lock_mgr.lock_appid);
+               s_lock_mgr.lock_appid = strdup(LOCK_MGR_DEFAULT_PKG_NAME);
+               if (vconf_set_str(VCONFKEY_SETAPPL_3RD_LOCK_PKG_NAME_STR, LOCK_MGR_DEFAULT_PKG_NAME) != 0) {
+                       _E("Failed to set vconfkey : %s", VCONFKEY_SETAPPL_3RD_LOCK_PKG_NAME_STR);
+               }
+       }
+
+       _SECURE_D("default lock screen pkg name is %s", s_lock_mgr.lock_appid);
+
+       /* init alarm manager */
+       s_lock_mgr.is_alarm = _alarm_init();
+
+       /* register lcd changed cb */
+       dbus_util_receive_lcd_status(_on_lcd_changed_receive, NULL);
+
+       /* Create internal 1x1 window */
+       s_lock_mgr.lockw = window_mgr_init();
+}
+
+
+
+static int _lock_type_changed_cb(status_active_key_e key, void *data)
+{
+       int lock_type = status_active_get()->setappl_screen_lock_type_int;
+       retv_if(lock_type == s_lock_mgr.old_lock_type, 1);
+
+       _D("lock type is changed : %d -> %d", s_lock_mgr.old_lock_type, lock_type);
+
+       if (s_lock_mgr.old_lock_type == SETTING_SCREEN_LOCK_TYPE_SIMPLE_PASSWORD ||
+                       s_lock_mgr.old_lock_type == SETTING_SCREEN_LOCK_TYPE_PASSWORD) {
+               _D("delete password lockscreen layout");
+               lock_pwd_util_del();
+       }
+
+       switch (lock_type) {
+       case SETTING_SCREEN_LOCK_TYPE_NONE:
+               break;
+       case SETTING_SCREEN_LOCK_TYPE_SWIPE:
+               break;
+       case SETTING_SCREEN_LOCK_TYPE_SIMPLE_PASSWORD:
+       case SETTING_SCREEN_LOCK_TYPE_PASSWORD:
+               lock_pwd_util_create(EINA_FALSE);
+               break;
+       case SETTING_SCREEN_LOCK_TYPE_OTHER:
+               break;
+       default:
+               break;
+       }
+
+       s_lock_mgr.old_lock_type = lock_type;
+
+       return 1;
+}
+
+
+int lock_mgr_daemon_start(void)
+{
+       int lock_type = 0;
+       int ret = 0;
+
+       _lock_daemon_init();
+
+       lock_type = status_active_get()->setappl_screen_lock_type_int;
+       _D("lock type : %d", lock_type);
+
+       if (lock_type == SETTING_SCREEN_LOCK_TYPE_SIMPLE_PASSWORD ||
+                       lock_type == SETTING_SCREEN_LOCK_TYPE_PASSWORD) {
+               if (s_lock_mgr.checkfd) {
+                       _check_ongoing(EINA_FALSE);
+               } else {
+                       _check_ongoing(EINA_TRUE);
+               }
+       }
+
+       ret = lock_mgr_lockscreen_launch();
+       _D("ret : %d", ret);
+
+       status_active_register_cb(STATUS_ACTIVE_KEY_SETAPPL_SCREEN_LOCK_TYPE_INT, _lock_type_changed_cb, NULL);
+
+       if (feedback_initialize() != FEEDBACK_ERROR_NONE) {
+               _E("Failed to initialize feedback");
+       }
+
+       return ret;
+}
+
+
+
+void lock_mgr_daemon_end(void)
+{
+       if (s_lock_mgr.lock_appid) {
+               free(s_lock_mgr.lock_appid);
+               s_lock_mgr.lock_appid = NULL;
+       }
+}
diff --git a/src/mobile/lock_pwd_complex.c b/src/mobile/lock_pwd_complex.c
new file mode 100644 (file)
index 0000000..9054bf5
--- /dev/null
@@ -0,0 +1,374 @@
+/*
+ * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <Elementary.h>
+#include <Ecore.h>
+
+#include "lock_mgr.h"
+#include "util.h"
+#include "lock_pwd_util.h"
+#include "lock_pwd_complex.h"
+#include "lock_pwd_control_panel.h"
+
+#define IME_RESIZED 1
+#define IME_DOWN 2
+
+static struct _s_lock_pwd_complex {
+       Evas_Object *pwd_complex_layout;
+       Evas_Object *pwd_complex_entry;
+
+       Eina_Bool is_blocked;
+       Ecore_Timer *timer_pin;
+       int pin_time_remain;
+} s_lock_pwd_complex = {
+       .pwd_complex_layout = NULL,
+       .pwd_complex_entry = NULL,
+
+       .is_blocked = EINA_FALSE,
+       .timer_pin = NULL,
+       .pin_time_remain = PASSWORD_BLOCK_SECONDS,
+};
+
+
+
+
+Eina_Bool lock_pwd_complex_is_blocked_get(void)
+{
+       return s_lock_pwd_complex.is_blocked;
+}
+
+static void _pwd_complex_layout_title_set(const char *title)
+{
+       ret_if(!s_lock_pwd_complex.pwd_complex_layout);
+       ret_if(!title);
+
+       elm_object_part_text_set(s_lock_pwd_complex.pwd_complex_layout, "title", title);
+}
+
+
+
+void lock_pwd_complex_entry_clear(void)
+{
+       ret_if(!s_lock_pwd_complex.pwd_complex_entry);
+
+       elm_entry_entry_set(s_lock_pwd_complex.pwd_complex_entry, "");
+}
+
+
+
+static Eina_Bool _pwd_complex_entry_clear(void *data)
+{
+       lock_pwd_complex_entry_clear();
+       return ECORE_CALLBACK_CANCEL;
+}
+
+
+
+static void _pwd_complex_lock_time_init(void)
+{
+       if (vconf_set_str(VCONFKEY_SETAPPL_PASSWORD_TIMESTAMP_STR, "") < 0) {
+               _E("Failed to set vconfkey : %s", VCONFKEY_SETAPPL_PASSWORD_TIMESTAMP_STR);
+       }
+}
+
+
+
+static void _pwd_complex_lock_time_save(void)
+{
+       time_t cur_time = time(NULL);
+       char buf[64] = { 0, };
+       snprintf(buf, sizeof(buf), "%ld", cur_time);
+       if (vconf_set_str(VCONFKEY_SETAPPL_PASSWORD_TIMESTAMP_STR, buf) < 0) {
+               _E("Failed to set vconfkey : %s", VCONFKEY_SETAPPL_PASSWORD_TIMESTAMP_STR);
+       }
+}
+
+
+
+static void _pwd_complex_event_correct(lock_pwd_event_e event)
+{
+       _D("%s", __func__);
+
+       lock_pwd_util_win_hide();
+       lock_pwd_complex_entry_clear();
+       _pwd_complex_layout_title_set(_("IDS_COM_BODY_ENTER_PIN"));
+
+       lock_mgr_idle_lock_state_set(VCONFKEY_IDLE_UNLOCK);
+       lock_mgr_sound_play(LOCK_SOUND_UNLOCK);
+}
+
+
+
+static void _pwd_complex_event_incorrect(lock_pwd_event_e event)
+{
+       char temp_str[BUF_SIZE_256] = { 0, };
+       char temp_left[BUF_SIZE_256] = { 0, };
+       int remain_attempt = 0;
+
+       remain_attempt = lock_pwd_verification_remain_attempt_get();
+       _D("remain_attempt(%d)", remain_attempt);
+
+       if (remain_attempt == 1) {
+               strncpy(temp_left, _("IDS_IDLE_BODY_1_ATTEMPT_LEFT"), sizeof(temp_left));
+               temp_left[sizeof(temp_left) - 1] = '\0';
+       } else {
+               snprintf(temp_left, sizeof(temp_left), _("IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"), remain_attempt);
+       }
+       snprintf(temp_str, sizeof(temp_str), "%s<br>%s", _("IDS_COM_BODY_INCORRECT_PIN"), temp_left);
+       _pwd_complex_layout_title_set(temp_str);
+
+       ecore_timer_add(0.1, _pwd_complex_entry_clear, NULL);
+
+       lock_pwd_verification_popup_create(event);
+}
+
+
+
+static Eina_Bool _wrong_pwd_wait_timer_cb(void *data)
+{
+       char try_again_buf[BUF_SIZE_256] = { 0, };
+       char incorrect_pass_buf[BUF_SIZE_256] = { 0, };
+
+       retv_if(!s_lock_pwd_complex.pwd_complex_layout, ECORE_CALLBACK_CANCEL);
+
+       snprintf(try_again_buf, sizeof(try_again_buf), _("IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS"), s_lock_pwd_complex.pin_time_remain);
+       snprintf(incorrect_pass_buf, sizeof(incorrect_pass_buf), "%s<br>%s", _("IDS_COM_BODY_INCORRECT_PIN"), try_again_buf);
+       _pwd_complex_layout_title_set(incorrect_pass_buf);
+
+       if (s_lock_pwd_complex.pin_time_remain == PASSWORD_BLOCK_SECONDS ||
+                       s_lock_pwd_complex.pin_time_remain > 0) {
+               s_lock_pwd_complex.pin_time_remain--;
+               return ECORE_CALLBACK_RENEW;
+       } else {
+               lock_pwd_complex_view_init();
+
+               int lcd_state = lock_mgr_lcd_state_get();
+               if (lcd_state == LCD_STATE_OFF) {
+                       lock_mgr_lockscreen_launch();
+               }
+       }
+
+       return ECORE_CALLBACK_CANCEL;
+}
+
+
+
+static void _pwd_complex_event_input_block(lock_pwd_event_e event)
+{
+       _D("%s", __func__);
+
+       int block_sec = PASSWORD_BLOCK_SECONDS;
+       char try_again_buf[BUF_SIZE_256] = { 0, };
+       char incorrect_pass_buf[BUF_SIZE_256] = { 0, };
+
+       ret_if(!s_lock_pwd_complex.pwd_complex_layout);
+
+       _pwd_complex_lock_time_save();
+
+       snprintf(try_again_buf, sizeof(try_again_buf), _("IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS"), block_sec);
+       snprintf(incorrect_pass_buf, sizeof(incorrect_pass_buf), "%s<br>%s", _("IDS_COM_BODY_INCORRECT_PIN"), try_again_buf);
+       _pwd_complex_layout_title_set(incorrect_pass_buf);
+
+       s_lock_pwd_complex.is_blocked = EINA_TRUE;
+
+       if (s_lock_pwd_complex.timer_pin) {
+               ecore_timer_del(s_lock_pwd_complex.timer_pin);
+               s_lock_pwd_complex.timer_pin = NULL;
+       }
+
+       s_lock_pwd_complex.timer_pin = ecore_timer_add(1.0, _wrong_pwd_wait_timer_cb, NULL);
+
+       ecore_timer_add(0.1, _pwd_complex_entry_clear, NULL);
+
+       lock_pwd_verification_popup_create(event);
+
+       lock_pwd_control_panel_cancel_btn_enable_set(EINA_FALSE);
+}
+
+
+
+void lock_pwd_complex_event(lock_pwd_event_e event)
+{
+       switch(event) {
+       case PWD_EVENT_CORRECT:
+               _pwd_complex_event_correct(event);
+               break;
+       case PWD_EVENT_INCORRECT_WARNING:
+       case PWD_EVENT_INCORRECT:
+               _pwd_complex_event_incorrect(event);
+               break;
+       case PWD_EVENT_INPUT_BLOCK_WARNING:
+       case PWD_EVENT_INPUT_BLOCK:
+               _pwd_complex_event_input_block(event);
+               break;
+       case PWD_EVENT_EMPTY:
+               break;
+       case PWD_EVENT_OVER:
+               break;
+       default:
+               break;
+       }
+}
+
+
+
+static void _pwd_complex_enter_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       ret_if(!obj);
+
+       const char *password = elm_entry_entry_get(obj);
+
+       lock_pwd_event_e pwd_event = lock_pwd_verification_verify(password);
+       lock_pwd_complex_event(pwd_event);
+}
+
+
+
+Evas_Object *_pwd_complex_entry_create(void *data)
+{
+       Evas_Object *parent = NULL;
+       Evas_Object *entry = NULL;
+
+       parent = (Evas_Object *)data;
+       goto_if(!parent, ERROR);
+
+       entry = elm_entry_add(parent);
+       goto_if(!entry, ERROR);
+
+       elm_entry_single_line_set(entry, EINA_TRUE);
+       elm_entry_password_set(entry, EINA_TRUE);
+       elm_entry_entry_set(entry, "");
+       elm_entry_cursor_end_set(entry);
+       //elm_entry_scrollabled_set(entry, EINA_TRUE);
+       elm_entry_cnp_mode_set(entry, ELM_CNP_MODE_PLAINTEXT);
+       elm_entry_input_panel_layout_set(entry, ELM_INPUT_PANEL_LAYOUT_PASSWORD);
+       elm_entry_input_panel_imdata_set(entry, "type=lockscreen", 15);
+       elm_entry_input_panel_return_key_type_set(entry, ELM_INPUT_PANEL_RETURN_KEY_TYPE_DONE);
+
+       evas_object_smart_callback_add(entry, "activated", _pwd_complex_enter_cb, NULL);
+
+       evas_object_show(entry);
+
+       return entry;
+
+ERROR:
+       _E("Failed to create entry");
+       if (entry) {
+               evas_object_del(entry);
+               entry = NULL;
+       }
+
+       return NULL;
+}
+
+
+
+Evas_Object *lock_pwd_complex_layout_create(void *data)
+{
+       Evas_Object *parent = NULL;
+       Evas_Object *pwd_complex_layout = NULL;
+       Evas_Object *pwd_complex_entry = NULL;
+       Evas_Object *pwd_control_panel = NULL;
+
+       lock_pwd_verification_policy_create();
+
+       parent = (Evas_Object *)data;
+       retv_if(!parent, NULL);
+
+       pwd_complex_layout = elm_layout_add(parent);
+       goto_if(!pwd_complex_layout, ERROR);
+       s_lock_pwd_complex.pwd_complex_layout = pwd_complex_layout;
+
+       if (!elm_layout_file_set(pwd_complex_layout, LOCK_PWD_EDJE_FILE, "lock-complex-password")) {
+               _E("Failed to set edje file : %s", LOCK_PWD_EDJE_FILE);
+               goto ERROR;
+       }
+
+       evas_object_size_hint_weight_set(pwd_complex_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(pwd_complex_layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_show(pwd_complex_layout);
+
+       /* create entry */
+       pwd_complex_entry = _pwd_complex_entry_create(pwd_complex_layout);
+       goto_if(!pwd_complex_entry, ERROR);
+       s_lock_pwd_complex.pwd_complex_entry = pwd_complex_entry;
+
+       elm_object_part_content_set(pwd_complex_layout, "entry", pwd_complex_entry);
+
+       _pwd_complex_layout_title_set(_("IDS_COM_BODY_ENTER_PIN"));
+
+       /* create control panel */
+       pwd_control_panel = lock_pwd_control_panel_create(pwd_complex_layout);
+       if (!pwd_control_panel) {
+               _E("Failed to create password control panel");
+       } else {
+               elm_object_part_content_set(pwd_complex_layout, "control_panel", pwd_control_panel);
+       }
+
+       evas_object_show(pwd_complex_layout);
+
+       return pwd_complex_layout;
+
+ERROR:
+       _E("Failed to create complex password layout");
+
+       if (pwd_complex_entry) {
+               evas_object_del(pwd_complex_entry);
+               s_lock_pwd_complex.pwd_complex_entry = NULL;
+       }
+
+       if (pwd_complex_layout) {
+               evas_object_del(pwd_complex_layout);
+               s_lock_pwd_complex.pwd_complex_layout = NULL;
+       }
+
+       return NULL;
+}
+
+
+void lock_pwd_complex_layout_del(void)
+{
+       if (s_lock_pwd_complex.timer_pin) {
+               ecore_timer_del(s_lock_pwd_complex.timer_pin);
+               s_lock_pwd_complex.timer_pin = NULL;
+       }
+
+       if (s_lock_pwd_complex.pwd_complex_entry) {
+               evas_object_del(s_lock_pwd_complex.pwd_complex_entry);
+               s_lock_pwd_complex.pwd_complex_entry = NULL;
+       }
+
+       if (s_lock_pwd_complex.pwd_complex_layout) {
+               evas_object_del(s_lock_pwd_complex.pwd_complex_layout);
+               s_lock_pwd_complex.pwd_complex_layout = NULL;
+       }
+}
+
+
+
+void lock_pwd_complex_view_init(void)
+{
+       _D("initialize complex password values");
+       _pwd_complex_layout_title_set(_("IDS_COM_BODY_ENTER_PIN"));
+       elm_object_signal_emit(s_lock_pwd_complex.pwd_complex_layout, "show_title", "title");
+       s_lock_pwd_complex.is_blocked = EINA_FALSE;
+
+       lock_pwd_complex_entry_clear();
+
+       _pwd_complex_lock_time_init();
+
+       lock_pwd_control_panel_cancel_btn_enable_set(EINA_TRUE);
+}
diff --git a/src/mobile/lock_pwd_control_panel.c b/src/mobile/lock_pwd_control_panel.c
new file mode 100644 (file)
index 0000000..5f360ac
--- /dev/null
@@ -0,0 +1,297 @@
+/*
+ * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <app_control.h>
+//#include <utilX.h>
+#include <ui-gadget.h>
+
+#include "lock_mgr.h"
+#include "util.h"
+#include "lock_pwd_util.h"
+#include "lock_pwd_control_panel.h"
+
+#define EMG_CALL_LABEL_STYLE_START "<style=far_shadow,bottom><shadow_color=#00000033><font_size=28><align=left><color=#FFFFFF><wrap=none>"
+#define EMG_CALL_LABEL_STYLE_END "</wrap></color></align></font_size></shadow_color></style>"
+#define EMG_BTN_WIDTH 280
+
+static struct _s_lock_pwd_control_panel {
+       Evas_Object *control_panel_layout;
+       Evas_Object *emg_call_btn;
+       Evas_Object *cancel_btn;
+} s_lock_pwd_control_panel = {
+       .control_panel_layout = NULL,
+       .emg_call_btn = NULL,
+       .cancel_btn = NULL,
+};
+
+
+
+static void _emg_call_btn_clicked_cb(void *data, Evas_Object *obj, const char *emission, const char *source)
+{
+       _D("%s", __func__);
+       app_control_h service;
+       Evas_Object *lock_pwd_win = NULL;
+
+       lock_pwd_win = lock_pwd_util_win_get();
+       ret_if(!lock_pwd_win);
+
+       app_control_create(&service);
+       ret_if(!service);
+
+       lock_mgr_sound_play(LOCK_SOUND_TAP);
+
+       UG_INIT_EFL(lock_pwd_win, UG_OPT_INDICATOR_ENABLE);
+
+       if (APP_CONTROL_ERROR_NONE != app_control_set_operation(service, APP_CONTROL_OPERATION_DEFAULT)) {
+               _E("Failed to set operation for app control handle");
+               goto ERROR;
+       }
+
+       //@TODO: need to check appid
+       if (APP_CONTROL_ERROR_NONE != app_control_set_app_id(service, "dialer-efl")) {
+               _E("Failed to launch dialer-efl");
+               goto ERROR;
+       }
+
+       app_control_add_extra_data(service, "emergency_dialer", "emergency");
+
+       if (APP_CONTROL_ERROR_NONE != app_control_send_launch_request(service, NULL, NULL)) {
+               _E("Failed to send launch request");
+       }
+
+       app_control_destroy(service);
+
+       return;
+
+ERROR:
+       _E("Failed to launch emergency call");
+
+       if (service) app_control_destroy(service);
+}
+
+
+
+static void _sliding_label_mode_set(Evas_Object *label)
+{
+       Evas_Object *label_edje = NULL;
+       Evas_Object *tb = NULL;
+       Evas_Coord tb_w = 0;
+
+       ret_if(!label);
+
+       elm_label_slide_mode_set(label, ELM_LABEL_SLIDE_MODE_NONE);
+
+       label_edje = elm_layout_edje_get(label);
+       ret_if(!label_edje);
+
+       tb = (Evas_Object *)edje_object_part_object_get(label_edje, "elm.text");
+       ret_if(!tb);
+
+       evas_object_textblock_size_native_get(tb, &tb_w, NULL);
+       _D("tb width(%d), label width(%f)", tb_w, ELM_SCALE_SIZE(EMG_BTN_WIDTH));
+
+       if ((tb_w > 0) && (tb_w > ELM_SCALE_SIZE(EMG_BTN_WIDTH))) {
+               elm_label_slide_mode_set(label, ELM_LABEL_SLIDE_MODE_AUTO);
+       }
+
+       elm_label_slide_go(label);
+}
+
+
+static Evas_Object *_sliding_label_create(Evas_Object *parent, const char *text)
+{
+       char buf[BUF_SIZE_512] = { 0, };
+       char *markup_txt = NULL;
+       Evas_Object *label = NULL;
+
+       retv_if(!parent, NULL);
+
+       label = elm_label_add(parent);
+       retv_if(!label, NULL);
+
+       markup_txt = elm_entry_utf8_to_markup(text);
+       snprintf(buf, sizeof(buf), "%s%s%s", EMG_CALL_LABEL_STYLE_START, markup_txt, EMG_CALL_LABEL_STYLE_END);
+       free(markup_txt);
+
+       elm_object_style_set(label, "slide_short");
+       elm_label_wrap_width_set(label, EMG_BTN_WIDTH);
+       elm_label_slide_duration_set(label, 2);
+       elm_object_text_set(label, buf);
+       evas_object_show(label);
+
+       _sliding_label_mode_set(label);
+
+       return label;
+}
+
+
+
+static Evas_Object *_emg_call_btn_create(Evas_Object *parent)
+{
+       Evas_Object *btn = NULL;
+
+       retv_if(!parent, NULL);
+
+       btn = _sliding_label_create(parent, _("IDS_LCKSCN_BODY_EMERGENCY_CALL"));
+       retv_if(!btn, NULL);
+
+       elm_object_signal_callback_add(parent, "emg_button", "clicked", _emg_call_btn_clicked_cb, NULL);
+
+       s_lock_pwd_control_panel.emg_call_btn = btn;
+
+       return btn;
+}
+
+
+
+void lock_pwd_control_panel_cancel_btn_enable_set(Eina_Bool enable)
+{
+       ret_if(!s_lock_pwd_control_panel.control_panel_layout);
+
+       if (enable) {
+               elm_object_signal_emit(s_lock_pwd_control_panel.control_panel_layout, "button3,enable", "prog");
+       } else {
+               elm_object_signal_emit(s_lock_pwd_control_panel.control_panel_layout, "button3,disable", "prog");
+       }
+}
+
+
+
+static void _cancel_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       _D("%s", __func__);
+       lock_mgr_sound_play(LOCK_SOUND_TAP);
+
+       lock_pwd_util_view_init();
+}
+
+
+
+static Evas_Object *_cancel_btn_create(Evas_Object *parent)
+{
+       Evas_Object *btn = NULL;
+
+       retv_if(!parent, NULL);
+
+       btn = elm_button_add(parent);
+       retv_if(!btn, NULL);
+
+       elm_theme_extension_add(NULL, LOCK_PWD_BTN_EDJE_FILE);
+
+       elm_object_style_set(btn, "right_button");
+       elm_object_text_set(btn, _("IDS_ST_BUTTON_CANCEL"));
+       evas_object_smart_callback_add(btn, "clicked", (Evas_Smart_Cb)_cancel_btn_clicked_cb, NULL);
+
+       evas_object_show(btn);
+
+       s_lock_pwd_control_panel.cancel_btn = btn;
+
+       return btn;
+}
+
+
+
+Evas_Object *lock_pwd_control_panel_create(Evas_Object *parent)
+{
+       Evas_Object *control_panel_layout = NULL;
+       Evas_Object *cancel_btn = NULL;
+       Evas_Object *emg_call_btn = NULL;
+
+       retv_if(!parent, NULL);
+
+       control_panel_layout = elm_layout_add(parent);
+       retv_if(!control_panel_layout, NULL);
+
+       if (!elm_layout_file_set(control_panel_layout, LOCK_PWD_EDJE_FILE, "lock-control-panel")) {
+               _E("Failed to set edje file : %s", LOCK_PWD_EDJE_FILE);
+               goto ERROR;
+       }
+       s_lock_pwd_control_panel.control_panel_layout = control_panel_layout;
+
+       evas_object_size_hint_weight_set(control_panel_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(control_panel_layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+       /* create emg call button */
+       emg_call_btn = _emg_call_btn_create(control_panel_layout);
+       if (!emg_call_btn) {
+               _E("Failed to create operator button");
+       } else {
+               elm_object_part_content_set(control_panel_layout, "button1", emg_call_btn);
+       }
+
+       /* create cancel button */
+       cancel_btn = _cancel_btn_create(control_panel_layout);
+       if (!cancel_btn) {
+               _E("Failed to create cancel button");
+       } else {
+               elm_object_part_content_set(control_panel_layout, "button3", cancel_btn);
+       }
+
+       evas_object_show(control_panel_layout);
+
+       return control_panel_layout;
+
+ERROR:
+       _E("Failed to create password control panel");
+
+       if (cancel_btn) {
+               evas_object_del(cancel_btn);
+               cancel_btn = NULL;
+       }
+
+       if (control_panel_layout) {
+               evas_object_del(control_panel_layout);
+               s_lock_pwd_control_panel.control_panel_layout = NULL;
+       }
+
+       return NULL;
+}
+
+void lock_pwd_control_panel_del(void)
+{
+       if (s_lock_pwd_control_panel.cancel_btn) {
+               evas_object_smart_callback_del(s_lock_pwd_control_panel.cancel_btn, "clicked", (Evas_Smart_Cb)_cancel_btn_clicked_cb);
+               evas_object_del(s_lock_pwd_control_panel.cancel_btn);
+               s_lock_pwd_control_panel.cancel_btn = NULL;
+       }
+
+       if (s_lock_pwd_control_panel.emg_call_btn) {
+               elm_object_signal_callback_del(s_lock_pwd_control_panel.control_panel_layout, "emg_button", "clicked", _emg_call_btn_clicked_cb);
+               evas_object_del(s_lock_pwd_control_panel.emg_call_btn);
+               s_lock_pwd_control_panel.emg_call_btn = NULL;
+       }
+
+       if (s_lock_pwd_control_panel.control_panel_layout) {
+               evas_object_del(s_lock_pwd_control_panel.control_panel_layout);
+               s_lock_pwd_control_panel.control_panel_layout = NULL;
+       }
+}
+
+void lock_pwd_control_panel_pause(void)
+{
+       if (s_lock_pwd_control_panel.emg_call_btn) {
+               elm_label_slide_mode_set(s_lock_pwd_control_panel.emg_call_btn, ELM_LABEL_SLIDE_MODE_NONE);
+               elm_label_slide_go(s_lock_pwd_control_panel.emg_call_btn);
+       }
+}
+
+void lock_pwd_control_panel_resume(void)
+{
+       if (s_lock_pwd_control_panel.emg_call_btn) {
+               elm_label_slide_mode_set(s_lock_pwd_control_panel.emg_call_btn, ELM_LABEL_SLIDE_MODE_AUTO);
+               elm_label_slide_go(s_lock_pwd_control_panel.emg_call_btn);
+       }
+}
diff --git a/src/mobile/lock_pwd_simple.c b/src/mobile/lock_pwd_simple.c
new file mode 100755 (executable)
index 0000000..d2aab01
--- /dev/null
@@ -0,0 +1,448 @@
+/*
+ * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <Elementary.h>
+#include <Ecore_X.h>
+#include <app_control.h>
+#include <bundle.h>
+#include <aul.h>
+#include <security-server.h>
+#include <vconf.h>
+
+#include "lock_mgr.h"
+#include "util.h"
+#include "status.h"
+#include "lock_pwd_util.h"
+#include "lock_pwd_simple.h"
+#include "lock_pwd_control_panel.h"
+
+#define DOT_TIME 1.5
+#define CORRECT_TIME 0.2
+
+static struct _s_lock_pwd_simple {
+       Evas_Object *pwd_simple_layout;
+       Ecore_Timer *timer_dot;
+
+       Eina_Bool is_blocked;
+
+       char pwd_simple[MAX_PASSWORD_NUM +1];
+       int pwd_simple_length;
+
+       Ecore_Timer *timer_correct;
+       Ecore_Timer *timer_pin;
+       int pin_time_remain;
+} s_lock_pwd_simple = {
+       .pwd_simple_layout = NULL,
+       .timer_dot = NULL,
+
+       .is_blocked = EINA_FALSE,
+
+       .pwd_simple = { 0, },
+       .pwd_simple_length = 0,
+
+       .timer_correct = NULL,
+       .timer_pin = NULL,
+       .pin_time_remain = PASSWORD_BLOCK_SECONDS,
+};
+
+
+
+Eina_Bool lock_pwd_simple_is_blocked_get(void)
+{
+       return s_lock_pwd_simple.is_blocked;
+}
+
+
+
+
+static void _pwd_simple_layout_title_set(const char *title)
+{
+       ret_if(!s_lock_pwd_simple.pwd_simple_layout);
+       ret_if(!title);
+       elm_object_part_text_set(s_lock_pwd_simple.pwd_simple_layout, "title", title);
+}
+
+
+
+static void _pwd_simple_backspace(int length)
+{
+       char buf[BUF_SIZE_32] = { 0, };
+       ret_if(!s_lock_pwd_simple.pwd_simple_layout);
+
+       snprintf(buf, sizeof(buf), "dot_hide%d", length);
+       elm_object_signal_emit(s_lock_pwd_simple.pwd_simple_layout, buf, "keyboard");
+       if (s_lock_pwd_simple.timer_dot) {
+               ecore_timer_del(s_lock_pwd_simple.timer_dot);
+               s_lock_pwd_simple.timer_dot = NULL;
+       }
+}
+
+
+
+static Eina_Bool _hide_dot_cb(void *data)
+{
+       char buf[BUF_SIZE_32] = { 0, };
+       retv_if(!s_lock_pwd_simple.pwd_simple_layout, ECORE_CALLBACK_CANCEL);
+
+       snprintf(buf, sizeof(buf), "dot_show%d", (int)data);
+       elm_object_signal_emit(s_lock_pwd_simple.pwd_simple_layout, buf, "keyboard");
+       s_lock_pwd_simple.timer_dot = NULL;
+
+       return ECORE_CALLBACK_CANCEL;
+}
+
+
+
+static void _pwd_simple_input(int length, const char *text)
+{
+       char part_buf[BUF_SIZE_32] = { 0, };
+       char signal_buf[BUF_SIZE_32] = { 0, };
+       ret_if(!s_lock_pwd_simple.pwd_simple_layout);
+
+       lock_mgr_sound_play(LOCK_SOUND_BTN_KEY);
+
+       snprintf(part_buf, sizeof(part_buf), "panel%d", length);
+       elm_object_part_text_set(s_lock_pwd_simple.pwd_simple_layout, part_buf, text);
+
+       snprintf(signal_buf, sizeof(signal_buf), "input_show%d", length);
+       elm_object_signal_emit(s_lock_pwd_simple.pwd_simple_layout, signal_buf, "keyboard");
+
+       if (length > 0) {
+               snprintf(signal_buf, sizeof(signal_buf), "dot_show%d", length-1);
+               elm_object_signal_emit(s_lock_pwd_simple.pwd_simple_layout, signal_buf, "keyboard");
+       }
+
+       if (s_lock_pwd_simple.timer_dot) {
+               ecore_timer_del(s_lock_pwd_simple.timer_dot);
+               s_lock_pwd_simple.timer_dot = NULL;
+       }
+
+       if (length < MAX_PASSWORD_NUM-1) {
+               s_lock_pwd_simple.timer_dot = ecore_timer_add(DOT_TIME, _hide_dot_cb, (void *)length);
+       }
+}
+
+
+
+static void _pwd_simple_keypad_process(void *data, Evas_Object *obj, const char *emission, const char *source)
+{
+       _D("%s", __func__);
+
+       if (s_lock_pwd_simple.is_blocked) {
+               _E("blocked");
+               lock_mgr_sound_play(LOCK_SOUND_BTN_KEY);
+               return;
+       }
+
+       if (!strncmp("Backspace", source, strlen("Backspace"))) {
+               _E("Backspace");
+               lock_mgr_sound_play(LOCK_SOUND_BTN_KEY);
+               ret_if(s_lock_pwd_simple.pwd_simple_length <= 0);
+               _pwd_simple_backspace(--s_lock_pwd_simple.pwd_simple_length);
+       } else {
+               if (s_lock_pwd_simple.pwd_simple_length >= MAX_PASSWORD_NUM) {
+                       _E("Too long");
+                       return;
+               } else {
+                       s_lock_pwd_simple.pwd_simple[s_lock_pwd_simple.pwd_simple_length] = *source;
+                       _pwd_simple_input(s_lock_pwd_simple.pwd_simple_length++, source);
+               }
+       }
+
+       if (s_lock_pwd_simple.pwd_simple_length == MAX_PASSWORD_NUM) {
+               lock_pwd_event_e pwd_event = lock_pwd_verification_verify(s_lock_pwd_simple.pwd_simple);
+               lock_pwd_simple_event(pwd_event);
+       }
+}
+
+
+
+Evas_Object *lock_pwd_simple_layout_create(void *data)
+{
+       Evas_Object *parent = NULL;
+       Evas_Object *pwd_simple_layout = NULL;
+       Evas_Object *pwd_control_panel = NULL;
+
+       lock_pwd_verification_policy_create();
+
+       parent = (Evas_Object *)data;
+       retv_if(!parent, NULL);
+
+       pwd_simple_layout = elm_layout_add(parent);
+       goto_if(!pwd_simple_layout, ERROR);
+       s_lock_pwd_simple.pwd_simple_layout = pwd_simple_layout;
+
+       if (!elm_layout_file_set(pwd_simple_layout, LOCK_PWD_EDJE_FILE, "lock-simple-password")) {
+               _E("Failed to set edje file : %s", LOCK_PWD_EDJE_FILE);
+               goto ERROR;
+       }
+
+       evas_object_size_hint_weight_set(pwd_simple_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(pwd_simple_layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_show(pwd_simple_layout);
+
+       elm_object_signal_callback_add(pwd_simple_layout, "keypad_down_clicked", "*", _pwd_simple_keypad_process, NULL);
+       _pwd_simple_layout_title_set(_("IDS_COM_BODY_ENTER_PIN"));
+
+       /* create control panel */
+       pwd_control_panel = lock_pwd_control_panel_create(pwd_simple_layout);
+       if (!pwd_control_panel) {
+               _E("Failed to create password control panel");
+       } else {
+               elm_object_part_content_set(pwd_simple_layout, "control_panel", pwd_control_panel);
+       }
+
+       return pwd_simple_layout;
+
+ERROR:
+       _E("Failed to create simple password layout");
+
+       if (pwd_simple_layout) {
+               evas_object_del(pwd_simple_layout);
+               s_lock_pwd_simple.pwd_simple_layout = NULL;
+       }
+
+       return NULL;
+}
+
+
+
+void lock_pwd_simple_layout_del(void)
+{
+       if (s_lock_pwd_simple.pwd_simple_layout) {
+               evas_object_del(s_lock_pwd_simple.pwd_simple_layout);
+               s_lock_pwd_simple.pwd_simple_layout = NULL;
+       }
+
+       if (s_lock_pwd_simple.timer_dot) {
+               ecore_timer_del(s_lock_pwd_simple.timer_dot);
+               s_lock_pwd_simple.timer_dot = NULL;
+       }
+
+       if (s_lock_pwd_simple.timer_pin) {
+               ecore_timer_del(s_lock_pwd_simple.timer_pin);
+               s_lock_pwd_simple.timer_pin = NULL;
+       }
+}
+
+
+
+void lock_pwd_simple_entry_clear(void)
+{
+       int i = 0;
+       char buf[BUF_SIZE_32] = { 0, };
+
+       ret_if(!s_lock_pwd_simple.pwd_simple_layout);
+
+       if (s_lock_pwd_simple.timer_dot) {
+               ecore_timer_del(s_lock_pwd_simple.timer_dot);
+               s_lock_pwd_simple.timer_dot = NULL;
+       }
+
+       for (i = 0; i <= 3; i++) {
+               snprintf(buf, sizeof(buf), "dot_hide%d", i);
+               elm_object_signal_emit(s_lock_pwd_simple.pwd_simple_layout, buf, "keyboard");
+       }
+       s_lock_pwd_simple.pwd_simple_length = 0;
+}
+
+
+
+static Eina_Bool _pwd_simple_entry_clear(void *data)
+{
+       lock_pwd_simple_entry_clear();
+       return ECORE_CALLBACK_CANCEL;
+}
+
+
+
+static void _pwd_simple_event_incorrect(lock_pwd_event_e event)
+{
+       char temp_str[BUF_SIZE_256] = { 0, };
+       char temp_left[BUF_SIZE_256] = { 0, };
+       int remain_attempt = 0;
+
+       remain_attempt = lock_pwd_verification_remain_attempt_get();
+       _D("remain_attempt(%d)", remain_attempt);
+
+       if (remain_attempt == 1) {
+               strncpy(temp_left, _("IDS_IDLE_BODY_1_ATTEMPT_LEFT"), sizeof(temp_left));
+               temp_left[sizeof(temp_left) - 1] = '\0';
+       } else {
+               snprintf(temp_left, sizeof(temp_left), _("IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"), remain_attempt);
+       }
+       snprintf(temp_str, sizeof(temp_str), "%s<br>%s", _("IDS_COM_BODY_INCORRECT_PIN"), temp_left);
+       _pwd_simple_layout_title_set(temp_str);
+
+       ecore_timer_add(0.1, _pwd_simple_entry_clear, NULL);
+
+       lock_pwd_verification_popup_create(event);
+}
+
+
+
+static Eina_Bool _pwd_correct_timer_cb(void *data)
+{
+       lock_pwd_util_win_hide();
+       lock_pwd_simple_entry_clear();
+       _pwd_simple_layout_title_set(_("IDS_COM_BODY_ENTER_PIN"));
+
+       lock_mgr_idle_lock_state_set(VCONFKEY_IDLE_UNLOCK);
+       lock_mgr_sound_play(LOCK_SOUND_UNLOCK);
+
+       s_lock_pwd_simple.timer_correct = NULL;
+
+       return ECORE_CALLBACK_CANCEL;
+}
+
+
+
+static void _pwd_simple_event_correct(lock_pwd_event_e event)
+{
+       if (s_lock_pwd_simple.timer_correct) {
+               ecore_timer_del(s_lock_pwd_simple.timer_correct);
+       }
+
+       s_lock_pwd_simple.timer_correct = ecore_timer_add(CORRECT_TIME, _pwd_correct_timer_cb, NULL);
+       if(!s_lock_pwd_simple.timer_correct) {
+               _E("Failed to add tiemr for correct password event");
+       }
+}
+
+
+
+static void _pwd_simple_lock_time_init(void)
+{
+       if (vconf_set_str(VCONFKEY_SETAPPL_PASSWORD_TIMESTAMP_STR, "") < 0) {
+               _E("Failed to set vconfkey : %s", VCONFKEY_SETAPPL_PASSWORD_TIMESTAMP_STR);
+       }
+}
+
+
+
+static void _pwd_simple_lock_time_save(void)
+{
+       time_t cur_time = time(NULL);
+       char buf[64] = { 0, };
+       snprintf(buf, sizeof(buf), "%ld", cur_time);
+       if (vconf_set_str(VCONFKEY_SETAPPL_PASSWORD_TIMESTAMP_STR, buf) < 0) {
+               _E("Failed to set vconfkey : %s", VCONFKEY_SETAPPL_PASSWORD_TIMESTAMP_STR);
+       }
+}
+
+
+
+static Eina_Bool _wrong_pwd_wait_timer_cb(void *data)
+{
+       char try_again_buf[BUF_SIZE_256] = { 0, };
+       char incorrect_pass_buf[BUF_SIZE_256] = { 0, };
+
+       retv_if(!s_lock_pwd_simple.pwd_simple_layout, ECORE_CALLBACK_CANCEL);
+
+       snprintf(try_again_buf, sizeof(try_again_buf), _("IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS"), s_lock_pwd_simple.pin_time_remain);
+       snprintf(incorrect_pass_buf, sizeof(incorrect_pass_buf), "%s<br>%s", _("IDS_COM_BODY_INCORRECT_PIN"), try_again_buf);
+       _pwd_simple_layout_title_set(incorrect_pass_buf);
+
+       if (s_lock_pwd_simple.pin_time_remain == PASSWORD_BLOCK_SECONDS ||
+                       s_lock_pwd_simple.pin_time_remain > 0) {
+               s_lock_pwd_simple.pin_time_remain--;
+               return ECORE_CALLBACK_RENEW;
+       } else {
+               lock_pwd_simple_view_init();
+
+               int lcd_state = lock_mgr_lcd_state_get();
+               if (lcd_state == LCD_STATE_OFF) {
+                       lock_mgr_lockscreen_launch();
+               }
+       }
+
+       return ECORE_CALLBACK_CANCEL;
+}
+
+
+
+static void _pwd_simple_event_input_block(lock_pwd_event_e event)
+{
+       _D("%s", __func__);
+
+       int block_sec = PASSWORD_BLOCK_SECONDS;
+       char try_again_buf[200] = { 0, };
+       char incorrect_pass_buf[200] = { 0, };
+
+       ret_if(!s_lock_pwd_simple.pwd_simple_layout);
+
+       _pwd_simple_lock_time_save();
+
+       snprintf(try_again_buf, sizeof(try_again_buf), _("IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS"), block_sec);
+       snprintf(incorrect_pass_buf, sizeof(incorrect_pass_buf), "%s<br>%s", _("IDS_COM_BODY_INCORRECT_PIN"), try_again_buf);
+       _pwd_simple_layout_title_set(incorrect_pass_buf);
+
+       s_lock_pwd_simple.is_blocked = EINA_TRUE;
+
+       if (s_lock_pwd_simple.timer_pin) {
+               ecore_timer_del(s_lock_pwd_simple.timer_pin);
+               s_lock_pwd_simple.timer_pin = NULL;
+       }
+
+       s_lock_pwd_simple.timer_pin = ecore_timer_add(1.0, _wrong_pwd_wait_timer_cb, NULL);
+
+       ecore_timer_add(0.1, _pwd_simple_entry_clear, NULL);
+
+       lock_pwd_verification_popup_create(event);
+
+       lock_pwd_control_panel_cancel_btn_enable_set(EINA_FALSE);
+}
+
+
+
+void lock_pwd_simple_event(lock_pwd_event_e event)
+{
+       switch(event) {
+       case PWD_EVENT_CORRECT:
+               _pwd_simple_event_correct(event);
+               break;
+       case PWD_EVENT_INCORRECT_WARNING:
+       case PWD_EVENT_INCORRECT:
+               _pwd_simple_event_incorrect(event);
+               break;
+       case PWD_EVENT_INPUT_BLOCK_WARNING:
+       case PWD_EVENT_INPUT_BLOCK:
+               _pwd_simple_event_input_block(event);
+               break;
+       case PWD_EVENT_EMPTY:
+               break;
+       case PWD_EVENT_OVER:
+               break;
+       default:
+               break;
+       }
+}
+
+void lock_pwd_simple_view_init(void)
+{
+       _D("initialize simpel password values");
+       s_lock_pwd_simple.pin_time_remain = PASSWORD_BLOCK_SECONDS;
+
+       _pwd_simple_layout_title_set(_("IDS_COM_BODY_ENTER_PIN"));
+       elm_object_signal_emit(s_lock_pwd_simple.pwd_simple_layout, "show_title", "title");
+       s_lock_pwd_simple.is_blocked = EINA_FALSE;
+
+       lock_pwd_simple_entry_clear();
+
+       _pwd_simple_lock_time_init();
+
+       lock_pwd_control_panel_cancel_btn_enable_set(EINA_TRUE);
+}
diff --git a/src/mobile/lock_pwd_util.c b/src/mobile/lock_pwd_util.c
new file mode 100644 (file)
index 0000000..5a07ef3
--- /dev/null
@@ -0,0 +1,472 @@
+/*
+ * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <system_settings.h>
+#include <efl_assist.h>
+
+#include "lock_mgr.h"
+#include "util.h"
+#include "status.h"
+#include "status.h"
+#include "lock_pwd_util.h"
+#include "lock_pwd_simple.h"
+#include "lock_pwd_complex.h"
+
+static struct _s_lock_pwd_util {
+       Evas_Object *lock_pwd_win;
+       Evas_Object *conformant;
+       Evas_Object *layout;
+       Evas_Object *bg;
+
+       int win_w;
+       int win_h;
+} s_lock_pwd_util = {
+       .lock_pwd_win = NULL,
+       .conformant = NULL,
+       .layout = NULL,
+       .bg = NULL,
+
+       .win_w = 0,
+       .win_h = 0,
+};
+
+
+
+int lock_pwd_util_win_width_get(void)
+{
+       return s_lock_pwd_util.win_w;
+}
+
+
+
+int lock_pwd_util_win_height_get(void)
+{
+       return s_lock_pwd_util.win_h;
+}
+
+
+
+static Evas_Object *_pwd_conformant_add(void *data)
+{
+       Evas_Object *win = NULL;
+       Evas_Object *conformant = NULL;
+
+       win = (Evas_Object *)data;
+       goto_if(!win, ERROR);
+
+       conformant = elm_conformant_add(win);
+       goto_if(!conformant, ERROR);
+
+       evas_object_size_hint_weight_set(conformant, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       elm_win_resize_object_add(win, conformant);
+
+       elm_win_indicator_mode_set(win, ELM_WIN_INDICATOR_SHOW);
+       elm_win_indicator_opacity_set(win, ELM_WIN_INDICATOR_TRANSLUCENT);
+       elm_win_conformant_set(win, EINA_TRUE);
+
+       evas_object_show(conformant);
+
+       return conformant;
+
+ERROR:
+       _E("Failed to add password conformant");
+
+       if (conformant) {
+               evas_object_del(conformant);
+               conformant = NULL;
+       }
+
+       return NULL;
+}
+
+
+void lock_pwd_util_bg_image_set(Evas_Object *bg, char *file)
+{
+       char *bg_path = NULL;
+       int ret = 0;
+
+       ret_if(!bg);
+
+       if (file) {
+               _D("lock bg : %s", file);
+               if (!elm_bg_file_set(bg, file, NULL)) {
+                       _E("Failed to set BG : %s", file);
+                       goto ERROR;
+               }
+       } else {
+               ret = system_settings_get_value_string(SYSTEM_SETTINGS_KEY_WALLPAPER_LOCK_SCREEN, &bg_path);
+               if (SYSTEM_SETTINGS_ERROR_NONE != ret) {
+                       _E("Failed to get system setting value : %d", SYSTEM_SETTINGS_KEY_WALLPAPER_LOCK_SCREEN);
+                       goto ERROR;
+               }
+               _D("lock bg : %s", bg_path);
+
+               if (!elm_bg_file_set(bg, bg_path, NULL)) {
+                       _E("Failed to set bg : %s", bg_path);
+                       goto ERROR;
+               }
+
+               if (bg_path) {
+                       free(bg_path);
+                       bg_path = NULL;
+               }
+       }
+
+       return;
+
+ERROR:
+       if (bg_path) {
+               free(bg_path);
+               bg_path = NULL;
+       }
+
+       if (!elm_bg_file_set(bg, LOCK_MGR_DEFAULT_BG_PATH, NULL)) {
+               _E("Failed to set default BG : %s. Retry to set default BG.", LOCK_MGR_DEFAULT_BG_PATH);
+               if (!elm_bg_file_set(bg, LOCK_MGR_DEFAULT_BG_PATH, NULL)) {
+                       _E("Failed to set default BG : %s", LOCK_MGR_DEFAULT_BG_PATH);
+               }
+       }
+
+       return;
+}
+
+
+
+static void _wallpaper_lock_screen_changed_cb(system_settings_key_e key, void *data)
+{
+       _D("%s", __func__);
+       Evas_Object *bg = (Evas_Object *)data;
+       ret_if(!bg);
+
+       lock_pwd_util_bg_image_set(bg, NULL);
+}
+
+
+
+static Evas_Object *_pwd_bg_add(void *data)
+{
+       Evas_Object *bg = NULL;
+       Evas_Object *parent = NULL;
+       int ret = 0;
+
+       parent = (Evas_Object *)data;
+       retv_if(!parent, NULL);
+
+       bg = elm_bg_add(parent);
+       goto_if(!bg, ERROR);
+
+       elm_bg_option_set(bg, ELM_BG_OPTION_SCALE);
+
+       elm_win_resize_object_add(parent, bg);
+
+       evas_object_show(bg);
+
+       lock_pwd_util_bg_image_set(bg, NULL);
+
+       ret = system_settings_set_changed_cb(SYSTEM_SETTINGS_KEY_WALLPAPER_LOCK_SCREEN, _wallpaper_lock_screen_changed_cb, bg);
+       if (SYSTEM_SETTINGS_ERROR_NONE != ret) {
+               _E("Failed to register settings changed cb : %d", SYSTEM_SETTINGS_KEY_WALLPAPER_LOCK_SCREEN);
+       }
+
+       return bg;
+
+ERROR:
+       _E("Failed to add password bg");
+
+       if (bg) {
+               evas_object_del(bg);
+               bg = NULL;
+       }
+
+       return NULL;
+}
+
+
+
+static Evas_Object *_pwd_layout_create(void *data)
+{
+       Evas_Object *layout = NULL;
+       Evas_Object *parent = NULL;
+
+       parent = (Evas_Object *)data;
+       retv_if(!parent, NULL);
+
+       layout = elm_layout_add(parent);
+       retv_if(!layout, NULL);
+
+       if (!elm_layout_file_set(layout, LOCK_PWD_EDJE_FILE, "lock_pwd")) {
+               _E("Failed to set edje file : %s", LOCK_PWD_EDJE_FILE);
+               goto ERROR;
+       }
+
+       evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+       evas_object_show(layout);
+
+       return layout;
+
+ERROR:
+       _E("Failed to create password layout");
+
+       if (layout) {
+               evas_object_del(layout);
+               layout = NULL;
+       }
+
+       return NULL;
+}
+
+
+
+void lock_pwd_util_back_key_relased(void)
+{
+       _D("%s", __func__);
+
+       ret_if(lock_pwd_simple_is_blocked_get());
+
+       lock_mgr_sound_play(LOCK_SOUND_TAP);
+
+       lock_pwd_util_view_init();
+}
+
+
+
+void lock_pwd_util_create(Eina_Bool is_show)
+{
+       Evas_Object *win = NULL;
+       Evas_Object *conformant = NULL;
+       Evas_Object *bg = NULL;
+       Evas_Object *layout = NULL;
+       Evas_Object *pwd_layout = NULL;
+       int lock_type = 0;
+       int x = 0, y = 0, w = 0, h = 0;
+
+       if (!s_lock_pwd_util.lock_pwd_win) {
+               win = window_mgr_pwd_lock_win_create();
+               ret_if(!win);
+               s_lock_pwd_util.lock_pwd_win = win;
+
+               elm_win_screen_size_get(win, &x, &y, &w, &h);
+               _D("win size : %dx%d(%d, %d)", w, h, x, y);
+               s_lock_pwd_util.win_w = w;
+               s_lock_pwd_util.win_h = h;
+       }
+
+       conformant = _pwd_conformant_add(win);
+       goto_if(!conformant, ERROR);
+       s_lock_pwd_util.conformant = conformant;
+
+       layout = _pwd_layout_create(conformant);
+       goto_if(!layout, ERROR);
+       s_lock_pwd_util.layout = layout;
+
+       elm_object_content_set(conformant, layout);
+
+       bg = _pwd_bg_add(win);
+       goto_if(!bg, ERROR);
+       s_lock_pwd_util.bg = bg;
+
+       elm_object_part_content_set(layout, "sw.bg", bg);
+
+       lock_type = status_active_get()->setappl_screen_lock_type_int;
+       _D("lock type : %d", lock_type);
+
+       switch(lock_type) {
+       case SETTING_SCREEN_LOCK_TYPE_SIMPLE_PASSWORD:
+               pwd_layout = lock_pwd_simple_layout_create(layout);
+               break;
+       case SETTING_SCREEN_LOCK_TYPE_PASSWORD:
+               pwd_layout = lock_pwd_complex_layout_create(layout);
+               break;
+       default:
+               _E("lock type is not password : %d", lock_type);
+               goto ERROR;
+       }
+       goto_if(!pwd_layout, ERROR);
+
+       elm_object_part_content_set(layout, "sw.lock_pwd", pwd_layout);
+
+       if (is_show) {
+               evas_object_show(win);
+       }
+
+       return;
+
+ERROR:
+       _E("Failed to launch password lockscreen");
+
+       lock_pwd_util_del();
+
+       return;
+}
+
+
+
+void lock_pwd_util_del(void)
+{
+       int lock_type = status_active_get()->setappl_screen_lock_type_int;
+       _D("lock type : %d", lock_type);
+
+       if (lock_type == SETTING_SCREEN_LOCK_TYPE_SIMPLE_PASSWORD) {
+               lock_pwd_simple_layout_del();
+       } else if (lock_type == SETTING_SCREEN_LOCK_TYPE_PASSWORD) {
+               lock_pwd_complex_layout_del();
+       }
+
+       if (s_lock_pwd_util.layout) {
+               evas_object_del(s_lock_pwd_util.layout);
+               s_lock_pwd_util.layout = NULL;
+       }
+
+       if (s_lock_pwd_util.conformant) {
+               evas_object_del(s_lock_pwd_util.conformant);
+               s_lock_pwd_util.conformant = NULL;
+       }
+
+       if (s_lock_pwd_util.bg) {
+               system_settings_unset_changed_cb(SYSTEM_SETTINGS_KEY_WALLPAPER_LOCK_SCREEN);
+               evas_object_del(s_lock_pwd_util.bg);
+               s_lock_pwd_util.bg = NULL;
+       }
+
+       if (s_lock_pwd_util.lock_pwd_win) {
+               evas_object_del(s_lock_pwd_util.lock_pwd_win);
+               s_lock_pwd_util.lock_pwd_win = NULL;
+       }
+}
+
+
+
+
+static void _pwd_popup_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       ret_if(!data);
+
+       evas_object_del((Evas_Object *)data);
+}
+
+
+
+void lock_pwd_util_popup_create(char *title, char *text, Evas_Smart_Cb func, double timeout)
+{
+       Evas_Object *popup = NULL;
+       Evas_Object *btn = NULL;
+
+       ret_if(!s_lock_pwd_util.lock_pwd_win);
+
+       popup = elm_popup_add(s_lock_pwd_util.lock_pwd_win);
+       ret_if(!popup);
+
+       elm_popup_orient_set(popup, ELM_POPUP_ORIENT_BOTTOM);
+       evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
+       if (title) {
+               elm_object_part_text_set(popup, "title,text", title);
+       }
+
+       if (text) {
+               elm_object_text_set(popup, text);
+       }
+
+       btn = elm_button_add(popup);
+       goto_if(!btn, ERROR);
+
+       elm_object_style_set(btn, "popup");
+       elm_object_text_set(btn, _("IDS_COM_BUTTON_OK_ABB"));
+       elm_object_part_content_set(popup, "button1", btn);
+
+       if (timeout > 0.0) {
+               elm_popup_timeout_set(popup, timeout);
+       }
+
+       if (func) {
+               evas_object_smart_callback_add(btn, "clicked", func, popup);
+               ea_object_event_callback_add(popup, EA_CALLBACK_BACK, func, popup);
+       } else {
+               evas_object_smart_callback_add(btn, "clicked", _pwd_popup_cb, popup);
+               ea_object_event_callback_add(popup, EA_CALLBACK_BACK, _pwd_popup_cb, popup);
+       }
+
+       evas_object_show(popup);
+
+       return;
+
+ERROR:
+       _E("Failed to create lock popup");
+
+       if (btn) {
+               evas_object_del(btn);
+               btn = NULL;
+       }
+
+       if (popup) {
+               evas_object_del(popup);
+               popup = NULL;
+       }
+
+       return;
+}
+
+
+
+void lock_pwd_util_view_init(void)
+{
+       _D("initialize password lock values");
+       int lock_type = 0;
+
+       if (!lock_mgr_lockscreen_launch()) {
+               _E("Failed to launch lockscreen");
+       }
+
+       /* clear pwd lockscreen */
+       lock_type = status_active_get()->setappl_screen_lock_type_int;
+       if (lock_type == SETTING_SCREEN_LOCK_TYPE_SIMPLE_PASSWORD) {
+               lock_pwd_simple_view_init();
+       } else if (lock_type == SETTING_SCREEN_LOCK_TYPE_PASSWORD) {
+       }
+}
+
+
+
+Evas_Object *lock_pwd_util_win_get(void)
+{
+       return s_lock_pwd_util.lock_pwd_win;
+}
+
+
+
+Eina_Bool lock_pwd_util_win_visible_get(void)
+{
+       retv_if(!s_lock_pwd_util.lock_pwd_win, EINA_FALSE);
+       return evas_object_visible_get(s_lock_pwd_util.lock_pwd_win);
+}
+
+
+
+void lock_pwd_util_win_show(void)
+{
+       ret_if(!s_lock_pwd_util.lock_pwd_win);
+       evas_object_show(s_lock_pwd_util.lock_pwd_win);
+}
+
+
+
+void lock_pwd_util_win_hide(void)
+{
+       ret_if(!s_lock_pwd_util.lock_pwd_win);
+       evas_object_hide(s_lock_pwd_util.lock_pwd_win);
+}
diff --git a/src/mobile/lock_pwd_verification.c b/src/mobile/lock_pwd_verification.c
new file mode 100755 (executable)
index 0000000..df64b1c
--- /dev/null
@@ -0,0 +1,207 @@
+/*
+ * 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 <Elementary.h>
+#include <security-server.h>
+#include <vconf.h>
+#include <vconf-keys.h>
+#include <sys/socket.h>
+#include <sys/un.h>
+
+#include "util.h"
+#include "status.h"
+#include "lock_mgr.h"
+#include "lock_pwd_util.h"
+#include "lock_pwd_verification.h"
+#include "lock_pwd_simple.h"
+
+#define PASSWORD_LENGTH_MIN 4
+#define PASSWORD_LENGTH_MAX 16
+
+typedef enum {
+       NORMAL_PWD = 0,
+       EMPTY_PWD = 1,
+       OVERLENGTH_PWD = 2,
+} lock_pwd_type;
+
+static struct _s_lock_pwd_verification {
+       unsigned int current_attempt;
+       unsigned int remain_attempt;
+       unsigned int max_attempt;
+       unsigned int expire_sec;
+       unsigned int incorrect_count;
+} s_lock_pwd_verification = {
+       .current_attempt = 0,
+       .remain_attempt = 0,
+       .max_attempt = 0,
+       .expire_sec = 0,
+       .incorrect_count = 0,
+};
+
+
+
+int lock_pwd_verification_current_attempt_get(void)
+{
+       return s_lock_pwd_verification.current_attempt;
+}
+
+
+int lock_pwd_verification_remain_attempt_get(void)
+{
+       return s_lock_pwd_verification.remain_attempt;
+}
+
+
+static Eina_Bool _pwd_verification_check_pwd(const char *str)
+{
+       int ret = SECURITY_SERVER_API_ERROR_PASSWORD_MISMATCH;
+       unsigned int current_attempt = 0;
+       unsigned int max_attempt = 0;
+       unsigned int expire_sec = 0;
+
+       ret = security_server_chk_pwd(str, &current_attempt, &max_attempt, &expire_sec);
+       _D("ret(%d), current_attempt(%d), max_attempt(%d), valid_sec(%d)", ret, current_attempt, max_attempt, expire_sec);
+
+       s_lock_pwd_verification.current_attempt = current_attempt;
+       s_lock_pwd_verification.max_attempt = max_attempt;
+       s_lock_pwd_verification.expire_sec = expire_sec;
+
+       switch(ret) {
+       case SECURITY_SERVER_API_SUCCESS:
+       case SECURITY_SERVER_API_ERROR_PASSWORD_EXPIRED:
+               _E("Correct password");
+               return EINA_TRUE;
+       case SECURITY_SERVER_API_ERROR_PASSWORD_RETRY_TIMER:
+               _E("Timer set! : not saved");
+               break;
+       default:
+               _E("Incorrect password");
+               break;
+       }
+
+       return EINA_FALSE;
+}
+
+
+static lock_pwd_type _pwd_verification_check_length(const char *str, int min, int max)
+{
+       int len = 0;
+
+       retv_if(!str, EMPTY_PWD);
+
+       len = strlen(str);
+       retv_if(len == 0, EMPTY_PWD);
+
+       retv_if(len < min || len > max, OVERLENGTH_PWD);
+
+       return NORMAL_PWD;
+}
+
+static void _pwd_values_init(void)
+{
+       s_lock_pwd_verification.current_attempt = 0;
+       s_lock_pwd_verification.remain_attempt = PASSWORD_ATTEMPTS_MAX_NUM;
+       s_lock_pwd_verification.max_attempt = PASSWORD_ATTEMPTS_MAX_NUM;
+       s_lock_pwd_verification.incorrect_count = 0;
+}
+
+lock_pwd_event_e lock_pwd_verification_verify(const char *password)
+{
+       lock_pwd_type pwd_type = NORMAL_PWD;
+
+       retv_if(!password, PWD_EVENT_EMPTY);
+
+       pwd_type = _pwd_verification_check_length(password, PASSWORD_LENGTH_MIN, PASSWORD_LENGTH_MAX);
+       switch(pwd_type) {
+       case NORMAL_PWD:
+               if (_pwd_verification_check_pwd(password)) {
+                       _D("Correct Password");
+                       _pwd_values_init();
+                       return PWD_EVENT_CORRECT;
+               } else {
+                       s_lock_pwd_verification.incorrect_count++;
+                       s_lock_pwd_verification.remain_attempt--;
+                       _D("incorrect_count(%d), remain_attempt(%d)", s_lock_pwd_verification.incorrect_count, s_lock_pwd_verification.remain_attempt);
+
+                       if (s_lock_pwd_verification.remain_attempt == 0) {
+                               _pwd_values_init();
+                               return PWD_EVENT_INPUT_BLOCK;
+                       } else {
+                               return PWD_EVENT_INCORRECT;
+                       }
+               }
+               break;
+       case EMPTY_PWD:
+               return PWD_EVENT_EMPTY;
+               break;
+       case OVERLENGTH_PWD:
+               return PWD_EVENT_OVER;
+               break;
+       }
+
+       return PWD_EVENT_INCORRECT;
+}
+
+void lock_pwd_verification_policy_create(void)
+{
+       int ret = 0;
+       unsigned int current_attempt = 0;
+       unsigned int max_attempt = 0;
+       unsigned int expire_sec = 0;
+
+       ret = security_server_is_pwd_valid(&current_attempt, &max_attempt, &expire_sec);
+       _D("policy status(%d), current_attempt(%d), max_attempt(%d)", ret, current_attempt, max_attempt);
+
+       if (ret == SECURITY_SERVER_API_ERROR_NO_PASSWORD ||
+                       ret == SECURITY_SERVER_API_ERROR_PASSWORD_EXIST) {
+               s_lock_pwd_verification.current_attempt = current_attempt;
+               s_lock_pwd_verification.max_attempt = max_attempt;
+               s_lock_pwd_verification.expire_sec = expire_sec;
+       }
+
+       s_lock_pwd_verification.remain_attempt = PASSWORD_ATTEMPTS_MAX_NUM;
+       s_lock_pwd_verification.incorrect_count = 0;
+
+       return;
+}
+
+void lock_pwd_verification_popup_create(lock_pwd_event_e event)
+{
+       char popup_text[BUF_SIZE_512] = { 0, };
+       int remain_attempt = 0;
+       int current_attempt = 0;
+
+       current_attempt = lock_pwd_verification_current_attempt_get();
+       remain_attempt = lock_pwd_verification_remain_attempt_get();
+       _D("current_attemp(%d), remain_attempt(%d)", current_attempt, remain_attempt);
+
+       switch(event) {
+       case PWD_EVENT_INCORRECT_WARNING:
+               snprintf(popup_text, sizeof(popup_text), _("IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_THE_DEVICE_IS_RESET_TO_FACTORY_MSG"), current_attempt, remain_attempt);
+               lock_pwd_util_popup_create(NULL, popup_text, NULL, 0.0);
+               break;
+       case PWD_EVENT_INPUT_BLOCK:
+               snprintf(popup_text, sizeof(popup_text), _("IDS_LCKSCN_POP_YOU_HAVE_MADE_P1SD_UNSUCCESSFUL_ATTEMPTS_TO_UNLOCK_YOUR_DEVICE_TRY_AGAIN_IN_P2SD_SECONDS"), PASSWORD_ATTEMPTS_MAX_NUM, PASSWORD_BLOCK_SECONDS);
+               lock_pwd_util_popup_create(_("IDS_LCKSCN_HEADER_UNABLE_TO_UNLOCK_SCREEN_ABB"), popup_text, NULL, 15.0);
+               break;
+       case PWD_EVENT_INPUT_BLOCK_WARNING:
+               snprintf(popup_text, sizeof(popup_text), _("IDS_LCKSCN_POP_YOU_HAVE_ATTEMPTED_TO_UNLOCK_THE_DEVICE_INCORRECTLY_P1SD_TIMES_YOU_HAVE_P2SD_ATTEMPTS_LEFT_BEFORE_THE_DEVICE_IS_RESET_TO_FACTORY_MSG"), current_attempt, remain_attempt);
+               lock_pwd_util_popup_create(NULL, popup_text, NULL, 0.0);
+               break;
+       default:
+               break;
+       }
+}
diff --git a/src/mobile/popup.c b/src/mobile/popup.c
new file mode 100644 (file)
index 0000000..46b9e0c
--- /dev/null
@@ -0,0 +1,112 @@
+/*
+ * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "popup.h"
+#include "util.h"
+
+#define POPUP_DATA_KEY_WINDOW "__popup_window__"
+
+static void _popup_destroy(Evas_Object *popup)
+{
+       Evas_Object *win = NULL;
+
+       if (popup) {
+               win = evas_object_data_del(popup, POPUP_DATA_KEY_WINDOW);
+               evas_object_del(popup);
+
+               if (win) {
+                       evas_object_del(win);
+               }
+       }
+}
+
+static Evas_Object *_window_create(void)
+{
+       Evas_Object *win = NULL;
+       int win_w = 0, win_h = 0;
+
+       win = elm_win_add(NULL, "STARTER-POPUP", ELM_WIN_DIALOG_BASIC);
+       retv_if(!win, NULL);
+
+       elm_win_title_set(win, "STARTER-POPUP");
+       elm_win_alpha_set(win, EINA_TRUE);
+       elm_win_borderless_set(win, EINA_TRUE);
+       elm_win_autodel_set(win, EINA_TRUE);
+       elm_win_raise(win);
+
+       elm_win_screen_size_get(win, NULL, NULL, &win_w, &win_h);
+       _D("win size : (%dx%d)", win_w, win_h);
+       evas_object_resize(win, win_w, win_h);
+
+       evas_object_show(win);
+
+       return win;
+}
+
+
+
+static void _popup_btn_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       Evas_Object *popup = (Evas_Object *)data;
+       ret_if(!popup);
+
+       _popup_destroy(popup);
+}
+
+
+
+Evas_Object *popup_create(const char *title, const char *text)
+{
+       Evas_Object *win = NULL;
+       Evas_Object *popup = NULL;
+       Evas_Object *btn = NULL;
+
+       retv_if(!title, NULL);
+       retv_if(!text, NULL);
+
+       win = _window_create();
+       goto_if(!win, ERROR);
+
+       popup = elm_popup_add(win);
+       goto_if(!popup, ERROR);
+
+       elm_popup_orient_set(popup, ELM_POPUP_ORIENT_BOTTOM);
+       evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       elm_object_part_text_set(popup, "title,text", title);
+       elm_object_text_set(popup, text);
+       evas_object_data_set(popup, POPUP_DATA_KEY_WINDOW, win);
+
+       /* ok button */
+       btn = elm_button_add(popup);
+       goto_if(!btn, ERROR);
+
+       elm_object_style_set(btn, "popup");
+       elm_object_text_set(btn, S_("IDS_COM_SK_CONFIRM"));
+       elm_object_part_content_set(popup, "button1", btn);
+       evas_object_smart_callback_add(btn, "clicked", _popup_btn_clicked_cb, popup);
+
+       evas_object_show(popup);
+
+       return popup;
+
+ERROR:
+       _E("Failed to create popup");
+
+       _popup_destroy(popup);
+
+       return NULL;
+}
+
diff --git a/src/mobile/starter.c b/src/mobile/starter.c
new file mode 100644 (file)
index 0000000..7c09b1c
--- /dev/null
@@ -0,0 +1,255 @@
+/*
+ * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <Elementary.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <unistd.h>
+#include <string.h>
+
+#include <aul.h>
+#include <vconf.h>
+#include <signal.h>
+
+#include "starter.h"
+//#include "lock_mgr.h"
+#include "home_mgr.h"
+#include "hw_key.h"
+#include "process_mgr.h"
+#include "util.h"
+#include "status.h"
+
+#define PWLOCK_LITE_PKG_NAME "org.tizen.pwlock-lite"
+
+#define DATA_UNENCRYPTED "unencrypted"
+#define DATA_MOUNTED "mounted"
+#define SD_DATA_ENCRYPTED "encrypted"
+#define SD_CRYPT_META_FILE ".MetaEcfsFile"
+#define MMC_MOUNT_POINT        "/opt/storage/sdcard"
+
+
+
+static void _hide_home(void)
+{
+       vconf_set_int(VCONFKEY_STARTER_SEQUENCE, 0);
+}
+
+
+
+static void _show_home(void)
+{
+       int show_menu = 0;
+
+       if (status_active_get()->starter_sequence || !show_menu) {
+               vconf_set_int(VCONFKEY_STARTER_SEQUENCE, 1);
+       }
+}
+
+
+
+static Eina_Bool _finish_boot_animation(void *data)
+{
+       if (vconf_set_int(VCONFKEY_BOOT_ANIMATION_FINISHED, 1) != 0) {
+               _E("Failed to set boot animation finished set");
+       }
+       _show_home();
+
+       return ECORE_CALLBACK_CANCEL;
+}
+
+
+
+static int _fail_to_launch_pwlock(const char *appid, const char *key, const char *value, void *cfn, void *afn)
+{
+       _finish_boot_animation(NULL);
+       return 0;
+}
+
+
+
+static void _after_launch_pwlock(int pid)
+{
+       process_mgr_set_pwlock_priority(pid);
+       ecore_timer_add(0.5, _finish_boot_animation, NULL);
+}
+
+
+
+static void _signal_handler(int signum, siginfo_t *info, void *unused)
+{
+    _D("_signal_handler : Terminated...");
+    elm_exit();
+}
+
+
+
+static int _power_off_cb(status_active_key_e key, void *data)
+{
+       int val = status_active_get()->sysman_power_off_status;
+
+       if (val == VCONFKEY_SYSMAN_POWER_OFF_DIRECT
+               || val == VCONFKEY_SYSMAN_POWER_OFF_RESTART)
+       {
+           _D("_power_off_cb : Terminated...");
+           elm_exit();
+       }
+
+       return 1;
+}
+
+
+
+#if 0
+static void _data_encryption_cb(keynode_t * node, void *data)
+{
+       char *file = NULL;
+
+       file = vconf_get_str(VCONFKEY_ODE_CRYPTO_STATE);
+       if (!file) {
+               return;
+       }
+
+       _D("get the value : %s",  file);
+       if (!strcmp(file, DATA_MOUNTED)) {
+               lock_mgr_daemon_start();
+               home_mgr_init(NULL);
+       }
+       free(file);
+}
+#endif
+
+
+
+static int _set_i18n(const char *domain, const char *dir)
+{
+       char *r = NULL;
+
+       if (domain == NULL) {
+               errno = EINVAL;
+               return -1;
+       }
+
+       char *lang = vconf_get_str(VCONFKEY_LANGSET);
+       r = setlocale(LC_ALL, lang);
+       if (!r) {
+               _E("setlocale() error");
+       }
+       if (lang) {
+               free(lang);
+       }
+
+       r = bindtextdomain(domain, dir);
+       if (!r) {
+               _E("bindtextdomain() error");
+       }
+
+       r = textdomain(domain);
+       if (!r) {
+               _E("textdomain() error");
+       }
+
+       return 0;
+}
+
+
+
+static void _init(struct appdata *ad)
+{
+       struct sigaction act;
+       char *file = NULL;
+
+       memset(&act,0x00,sizeof(struct sigaction));
+       act.sa_sigaction = _signal_handler;
+       act.sa_flags = SA_SIGINFO;
+
+       int ret = sigemptyset(&act.sa_mask);
+       if (ret < 0) {
+               _E("Failed to sigemptyset[%s]", strerror(errno));
+       }
+       ret = sigaddset(&act.sa_mask, SIGTERM);
+       if (ret < 0) {
+               _E("Failed to sigaddset[%s]", strerror(errno));
+       }
+       ret = sigaction(SIGTERM, &act, NULL);
+       if (ret < 0) {
+               _E("Failed to sigaction[%s]", strerror(errno));
+       }
+
+       _set_i18n(PACKAGE, LOCALEDIR);
+
+       status_register();
+       status_active_register_cb(STATUS_ACTIVE_KEY_SYSMAN_POWER_OFF_STATUS, _power_off_cb, NULL);
+
+       /* Ordering : _hide_home -> process_mgr_must_launch(pwlock) -> _show_home */
+       _hide_home();
+       process_mgr_must_launch(PWLOCK_LITE_PKG_NAME, NULL, NULL, _fail_to_launch_pwlock, _after_launch_pwlock);
+
+#if 0
+       /* Check data encrption */
+       file = vconf_get_str(VCONFKEY_ODE_CRYPTO_STATE);
+       if (file) {
+               _D("get VCONFKEY : %s\n",  file);
+               if (strncmp(DATA_UNENCRYPTED, file, strlen(file))) {
+                       if (vconf_notify_key_changed(VCONFKEY_ODE_CRYPTO_STATE, _data_encryption_cb, NULL) != 0) {
+                               _E("[Error] vconf notify changed is failed: %s", VCONFKEY_ODE_CRYPTO_STATE);
+                       } else {
+                               _D("waiting mount..!!");
+                               free(file);
+                               return;
+                       }
+               }
+               free(file);
+       }
+#endif
+
+       //lock_mgr_daemon_start();
+       hw_key_create_window();
+       home_mgr_init(NULL);
+}
+
+
+
+static void _fini(struct appdata *ad)
+{
+       home_mgr_fini();
+       hw_key_destroy_window();
+       //lock_mgr_daemon_end();
+
+       status_active_unregister_cb(STATUS_ACTIVE_KEY_SYSMAN_POWER_OFF_STATUS, _power_off_cb);
+       status_unregister();
+}
+
+
+
+int main(int argc, char *argv[])
+{
+       struct appdata ad;
+
+       _D("starter is launched..!!");
+
+       elm_init(argc, argv);
+       _init(&ad);
+
+       elm_run();
+
+       _fini(&ad);
+       elm_shutdown();
+
+       return 0;
+}
diff --git a/src/mobile/window_mgr.c b/src/mobile/window_mgr.c
new file mode 100644 (file)
index 0000000..69fe357
--- /dev/null
@@ -0,0 +1,400 @@
+/*
+ * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <Elementary.h>
+#include <Ecore_X.h>
+#include <utilX.h>
+#include <ui-gadget.h>
+#include <vconf.h>
+#include <bundle.h>
+#include <appcore-efl.h>
+#include <app.h>
+
+#include "window_mgr.h"
+#include "util.h"
+#include "lock_pwd_util.h"
+
+#define STR_ATOM_PANEL_SCROLLABLE_STATE         "_E_MOVE_PANEL_SCROLLABLE_STATE"
+
+
+
+struct _lockw_data {
+       Eina_Bool is_registered;
+       Ecore_X_Window lock_x_window;
+
+       Ecore_Event_Handler *h_wincreate;
+       Ecore_Event_Handler *h_winshow;
+       Ecore_Event_Handler *h_winhide;
+};
+
+
+
+static int _is_on_screen(Ecore_X_Display * dpy, Ecore_X_Window window)
+{
+       Ecore_X_Window root;
+       Window child;
+       Window win;
+
+       int rel_x = 0;
+       int rel_y = 0;
+       int abs_x = 0;
+       int abs_y = 0;
+
+       unsigned int width = 0;
+       unsigned int height = 0;
+       unsigned int border = 0;
+       unsigned int depth = 0;
+       unsigned int root_w = 0;
+       unsigned int root_h = 0;
+
+       Eina_Bool ret = FALSE;
+
+       root = ecore_x_window_root_first_get();
+       XGetGeometry(dpy, root, &win, &rel_x, &rel_y, &root_w, &root_h, &border, &depth);
+       _D("root rel_x[%d] rel_y[%d] border[%d] width[%d] height[%d]", rel_x, rel_y, border, root_w, root_h);
+
+       if (XGetGeometry(dpy, window, &win, &rel_x, &rel_y, &width, &height, &border, &depth)) {
+               if (XTranslateCoordinates(dpy, window, root, 0, 0, &abs_x, &abs_y, &child)) {
+                   _D("abs_x[%d] abs_y[%d] border[%d] width[%d] height[%d]", abs_x, abs_y, border, width, height);
+                       if ((abs_x - border) >= root_w
+                               || (abs_y - border) >= root_h
+                           || (width + abs_x) <= 0 || (height + abs_y) <= 0)
+                       {
+                               ret = FALSE;
+                       } else {
+                               ret = (width == root_w) && (height == root_h);
+                       }
+               }
+       }
+
+       return ret;
+}
+
+
+
+static Window _get_user_created_window(Window win)
+{
+       Atom type_ret = 0;
+       int ret, size_ret = 0;
+       unsigned long num_ret = 0, bytes = 0;
+       unsigned char *prop_ret = NULL;
+       unsigned int xid;
+       Atom prop_user_created_win;
+
+       prop_user_created_win = XInternAtom(ecore_x_display_get(), "_E_USER_CREATED_WINDOW", False);
+
+       ret = XGetWindowProperty(ecore_x_display_get()
+                                                       , win, prop_user_created_win
+                                                       , 0L, 1L
+                                                       , False, 0
+                                                       , &type_ret, &size_ret
+                                                       , &num_ret, &bytes
+                                                       , &prop_ret);
+       if (ret != Success) {
+               if (prop_ret)
+                       XFree((void *) prop_ret);
+               return win;
+       } else if (!prop_ret) {
+               return win;
+       }
+
+       memcpy(&xid, prop_ret, sizeof(unsigned int));
+       XFree((void *)prop_ret);
+
+       return xid;
+
+}
+
+
+
+int window_mgr_get_focus_window_pid(void)
+{
+       Ecore_X_Window x_win_focused = 0;
+       int pid = 0;
+       int ret = -1;
+
+       _D("%s, %d", __func__, __LINE__);
+
+       x_win_focused = ecore_x_window_focus_get();
+       ret = ecore_x_netwm_pid_get(x_win_focused, &pid);
+       if(ret != 1) {
+               _E("Can't get pid for focus x window (%x)\n", x_win_focused);
+               return -1;
+       }
+       _D("PID(%d) for focus x window (%x)\n", pid, x_win_focused);
+
+       return pid;
+}
+
+
+
+static void _pwd_transient_set(Ecore_X_Window win, Ecore_X_Window for_win)
+{
+       _W("%p is transient for %p", win, for_win);
+
+       ecore_x_icccm_transient_for_set(win, for_win);
+}
+
+
+
+static void _pwd_transient_unset(Ecore_X_Window xwin)
+{
+       ret_if(!xwin);
+
+       _W("%p is not transient", xwin);
+       ecore_x_icccm_transient_for_unset(xwin);
+}
+
+
+
+Eina_Bool window_mgr_pwd_transient_set(void *data)
+{
+       Evas_Object *pwd_win = NULL;
+       Ecore_X_Window pwd_x_win;
+       lockw_data *lockw = (lockw_data *) data;
+       retv_if(!lockw, EINA_FALSE);
+
+       pwd_win = lock_pwd_util_win_get();
+       retv_if(!pwd_win, EINA_FALSE);
+
+       pwd_x_win = elm_win_xwindow_get(pwd_win);
+       retv_if(!pwd_x_win, EINA_FALSE);
+
+       retv_if(!lockw->lock_x_window, EINA_FALSE);
+
+       /* unset transient */
+       _pwd_transient_unset(lockw->lock_x_window);
+
+       /* set transient */
+       _pwd_transient_set(lockw->lock_x_window, pwd_x_win);
+
+       return EINA_TRUE;
+}
+
+
+
+Eina_Bool window_mgr_set_prop(lockw_data * data, int lock_app_pid, void *event)
+{
+       Ecore_X_Event_Window_Create *e = event;
+       Ecore_X_Window user_window = 0;
+       lockw_data *lockw = (lockw_data *) data;
+       int pid = 0;
+       int ret = 0;
+
+       retv_if(!lockw, EINA_FALSE);
+
+       user_window = _get_user_created_window((Window) (e->win));
+
+       ret = ecore_x_netwm_pid_get(user_window, &pid);
+       retv_if(ret != 1, EINA_FALSE);
+
+       _D("Check PID(%d) window. (lock_app_pid : %d)", pid, lock_app_pid);
+
+       if (lock_app_pid == pid) {
+               if (_is_on_screen(ecore_x_display_get(), user_window) == TRUE) {
+                       lockw->lock_x_window = user_window;
+                       /* window effect : fade in /out */
+                       ecore_x_icccm_name_class_set(user_window, "LOCK_SCREEN", "LOCK_SCREEN");
+                       ecore_x_netwm_window_type_set(user_window, ECORE_X_WINDOW_TYPE_NOTIFICATION);
+                       utilx_set_system_notification_level(ecore_x_display_get(), user_window, UTILX_NOTIFICATION_LEVEL_NORMAL);
+                       utilx_set_window_opaque_state(ecore_x_display_get(), user_window, UTILX_OPAQUE_STATE_ON);
+
+                       /* set transient */
+                       if (!window_mgr_pwd_transient_set(lockw)) {
+                               _E("Failed to set transient");
+                       }
+
+                       return EINA_TRUE;
+               }
+       }
+       return EINA_FALSE;
+}
+
+
+
+Eina_Bool window_mgr_set_effect(lockw_data * data, int lock_app_pid, void *event)
+{
+       Ecore_X_Event_Window_Create *e = event;
+       Ecore_X_Window user_window = 0;
+       int pid = 0;
+       int ret = 0;
+
+       user_window = _get_user_created_window((Window) (e->win));
+       ret = ecore_x_netwm_pid_get(user_window, &pid);
+       retv_if(ret != 1, EINA_FALSE);
+
+       if (lock_app_pid == pid) {
+               if (_is_on_screen(ecore_x_display_get(), user_window) == TRUE) {
+                       Ecore_X_Atom ATOM_WINDOW_EFFECT_ENABLE = 0;
+                       unsigned int effect_state = 0;
+
+                       ATOM_WINDOW_EFFECT_ENABLE = ecore_x_atom_get("_NET_CM_WINDOW_EFFECT_ENABLE");
+                       if (ATOM_WINDOW_EFFECT_ENABLE) {
+                               ecore_x_window_prop_card32_set(user_window, ATOM_WINDOW_EFFECT_ENABLE, &effect_state, 1);
+                       } else {
+                               _E("ecore_x_atom_get() failed");
+                       }
+                       return EINA_TRUE;
+               }
+       }
+       return EINA_FALSE;
+}
+
+
+
+void window_mgr_set_scroll_prop(lockw_data *data, int lock_type)
+{
+       lockw_data *lockw = (lockw_data *) data;
+       Ecore_X_Atom ATOM_PANEL_SCROLLABLE_STATE = 0;
+       unsigned int val[3] = { 0, };
+
+       ret_if(!lockw);
+
+       ATOM_PANEL_SCROLLABLE_STATE = ecore_x_atom_get(STR_ATOM_PANEL_SCROLLABLE_STATE);
+       if (lock_type == SETTING_SCREEN_LOCK_TYPE_SIMPLE_PASSWORD ||
+                       lock_type == SETTING_SCREEN_LOCK_TYPE_PASSWORD) {
+               val[0] = 0; // always enable F
+               val[1] = 0; // quickpanel enable F
+               val[2] = 0; // apptray enable F
+       } else {
+               val[0] = 0; // always enable F
+               val[1] = 1; // quickpanel enable T
+               val[2] = 0; // apptray enable F
+       }
+       ecore_x_window_prop_card32_set(lockw->lock_x_window, ATOM_PANEL_SCROLLABLE_STATE, val, 3);
+}
+
+
+
+void window_mgr_register_event(void *data, lockw_data * lockw,
+                           Eina_Bool (*create_cb) (void *, int, void *),
+                           Eina_Bool (*show_cb) (void *, int, void *),
+                           Eina_Bool (*hide_cb) (void *, int, void *))
+{
+       Ecore_X_Window root_window;
+
+       ret_if(!lockw);
+
+       if (lockw->is_registered) {
+               _E("Already register event cb");
+               return;
+       }
+
+       /* For getting window x event */
+       root_window = ecore_x_window_root_first_get();
+       ecore_x_window_client_sniff(root_window);
+
+       lockw->h_wincreate = ecore_event_handler_add(ECORE_X_EVENT_WINDOW_CREATE, create_cb, data);
+       lockw->h_winshow = ecore_event_handler_add(ECORE_X_EVENT_WINDOW_SHOW, show_cb, data);
+       lockw->h_winhide = ecore_event_handler_add(ECORE_X_EVENT_WINDOW_HIDE, hide_cb, data);
+
+       lockw->is_registered = EINA_TRUE;
+}
+
+
+
+static inline void _unregister_event(lockw_data *lockw)
+{
+       Ecore_X_Window root_window;
+
+       /* unset transient */
+       _pwd_transient_unset(lockw->lock_x_window);
+
+       /* delete getting window x event */
+       root_window = ecore_x_window_root_first_get();
+       ecore_x_window_client_sniff(root_window);
+
+       /* delete window create event handler */
+       if (lockw->h_wincreate) {
+               ecore_event_handler_del(lockw->h_wincreate);
+               lockw->h_wincreate = NULL;
+       }
+       if (lockw->h_winshow) {
+               ecore_event_handler_del(lockw->h_winshow);
+               lockw->h_winshow = NULL;
+       }
+       if (lockw->h_winhide) {
+               ecore_event_handler_del(lockw->h_winhide);
+               lockw->h_winhide = NULL;
+       }
+
+       ecore_x_pointer_ungrab();
+
+       lockw->is_registered = EINA_FALSE;
+}
+
+
+
+void window_mgr_unregister_event(lockw_data *lockw)
+{
+       ret_if(!lockw);
+
+       if (!lockw->is_registered) {
+               _E("event cb is not registered");
+               return;
+       }
+
+       _unregister_event(lockw);
+}
+
+
+
+lockw_data *window_mgr_init(void)
+{
+       lockw_data *lockw = NULL;
+
+       lockw = calloc(1, sizeof(*lockw));
+
+       return lockw;
+}
+
+
+
+void window_mgr_fini(lockw_data *lockw)
+{
+       ret_if(!lockw);
+
+       if (lockw->is_registered) {
+               _unregister_event(lockw);
+       }
+
+       free(lockw);
+}
+
+Evas_Object *window_mgr_pwd_lock_win_create(void)
+{
+       Evas_Object *win = elm_win_add(NULL, "LOCKSCREEN_PWD", ELM_WIN_NOTIFICATION);
+       retv_if(!win, NULL);
+
+       elm_win_alpha_set(win, EINA_TRUE);
+       elm_win_borderless_set(win, EINA_TRUE);
+       elm_win_autodel_set(win, EINA_TRUE);
+       elm_win_role_set(win, "no-dim");
+
+       Ecore_X_Window xwin = elm_win_xwindow_get(win);
+       if (xwin) {
+               ecore_x_netwm_window_type_set(xwin, ECORE_X_WINDOW_TYPE_NOTIFICATION);
+               utilx_set_system_notification_level(ecore_x_display_get(), xwin, UTILX_NOTIFICATION_LEVEL_NORMAL);
+               utilx_set_window_opaque_state(ecore_x_display_get(), xwin, UTILX_OPAQUE_STATE_ON);
+
+               Ecore_X_Atom ATOM_PANEL_SCROLLABLE_STATE = ecore_x_atom_get(STR_ATOM_PANEL_SCROLLABLE_STATE);
+               unsigned int val[3] = { 0, };
+
+               ecore_x_window_prop_card32_set(xwin, ATOM_PANEL_SCROLLABLE_STATE, val, 3);
+       }
+
+       return win;
+}
diff --git a/src/package_mgr.c b/src/package_mgr.c
new file mode 100644 (file)
index 0000000..452887d
--- /dev/null
@@ -0,0 +1,42 @@
+/*
+ * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <vconf.h>
+#include <pkgmgr-info.h>
+
+#include "package_mgr.h"
+#include "util.h"
+
+
+
+bool package_mgr_exist_app(char *appid)
+{
+       int ret = 0;
+       pkgmgrinfo_appinfo_h handle = NULL;
+
+       ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
+       if (PMINFO_R_OK != ret || NULL == handle) {
+               _SECURE_D("%s doesn't exist in this binary", appid);
+               return false;
+       }
+
+       pkgmgrinfo_appinfo_destroy_appinfo(handle);
+
+       return true;
+}
+
+
+
diff --git a/src/pkg_event.c b/src/pkg_event.c
deleted file mode 100755 (executable)
index 46feba9..0000000
+++ /dev/null
@@ -1,301 +0,0 @@
- /*
-  * Copyright 2012  Samsung Electronics Co., Ltd
-  *
-  * Licensed under the Flora License, Version 1.1 (the "License");
-  * you may not use this file except in compliance with the License.
-  * You may obtain a copy of the License at
-  *
-  *     http://floralicense.org/license/
-  *
-  * Unless required by applicable law or agreed to in writing, software
-  * distributed under the License is distributed on an "AS IS" BASIS,
-  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  * See the License for the specific language governing permissions and
-  * limitations under the License.
-  */
-
-
-
-#include <ail.h>
-#include <errno.h>
-#include <Elementary.h>
-#include <Ecore.h>
-#include <Ecore_File.h>
-#include <stdio.h>
-#include <sys/inotify.h>
-#include <sys/stat.h>
-#include <sys/ioctl.h>
-#include <stdbool.h>
-#include <unistd.h>
-#include <vconf.h>
-
-#include "pkg_event.h"
-#include "util.h"
-
-
-#define CONF_FILE "/usr/share/install-info/desktop.conf"
-#define BUFSZE 1024
-
-
-extern int errno;
-struct inotify_path
-{
-       int wd;
-       char *path;
-};
-
-struct desktop_notifier s_desktop_notifier = {
-       .number = 0,
-       .ifd = 0,
-       .handler = NULL,
-};
-
-
-
-struct inotify_path paths[CONF_PATH_NUMBER];
-
-
-static Eina_Bool
-directory_notify(void* data, Ecore_Fd_Handler* fd_handler)
-{
-       char *buf;
-       ssize_t read_size, len, i = 0;
-       int fd;
-
-       fd = ecore_main_fd_handler_fd_get(fd_handler);
-       _D("There are some modification, ifd [%d]", fd);
-       if(fd < 0) {
-               _E("Failed to get fd");
-               return ECORE_CALLBACK_CANCEL;
-       }
-
-       if (ioctl(fd, FIONREAD, &read_size) < 0) {
-               _E("Failed to get q size");
-               return ECORE_CALLBACK_CANCEL;
-       }
-
-       if (read_size <= 0) {
-               _E("Buffer is not ready!!!");
-               return ECORE_CALLBACK_RENEW;
-       }
-
-       buf = malloc(read_size);
-       if (!buf) {
-               _E("Failed to allocate heap for event handling");
-               return ECORE_CALLBACK_RENEW;
-       }
-
-       len = read(fd, buf, read_size);
-       if (len < 0) {
-               free(buf);
-               return ECORE_CALLBACK_CANCEL;
-       }
-       buf[read_size - 1] = '\0';
-
-       while (i < len) {
-               struct inotify_event* event = (struct inotify_event*) &buf[i];
-               char *str_potksed = "potksed.";
-               char *package = NULL;
-               ssize_t idx;
-               int nev_name;
-
-               nev_name = strlen(event->name) - 1;
-               for (idx = 0; nev_name >= 0 && str_potksed[idx]; idx++) {
-                       if (event->name[nev_name] != str_potksed[idx]) {
-                               break;
-                       }
-                       nev_name --;
-               }
-
-               if (str_potksed[idx] != '\0' || nev_name < 0) {
-                       _D("This is not a desktop file : %s", event->name);
-                       i += sizeof(struct inotify_event) + event->len;
-                       continue;
-               }
-
-               package = strdup(event->name);
-               break_if(NULL == package);
-
-               package[nev_name + 1] = '\0';
-               _D("Package : %s", package);
-
-               if (event->mask & IN_CLOSE_WRITE || event->mask & IN_MOVED_TO) {
-                       ail_appinfo_h ai = NULL;
-                       ail_error_e ret;
-
-                       ret = ail_get_appinfo(package, &ai);
-                       if (AIL_ERROR_OK == ret || AIL_ERROR_NO_DATA == ret) {
-                               if (ai) ail_destroy_appinfo(ai);
-
-                               if (AIL_ERROR_NO_DATA == ret) {
-                                       if (ail_desktop_add(package) < 0) {
-                                               _D("Failed to add a new package (%s)", event->name);
-                                       }
-                               } else if (AIL_ERROR_OK == ret) {
-                                       if (ail_desktop_update(package) < 0) {
-                                               _D("Failed to add a new package (%s)", event->name);
-                                       }
-                               }
-                       } else {
-                               _E("Failed to get appinfo");
-                       }
-               } else if (event->mask & IN_DELETE) {
-                       if (ail_desktop_remove(package) < 0) 
-                               _D("Failed to remove a package (%s)", event->name);
-               } else {
-                       _D("this event is not dealt with inotify");
-               }
-
-               free(package);
-
-               i += sizeof(struct inotify_event) + event->len;
-       }
-
-       free(buf);
-       return ECORE_CALLBACK_RENEW;
-}
-
-
-
-static inline char *_ltrim(char *str)
-{
-       retv_if(NULL == str, NULL);
-       while (*str && (*str == ' ' || *str == '\t' || *str == '\n')) str ++;
-       return str;
-}
-
-
-
-static inline int _rtrim(char *str)
-{
-       int len;
-
-       retv_if(NULL == str, 0);
-
-       len = strlen(str);
-       while (--len >= 0 && (str[len] == ' ' || str[len] == '\n' || str[len] == '\t')) {
-               str[len] = '\0';
-       }
-
-       return len;
-}
-
-
-
-static int _retrieve_conf_path(struct inotify_path* paths)
-{
-       char *line = NULL;
-       FILE *fp;
-       size_t size = 0;
-       ssize_t read;
-       int i = 0;
-
-       fp = fopen(CONF_FILE, "r");
-       if (NULL == fp) {
-               _E(CONF_FILE);
-               return -1;
-       }
-
-       while ((read = getline(&line, &size, fp)) != -1 && i < CONF_PATH_NUMBER - 1) {
-               char *begin;
-
-               if (size <= 0) break;
-
-               begin = _ltrim(line);
-               _rtrim(line);
-
-               if (*begin == '#' || *begin == '\0') continue;
-
-               paths[i].path = strdup(begin);
-               i++;
-       }
-
-       if (line) free(line);
-       paths[i].path = NULL;
-       fclose(fp);
-
-       return i;
-}
-
-
-
-static void _unretrieve_conf_path(struct inotify_path* paths, int number)
-{
-       register int i;
-
-       for (i = 0; i < number; i ++) {
-               if (paths[i].path) {
-                       free(paths[i].path);
-                       paths[i].path = NULL;
-               }
-       }
-}
-
-
-
-void pkg_event_init()
-{
-       int wd = 0;
-       int i;
-
-       s_desktop_notifier.ifd = inotify_init();
-       if (s_desktop_notifier.ifd == -1) {
-               _E("inotify_init error: %s", strerror(errno));
-               return;
-       }
-
-       s_desktop_notifier.number = _retrieve_conf_path(paths);
-
-       for (i = 0; i < CONF_PATH_NUMBER && paths[i].path; i++)
-       {
-               _D("Configuration file for desktop file monitoring [%s] is added", paths[i].path);
-               if (access(paths[i].path, R_OK) != 0)
-               {
-                       ecore_file_mkpath(paths[i].path);
-                       if (chmod(paths[i].path, 0777) == -1) {
-                               _E("cannot chmod %s", paths[i].path);
-                       }
-               }
-
-               wd = inotify_add_watch(s_desktop_notifier.ifd, paths[i].path, IN_CLOSE_WRITE | IN_MOVED_TO | IN_DELETE);
-               if (wd == -1) {
-                       _E("inotify_add_watch error: %s", strerror(errno));
-                       close(s_desktop_notifier.ifd);
-                       return;
-               }
-
-               paths[i].wd = wd;
-       }
-
-       s_desktop_notifier.handler = ecore_main_fd_handler_add(s_desktop_notifier.ifd, ECORE_FD_READ, directory_notify, NULL, NULL, NULL);
-       if (!s_desktop_notifier.handler) {
-               _E("cannot add handler for inotify");
-       }
-}
-
-
-
-void pkg_event_fini(void)
-{
-       register int i;
-
-       if (s_desktop_notifier.handler) {
-               ecore_main_fd_handler_del(s_desktop_notifier.handler);
-       }
-
-       for (i = 0; i < CONF_PATH_NUMBER; i ++) {
-               if (paths[i].wd) {
-                       if (inotify_rm_watch(s_desktop_notifier.ifd, paths[i].wd) < 0) {
-                               _E("Error: %s", strerror(errno));
-                       }
-                       paths[i].wd = 0;
-               }
-       }
-
-       _unretrieve_conf_path(paths, s_desktop_notifier.number);
-
-       if (s_desktop_notifier.ifd) {
-               close(s_desktop_notifier.ifd);
-               s_desktop_notifier.ifd = 0;
-       }
-}
diff --git a/src/process_mgr.c b/src/process_mgr.c
new file mode 100644 (file)
index 0000000..820259a
--- /dev/null
@@ -0,0 +1,434 @@
+/*
+ * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <vconf.h>
+#include <aul.h>
+#include <Ecore.h>
+#include <syspopup_caller.h>
+#include <sys/time.h>
+#include <sys/resource.h>
+
+#include "process_mgr.h"
+#include "util.h"
+#include "dbus_util.h"
+
+#define LOCKD_VOICE_CALL_PKG_NAME "org.tizen.call"
+#define LOCKD_VIDEO_CALL_PKG_NAME "org.tizen.vtmain"
+
+#define NICE_VALUE_PWLOCK -5
+#define NICE_VALUE_LOCKSCREEN -20
+
+
+
+typedef struct _launch_info_s {
+       char *appid;
+       char *key;
+       char *value;
+       after_func afn;
+       change_func cfn;
+} launch_info_s;
+
+
+
+static int _try_to_launch(const char *appid, const char *key, const char *value, after_func afn)
+{
+       int pid = -1;
+       bundle *b = NULL;
+
+       retv_if(!appid, -1);
+
+       if (key) {
+               b = bundle_create();
+               bundle_add(b, key, value);
+       }
+
+       pid = aul_launch_app(appid, b);
+       if (b) bundle_free(b);
+       if (pid > 0) {
+               _D("Succeed to launch %s", appid);
+               if (afn) afn(pid);
+       }
+
+       return pid;
+}
+
+
+
+static Eina_Bool _must_launch_cb(void *data)
+{
+       launch_info_s *launch_info = data;
+       int pid;
+
+       retv_if(!launch_info, ECORE_CALLBACK_CANCEL);
+
+       pid = _try_to_launch(launch_info->appid, launch_info->key, launch_info->value, launch_info->afn);
+       if (pid > 0) {
+               goto OUT;
+       }
+
+       retv_if(pid == AUL_R_ECOMM, ECORE_CALLBACK_RENEW);
+       retv_if(pid == AUL_R_ETERMINATING, ECORE_CALLBACK_RENEW);
+       if (pid == AUL_R_ERROR) {
+               if (launch_info->cfn
+                       && 0 == launch_info->cfn(launch_info->appid, launch_info->key, launch_info->value, (void *) launch_info->cfn, (void *) launch_info->afn))
+               {
+                       _D("change func has set the next appid");
+               } else {
+                       _E("change func has returned error");
+               }
+               goto OUT;
+       }
+
+       return ECORE_CALLBACK_RENEW;
+
+OUT:
+       free(launch_info->appid);
+       free(launch_info->key);
+       free(launch_info->value);
+       free(launch_info);
+       return ECORE_CALLBACK_CANCEL;
+}
+
+
+
+void process_mgr_must_launch(const char *appid, const char *key, const char *value, change_func cfn, after_func afn)
+{
+       Ecore_Timer *timer = NULL;
+       launch_info_s *launch_info = NULL;
+       int pid = -1;
+
+       _D("Must launch %s", appid);
+
+       pid = _try_to_launch(appid, key, value, afn);
+       if (pid > 0) return;
+
+       _E("Failed the first try to launch %s", appid);
+
+       launch_info = calloc(1, sizeof(launch_info_s));
+       ret_if(!launch_info);
+
+
+       if (appid) launch_info->appid = strdup(appid);
+       if (key) launch_info->key = strdup(key);
+       if (value) launch_info->value = strdup(value);
+       launch_info->cfn = cfn;
+       launch_info->afn = afn;
+
+       timer = ecore_timer_add(0.1f, _must_launch_cb, launch_info);
+       if (!timer) {
+               _E("cannot add a timer for must_launch");
+               free(launch_info->appid);
+               free(launch_info->key);
+               free(launch_info->value);
+               free(launch_info);
+       }
+}
+
+
+
+static int _try_to_open(const char *appid, after_func afn)
+{
+       int pid = -1;
+
+       retv_if(!appid, -1);
+
+       pid = aul_open_app(appid);
+       if (pid > 0) {
+               _D("Succeed to open %s", appid);
+               if (afn) afn(pid);
+       }
+
+       return pid;
+}
+
+
+
+static Eina_Bool _must_open_cb(void *data)
+{
+       launch_info_s *launch_info = data;
+       int pid;
+
+       retv_if(!launch_info, ECORE_CALLBACK_CANCEL);
+
+       pid = _try_to_open(launch_info->appid, launch_info->afn);
+       if (pid > 0) {
+               goto OUT;
+       }
+
+       retv_if(pid == AUL_R_ECOMM, ECORE_CALLBACK_RENEW);
+       retv_if(pid == AUL_R_ETERMINATING, ECORE_CALLBACK_RENEW);
+       if (pid == AUL_R_ERROR) {
+               if (launch_info->cfn && 0 == launch_info->cfn(launch_info->appid, NULL, NULL, launch_info->cfn, launch_info->afn)) {
+                       _D("change func has set the next appid");
+               } else {
+                       _E("change func has returned error");
+               }
+               goto OUT;
+       }
+
+       return ECORE_CALLBACK_RENEW;
+
+OUT:
+       free(launch_info->appid);
+       free(launch_info);
+       return ECORE_CALLBACK_CANCEL;
+}
+
+
+
+void process_mgr_must_open(const char *appid, change_func cfn, after_func afn)
+{
+       Ecore_Timer *timer = NULL;
+       launch_info_s *launch_info = NULL;
+       int pid = -1;
+
+       _D("Must open %s", appid);
+
+       pid = _try_to_open(appid, afn);
+       if (pid > 0) return;
+
+       _E("Failed the first try to open %s", appid);
+
+       launch_info = calloc(1, sizeof(launch_info_s));
+       ret_if(!launch_info);
+
+       if (appid) launch_info->appid = strdup(appid);
+       launch_info->cfn = cfn;
+       launch_info->afn = afn;
+
+       timer = ecore_timer_add(0.1f, _must_open_cb, launch_info);
+       if (!timer) {
+               _E("cannot add a timer for must_launch");
+               free(launch_info->appid);
+               free(launch_info);
+       }
+}
+
+
+
+static int _try_to_syspopup_launch(const char *appid, const char *key, const char *value, after_func afn)
+{
+       int pid = -1;
+       bundle *b = NULL;
+
+       retv_if(!appid, -1);
+
+       if (key) {
+               b = bundle_create();
+               bundle_add(b, key, value);
+       }
+
+       pid = syspopup_launch((char *) appid, b);
+       if (b) bundle_free(b);
+       if (pid > 0) {
+               _D("Succeed to launch %s", appid);
+               if (afn) afn(pid);
+       }
+
+       return pid;
+}
+
+
+
+static Eina_Bool _must_syspopup_launch_cb(void *data)
+{
+       launch_info_s *launch_info = data;
+       int pid;
+
+       retv_if(!launch_info, ECORE_CALLBACK_CANCEL);
+
+       pid = _try_to_syspopup_launch(launch_info->appid, launch_info->key, launch_info->value, launch_info->afn);
+       if (pid > 0) {
+               goto OUT;
+       }
+
+       retv_if(pid == AUL_R_ECOMM, ECORE_CALLBACK_RENEW);
+       retv_if(pid == AUL_R_ETERMINATING, ECORE_CALLBACK_RENEW);
+       if (pid == AUL_R_ERROR) {
+               if (launch_info->cfn
+                       && 0 == launch_info->cfn(launch_info->appid, launch_info->key, launch_info->value, launch_info->cfn, launch_info->afn)) {
+                       _D("change func has set the next appid");
+               } else {
+                       _E("change func has returned error");
+               }
+               goto OUT;
+       }
+
+       return ECORE_CALLBACK_RENEW;
+
+OUT:
+       free(launch_info->appid);
+       free(launch_info->key);
+       free(launch_info->value);
+       free(launch_info);
+       return ECORE_CALLBACK_CANCEL;
+}
+
+
+
+void process_mgr_must_syspopup_launch(const char *appid, const char *key, const char *value, change_func cfn, after_func afn)
+{
+       Ecore_Timer *timer = NULL;
+       launch_info_s *launch_info = NULL;
+       int pid = -1;
+
+       _D("Must launch %s", appid);
+
+       pid = _try_to_syspopup_launch(appid, key, value, afn);
+       if (pid > 0) return;
+
+       _E("Failed the first try to launch %s", appid);
+
+       launch_info = calloc(1, sizeof(launch_info_s));
+       ret_if(!launch_info);
+
+       if (appid) launch_info->appid = strdup(appid);
+       if (key) launch_info->key = strdup(key);
+       if (value) launch_info->value = strdup(value);
+       launch_info->cfn = cfn;
+       launch_info->afn = afn;
+
+       timer = ecore_timer_add(0.1f, _must_syspopup_launch_cb, launch_info);
+       if (!timer) {
+               _E("cannot add a timer for must_launch");
+               free(launch_info->appid);
+               free(launch_info->key);
+               free(launch_info->value);
+               free(launch_info);
+       }
+}
+
+
+
+static Eina_Bool _set_lock_priority_cb(void *data)
+{
+       int prio;
+
+       prio = getpriority(PRIO_PROCESS, (pid_t)data);
+       if (prio == NICE_VALUE_LOCKSCREEN) {
+               _D("%s (%d: %d)\n", "setpriority Success", (pid_t)data, prio);
+               return ECORE_CALLBACK_CANCEL;
+       }
+
+       if (setpriority(PRIO_PROCESS, (pid_t)data, NICE_VALUE_LOCKSCREEN) < 0 ) {
+               _D("%s\n", strerror(errno));
+               return ECORE_CALLBACK_CANCEL;
+       }
+
+       return ECORE_CALLBACK_RENEW;
+}
+
+
+
+static Eina_Bool _set_pwlock_priority_cb(void *data)
+{
+       int prio;
+
+       prio = getpriority(PRIO_PROCESS, (pid_t)data);
+       if (prio == NICE_VALUE_PWLOCK) {
+               _D("%s (%d: %d)\n", "setpriority Success", (pid_t)data, prio);
+               return ECORE_CALLBACK_CANCEL;
+       }
+
+       if (setpriority(PRIO_PROCESS, (pid_t)data, NICE_VALUE_PWLOCK) < 0 ) {
+               _D("%s\n", strerror(errno));
+               return ECORE_CALLBACK_CANCEL;
+       }
+
+       return ECORE_CALLBACK_RENEW;
+}
+
+
+
+int process_mgr_set_lock_priority(int pid)
+{
+       return !ecore_timer_add(1.0f, _set_lock_priority_cb, (void *)pid);
+}
+
+
+
+int process_mgr_set_pwlock_priority(int pid)
+{
+       return !ecore_timer_add(1.0f, _set_pwlock_priority_cb, (void *)pid);
+}
+
+
+
+void process_mgr_terminate_app(int pid, int state)
+{
+       _D("process_mgr_terminate_app,  state:%d\n", state);
+
+       if (state == 1) {
+               if (pid != 0) {
+                       _D("Terminate Lock app(pid : %d)", pid);
+                       aul_terminate_pid(pid);
+               }
+       }
+}
+
+
+
+extern int aul_kill_pid(int pid);
+void process_mgr_kill_app(int pid)
+{
+       _D ("process_mgr_kill_app [pid:%d]..", pid);
+       aul_kill_pid(pid);
+}
+
+
+
+int process_mgr_validate_app(int pid)
+{
+       char buf[BUF_SIZE_128] = {0, };
+
+       /* Check pid is invalid. */
+       if (aul_app_get_pkgname_bypid(pid, buf, sizeof(buf)) < 0) {
+               _D("no such pkg by pid %d\n", pid);
+       } else {
+               _SECURE_D("appid = %s, pid = %d\n", buf, pid);
+               if (aul_app_is_running(buf) == TRUE) {
+                       _D("%s [pid = %d] is running\n", buf, pid);
+                       return TRUE;
+               } else {
+                       _SECURE_D("[pid = %d] is exist but %s is not running\n", pid, buf);
+               }
+       }
+
+       return FALSE;
+}
+
+
+
+int process_mgr_validate_call(int pid)
+{
+       char buf[BUF_SIZE_128] = {0, };
+
+       /* Check pid is invalid. */
+       if (aul_app_get_pkgname_bypid(pid, buf, sizeof(buf)) < 0) {
+               _D("no such pkg by pid %d", pid);
+       } else {
+               _SECURE_D("appid = %s, pid = %d", buf, pid);
+               if ((!strncmp(buf, LOCKD_VOICE_CALL_PKG_NAME, strlen(buf)))
+                   || (!strncmp(buf, LOCKD_VIDEO_CALL_PKG_NAME, strlen(buf)))) {
+                   return TRUE;
+               }
+       }
+
+       return FALSE;
+}
+
+
+
diff --git a/src/starter.c b/src/starter.c
deleted file mode 100755 (executable)
index f7baec3..0000000
+++ /dev/null
@@ -1,272 +0,0 @@
- /*
-  * Copyright 2012  Samsung Electronics Co., Ltd
-  *
-  * Licensed under the Flora License, Version 1.1 (the "License");
-  * you may not use this file except in compliance with the License.
-  * You may obtain a copy of the License at
-  *
-  *     http://floralicense.org/license/
-  *
-  * Unless required by applicable law or agreed to in writing, software
-  * distributed under the License is distributed on an "AS IS" BASIS,
-  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  * See the License for the specific language governing permissions and
-  * limitations under the License.
-  */
-
-
-
-#include <Elementary.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-#include <unistd.h>
-#include <string.h>
-#include <poll.h>
-
-#include <aul.h>
-#include <vconf.h>
-#include <heynoti.h>
-#include <signal.h>
-#include <system_info.h>
-
-#include "starter.h"
-#include "starter-util.h"
-#include "x11.h"
-#include "lock-daemon.h"
-#include "lockd-debug.h"
-#include "menu_daemon.h"
-
-#ifndef PACKAGE_NAME
-#define PACKAGE_NAME "org.tizen.starter"
-#endif
-
-#define DEFAULT_THEME "tizen"
-#define PWLOCK_PATH "/usr/apps/org.tizen.pwlock/bin/pwlock"
-#define PWLOCK_PKG_NAME "org.tizen.pwlock"
-#define QP_EMUL_STR      "Emulator"
-
-static void lock_menu_screen(void)
-{
-       vconf_set_int(VCONFKEY_STARTER_SEQUENCE, 0);
-}
-
-static void unlock_menu_screen(void)
-{
-       int r;
-       int show_menu;
-
-       show_menu = 0;
-       r = vconf_get_int(VCONFKEY_STARTER_SEQUENCE, &show_menu);
-       if (r || !show_menu) {
-               vconf_set_int(VCONFKEY_STARTER_SEQUENCE, 1);
-       }
-}
-
-static void _set_elm_theme(void)
-{
-       char *vstr;
-       char *theme;
-       Elm_Theme *th = NULL;
-       vstr = vconf_get_str(VCONFKEY_SETAPPL_WIDGET_THEME_STR);
-       if (vstr == NULL)
-               theme = DEFAULT_THEME;
-       else
-               theme = vstr;
-
-       th = elm_theme_new();
-       _DBG("theme vconf[%s]\n set[%s]\n", vstr, theme);
-       elm_theme_set(th, theme);
-
-       if (vstr)
-               free(vstr);
-}
-
-#define SYSTEM_INFO_KEY_MODEL "http://tizen.org/system/model_name"
-static int _check_emul()
-{
-       int is_emul = 0;
-       char *info = NULL;
-
-       if (system_info_get_platform_string(SYSTEM_INFO_KEY_MODEL, &info) == 0) {
-               if (info == NULL) return 0;
-               if (!strncmp(QP_EMUL_STR, info, strlen(info))) {
-                       is_emul = 1;
-               }
-       }
-
-       if (info != NULL) free(info);
-
-       return is_emul;
-}
-
-static int _launch_pwlock(void)
-{
-       int r;
-
-       _DBG("%s", __func__);
-
-       if(_check_emul()) {
-               _DBG("Emulator => skip pwlock");
-               vconf_set_int(VCONFKEY_STARTER_SEQUENCE, 1);
-               return 0;
-       }
-
-       r = aul_launch_app(PWLOCK_PKG_NAME, NULL);
-       if (r < 0) {
-               _ERR("PWLock launch error: error(%d)", r);
-               if (r == AUL_R_ETIMEOUT) {
-                       _DBG("Launch pwlock is failed for AUL_R_ETIMEOUT, again launch pwlock");
-                       r = aul_launch_app(PWLOCK_PKG_NAME, NULL);
-                       if (r < 0) {
-                               _ERR("2'nd PWLock launch error: error(%d)", r);
-                               return -1;
-                       } else {
-                               _DBG("Launch pwlock");
-                               return 0;
-                       }
-               } else {
-                       return -1;
-               }
-       } else {
-               _DBG("Launch pwlock");
-               return 0;
-       }
-}
-
-static void _signal_handler(int signum, siginfo_t *info, void *unused)
-{
-    _DBG("_signal_handler : Terminated...");
-    elm_exit();
-}
-
-static void _heynoti_event_power_off(void *data)
-{
-    _DBG("_heynoti_event_power_off : Terminated...");
-    elm_exit();
-}
-
-static Eina_Bool _init_idle(void *data)
-{
-       _DBG("%s %d\n", __func__, __LINE__);
-       if (_launch_pwlock() < 0) {
-               _ERR("launch pwlock error");
-       }
-       menu_daemon_init(NULL);
-
-       return ECORE_CALLBACK_CANCEL;
-}
-
-static void _lock_state_cb(keynode_t * node, void *data)
-{
-       _DBG("%s %d\n", __func__, __LINE__);
-       WRITE_FILE_LOG("%s", "Lock state is changed!");
-
-       if (_launch_pwlock() < 0) {
-               _ERR("launch pwlock error");
-       }
-       menu_daemon_init(NULL);
-       if (vconf_ignore_key_changed(VCONFKEY_IDLE_LOCK_STATE,
-            _lock_state_cb) != 0) {
-               LOCKD_DBG("Fail to unregister");
-       }
-}
-
-static void _init(struct appdata *ad)
-{
-       int r;
-       struct sigaction act;
-
-       memset(&act,0x00,sizeof(struct sigaction));
-       act.sa_sigaction = _signal_handler;
-       act.sa_flags = SA_SIGINFO;
-
-       int ret = sigemptyset(&act.sa_mask);
-       if (ret < 0) {
-               _ERR("Failed to sigemptyset[%s]", strerror(errno));
-       }
-       ret = sigaddset(&act.sa_mask, SIGTERM);
-       if (ret < 0) {
-               _ERR("Failed to sigaddset[%s]", strerror(errno));
-       }
-       ret = sigaction(SIGTERM, &act, NULL);
-       if (ret < 0) {
-               _ERR("Failed to sigaction[%s]", strerror(errno));
-       }
-
-       memset(ad, 0, sizeof(struct appdata));
-
-       gettimeofday(&ad->tv_start, NULL);
-
-       //lock_menu_screen();
-       _set_elm_theme();
-
-       _DBG("%s %d\n", __func__, __LINE__);
-
-       r = start_lock_daemon(TRUE);
-       if (r == 1) {
-               if (vconf_notify_key_changed(VCONFKEY_IDLE_LOCK_STATE,
-                    _lock_state_cb, NULL) != 0) {
-                       _ERR("[Error] vconf notify : lock state");
-                       ecore_timer_add(1.5, _init_idle, NULL);
-               }
-       } else {
-               if (_launch_pwlock() < 0) {
-                       _ERR("launch pwlock error");
-               }
-               menu_daemon_init(NULL);
-       }
-}
-
-static void _fini(struct appdata *ad)
-{
-       struct timeval tv, res;
-
-       if (ad == NULL) {
-               fprintf(stderr, "Invalid argument: appdata is NULL\n");
-               return;
-       }
-
-       unlock_menu_screen();
-       menu_daemon_fini();
-
-       gettimeofday(&tv, NULL);
-       timersub(&tv, &ad->tv_start, &res);
-       _DBG("Total time: %d.%06d sec\n", (int)res.tv_sec, (int)res.tv_usec);
-}
-
-int main(int argc, char *argv[])
-{
-       struct appdata ad;
-
-       WRITE_FILE_LOG("%s", "Main function is started in starter");
-
-    int heyfd = heynoti_init();
-       if (heyfd < 0) {
-               _ERR("Failed to heynoti_init[%d]", heyfd);
-               return -1;
-       }
-
-       int ret = heynoti_subscribe(heyfd, "power_off_start", _heynoti_event_power_off, NULL);
-       if (ret < 0) {
-               _ERR("Failed to heynoti_subscribe[%d]", ret);
-       }
-       ret = heynoti_attach_handler(heyfd);
-       if (ret < 0) {
-               _ERR("Failed to heynoti_attach_handler[%d]", ret);
-       }
-
-       elm_init(argc, argv);
-
-       _init(&ad);
-
-       elm_run();
-
-       _fini(&ad);
-
-       elm_shutdown();
-
-       return 0;
-}
diff --git a/src/status.c b/src/status.c
new file mode 100644 (file)
index 0000000..f715d52
--- /dev/null
@@ -0,0 +1,573 @@
+/*
+ * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <vconf.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "status.h"
+#include "util.h"
+
+#define VCONFKEY_REMOTE_LOCK_ISLOCKED "db/private/org.tizen.wfmw/is_locked"
+#define VCONFKEY_IDLE_SCREEN_SAFEMODE "memory/idle-screen/safemode"
+
+
+
+typedef struct cb_info {
+       status_active_cb func;
+       void *data;
+} cb_info_s;
+
+
+
+static struct status_active_s s_status_active = {
+       .list = {NULL, },
+       .setappl_selected_package_name = NULL,
+       .setappl_screen_lock_type_int = -1,
+       .langset = NULL,
+       .pm_state = -1,
+       .starter_sequence = -1,
+       .sysman_power_off_status = -1,
+};
+
+
+
+static struct status_passive_s s_status_passive = {
+       .setup_wizard_state = -1,
+       .wms_wakeup_by_gesture_setting = -1,
+       .setup_wizard_first_boot = -1,
+
+       .pm_key_ignore = -1,
+       .call_state = -1,
+       .idle_lock_state = -1,
+       .setappl_password_attempts_left_int = -1,
+       .remote_lock_islocked = -1,
+       .setappl_psmode = -1,
+       .starter_reserved_apps_status = -1,
+       .setappl_sound_lock_bool = -1,
+       .setappl_motion_activation = -1,
+       .setappl_use_pick_up = -1,
+       .setappl_accessibility_lock_time_int = -1,
+       .idle_screen_safemode = -1,
+       .boot_animation_finished = -1,
+       .setappl_ambient_mode_bool = -1,
+
+       .setappl_3rd_lock_pkg_name_str = NULL,
+};
+
+
+
+status_active_h status_active_get(void)
+{
+       return &s_status_active;
+}
+
+
+
+status_passive_h status_passive_get(void)
+{
+       return &s_status_passive;
+}
+
+
+
+int status_active_register_cb(status_active_key_e key, status_active_cb func, void *data)
+{
+       cb_info_s *info = NULL;
+
+       retv_if(key <= STATUS_ACTIVE_KEY_INVALID, -1);
+       retv_if(key >= STATUS_ACTIVE_KEY_MAX, -1);
+       retv_if(!func, -1);
+
+       info = calloc(1, sizeof(cb_info_s));
+       retv_if(!info, -1);
+
+       info->func = func;
+       info->data = data;
+
+       s_status_active.list[key] = eina_list_append(s_status_active.list[key], info);
+
+       return 0;
+}
+
+
+
+int status_active_unregister_cb(status_active_key_e key, status_active_cb func)
+{
+       const Eina_List *l = NULL;
+       const Eina_List *ln = NULL;
+       cb_info_s *info = NULL;
+
+       retv_if(key <= STATUS_ACTIVE_KEY_INVALID, -1);
+       retv_if(key >= STATUS_ACTIVE_KEY_MAX, -1);
+       retv_if(!func, -1);
+
+       EINA_LIST_FOREACH_SAFE(s_status_active.list[key], l, ln, info) {
+               if (func == info->func) {
+                       s_status_active.list[key] = eina_list_remove(s_status_active.list[key], info);
+                       free(info);
+                       return 0;
+               }
+       }
+
+       _W("We cannot unregister the func. Because the list doesn't have it.");
+
+       return 0;
+}
+
+
+
+static void _status_active_change_cb(keynode_t* node, void *data)
+{
+       const char *key_name = NULL;
+       const Eina_List *l = NULL;
+       cb_info_s *info = NULL;
+
+       ret_if(!node);
+
+       key_name = vconf_keynode_get_name(node);
+       ret_if(!key_name);
+
+       if (!strcmp(key_name, VCONFKEY_PM_STATE)) {
+               s_status_active.pm_state = vconf_keynode_get_int(node);
+               EINA_LIST_FOREACH(s_status_active.list[STATUS_ACTIVE_KEY_PM_STATE], l, info) {
+                       continue_if(!info->func);
+                       if (0 == info->func(STATUS_ACTIVE_KEY_PM_STATE, info->data)) break;
+               }
+       } else if (!strcmp(key_name, VCONFKEY_SETAPPL_SELECTED_PACKAGE_NAME)) {
+               char *tmp = vconf_keynode_get_str(node);
+               free(s_status_active.setappl_selected_package_name);
+               if (tmp) s_status_active.setappl_selected_package_name = strdup(tmp);
+               else s_status_active.setappl_selected_package_name = NULL;
+               EINA_LIST_FOREACH(s_status_active.list[STATUS_ACTIVE_KEY_SETAPPL_SELECTED_PACKAGE_NAME], l, info) {
+                       continue_if(!info->func);
+                       if (0 == info->func(STATUS_ACTIVE_KEY_SETAPPL_SELECTED_PACKAGE_NAME, info->data)) break;
+               }
+       } else if (!strcmp(key_name, VCONFKEY_SETAPPL_SCREEN_LOCK_TYPE_INT)) {
+               s_status_active.setappl_screen_lock_type_int = vconf_keynode_get_int(node);
+               EINA_LIST_FOREACH(s_status_active.list[STATUS_ACTIVE_KEY_SETAPPL_SCREEN_LOCK_TYPE_INT], l, info) {
+                       continue_if(!info->func);
+                       if (0 == info->func(STATUS_ACTIVE_KEY_SETAPPL_SCREEN_LOCK_TYPE_INT, info->data)) break;
+               }
+       } else if (!strcmp(key_name, VCONFKEY_STARTER_SEQUENCE)) {
+               s_status_active.starter_sequence = vconf_keynode_get_int(node);
+               EINA_LIST_FOREACH(s_status_active.list[STATUS_ACTIVE_KEY_STARTER_SEQUENCE], l, info) {
+                       continue_if(!info->func);
+                       if (0 == info->func(STATUS_ACTIVE_KEY_STARTER_SEQUENCE, info->data)) break;
+               }
+       } else if (!strcmp(key_name, VCONFKEY_SYSMAN_POWER_OFF_STATUS)) {
+               s_status_active.sysman_power_off_status = vconf_keynode_get_int(node);
+               EINA_LIST_FOREACH(s_status_active.list[STATUS_ACTIVE_KEY_SYSMAN_POWER_OFF_STATUS], l, info) {
+                       continue_if(!info->func);
+                       if (0 == info->func(STATUS_ACTIVE_KEY_SYSMAN_POWER_OFF_STATUS, info->data)) break;
+               }
+       } else if (!strcmp(key_name, VCONFKEY_LANGSET)) {
+               char *tmp = vconf_keynode_get_str(node);
+               free(s_status_active.langset);
+               if (tmp) s_status_active.langset = strdup(tmp);
+               else s_status_active.langset = NULL;
+               EINA_LIST_FOREACH(s_status_active.list[STATUS_ACTIVE_KEY_LANGSET], l, info) {
+                       continue_if(!info->func);
+                       if (0 == info->func(STATUS_ACTIVE_KEY_LANGSET, info->data)) break;
+               }
+#if 0
+       } else if (!strcmp(key_name, )) {
+               s_status_active. = vconf_keynode_get_int(node);
+               EINA_LIST_FOREACH(s_status_active.list[STATUS_ACTIVE_KEY_], l, info) {
+                       continue_if(!info->func);
+                       if (0 == info->func(STATUS_ACTIVE_KEY_, info->data)) break;
+               }
+#endif
+       }
+}
+
+
+
+static void _status_passive_change_cb(keynode_t* node, void *data)
+{
+       char *key_name = NULL;
+
+       ret_if(!node);
+
+       key_name = vconf_keynode_get_name(node);
+       ret_if(!key_name);
+
+#ifdef TIZEN_PROFILE_WEARABLE
+       if (!strcmp(key_name, VCONFKEY_SETUP_WIZARD_STATE)) {
+               s_status_passive.setup_wizard_state = vconf_keynode_get_int(node);
+       } else if (!strcmp(key_name, VCONFKEY_WMS_WAKEUP_BY_GESTURE_SETTING)) {
+               s_status_passive.wms_wakeup_by_gesture_setting = vconf_keynode_get_int(node);
+       } else if (!strcmp(key_name, VCONFKEY_SETUP_WIZARD_FIRST_BOOT)) {
+               s_status_passive.setup_wizard_first_boot = vconf_keynode_get_int(node);
+       } else
+#endif
+       if (!strcmp(key_name, VCONFKEY_PM_KEY_IGNORE)) {
+               s_status_passive.pm_key_ignore = vconf_keynode_get_int(node);
+       } else if (!strcmp(key_name, VCONFKEY_CALL_STATE)) {
+               s_status_passive.call_state = vconf_keynode_get_int(node);
+       } else if (!strcmp(key_name, VCONFKEY_IDLE_LOCK_STATE)) {
+               s_status_passive.idle_lock_state = vconf_keynode_get_int(node);
+       } else if (!strcmp(key_name, VCONFKEY_SETAPPL_PASSWORD_ATTEMPTS_LEFT_INT)) {
+               s_status_passive.setappl_password_attempts_left_int = vconf_keynode_get_int(node);
+       } else if (!strcmp(key_name, VCONFKEY_REMOTE_LOCK_ISLOCKED)) {
+               s_status_passive.remote_lock_islocked = vconf_keynode_get_bool(node);
+       } else if (!strcmp(key_name, VCONFKEY_SETAPPL_PSMODE)) {
+               s_status_passive.setappl_psmode = vconf_keynode_get_int(node);
+       } else if (!strcmp(key_name, VCONFKEY_STARTER_RESERVED_APPS_STATUS)) {
+               s_status_passive.starter_reserved_apps_status = vconf_keynode_get_int(node);
+       } else if (!strcmp(key_name, VCONFKEY_IDLE_SCREEN_SAFEMODE)) {
+               s_status_passive.idle_screen_safemode = vconf_keynode_get_int(node);
+       } else if (!strcmp(key_name, VCONFKEY_BOOT_ANIMATION_FINISHED)) {
+               s_status_passive.boot_animation_finished = vconf_keynode_get_int(node);
+#if 0 //build error
+       } else if (!strcmp(key_name, VCONFKEY_SETAPPL_AMBIENT_MODE_BOOL)) {
+               s_status_passive.setappl_ambient_mode_bool = vconf_keynode_get_int(node);
+#endif
+       } else if (!strcmp(key_name, VCONFKEY_SETAPPL_3RD_LOCK_PKG_NAME_STR)) {
+               char *tmp = vconf_keynode_get_str(node);
+               free(s_status_passive.setappl_3rd_lock_pkg_name_str);
+               if (tmp) s_status_passive.setappl_3rd_lock_pkg_name_str = strdup(tmp);
+               else s_status_passive.setappl_3rd_lock_pkg_name_str = NULL;
+#if 0
+       } else if (!strcmp(key_name, )) {
+               s_status_passive. = vconf_keynode_get_int(node);
+#endif
+       }
+}
+
+
+
+int status_register(void)
+{
+       _W("Register every events for Starter");
+
+       /* Active events */
+       if (vconf_notify_key_changed(VCONFKEY_PM_STATE, _status_active_change_cb, NULL) < 0) {
+               _E("Failed to register add the callback for %s", VCONFKEY_PM_STATE);
+       } else if (vconf_get_int(VCONFKEY_PM_STATE, &s_status_active.pm_state) < 0) {
+               _E("Failed to get vconfkey[%s]", VCONFKEY_PM_STATE);
+               s_status_active.pm_state = -1;
+       }
+
+       if (vconf_notify_key_changed(VCONFKEY_SETAPPL_SELECTED_PACKAGE_NAME, _status_active_change_cb, NULL) < 0) {
+               _E("Failed to register add the callback for %s", VCONFKEY_SETAPPL_SELECTED_PACKAGE_NAME);
+       } else if (!(s_status_active.setappl_selected_package_name = vconf_get_str(VCONFKEY_SETAPPL_SELECTED_PACKAGE_NAME))) {
+               _E("Failed to get vconfkey[%s]", VCONFKEY_SETAPPL_SELECTED_PACKAGE_NAME);
+       }
+
+       if (vconf_notify_key_changed(VCONFKEY_SETAPPL_SCREEN_LOCK_TYPE_INT, _status_active_change_cb, NULL) < 0) {
+               _E("Failed to register add the callback for %s", VCONFKEY_SETAPPL_SCREEN_LOCK_TYPE_INT);
+       } else if (vconf_get_int(VCONFKEY_SETAPPL_SCREEN_LOCK_TYPE_INT, &s_status_active.setappl_screen_lock_type_int) < 0) {
+               _E("Failed to get vconfkey[%s]", VCONFKEY_SETAPPL_SCREEN_LOCK_TYPE_INT);
+               s_status_active.setappl_screen_lock_type_int = -1;
+       }
+
+       if (vconf_notify_key_changed(VCONFKEY_STARTER_SEQUENCE, _status_active_change_cb, NULL) < 0) {
+               _E("Failed to register add the callback for %s", VCONFKEY_STARTER_SEQUENCE);
+       } else if (vconf_get_int(VCONFKEY_STARTER_SEQUENCE, &s_status_active.starter_sequence) < 0) {
+               _E("Failed to get vconfkey[%s]", VCONFKEY_STARTER_SEQUENCE);
+               s_status_active.starter_sequence = -1;
+       }
+
+       if (vconf_notify_key_changed(VCONFKEY_SYSMAN_POWER_OFF_STATUS, _status_active_change_cb, NULL) < 0) {
+               _E("Failed to register add the callback for %s", VCONFKEY_SYSMAN_POWER_OFF_STATUS);
+       } else if (vconf_get_int(VCONFKEY_SYSMAN_POWER_OFF_STATUS, &s_status_active.sysman_power_off_status ) < 0) {
+               _E("Failed to get vconfkey[%s]", VCONFKEY_SYSMAN_POWER_OFF_STATUS);
+               s_status_active.sysman_power_off_status  = -1;
+       }
+
+       if (vconf_notify_key_changed(VCONFKEY_LANGSET, _status_active_change_cb, NULL) < 0) {
+               _E("Failed to register add the callback for %s", VCONFKEY_LANGSET);
+       } else if (!(s_status_active.langset = vconf_get_str(VCONFKEY_LANGSET))) {
+               _E("Failed to get vconfkey[%s]", VCONFKEY_LANGSET);
+       }
+
+#if 0
+       if (vconf_notify_key_changed(, _status_active_change_cb, NULL) < 0) {
+               _E("Failed to register add the callback for %s", );
+       } else if (vconf_get_int(, &s_status_active.) < 0) {
+               _E("Failed to get vconfkey[%s]", );
+               s_status_active. = -1;
+       }
+#endif
+
+       /* Passive events */
+#ifdef TIZEN_PROFILE_WEARABLE
+       if (vconf_notify_key_changed(VCONFKEY_SETUP_WIZARD_STATE, _status_passive_change_cb, NULL) < 0) {
+               _E("Failed to register add the callback for %s", VCONFKEY_SETUP_WIZARD_STATE);
+       } else if (vconf_get_int(VCONFKEY_SETUP_WIZARD_STATE, &s_status_passive.setup_wizard_state) < 0) {
+               _E("Failed to get vconfkey[%s]", VCONFKEY_SETUP_WIZARD_STATE);
+               s_status_passive.setup_wizard_state = -1;
+       }
+
+       if (vconf_notify_key_changed(VCONFKEY_WMS_WAKEUP_BY_GESTURE_SETTING, _status_passive_change_cb, NULL) < 0) {
+               _E("Failed to register add the callback for %s", VCONFKEY_WMS_WAKEUP_BY_GESTURE_SETTING);
+       } else if (vconf_get_int(VCONFKEY_WMS_WAKEUP_BY_GESTURE_SETTING, &s_status_passive.wms_wakeup_by_gesture_setting) < 0) {
+               _E("Failed to get vconfkey[%s]", VCONFKEY_WMS_WAKEUP_BY_GESTURE_SETTING);
+               s_status_passive.wms_wakeup_by_gesture_setting = -1;
+       }
+
+       if (vconf_notify_key_changed(VCONFKEY_SETUP_WIZARD_FIRST_BOOT, _status_passive_change_cb, NULL) < 0) {
+               _E("Failed to register add the callback for %s", VCONFKEY_SETUP_WIZARD_FIRST_BOOT);
+       } else if (vconf_get_int(VCONFKEY_SETUP_WIZARD_FIRST_BOOT, &s_status_passive.setup_wizard_first_boot) < 0) {
+               _E("Failed to get vconfkey[%s]", VCONFKEY_SETUP_WIZARD_FIRST_BOOT);
+               s_status_passive.setup_wizard_first_boot = -1;
+       }
+#endif
+
+       if (vconf_notify_key_changed(VCONFKEY_PM_KEY_IGNORE, _status_passive_change_cb, NULL) < 0) {
+               _E("Failed to register add the callback for %s", VCONFKEY_PM_KEY_IGNORE);
+       } else if (vconf_get_int(VCONFKEY_PM_KEY_IGNORE, &s_status_passive.pm_key_ignore) < 0) {
+               _E("Failed to get vconfkey[%s]", VCONFKEY_PM_KEY_IGNORE);
+               s_status_passive.pm_key_ignore = -1;
+       }
+
+       if (vconf_notify_key_changed(VCONFKEY_CALL_STATE, _status_passive_change_cb, NULL) < 0) {
+               _E("Failed to register add the callback for %s", VCONFKEY_CALL_STATE);
+       } else if (vconf_get_int(VCONFKEY_CALL_STATE, &s_status_passive.call_state) < 0) {
+               _E("Failed to get vconfkey[%s]", VCONFKEY_CALL_STATE);
+               s_status_passive.call_state = -1;
+       }
+
+       if (vconf_notify_key_changed(VCONFKEY_IDLE_LOCK_STATE, _status_passive_change_cb, NULL) < 0) {
+               _E("Failed to regsiter add the callback for %s", VCONFKEY_IDLE_LOCK_STATE);
+       } else if (vconf_get_int(VCONFKEY_IDLE_LOCK_STATE, &s_status_passive.idle_lock_state) < 0) {
+               _E("Failed to get vconfkey[%s]", VCONFKEY_IDLE_LOCK_STATE);
+               s_status_passive.idle_lock_state = -1;
+       }
+
+       if (vconf_notify_key_changed(VCONFKEY_SETAPPL_PASSWORD_ATTEMPTS_LEFT_INT, _status_passive_change_cb, NULL) < 0) {
+               _E("Failed to register add the callback for %s", VCONFKEY_SETAPPL_PASSWORD_ATTEMPTS_LEFT_INT);
+       } else if (vconf_get_int(VCONFKEY_SETAPPL_PASSWORD_ATTEMPTS_LEFT_INT, &s_status_passive.setappl_password_attempts_left_int) < 0) {
+               _E("Failed to get vconfkey[%s]", VCONFKEY_SETAPPL_PASSWORD_ATTEMPTS_LEFT_INT);
+               s_status_passive.setappl_password_attempts_left_int = -1;
+       }
+
+       if (vconf_notify_key_changed(VCONFKEY_REMOTE_LOCK_ISLOCKED, _status_passive_change_cb, NULL) < 0) {
+               _E("Failed to register add the callback for %s", VCONFKEY_REMOTE_LOCK_ISLOCKED);
+       } else if (vconf_get_bool(VCONFKEY_REMOTE_LOCK_ISLOCKED, &s_status_passive.remote_lock_islocked) < 0) {
+               _E("Failed to get vconfkey[%s]", VCONFKEY_REMOTE_LOCK_ISLOCKED);
+               s_status_passive.remote_lock_islocked = -1;
+       }
+
+       if (vconf_notify_key_changed(VCONFKEY_SETAPPL_PSMODE, _status_passive_change_cb, NULL) < 0) {
+               _E("Failed to register add the callback for %s", VCONFKEY_SETAPPL_PSMODE);
+       } else if (vconf_get_int(VCONFKEY_SETAPPL_PSMODE, &s_status_passive.setappl_psmode) < 0) {
+               _E("Failed to get vconfkey[%s]", VCONFKEY_SETAPPL_PSMODE);
+               s_status_passive.setappl_psmode = -1;
+       }
+
+       if (vconf_notify_key_changed(VCONFKEY_STARTER_RESERVED_APPS_STATUS, _status_passive_change_cb, NULL) < 0) {
+               _E("Failed to register add the callback for %s", VCONFKEY_STARTER_RESERVED_APPS_STATUS);
+       } else if (vconf_get_int(VCONFKEY_STARTER_RESERVED_APPS_STATUS, &s_status_passive.starter_reserved_apps_status) < 0) {
+               _E("Failed to get vconfkey[%s]", VCONFKEY_STARTER_RESERVED_APPS_STATUS);
+               s_status_passive.starter_reserved_apps_status = -1;
+       }
+
+       if (vconf_notify_key_changed(VCONFKEY_SETAPPL_SOUND_LOCK_BOOL, _status_passive_change_cb, NULL) < 0) {
+               _E("Failed to register add the callback for %s", VCONFKEY_SETAPPL_SOUND_LOCK_BOOL);
+       } else if (vconf_get_bool(VCONFKEY_SETAPPL_SOUND_LOCK_BOOL, &s_status_passive.setappl_sound_lock_bool) < 0) {
+               _E("Failed to get vconfkey[%s]", VCONFKEY_SETAPPL_SOUND_LOCK_BOOL);
+               s_status_passive.setappl_sound_lock_bool = -1;
+       }
+
+       if (vconf_notify_key_changed(VCONFKEY_SETAPPL_MOTION_ACTIVATION, _status_passive_change_cb, NULL) < 0) {
+               _E("Failed to regitster add the callback for %s", VCONFKEY_SETAPPL_MOTION_ACTIVATION);
+       } else if (vconf_get_bool(VCONFKEY_SETAPPL_MOTION_ACTIVATION, &s_status_passive.setappl_motion_activation) < 0) {
+               _E("Failed to get vconfkey[%s]", VCONFKEY_SETAPPL_MOTION_ACTIVATION);
+               s_status_passive.setappl_motion_activation = -1;
+       }
+
+       if (vconf_notify_key_changed(VCONFKEY_SETAPPL_USE_PICK_UP, _status_passive_change_cb, NULL) < 0) {
+               _E("Failed to regitster add the callback for %s", VCONFKEY_SETAPPL_USE_PICK_UP);
+       } else if (vconf_get_bool(VCONFKEY_SETAPPL_USE_PICK_UP, &s_status_passive.setappl_use_pick_up) < 0) {
+               _E("Failed to get vconfkey[%s]", VCONFKEY_SETAPPL_USE_PICK_UP);
+               s_status_passive.setappl_use_pick_up = -1;
+       }
+
+#if 0 //build error
+       if (vconf_notify_key_changed(VCONFKEY_SETAPPL_ACCESSIBILITY_LOCK_TIME_INT, _status_passive_change_cb, NULL) < 0) {
+               _E("Failed to register add the callback for %s", VCONFKEY_SETAPPL_ACCESSIBILITY_LOCK_TIME_INT);
+       } else if (vconf_get_int(VCONFKEY_SETAPPL_ACCESSIBILITY_LOCK_TIME_INT, &s_status_passive.setappl_accessibility_lock_time_int) < 0) {
+               _E("Failed to get vconfkey[%s]", VCONFKEY_SETAPPL_ACCESSIBILITY_LOCK_TIME_INT);
+               s_status_passive.setappl_accessibility_lock_time_int = -1;
+       }
+#endif
+
+       if (vconf_notify_key_changed(VCONFKEY_IDLE_SCREEN_SAFEMODE, _status_passive_change_cb, NULL) < 0) {
+               _E("Failed to register add the callback for %s", VCONFKEY_IDLE_SCREEN_SAFEMODE);
+       } else if (vconf_get_int(VCONFKEY_IDLE_SCREEN_SAFEMODE, &s_status_passive.idle_screen_safemode ) < 0) {
+               _E("Failed to get vconfkey[%s]", VCONFKEY_IDLE_SCREEN_SAFEMODE);
+               s_status_passive.idle_screen_safemode  = -1;
+       }
+
+       if (vconf_notify_key_changed(VCONFKEY_BOOT_ANIMATION_FINISHED, _status_passive_change_cb, NULL) < 0) {
+               _E("Failed to register add the callback for %s", VCONFKEY_BOOT_ANIMATION_FINISHED);
+       } else if (vconf_get_int(VCONFKEY_BOOT_ANIMATION_FINISHED, &s_status_passive.boot_animation_finished) < 0) {
+               _E("Failed to get vconfkey[%s]", VCONFKEY_BOOT_ANIMATION_FINISHED);
+               s_status_passive.boot_animation_finished = -1;
+       }
+
+#if 0 //build error
+       if (vconf_notify_key_changed(VCONFKEY_SETAPPL_AMBIENT_MODE_BOOL, _status_passive_change_cb, NULL) < 0) {
+               _E("Failed to register add the callback for %s", VCONFKEY_SETAPPL_AMBIENT_MODE_BOOL);
+       } else if (vconf_get_int(VCONFKEY_SETAPPL_AMBIENT_MODE_BOOL, &s_status_passive.setappl_ambient_mode_bool) < 0) {
+               _E("Failed to get vconfkey[%s]", VCONFKEY_SETAPPL_AMBIENT_MODE_BOOL);
+               s_status_passive.boot_animation_finished = -1;
+       }
+#endif
+
+       if (vconf_notify_key_changed(VCONFKEY_SETAPPL_3RD_LOCK_PKG_NAME_STR, _status_passive_change_cb, NULL) < 0) {
+               _E("Failed to register add the callback for %s", VCONFKEY_SETAPPL_3RD_LOCK_PKG_NAME_STR);
+       } else if (!(s_status_passive.setappl_3rd_lock_pkg_name_str = vconf_get_str(VCONFKEY_SETAPPL_3RD_LOCK_PKG_NAME_STR))) {
+               _E("Failed to get vconfkey[%s]", VCONFKEY_SETAPPL_3RD_LOCK_PKG_NAME_STR);
+       }
+
+#if 0
+       if (vconf_notify_key_changed(, _status_passive_change_cb, NULL) < 0) {
+               _E("Failed to register add the callback for %s", );
+       } else if (vconf_get_int(, &s_status_passive.) < 0) {
+               _E("Failed to get vconfkey[%s]", );
+               s_status_passive. = -1;
+       }
+#endif
+
+       return 0;
+}
+
+
+
+void status_unregister(void)
+{
+       /* Active events */
+       if (vconf_ignore_key_changed(VCONFKEY_PM_STATE, _status_active_change_cb) < 0) {
+               _E("Failed to unregister the callback for %s", VCONFKEY_PM_STATE);
+       }
+
+       if (vconf_ignore_key_changed(VCONFKEY_SETAPPL_SELECTED_PACKAGE_NAME, _status_active_change_cb) < 0) {
+               _E("Failed to unregister the callback for %s", VCONFKEY_SETAPPL_SELECTED_PACKAGE_NAME);
+       }
+       free(s_status_active.setappl_selected_package_name);
+
+       if (vconf_ignore_key_changed(VCONFKEY_SETAPPL_SCREEN_LOCK_TYPE_INT, _status_active_change_cb) < 0) {
+               _E("Failed to unregister the callback for %s", VCONFKEY_SETAPPL_SCREEN_LOCK_TYPE_INT);
+       }
+
+       if (vconf_ignore_key_changed(VCONFKEY_STARTER_SEQUENCE, _status_active_change_cb) < 0) {
+               _E("Failed to unregister the callback for %s", VCONFKEY_STARTER_SEQUENCE);
+       }
+
+       if (vconf_ignore_key_changed(VCONFKEY_SYSMAN_POWER_OFF_STATUS, _status_active_change_cb) < 0) {
+               _E("Failed to unregister the callback for %s", VCONFKEY_SYSMAN_POWER_OFF_STATUS);
+       }
+
+       if (vconf_ignore_key_changed(VCONFKEY_LANGSET, _status_active_change_cb) < 0) {
+               _E("Failed to unregister the callback for %s", VCONFKEY_LANGSET);
+       }
+       free(s_status_active.langset);
+
+#if 0
+       if (vconf_ignore_key_changed(, _status_active_change_cb) < 0) {
+               _E("Failed to unregister the callback for %s", );
+       }
+#endif
+
+       /* Passive events */
+#ifdef TIZEN_PROFILE_WEARABLE
+       if (vconf_ignore_key_changed(VCONFKEY_SETUP_WIZARD_STATE, _status_passive_change_cb) < 0) {
+               _E("Failed to unregister the callback for %s", VCONFKEY_SETUP_WIZARD_STATE);
+       }
+
+       if (vconf_ignore_key_changed(VCONFKEY_WMS_WAKEUP_BY_GESTURE_SETTING, _status_passive_change_cb) < 0) {
+               _E("Failed to unregister the callback for %s", VCONFKEY_WMS_WAKEUP_BY_GESTURE_SETTING);
+       }
+
+       if (vconf_ignore_key_changed(VCONFKEY_SETUP_WIZARD_FIRST_BOOT, _status_passive_change_cb) < 0) {
+               _E("Failed to unregister the callback for %s", VCONFKEY_SETUP_WIZARD_FIRST_BOOT);
+       }
+#endif
+
+       if (vconf_ignore_key_changed(VCONFKEY_PM_KEY_IGNORE, _status_passive_change_cb) < 0) {
+               _E("Failed to unregister the callback for %s", VCONFKEY_PM_KEY_IGNORE);
+       }
+
+       if (vconf_ignore_key_changed(VCONFKEY_CALL_STATE, _status_passive_change_cb) < 0) {
+               _E("Failed to unregister the callback for %s", VCONFKEY_CALL_STATE);
+       }
+
+       if (vconf_ignore_key_changed(VCONFKEY_IDLE_LOCK_STATE, _status_passive_change_cb) < 0) {
+               _E("Faield to unregister the callback for %s", VCONFKEY_IDLE_LOCK_STATE);
+       }
+
+       if (vconf_ignore_key_changed(VCONFKEY_SETAPPL_PASSWORD_ATTEMPTS_LEFT_INT, _status_passive_change_cb) < 0) {
+               _E("Failed to unregister the callback for %s", VCONFKEY_SETAPPL_PASSWORD_ATTEMPTS_LEFT_INT);
+       }
+
+       if (vconf_ignore_key_changed(VCONFKEY_REMOTE_LOCK_ISLOCKED, _status_passive_change_cb) < 0) {
+               _E("Failed to unregister the callback for %s", VCONFKEY_REMOTE_LOCK_ISLOCKED);
+       }
+
+       if (vconf_ignore_key_changed(VCONFKEY_SETAPPL_PSMODE, _status_passive_change_cb) < 0) {
+               _E("Failed to unregister the callback for %s", VCONFKEY_SETAPPL_PSMODE);
+       }
+
+       if (vconf_ignore_key_changed(VCONFKEY_STARTER_RESERVED_APPS_STATUS, _status_passive_change_cb) < 0) {
+               _E("Failed to unregister the callback for %s", VCONFKEY_STARTER_RESERVED_APPS_STATUS);
+       }
+
+       if (vconf_ignore_key_changed(VCONFKEY_SETAPPL_SOUND_LOCK_BOOL, _status_passive_change_cb) < 0) {
+               _E("Failed to unregister the callback for %s", VCONFKEY_SETAPPL_SOUND_LOCK_BOOL);
+       }
+
+       if (vconf_ignore_key_changed(VCONFKEY_SETAPPL_MOTION_ACTIVATION, _status_passive_change_cb) < 0) {
+               _E("Failed to unregister the callback for %s", VCONFKEY_SETAPPL_MOTION_ACTIVATION);
+       }
+
+       if (vconf_ignore_key_changed(VCONFKEY_SETAPPL_USE_PICK_UP, _status_passive_change_cb) < 0) {
+               _E("Failed to unregister the callback for %s", VCONFKEY_SETAPPL_USE_PICK_UP);
+       }
+
+#if 0 //build error
+       if (vconf_ignore_key_changed(VCONFKEY_SETAPPL_ACCESSIBILITY_LOCK_TIME_INT, _status_passive_change_cb) < 0) {
+               _E("Failed to unregister the callback for %s", VCONFKEY_SETAPPL_ACCESSIBILITY_LOCK_TIME_INT);
+       }
+#endif
+
+       if (vconf_ignore_key_changed(VCONFKEY_IDLE_SCREEN_SAFEMODE, _status_passive_change_cb) < 0) {
+               _E("Failed to unregister the callback for %s", VCONFKEY_IDLE_SCREEN_SAFEMODE);
+       }
+
+       if (vconf_ignore_key_changed(VCONFKEY_BOOT_ANIMATION_FINISHED, _status_passive_change_cb) < 0) {
+               _E("Failed to unregister the callback for %s", VCONFKEY_BOOT_ANIMATION_FINISHED);
+       }
+
+#if 0 //build error
+       if (vconf_ignore_key_changed(VCONFKEY_SETAPPL_AMBIENT_MODE_BOOL, _status_passive_change_cb) < 0) {
+               _E("Failed to unregister the callback for %s", VCONFKEY_SETAPPL_AMBIENT_MODE_BOOL);
+       }
+#endif
+
+       if (vconf_ignore_key_changed(VCONFKEY_SETAPPL_3RD_LOCK_PKG_NAME_STR, _status_passive_change_cb) < 0) {
+               _E("Failed to unregister ther callback for %s", VCONFKEY_SETAPPL_3RD_LOCK_PKG_NAME_STR);
+       }
+
+#if 0
+       if (vconf_ignore_key_changed(, _status_passive_change_cb) < 0) {
+               _E("Failed to unregister the callback for %s", );
+       }
+#endif
+}
+
diff --git a/src/wearable/clock_mgr.c b/src/wearable/clock_mgr.c
new file mode 100644 (file)
index 0000000..2a0f03a
--- /dev/null
@@ -0,0 +1,171 @@
+/*
+ * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <aul.h>
+#include <Elementary.h>
+#include <vconf.h>
+#include <dd-display.h>
+
+#include "dbus_util.h"
+#include "util.h"
+#include "status.h"
+#include "process_mgr.h"
+
+#define PM_UNLOCK_TIMER_SEC 0.3
+
+
+
+static struct {
+       Eina_List *reserved_apps_list;
+       char *reserved_popup_app_id;
+} s_clock_mgr = {
+       .reserved_apps_list = NULL,
+       .reserved_popup_app_id = NULL,
+};
+
+
+
+static int _check_reserved_popup_status(void)
+{
+       int val = 0;
+       int tmp = 0;
+
+       val = status_passive_get()->starter_reserved_apps_status;
+       tmp = val & 0x10;
+       if(tmp == 0x10){
+               if(aul_app_is_running(s_clock_mgr.reserved_popup_app_id) == 1){
+                       return TRUE;
+               } else{
+                       _E("%s is not running now.", s_clock_mgr.reserved_popup_app_id);
+                       s_clock_mgr.reserved_popup_app_id = NULL;
+                       val = val ^ 0x10;
+                       vconf_set_int(VCONFKEY_STARTER_RESERVED_APPS_STATUS, val);
+                       _W("now reserved apps status %x", val);
+                       return FALSE;
+               }
+       }
+
+       return FALSE;
+}
+
+
+
+static int _check_reserved_apps_status(void)
+{
+       int val = 0;
+
+       val = status_passive_get()->starter_reserved_apps_status;
+       _W("Current reserved apps status : %x", val);
+
+       if(val > 0){
+               return TRUE;
+       }
+
+       return FALSE;
+}
+
+
+
+static Eina_Bool _pm_unlock_timer_cb(void *data){
+       /* PM_SLEEP_MARGIN : If the current status is lcd off, deviced reset timer to 1 second. */
+       display_unlock_state(LCD_OFF, PM_SLEEP_MARGIN);
+       return ECORE_CALLBACK_CANCEL;
+}
+
+
+
+static void _on_lcd_changed_receive(void *data, DBusMessage *msg)
+{
+       int lcd_off = -1;
+       int setup_wizard_state = -1;
+       int count = 0;
+       char *info = NULL;
+       char *lcd_off_source = NULL;
+       Eina_List *l = NULL;
+
+       lcd_off = dbus_message_is_signal(msg, DEVICED_INTERFACE_DISPLAY, MEMBER_LCD_OFF);
+
+       if (lcd_off) {
+               /**
+                * lcd off source
+                * string : 'powerkey' or 'timeout' or 'event' or 'unknown'
+               */
+               lcd_off_source = dbus_util_msg_arg_get_str(msg);
+               ret_if(!lcd_off_source);
+
+               _D("lcd off source : %s", lcd_off_source);
+               free(lcd_off_source);
+
+               if (vconf_get_int(VCONFKEY_SETUP_WIZARD_STATE, &setup_wizard_state) < 0) {
+                       _E("Failed to get [%s]", VCONFKEY_SETUP_WIZARD_STATE);
+               } else {
+                       if (setup_wizard_state == VCONFKEY_SETUP_WIZARD_LOCK) {
+                               _E("starter doesn't react for this case, setup wizard state is [%d]", setup_wizard_state);
+                               return;
+                       }
+               }
+
+               if(_check_reserved_popup_status() > 0){
+                       _W("reserved popup is on top. do nothing");
+                       return;
+               }
+
+               if (_check_reserved_apps_status() <= 0) {
+                       _W("reserved app is not running now.");
+                       return;
+               }
+
+               EINA_LIST_FOREACH(s_clock_mgr.reserved_apps_list, l, info){
+                       if(aul_app_is_running(info) == 1){
+                               // STAY_CUR_STATE : State is not changed directly and phone stay current state until timeout expired.
+                               display_lock_state(LCD_OFF, STAY_CUR_STATE, 0);
+                               process_mgr_must_open(info, NULL, NULL);
+                               ecore_timer_add(PM_UNLOCK_TIMER_SEC, _pm_unlock_timer_cb, NULL);
+                               break;
+                       } else{
+                               _W("%s is not running now", info);
+                               s_clock_mgr.reserved_apps_list = eina_list_remove_list(s_clock_mgr.reserved_apps_list, l);
+                               continue;
+                       }
+               }
+
+               count = eina_list_count(s_clock_mgr.reserved_apps_list);
+               if(count == 0){
+                       _W("there is no reserved app.");
+                       vconf_set_int(VCONFKEY_STARTER_RESERVED_APPS_STATUS, 0);
+               }
+       }
+
+}
+
+
+
+void clock_mgr_init(void)
+{
+       _W("clock_mgr_init");
+
+       dbus_util_receive_lcd_status(_on_lcd_changed_receive, NULL);
+}
+
+
+
+void clock_mgr_fini(void)
+{
+}
+
+
+
+// End of a file
diff --git a/src/wearable/home_mgr.c b/src/wearable/home_mgr.c
new file mode 100644 (file)
index 0000000..7633987
--- /dev/null
@@ -0,0 +1,118 @@
+/*
+ * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <aul.h>
+#include <dd-deviced.h>
+
+#include "util.h"
+#include "process_mgr.h"
+#include "dbus_util.h"
+#include "status.h"
+
+#define W_HOME_PKGNAME "org.tizen.w-home"
+#define W_CLOCK_VIEWER_PKGNAME "org.tizen.w-clock-viewer"
+
+
+static struct {
+       char *home_appid;
+       int home_pid;
+} s_home_mgr = {
+       .home_appid = W_HOME_PKGNAME,
+       .home_pid = -1,
+};
+
+
+
+static void _after_launch_home(int pid)
+{
+       if (-1 == deviced_conf_set_mempolicy_bypid(pid, OOM_IGNORE)) {
+               _E("Cannot set the memory policy for Homescreen(%d)", pid);
+       } else {
+               _E("Set the memory policy for Homescreen(%d)", pid);
+       }
+       s_home_mgr.home_pid = pid;
+}
+
+
+
+void home_mgr_launch_home(void)
+{
+       process_mgr_must_launch(s_home_mgr.home_appid, NULL, NULL, NULL, _after_launch_home);
+}
+
+
+
+void home_mgr_launch_home_first(void)
+{
+       process_mgr_must_launch(s_home_mgr.home_appid, "home_op", "first_boot", NULL, _after_launch_home);
+}
+
+
+
+void home_mgr_launch_home_by_power(void)
+{
+       process_mgr_must_launch(s_home_mgr.home_appid, "home_op", "powerkey", NULL, _after_launch_home);
+}
+
+
+
+static int _dead_cb(int pid, void *data)
+{
+       _D("_dead_cb is called(pid : %d)", pid);
+
+       if (pid == s_home_mgr.home_pid) {
+               _E("Home(%d) is destroyed.", pid);
+               home_mgr_launch_home();
+       }
+
+       return 0;
+}
+
+
+
+static void _on_lcd_changed_receive(void *data, DBusMessage *msg)
+{
+       int lcd_off = dbus_message_is_signal(msg, DEVICED_INTERFACE_DISPLAY, MEMBER_LCD_OFF);
+
+       if (lcd_off) {
+               _D("LCD off");
+
+               int ambient_mode = status_passive_get()->setappl_ambient_mode_bool;
+               _D("ambient mode : %d", ambient_mode);
+               if (ambient_mode) {
+                       process_mgr_must_launch(W_CLOCK_VIEWER_PKGNAME, NULL, NULL, NULL, NULL);
+               }
+       }
+}
+
+
+
+void home_mgr_init(void)
+{
+       aul_listen_app_dead_signal(_dead_cb, NULL);
+
+       /* register lcd changed cb */
+       dbus_util_receive_lcd_status(_on_lcd_changed_receive, NULL);
+}
+
+
+
+void home_mgr_fini(void)
+{
+}
+
+
+
diff --git a/src/wearable/hourly_alert.c b/src/wearable/hourly_alert.c
new file mode 100644 (file)
index 0000000..75e729a
--- /dev/null
@@ -0,0 +1,271 @@
+/*
+ * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <Elementary.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <unistd.h>
+#include <string.h>
+#include <poll.h>
+#include <errno.h>
+#include <string.h>
+
+#include <vconf.h>
+#include <signal.h>
+#include <app.h>
+#include <alarm.h>
+#include <feedback.h>
+
+#include "util.h"
+
+
+
+static struct {
+       alarm_id_t alarm_id;    /* -1 : None, others : set alarm */
+} s_hourly_alert = {
+       .alarm_id = -1,
+};
+
+
+
+static int _alarm_delete_cb(alarm_id_t id, void *user_param)
+{
+       int ret = ALARMMGR_RESULT_SUCCESS;
+
+       ret = alarmmgr_remove_alarm(id);
+       if(ret != ALARMMGR_RESULT_SUCCESS) {
+               _E("alarmmgr_enum_alarm_ids() failed");
+       }
+
+       return 0;
+}
+
+
+
+static void _alarm_unset(void *data)
+{
+       int ret = ALARMMGR_RESULT_SUCCESS;
+
+       if (s_hourly_alert.alarm_id != -1) {
+               _D("try to delete alarm_id(%d)", s_hourly_alert.alarm_id);
+               ret = alarmmgr_remove_alarm(s_hourly_alert.alarm_id);
+               if(ret != ALARMMGR_RESULT_SUCCESS) {
+                       ret = alarmmgr_enum_alarm_ids(_alarm_delete_cb, NULL);
+                       if(ret != ALARMMGR_RESULT_SUCCESS) {
+                               _E("alarmmgr_enum_alarm_ids() failed");
+                       }
+               }
+               s_hourly_alert.alarm_id = -1;
+       }
+}
+
+
+
+static int _alarm_set(void *data)
+{
+       int ret = ALARMMGR_RESULT_SUCCESS;
+       time_t current_time;
+       struct tm current_tm;
+       alarm_entry_t *alarm_info = NULL;
+       alarm_id_t alarm_id;
+       alarm_date_t alarm_time;
+
+       /* delete before registering alarm ids */
+       _alarm_unset(NULL);
+
+       time(&current_time);
+
+       /* alarm revision */
+       current_time += 3600;   // +1 hour
+
+       localtime_r(&current_time, &current_tm);
+
+       alarm_info = alarmmgr_create_alarm();
+       if(alarm_info == NULL) {
+               _E("alarmmgr_create_alarm() is failed\n");
+               return -1;
+       }
+
+       alarm_time.year = current_tm.tm_year;
+       alarm_time.month = current_tm.tm_mon;
+       alarm_time.day = current_tm.tm_mday;
+       alarm_time.hour = current_tm.tm_hour;
+       alarm_time.min = 0;
+       alarm_time.sec = 0;
+
+       //alarmmgr_set_repeat_mode(alarm_info, ALARM_REPEAT_MODE_ONCE, 0);
+       ret = alarmmgr_set_repeat_mode(alarm_info, ALARM_REPEAT_MODE_REPEAT, 60*60);
+       if(ret != ALARMMGR_RESULT_SUCCESS) {
+               _E("alarmmgr_set_repeat_mode() failed");
+               alarmmgr_free_alarm(alarm_info) ;
+               return -1;
+       }
+       alarmmgr_set_time(alarm_info, alarm_time);
+       alarmmgr_set_type(alarm_info, ALARM_TYPE_VOLATILE);
+
+       ret = alarmmgr_add_alarm_with_localtime(alarm_info, NULL, &alarm_id);
+       if(ret != ALARMMGR_RESULT_SUCCESS) {
+               _E("alarmmgr_add_alarm_with_localtime() failed");
+               alarmmgr_free_alarm(alarm_info) ;
+               return -1;
+       }
+
+       s_hourly_alert.alarm_id = alarm_id;
+       alarmmgr_free_alarm(alarm_info);
+
+       return 0;
+}
+
+
+
+static int _alarm_cb(alarm_id_t alarm_id, void *data)
+{
+       _D("hourly_alert alarm callback called");
+
+       feedback_initialize();
+       feedback_play(FEEDBACK_PATTERN_HOURLY_ALERT);
+       feedback_deinitialize();
+
+       return 0;
+}
+
+
+
+static int _alarm_init(void *data)
+{
+       int ret = 0;
+
+       ret = alarmmgr_init("starter");
+       retv_if(ret<0, -1);
+
+       ret = alarmmgr_set_cb(_alarm_cb, NULL);
+       retv_if(ret<0, -1);
+
+       s_hourly_alert.alarm_id = -1;
+
+       return 0;
+}
+
+static void _alarm_fini(void *data)
+{
+       _alarm_unset(NULL);
+       alarmmgr_fini();
+}
+
+
+
+static Eina_Bool _register_hourly_alert_alarm(void)
+{
+       int ret = 0;
+
+       ret = _alarm_init(NULL);
+       retv_if(ret < 0, EINA_FALSE);
+
+       _alarm_set(NULL);
+
+       return EINA_TRUE;
+
+}
+
+
+
+static int _unregister_hourly_alert_alarm(void)
+{
+       _alarm_fini(NULL);
+       return 0;
+}
+
+
+
+static void _hourly_alert_changed_cb(keynode_t* node, void *data)
+{
+       int hourly_alert = -1;
+
+       _D("%s, %d", __func__, __LINE__);
+
+       if (node) {
+               hourly_alert = vconf_keynode_get_bool(node);
+       } else {
+               if (vconf_get_int(VCONFKEY_SETAPPL_HOURLY_ALERT_BOOL, &hourly_alert) < 0) {
+                       _E("Failed to get %s", VCONFKEY_SETAPPL_HOURLY_ALERT_BOOL);
+                       return;
+               }
+       }
+
+       if (hourly_alert == TRUE) {
+               _E("hourly_alert is set");
+               _register_hourly_alert_alarm();
+       } else {
+               _E("hourly_alert is unset");
+               _unregister_hourly_alert_alarm();
+       }
+
+}
+
+
+
+static void _hourly_system_time_changed_cb(keynode_t *node, void *data)
+{
+       _alarm_set(NULL);
+}
+
+
+
+void hourly_alert_init(void)
+{
+       int hourly_alert = -1;
+       int ret = 0;
+
+       ret = vconf_get_bool(VCONFKEY_SETAPPL_HOURLY_ALERT_BOOL, &hourly_alert);
+       if (ret < 0){
+               _E("can't get vconfkey value of [%s], ret=[%d]", VCONFKEY_SETAPPL_HOURLY_ALERT_BOOL, ret);
+               hourly_alert = FALSE;
+       } else if (hourly_alert == TRUE) {
+               _D("[%s] value is [%d], hourly_alert is set..!!", VCONFKEY_SETAPPL_HOURLY_ALERT_BOOL, hourly_alert);
+               if (_register_hourly_alert_alarm() == EINA_FALSE) {
+                       _E("_register_hourly_alert_alarm is failed..!!");
+               }
+       }
+
+       if (vconf_notify_key_changed(VCONFKEY_SETAPPL_HOURLY_ALERT_BOOL, _hourly_alert_changed_cb, NULL) < 0) {
+               _E("Failed to add the callback for %s changed", VCONFKEY_SETAPPL_HOURLY_ALERT_BOOL);
+       }
+       /* for time revision */
+       if (vconf_notify_key_changed(VCONFKEY_SYSTEM_TIME_CHANGED, _hourly_system_time_changed_cb, NULL) < 0) {
+               _E("Failed to add the callback for %s changed", VCONFKEY_SYSTEM_TIME_CHANGED);
+       }
+}
+
+
+
+void hourly_alert_fini(void)
+{
+       _unregister_hourly_alert_alarm();
+
+       if (vconf_ignore_key_changed(VCONFKEY_SETAPPL_HOURLY_ALERT_BOOL, _hourly_alert_changed_cb) < 0) {
+               _E("Failed to ignore the callback for %s changed", VCONFKEY_SETAPPL_HOURLY_ALERT_BOOL);
+       }
+
+       if (vconf_ignore_key_changed(VCONFKEY_SYSTEM_TIME_CHANGED, _hourly_system_time_changed_cb) < 0) {
+               _E("Failed to ignore the callback for %s changed", VCONFKEY_SYSTEM_TIME_CHANGED);
+       }
+}
+
+
+
diff --git a/src/wearable/hw_key.c b/src/wearable/hw_key.c
new file mode 100644 (file)
index 0000000..5bf3bcd
--- /dev/null
@@ -0,0 +1,396 @@
+/*
+ * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <bundle.h>
+#include <Elementary.h>
+//#include <Ecore_X.h>
+#include <Ecore_Input.h>
+//#include <utilX.h>
+
+#include <dd-display.h>
+#include <feedback.h>
+#include <vconf.h>
+
+#include "hw_key.h"
+#include "util.h"
+#include "status.h"
+#include "dbus_util.h"
+#include "home_mgr.h"
+#include "process_mgr.h"
+
+#define GRAB_TWO_FINGERS 2
+#define POWERKEY_TIMER_SEC 0.25
+#define POWERKEY_LCDOFF_TIMER_SEC 0.4
+#define LONG_PRESS_TIMER_SEC 0.7
+
+#define APP_CONTROL_OPERATION_MAIN_KEY "__APP_SVC_OP_TYPE__"
+#define APP_CONTROL_OPERATION_MAIN_VALUE "http://tizen.org/appcontrol/operation/main"
+
+#define USE_DBUS_POWEROFF 1
+#define W_TASKMGR_PKGNAME "org.tizen.w-taskmanager"
+
+
+
+static struct {
+       //Ecore_X_Window win;
+       Ecore_Event_Handler *key_up;
+       Ecore_Event_Handler *key_down;
+       Ecore_Event_Handler *two_fingers_hold_hd;
+       Ecore_Timer *power_long_press_timer;
+       Ecore_Timer *power_release_timer;
+       Eina_Bool is_lcd_on;
+       Eina_Bool is_long_press;
+       int powerkey_count;
+       Eina_Bool is_cancel;
+} key_info = {
+       //.win = 0x0,
+       .key_up = NULL,
+       .key_down = NULL,
+       .two_fingers_hold_hd = NULL,
+       .power_long_press_timer = NULL,
+       .power_release_timer = NULL,
+       .is_lcd_on = EINA_FALSE,
+       .is_long_press = EINA_FALSE,
+       .powerkey_count = 0,
+       .is_cancel = EINA_FALSE,
+};
+
+
+
+static Eina_Bool _powerkey_timer_cb(void *data)
+{
+       _W("%s, powerkey count[%d]", __func__, key_info.powerkey_count);
+
+       key_info.power_release_timer = NULL;
+
+       if (VCONFKEY_SETUP_WIZARD_LOCK == status_passive_get()->setup_wizard_state) {
+               _E("setdup_wizard is running");
+               key_info.powerkey_count = 0;
+               return ECORE_CALLBACK_CANCEL;
+       }
+
+       if (VCONFKEY_PM_KEY_LOCK == status_passive_get()->pm_key_ignore) {
+               _E("Critical Low Batt Clock Mode");
+               key_info.powerkey_count = 0;
+               if(key_info.is_lcd_on) {
+                       _W("just turn off LCD");
+                       display_change_state(LCD_OFF);
+               } else {
+                       _W("just turn on LCD by powerkey.. starter ignore powerkey operation");
+               }
+               return ECORE_CALLBACK_CANCEL;
+       }
+
+       if (key_info.powerkey_count % 2 == 0) {
+               /* double press */
+               _W("powerkey double press");
+               key_info.powerkey_count = 0;
+               return ECORE_CALLBACK_CANCEL;
+       }
+       key_info.powerkey_count = 0;
+
+       if (key_info.is_lcd_on) {
+               if(VCONFKEY_PM_STATE_LCDOFF <= status_active_get()->pm_state) {
+                       _E("Already lcd state was changed while powerkey op. starter ignore powerkey operation");
+                       return ECORE_CALLBACK_CANCEL;
+               }
+       } else {
+               _W("just turn on LCD by powerkey.. starter ignore powerkey operation");
+               return ECORE_CALLBACK_CANCEL;
+       }
+
+       if (VCONFKEY_CALL_VOICE_ACTIVE == status_passive_get()->call_state) {
+               _W("call state is [%d] -> just turn off LCD");
+               display_change_state(LCD_OFF);
+               return ECORE_CALLBACK_CANCEL;
+       }
+
+       if (VCONFKEY_IDLE_LOCK == status_passive_get()->idle_lock_state) {
+               _W("lock state is [%d] -> just turn off LCD");
+               display_change_state(LCD_OFF);
+               return ECORE_CALLBACK_CANCEL;
+       }
+
+       if (0 < status_passive_get()->remote_lock_islocked) {
+               _W("remote lock is on top (%d), -> just turn off LCD", status_passive_get()->remote_lock_islocked);
+               display_change_state(LCD_OFF);
+               return ECORE_CALLBACK_CANCEL;
+       }
+
+       home_mgr_launch_home_by_power();
+
+       return ECORE_CALLBACK_CANCEL;
+}
+
+
+static Eina_Bool _long_press_timer_cb(void* data)
+{
+       key_info.power_long_press_timer = NULL;
+       key_info.is_long_press = EINA_TRUE;
+       key_info.powerkey_count = 0;
+
+       if (0 < status_passive_get()->remote_lock_islocked){
+               _W("remote lock is on top (%d), -> just turn off LCD", status_passive_get()->remote_lock_islocked);
+               return ECORE_CALLBACK_CANCEL;
+       }
+
+       if (key_info.power_release_timer) {
+               ecore_timer_del(key_info.power_release_timer);
+               key_info.power_release_timer = NULL;
+               _D("delete power_release_timer");
+       }
+
+#if USE_DBUS_POWEROFF
+       dbus_util_send_poweroff_signal();
+#else
+       _D("launch power off syspopup");
+       process_mgr_syspopup_launch("poweroff-syspopup", NULL, NULL, NULL, NULL);
+#endif
+
+       feedback_initialize();
+       feedback_play_type(FEEDBACK_TYPE_VIBRATION, FEEDBACK_PATTERN_HOLD);
+       feedback_deinitialize();
+
+       return ECORE_CALLBACK_CANCEL;
+}
+
+
+#if 0
+static Eina_Bool _key_release_cb(void *data, int type, void *event)
+{
+       Evas_Event_Key_Up *ev = event;
+
+       retv_if(!ev, ECORE_CALLBACK_RENEW);
+       retv_if(!ev->keyname, ECORE_CALLBACK_RENEW);
+
+       _D("_key_release_cb : %s Released", ev->keyname);
+
+       if (!strcmp(ev->keyname, KEY_POWER)) {
+               _W("POWER Key is released");
+
+               if(key_info.power_long_press_timer) {
+                       ecore_timer_del(key_info.power_long_press_timer);
+                       key_info.power_long_press_timer = NULL;
+                       _D("delete long press timer");
+               }
+
+               // Check powerkey timer
+               if(key_info.power_release_timer) {
+                       ecore_timer_del(key_info.power_release_timer);
+                       key_info.power_release_timer = NULL;
+                       _D("delete powerkey timer");
+               }
+
+               // Cancel key operation
+               if (EINA_TRUE == key_info.is_cancel) {
+                       _D("Cancel key is activated");
+                       key_info.is_cancel = EINA_FALSE;
+                       key_info.powerkey_count = 0; //initialize powerkey count
+                       return ECORE_CALLBACK_RENEW;
+               }
+
+               // Check long press operation
+               if(key_info.is_long_press) {
+                       _D("ignore power key release by long poress");
+                       key_info.is_long_press = EINA_FALSE;
+                       return ECORE_CALLBACK_RENEW;
+               }
+
+               if(key_info.is_lcd_on) {
+                       key_info.power_release_timer = ecore_timer_add(POWERKEY_TIMER_SEC, _powerkey_timer_cb, NULL);
+               } else {
+                       _D("lcd off --> [%f]sec timer", POWERKEY_LCDOFF_TIMER_SEC);
+                       key_info.power_release_timer = ecore_timer_add(POWERKEY_LCDOFF_TIMER_SEC, _powerkey_timer_cb, NULL);
+               }
+               if (!key_info.power_release_timer) {
+                       _E("Critical, cannot add a timer for powerkey");
+               }
+       } else if (!strcmp(ev->keyname, KEY_CANCEL)) {
+               _D("CANCEL Key is released");
+               key_info.is_cancel = EINA_FALSE;
+       }
+
+       return ECORE_CALLBACK_RENEW;
+}
+#endif
+
+
+
+#if 0
+static Eina_Bool _key_press_cb(void *data, int type, void *event)
+{
+       Evas_Event_Key_Down *ev = event;
+
+       retv_if(!ev, ECORE_CALLBACK_RENEW);
+       retv_if(!ev->keyname, ECORE_CALLBACK_RENEW);
+
+       _D("_key_press_cb : %s Pressed", ev->keyname);
+
+       if (!strcmp(ev->keyname, KEY_POWER)) {
+               _W("POWER Key is pressed");
+
+               /**
+                * lcd status
+                * 1 : lcd normal
+                * 2 : lcd dim
+                * 3 : lcd off
+                * 4 : suspend
+                */
+               if (VCONFKEY_PM_STATE_LCDDIM >= status_active_get()->pm_state) {
+                       key_info.is_lcd_on = EINA_TRUE;
+               } else if (VCONFKEY_PM_STATE_LCDOFF <= status_active_get()->pm_state) {
+                       key_info.is_lcd_on = EINA_FALSE;
+               }
+
+               key_info.powerkey_count++;
+               _W("powerkey count : %d", key_info.powerkey_count);
+
+               if(key_info.power_release_timer) {
+                       ecore_timer_del(key_info.power_release_timer);
+                       key_info.power_release_timer = NULL;
+               }
+
+               if (key_info.power_long_press_timer) {
+                       ecore_timer_del(key_info.power_long_press_timer);
+                       key_info.power_long_press_timer = NULL;
+               }
+
+               key_info.is_long_press = EINA_FALSE;
+               key_info.power_long_press_timer = ecore_timer_add(LONG_PRESS_TIMER_SEC, _long_press_timer_cb, NULL);
+               if(!key_info.power_long_press_timer) {
+                       _E("Failed to add power_long_press_timer");
+               }
+       } else if (!strcmp(ev->keyname, KEY_CANCEL)) {
+               _D("CANCEL key is pressed");
+               key_info.is_cancel = EINA_TRUE;
+       }
+
+       return ECORE_CALLBACK_RENEW;
+}
+#endif
+
+
+
+#if 0
+static Eina_Bool _w_gesture_hold_cb(void *data, int ev_type, void *ev)
+{
+       Ecore_X_Event_Gesture_Notify_Hold *e = ev;
+
+       if (VCONFKEY_PM_KEY_LOCK == status_passive_get()->pm_key_ignore) {
+               _E("Critical Low Batt Clock Mode, ignore gesture");
+               return ECORE_CALLBACK_RENEW;
+       }
+
+       if (SETTING_PSMODE_WEARABLE_ENHANCED == status_passive_get()->setappl_psmode) {
+               _E("UPS Mode, ignore gesture");
+               return ECORE_CALLBACK_RENEW;
+       }
+
+       if(e->num_fingers == GRAB_TWO_FINGERS) {
+               _D("subtype[%d]: hold[%d]\n", e->subtype, e->hold_time);
+               if (e->subtype == ECORE_X_GESTURE_BEGIN) {
+                       _D("Begin : launch task mgr..!!");
+                       dbus_util_send_cpu_booster_signal();
+                       process_mgr_must_launch(W_TASKMGR_PKGNAME, APP_CONTROL_OPERATION_MAIN_KEY, APP_CONTROL_OPERATION_MAIN_VALUE, NULL, NULL);
+               }
+       }
+
+       return ECORE_CALLBACK_RENEW;
+}
+#endif
+
+
+
+void hw_key_create_window(void)
+{
+#if 0 //build error
+       int status = -1;
+       int ret = -1;
+
+       _W("hw_key_create_window");
+
+       key_info.win = ecore_x_window_input_new(0, 0, 0, 1, 1);
+       if (!key_info.win) {
+               _E("Failed to create hidden window");
+               return;
+       }
+       ecore_x_event_mask_unset(key_info.win, ECORE_X_EVENT_MASK_NONE);
+       ecore_x_icccm_title_set(key_info.win, "w_starter,key,receiver");
+       ecore_x_netwm_name_set(key_info.win, "w_starter,key,receiver");
+       ecore_x_netwm_pid_set(key_info.win, getpid());
+
+       ret = utilx_grab_key(ecore_x_display_get(), key_info.win, KEY_POWER, SHARED_GRAB);
+       if (ret != 0) {
+               _E("utilx_grab_key KEY_POWER GrabSHARED_GRAB failed, ret[%d]", ret);
+       }
+
+       key_info.key_up = ecore_event_handler_add(ECORE_EVENT_KEY_UP, _key_release_cb, NULL);
+       if (!key_info.key_up) {
+               _E("Failed to register a key up event handler");
+       }
+
+       key_info.key_down = ecore_event_handler_add(ECORE_EVENT_KEY_DOWN, _key_press_cb, NULL);
+       if (!key_info.key_down) {
+               _E("Failed to register a key down event handler");
+       }
+
+       status = ecore_x_gesture_event_grab(key_info.win, ECORE_X_GESTURE_EVENT_HOLD, GRAB_TWO_FINGERS);
+       _E("ECORE_X_GESTURE_EVENT_HOLD Grab(%d fingers) status[%d]\n", GRAB_TWO_FINGERS, status);
+
+       key_info.two_fingers_hold_hd = ecore_event_handler_add(ECORE_X_EVENT_GESTURE_NOTIFY_HOLD, _w_gesture_hold_cb, NULL);
+       if (!key_info.two_fingers_hold_hd) {
+               _E("Failed to register handler : ECORE_X_EVENT_GESTURE_NOTIFY_TAPNHOLD\n");
+       }
+#endif
+}
+
+
+
+void hw_key_destroy_window(void)
+{
+#if 0 //build error
+       int status;
+
+       if (key_info.two_fingers_hold_hd) {
+               ecore_event_handler_del(key_info.two_fingers_hold_hd);
+               key_info.two_fingers_hold_hd = NULL;
+       }
+
+       status = ecore_x_gesture_event_ungrab(key_info.win, ECORE_X_GESTURE_EVENT_HOLD, GRAB_TWO_FINGERS);
+       if (!status) {
+               _E("ECORE_X_GESTURE_EVENT_HOLD UnGrab(%d fingers) failed, status[%d]\n", GRAB_TWO_FINGERS, status);
+       }
+
+       if (key_info.key_up) {
+               ecore_event_handler_del(key_info.key_up);
+               key_info.key_up = NULL;
+       }
+
+       if (key_info.key_down) {
+               ecore_event_handler_del(key_info.key_down);
+               key_info.key_down = NULL;
+       }
+
+       utilx_ungrab_key(ecore_x_display_get(), key_info.win, KEY_POWER);
+
+       ecore_x_window_delete_request_send(key_info.win);
+       key_info.win = 0x0;
+#endif
+}
+
+
+
+// End of a file
diff --git a/src/wearable/starter.c b/src/wearable/starter.c
new file mode 100644 (file)
index 0000000..6aa6df7
--- /dev/null
@@ -0,0 +1,199 @@
+/*
+ * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <Elementary.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <unistd.h>
+#include <string.h>
+#include <errno.h>
+#include <vconf.h>
+#include <signal.h>
+#include <dd-deviced.h>
+
+#include "hw_key.h"
+#include "util.h"
+#include "hourly_alert.h"
+#include "dbus_util.h"
+#include "clock_mgr.h"
+#include "status.h"
+#include "home_mgr.h"
+#include "process_mgr.h"
+
+#define PWLOCK_PKGNAME                         "org.tizen.b2-pwlock"
+
+int errno;
+
+
+
+
+static struct {
+       int lcd_status;
+} s_starter = {
+       .lcd_status = -1,
+};
+
+
+
+static void _signal_handler(int signum, siginfo_t *info, void *unused)
+{
+    _D("_signal_handler : Terminated...");
+    elm_exit();
+}
+
+
+
+static int _power_off_cb(status_active_key_e key, void *data)
+{
+       int val = status_active_get()->sysman_power_off_status;
+
+       if (val > VCONFKEY_SYSMAN_POWER_OFF_POPUP) {
+               _E("power off status : %d", val);
+           elm_exit();
+       }
+
+       return 1;
+}
+
+
+
+static int _change_language_cb(status_active_key_e key, void *data)
+{
+       _D("%s, %d", __func__, __LINE__);
+
+       if (status_active_get()->langset) {
+               elm_language_set(status_active_get()->langset);
+       }
+
+       return 1;
+}
+
+
+
+static int _change_sequence_cb(status_active_key_e key, void *data)
+{
+       int seq = status_active_get()->starter_sequence;
+
+       if (seq == 1) {
+               home_mgr_launch_home_first();
+       }
+
+       return 1;
+}
+
+
+
+static void _on_lcd_changed_receive(void *data, DBusMessage *msg)
+{
+       int lcd_on = 0;
+       int lcd_off = 0;
+
+       _D("LCD signal is received");
+
+       lcd_on = dbus_message_is_signal(msg, DEVICED_INTERFACE_DISPLAY, MEMBER_LCD_ON);
+       lcd_off = dbus_message_is_signal(msg, DEVICED_INTERFACE_DISPLAY, MEMBER_LCD_OFF);
+
+       if (lcd_on) {
+               _W("LCD on");
+               s_starter.lcd_status = 1;
+       } else if(lcd_off) {
+               _W("LCD off");
+               s_starter.lcd_status = 0;
+       } else {
+               _E("%s dbus_message_is_signal error", DEVICED_INTERFACE_DISPLAY);
+       }
+}
+
+
+
+static void _init(void)
+{
+       struct sigaction act;
+
+       memset(&act,0x00,sizeof(struct sigaction));
+       act.sa_sigaction = _signal_handler;
+       act.sa_flags = SA_SIGINFO;
+
+       int ret = sigemptyset(&act.sa_mask);
+       if (ret < 0) {
+               _E("Failed to sigemptyset[%s]", strerror(errno));
+       }
+       ret = sigaddset(&act.sa_mask, SIGTERM);
+       if (ret < 0) {
+               _E("Failed to sigaddset[%s]", strerror(errno));
+       }
+       ret = sigaction(SIGTERM, &act, NULL);
+       if (ret < 0) {
+               _E("Failed to sigaction[%s]", strerror(errno));
+       }
+
+       status_register();
+       status_active_register_cb(STATUS_ACTIVE_KEY_SYSMAN_POWER_OFF_STATUS, _power_off_cb, NULL);
+       status_active_register_cb(STATUS_ACTIVE_KEY_LANGSET, _change_language_cb, NULL);
+
+       if (0 < status_passive_get()->setup_wizard_first_boot) {
+               /* First boot : pwlock > set sequence > home */
+               process_mgr_must_launch(PWLOCK_PKGNAME, NULL, NULL, NULL, NULL);
+               vconf_set_int(VCONFKEY_STARTER_SEQUENCE, 0);
+               status_active_register_cb(STATUS_ACTIVE_KEY_STARTER_SEQUENCE, _change_sequence_cb, NULL);
+       } else {
+               /* Other : Home > pwlock */
+               home_mgr_launch_home();
+               process_mgr_must_launch(PWLOCK_PKGNAME, NULL, NULL, NULL, NULL);
+       }
+
+       dbus_util_receive_lcd_status(_on_lcd_changed_receive, NULL);
+
+       home_mgr_init();
+       clock_mgr_init();
+       hourly_alert_init();
+       hw_key_create_window();
+}
+
+
+
+static void _fini(void)
+{
+       hw_key_destroy_window();
+       hourly_alert_fini();
+       clock_mgr_fini();
+       home_mgr_fini();
+
+       status_active_unregister_cb(STATUS_ACTIVE_KEY_SYSMAN_POWER_OFF_STATUS, _power_off_cb);
+       status_active_unregister_cb(STATUS_ACTIVE_KEY_LANGSET, _change_language_cb);
+       status_active_unregister_cb(STATUS_ACTIVE_KEY_STARTER_SEQUENCE, _change_sequence_cb);
+       status_unregister();
+}
+
+
+
+int main(int argc, char *argv[])
+{
+       _D("starter is launched..!!");
+
+       elm_init(argc, argv);
+       _init();
+
+       elm_run();
+
+       _fini();
+       elm_shutdown();
+
+       return 0;
+}
diff --git a/src/x11.c b/src/x11.c
deleted file mode 100644 (file)
index feb358b..0000000
--- a/src/x11.c
+++ /dev/null
@@ -1,119 +0,0 @@
- /*
-  * Copyright 2012  Samsung Electronics Co., Ltd
-  *
-  * Licensed under the Flora License, Version 1.1 (the "License");
-  * you may not use this file except in compliance with the License.
-  * You may obtain a copy of the License at
-  *
-  *     http://floralicense.org/license/
-  *
-  * Unless required by applicable law or agreed to in writing, software
-  * distributed under the License is distributed on an "AS IS" BASIS,
-  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  * See the License for the specific language governing permissions and
-  * limitations under the License.
-  */
-
-
-
-#include <string.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-#ifndef WAYLAND
-#include <X11/Xlib.h>
-#include <X11/Xatom.h>
-#include <X11/Xutil.h>
-#endif
-
-#define DEFAULT_WINDOW_H 1280
-
-void prop_string_set(const char *name, const char *value)
-{
-#ifndef WAYLAND
-       Display *d;
-       Atom a_name;
-       Atom a_UTF8;
-       XTextProperty xtp;
-
-       if (name == NULL || value == NULL || value[0] == '\0')
-               return;
-
-       d = XOpenDisplay(NULL);
-       if (d == NULL)
-               return;
-
-       a_name = XInternAtom(d, name, False);
-       if (a_name == None)
-               goto exit;
-
-       a_UTF8 = XInternAtom(d, "UTF8_STRING", False);
-       if (a_UTF8 == None)
-               goto exit;
-
-       xtp.value = (unsigned char *)value;
-       xtp.format = 8;
-       xtp.encoding = a_UTF8;
-       xtp.nitems = strlen(value);
-
-       XSetTextProperty(d, DefaultRootWindow(d), &xtp, a_name);
-
- exit:
-       XCloseDisplay(d);
-#endif
-}
-
-void prop_int_set(const char *name, unsigned int val)
-{
-#ifndef WAYLAND
-       Display *d;
-       Atom a_name;
-
-       if (name == NULL)
-               return;
-
-       d = XOpenDisplay(NULL);
-       if (d == NULL)
-               return;
-
-       a_name = XInternAtom(d, name, False);
-       if (a_name == None)
-               goto exit;
-
-       XChangeProperty(d, DefaultRootWindow(d), a_name, XA_CARDINAL, 32,
-                       PropModeReplace, (unsigned char *)&val, 1);
-
- exit:
-       XCloseDisplay(d);
-#endif
-}
-
-void set_window_scale(void)
-{
-#ifndef WAYLAND
-       double root_width = 0.0, root_height = 0.0;
-       char buf[128] = { 0, };
-       Display *disp;
-       int screen_num;
-
-       disp = XOpenDisplay(NULL);
-       if (disp == NULL)
-               return;
-
-       screen_num = DefaultScreen(disp);
-
-       root_width = DisplayWidth(disp, screen_num);
-       root_height = DisplayHeight(disp, screen_num);
-
-       XCloseDisplay(disp);
-
-       snprintf(buf, sizeof(buf), "%lf", root_height / DEFAULT_WINDOW_H);
-
-       if (root_width == 800 && root_height == 1280) {
-               snprintf(buf, sizeof(buf), "0.71");
-       }
-
-       setenv("ELM_SCALE", buf, 1);
-       setenv("SCALE_FACTOR", buf, 1);
-#endif
-}
diff --git a/src/xmonitor.c b/src/xmonitor.c
deleted file mode 100755 (executable)
index 49ea19e..0000000
+++ /dev/null
@@ -1,314 +0,0 @@
- /*
-  * Copyright 2012  Samsung Electronics Co., Ltd
-  *
-  * Licensed under the Flora License, Version 1.1 (the "License");
-  * you may not use this file except in compliance with the License.
-  * You may obtain a copy of the License at
-  *
-  *     http://floralicense.org/license/
-  *
-  * Unless required by applicable law or agreed to in writing, software
-  * distributed under the License is distributed on an "AS IS" BASIS,
-  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  * See the License for the specific language governing permissions and
-  * limitations under the License.
-  */
-
-
-
-#include <ail.h>
-#include <aul.h>
-#include <dlog.h>
-#include <Ecore.h>
-
-#ifndef WAYLAND
-#include <Ecore_X.h>
-#endif
-
-#include <Evas.h>
-#include <errno.h>
-#include <stdbool.h>
-#include <stdio.h>
-#include <sys/shm.h>
-#include <vconf.h>
-
-#include "menu_daemon.h"
-#include "util.h"
-#include "starter-util.h"
-#include "xmonitor.h"
-
-
-
-static struct info {
-       Ecore_Event_Handler *create_handler;
-       Ecore_Event_Handler *destroy_handler;
-       Ecore_Event_Handler *focus_in_handler;
-       Ecore_Event_Handler *focus_out_handler;
-       int is_top;
-} xmonitor_info = {
-       .create_handler = NULL,
-       .destroy_handler = NULL,
-       .focus_in_handler = NULL,
-       .focus_out_handler = NULL,
-       .is_top = VCONFKEY_IDLE_SCREEN_TOP_FALSE,
-};
-
-
-
-int errno;
-
-
-#ifndef WAYLAND
-static inline int _get_pid(Ecore_X_Window win)
-{
-       int pid;
-       Ecore_X_Atom atom;
-       unsigned char *in_pid = NULL;
-       int num;
-
-       atom = ecore_x_atom_get("X_CLIENT_PID");
-       if (ecore_x_window_prop_property_get(win, atom, ECORE_X_ATOM_CARDINAL,
-                               sizeof(int), &in_pid, &num) == EINA_FALSE) {
-               if(in_pid != NULL) {
-                       free(in_pid);
-                       in_pid = NULL;
-               }
-               if (ecore_x_netwm_pid_get(win, &pid) == EINA_FALSE) {
-                       _E("Failed to get PID from a window 0x%X", win);
-                       return -EINVAL;
-               }
-       } else {
-               pid = *(int *)in_pid;
-               free(in_pid);
-       }
-
-       return pid;
-}
-#endif
-
-
-bool _set_idlescreen_top(void)
-{
-#ifndef WAYLAND
-       Ecore_X_Window win;
-
-       int is_top;
-       int ret;
-       int focused_pid;
-
-       win = ecore_x_window_focus_get();
-       focused_pid = _get_pid(win);
-       retv_if(focused_pid <= 0, false);
-
-       is_top = menu_daemon_is_homescreen(focused_pid)?
-                       VCONFKEY_IDLE_SCREEN_TOP_TRUE : VCONFKEY_IDLE_SCREEN_TOP_FALSE;
-
-       if (is_top != xmonitor_info.is_top) {
-               ret = vconf_set_int(VCONFKEY_IDLE_SCREEN_TOP, is_top);
-               retv_if(0 != ret, false);
-               xmonitor_info.is_top = is_top;
-               _D("set the key of idlescreen_is_top as %d", is_top);
-       }
-#endif
-
-       return true;
-}
-
-
-
-static Eina_Bool _create_cb(void *data, int type, void *event)
-{
-#ifndef WAYLAND
-       Ecore_X_Event_Window_Create *info = event;
-
-       _D("Create a window[%x]", info->win);
-
-       ecore_x_window_client_sniff(info->win);
-#endif
-
-       return ECORE_CALLBACK_PASS_ON;
-}
-
-
-
-static Eina_Bool _destroy_cb(void *data, int type, void *event)
-{
-       return ECORE_CALLBACK_PASS_ON;
-}
-
-
-
-static Eina_Bool _focus_in_cb(void *data, int type, void *event)
-{
-#ifndef WAYLAND
-       Ecore_X_Event_Window_Focus_In *info = event;
-
-       _D("Focus in a window[%x]", info->win);
-
-       retv_if(false == _set_idlescreen_top(), ECORE_CALLBACK_PASS_ON);
-#endif
-
-       return ECORE_CALLBACK_PASS_ON;
-}
-
-
-
-static Eina_Bool _focus_out_cb(void *data, int type, void *event)
-{
-#ifndef WAYLAND
-       Ecore_X_Event_Window_Focus_Out *info = event;
-
-       _D("Focus out a window[%x]", info->win);
-#endif
-
-       return ECORE_CALLBACK_PASS_ON;
-}
-
-
-
-static inline void _sniff_all_windows(void)
-{
-#ifndef WAYLAND
-       Ecore_X_Window root;
-       Ecore_X_Window ret;
-       struct stack_item *new_item;
-       struct stack_item *item;
-       Eina_List *win_stack = NULL;
-       struct stack_item {
-               Ecore_X_Window *wins;
-               int nr_of_wins;
-               int i;
-       };
-
-       root = ecore_x_window_root_first_get();
-       ecore_x_window_sniff(root);
-
-       new_item = malloc(sizeof(*new_item));
-       if (!new_item) {
-               _E("Error(%s)\n", strerror(errno));
-               return;
-       }
-
-       new_item->nr_of_wins = 0;
-       new_item->wins =
-               ecore_x_window_children_get(root, &new_item->nr_of_wins);
-       new_item->i = 0;
-
-       if (new_item->wins)
-               win_stack = eina_list_append(win_stack, new_item);
-       else
-               free(new_item);
-
-       while ((item = eina_list_nth(win_stack, 0))) {
-               win_stack = eina_list_remove(win_stack, item);
-
-               if (!item->wins) {
-                       free(item);
-                       continue;
-               }
-
-               while (item->i < item->nr_of_wins) {
-                       ret = item->wins[item->i];
-
-                       ecore_x_window_client_sniff(ret);
-
-                       new_item = malloc(sizeof(*new_item));
-                       if (!new_item) {
-                               _E("Error %s\n", strerror(errno));
-                               item->i++;
-                               continue;
-                       }
-
-                       new_item->i = 0;
-                       new_item->nr_of_wins = 0;
-                       new_item->wins =
-                               ecore_x_window_children_get(ret,
-                                                       &new_item->nr_of_wins);
-                       if (new_item->wins) {
-                               win_stack =
-                                       eina_list_append(win_stack, new_item);
-                       } else {
-                               free(new_item);
-                       }
-
-                       item->i++;
-               }
-
-               free(item->wins);
-               free(item);
-       }
-#endif
-
-       return;
-}
-
-
-
-int xmonitor_init(void)
-{
-#ifndef WAYLAND
-       if (ecore_x_composite_query() == EINA_FALSE)
-               _D("====> COMPOSITOR IS NOT ENABLED");
-
-       xmonitor_info.create_handler =
-               ecore_event_handler_add(ECORE_X_EVENT_WINDOW_CREATE, _create_cb, NULL);
-       goto_if(NULL == xmonitor_info.create_handler, Error);
-
-       xmonitor_info.destroy_handler =
-               ecore_event_handler_add(ECORE_X_EVENT_WINDOW_DESTROY, _destroy_cb, NULL);
-       goto_if(NULL == xmonitor_info.destroy_handler, Error);
-
-       xmonitor_info.focus_in_handler =
-               ecore_event_handler_add(ECORE_X_EVENT_WINDOW_FOCUS_IN, _focus_in_cb, NULL);
-       goto_if(NULL == xmonitor_info.focus_in_handler, Error);
-
-       xmonitor_info.focus_out_handler =
-               ecore_event_handler_add(ECORE_X_EVENT_WINDOW_FOCUS_OUT, _focus_out_cb, NULL);
-       goto_if(NULL == xmonitor_info.focus_out_handler, Error);
-
-       _sniff_all_windows();
-       if (false == _set_idlescreen_top()) _E("cannot set idlescreen_is_top");
-
-       return 0;
-
-Error:
-       if (xmonitor_info.create_handler) {
-               ecore_event_handler_del(xmonitor_info.create_handler);
-               xmonitor_info.create_handler = NULL;
-       } else return -EFAULT;
-
-       if (xmonitor_info.destroy_handler) {
-               ecore_event_handler_del(xmonitor_info.destroy_handler);
-               xmonitor_info.destroy_handler = NULL;
-       } else return -EFAULT;
-
-       if (xmonitor_info.focus_in_handler) {
-               ecore_event_handler_del(xmonitor_info.focus_in_handler);
-               xmonitor_info.focus_in_handler = NULL;
-       } else return -EFAULT;
-
-       if (xmonitor_info.focus_out_handler) {
-               ecore_event_handler_del(xmonitor_info.focus_out_handler);
-               xmonitor_info.focus_out_handler = NULL;
-       } else return -EFAULT;
-#endif
-
-       return -EFAULT;
-}
-
-void xmonitor_fini(void)
-{
-#ifndef WAYLAND
-       ecore_event_handler_del(xmonitor_info.create_handler);
-       xmonitor_info.create_handler = NULL;
-
-       ecore_event_handler_del(xmonitor_info.destroy_handler);
-       xmonitor_info.destroy_handler = NULL;
-
-       ecore_event_handler_del(xmonitor_info.focus_in_handler);
-       xmonitor_info.focus_in_handler = NULL;
-
-       ecore_event_handler_del(xmonitor_info.focus_out_handler);
-       xmonitor_info.focus_out_handler = NULL;
-#endif
-}
diff --git a/starter b/starter
old mode 100755 (executable)
new mode 100644 (file)
index b5c0fa6..03d278c
--- a/starter
+++ b/starter
@@ -6,9 +6,10 @@ CURRENT_RUNLEVEL=`basename $PWD`
 if [ x"$CURRENT_RUNLEVEL" == x"rc3.d" ]; then
        while [ ! -f /tmp/.wm_ready ];
        do
-               sleep 0.1
+               /bin/sleep 0.1
        done
 fi
 
 /usr/bin/starter &
 
+
diff --git a/starter.desktop.in b/starter.desktop.in
deleted file mode 100755 (executable)
index f2a89f3..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-[Desktop Entry]
-Encoding=UTF-8
-Name=@PROJECT_NAME@
-Exec=@BINDIR@/@PROJECT_NAME@
-Icon=elementary
-Terminal=false
-Type=Application
-Categories=Application;Utility;
-
diff --git a/starter.efl b/starter.efl
new file mode 100644 (file)
index 0000000..895c460
--- /dev/null
@@ -0,0 +1,38 @@
+root starter rw---- ------
+_default_ starter rw---- ------
+starter e17::notification rw---- ------
+starter bt-service::gap rwx-t- ------
+starter tts-server rwx--- ------
+starter aul::terminate --x--- ------
+starter aul::launch --x--- ------
+starter alarm-server::alarm -w---- ------
+starter deviced::haptic rw---- ------
+starter deviced::display rw---- ------
+starter pulseaudio rwxat- ------
+starter system::share rwxat- ------
+starter system::media::root rwxat- ------
+starter system::media rwxat- ------
+starter org.tizen.setting::private rw---- ------
+starter org.tizen.setting::default-resources r-x--- ------
+starter system::homedir rwxat- ------
+starter sys-assert::core rwxat- ------
+starter data-provider-master::bin r----- ------
+starter data-router r----- ------
+starter device::app_logging rw---- ------
+starter device::sys_logging rw---- ------
+starter deviced r----- ------
+starter isf r-x--- ------
+starter starter::vconf rw---l ------
+starter stt-server r----- ------
+starter system::vconf rwxat- ------
+starter system::vconf_inhouse rw---l ------
+starter system::vconf_system r----l ------
+starter system::vconf_setting r----l ------
+starter system::vconf_multimedia r----l ------
+starter starter_private::vconf r----l ------
+starter xorg r----- ------
+starter xorg -w---- ------
+starter pkgmgr::db r----l ------
+starter syspopup::db r----l ------
+starter security-server::api-password-check -w---- ------
+starter org.tizen.wallpaper-ui-service r----- ------
diff --git a/starter.manifest b/starter.manifest
new file mode 100644 (file)
index 0000000..ebdbd8d
--- /dev/null
@@ -0,0 +1,35 @@
+<manifest>
+       <define>
+               <domain name="starter"/>
+       <request>
+               <smack request="sys-assert::core" type="rwxat"/>
+               <smack request="system::homedir" type="rwxat"/>
+               <smack request="system::vconf" type="rwxat"/>
+               <smack request="org.tizen.setting::private" type="rw"/>
+               <smack request="system::media" type="rwxat"/>
+               <smack request="system::media::root" type="rwxat"/>
+               <smack request="system::share" type="rwxat"/>
+               <smack request="pulseaudio" type="rwxat"/>
+               <smack request="deviced::display" type="rw"/>
+               <smack request="deviced::haptic" type="rw"/>
+               <smack request="alarm-server::alarm" type="w"/>
+               <smack request="aul::launch" type="x"/>
+               <smack request="aul::terminate" type="x"/>
+               <smack request="tts-server" type="rwx"/>
+               <smack request="bt-service::gap" type="rwxt"/>
+               <smack request="e17::notification" type="rw"/>
+       </request>
+       <provide>
+               <label name="starter::vconf"/>
+       </provide>
+       </define>
+       <request>
+               <domain name="starter"/>
+       </request>
+       <assign>
+               <filesystem path="/usr/bin/starter" label="starter" exec_label="starter" />
+               <filesystem path="/etc/init.d/rd3starter" label="_" exec_label="none" />
+               <filesystem path="/etc/init.d/rd4starter" label="_" exec_label="none" />
+               <filesystem path="/usr/share/locale" label="_" exec_label="_" />
+       </assign>
+</manifest>
diff --git a/test/get_entry.c b/test/get_entry.c
deleted file mode 100755 (executable)
index ea35358..0000000
+++ /dev/null
@@ -1,89 +0,0 @@
- /*
-  * Copyright 2012  Samsung Electronics Co., Ltd
-  *
-  * Licensed under the Flora License, Version 1.1 (the "License");
-  * you may not use this file except in compliance with the License.
-  * You may obtain a copy of the License at
-  *
-  *     http://floralicense.org/license/
-  *
-  * Unless required by applicable law or agreed to in writing, software
-  * distributed under the License is distributed on an "AS IS" BASIS,
-  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  * See the License for the specific language governing permissions and
-  * limitations under the License.
-  */
-
-
-
-#include <stdio.h>
-#include <X11/Xlib.h>
-#include <X11/Xatom.h>
-#include <X11/Xutil.h>
-
-int main(int argc, char *argv[])
-{
-       unsigned char *prop_ret;
-       Atom type_ret;
-       unsigned long bytes_after, num_ret;
-       int format_ret;
-       unsigned int i;
-       int num;
-
-       Display *d;
-       Atom a_ac;
-       Atom a_ap;
-       Status r;
-
-       d = XOpenDisplay(NULL);
-       if (d == NULL) {
-               printf("Display open error\n");
-               return 1;
-       }
-
-       a_ac = XInternAtom(d, "ENLIGHTENMENT_AUTOCAPITAL_ALLOW", False);
-       if (a_ac == None) {
-               printf("XInternAtom error\n");
-               goto exit;
-       }
-
-       r = XGetWindowProperty(d, DefaultRootWindow(d), a_ac, 0, 0x7fffffff,
-                              False, XA_CARDINAL, &type_ret, &format_ret,
-                              &num_ret, &bytes_after, &prop_ret);
-       if (r != Success) {
-               printf("XGetWindowProperty error\n");
-               goto exit;
-       }
-
-       if (type_ret == XA_CARDINAL && format_ret == 32 && num_ret > 0
-           && prop_ret) {
-               printf("Auto capital: %lu\n", ((unsigned long *)prop_ret)[0]);
-       }
-       if (prop_ret)
-               XFree(prop_ret);
-
-       a_ap = XInternAtom(d, "ENLIGHTENMENT_AUTOPERIOD_ALLOW", False);
-       if (a_ap == None) {
-               printf("XInternAtom error\n");
-               goto exit;
-       }
-
-       r = XGetWindowProperty(d, DefaultRootWindow(d), a_ap, 0, 0x7fffffff,
-                              False, XA_CARDINAL, &type_ret, &format_ret,
-                              &num_ret, &bytes_after, &prop_ret);
-       if (r != Success) {
-               printf("XGetWindowProperty error\n");
-               goto exit;
-       }
-
-       if (type_ret == XA_CARDINAL && format_ret == 32 && num_ret > 0
-           && prop_ret) {
-               printf("Auto period: %lu\n", ((unsigned long *)prop_ret)[0]);
-       }
-       if (prop_ret)
-               XFree(prop_ret);
-
- exit:
-       XCloseDisplay(d);
-       return 0;
-}
diff --git a/test/get_theme.c b/test/get_theme.c
deleted file mode 100755 (executable)
index 2439ed5..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
- /*
-  * Copyright 2012  Samsung Electronics Co., Ltd
-  *
-  * Licensed under the Flora License, Version 1.1 (the "License");
-  * you may not use this file except in compliance with the License.
-  * You may obtain a copy of the License at
-  *
-  *     http://floralicense.org/license/
-  *
-  * Unless required by applicable law or agreed to in writing, software
-  * distributed under the License is distributed on an "AS IS" BASIS,
-  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  * See the License for the specific language governing permissions and
-  * limitations under the License.
-  */
-
-
-
-#include <stdio.h>
-#include <X11/Xlib.h>
-#include <X11/Xatom.h>
-#include <X11/Xutil.h>
-
-int main(int argc, char *argv[])
-{
-       XTextProperty xtp;
-       Display *d;
-       Atom a_e17;
-       Status r;
-
-       d = XOpenDisplay(NULL);
-       if (d == NULL) {
-               printf("Display open error\n");
-               return 1;
-       }
-
-       a_e17 = XInternAtom(d, "ENLIGHTENMENT_THEME", False);
-       if (a_e17 == None) {
-               printf("XInternAtom error\n");
-               goto exit;
-       }
-
-       r = XGetTextProperty(d, DefaultRootWindow(d), &xtp, a_e17);
-       if (!r) {
-               printf("XGetTextProperty error\n");
-               goto exit;
-       }
-
-       printf("THEME: [%s]\n", (char *)xtp.value);
-
-       XFree(xtp.value);
-
- exit:
-       XCloseDisplay(d);
-       return 0;
-}
diff --git a/test/set_theme.c b/test/set_theme.c
deleted file mode 100755 (executable)
index a6cf4eb..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
- /*
-  * Copyright 2012  Samsung Electronics Co., Ltd
-  *
-  * Licensed under the Flora License, Version 1.1 (the "License");
-  * you may not use this file except in compliance with the License.
-  * You may obtain a copy of the License at
-  *
-  *     http://floralicense.org/license/
-  *
-  * Unless required by applicable law or agreed to in writing, software
-  * distributed under the License is distributed on an "AS IS" BASIS,
-  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  * See the License for the specific language governing permissions and
-  * limitations under the License.
-  */
-
-
-
-#include <string.h>
-
-#include <X11/Xlib.h>
-#include <X11/Xatom.h>
-#include <X11/Xutil.h>
-
-void set_elm_theme(void)
-{
-       char *theme;
-       Display *d;
-       Atom a_e17;
-       Atom a_UTF8;
-       XTextProperty xtp;
-
-       theme = "beat:kessler";
-
-       d = XOpenDisplay(NULL);
-       if (d == NULL)
-               return;
-
-       a_e17 = XInternAtom(d, "ENLIGHTENMENT_THEME", False);
-       if (a_e17 == None)
-               goto exit;
-
-       a_UTF8 = XInternAtom(d, "UTF8_STRING", False);
-       if (a_UTF8 == None)
-               goto exit;
-
-       xtp.value = (unsigned char *)theme;
-       xtp.format = 8;
-       xtp.encoding = a_UTF8;
-       xtp.nitems = strlen(theme);
-
-       XSetTextProperty(d, DefaultRootWindow(d), &xtp, a_e17);
-
- exit:
-       XCloseDisplay(d);
-}
-
-int main(int argc, char *argv[])
-{
-       set_elm_theme();
-       return 0;
-}