tizen 2.4 release accepted/tizen_2.4_mobile accepted/tizen/2.4/mobile/20151029.041232 submit/tizen_2.4/20151028.062659 tizen_2.4_mobile_release
authorjk7744.park <jk7744.park@samsung.com>
Sat, 24 Oct 2015 06:44:18 +0000 (15:44 +0900)
committerjk7744.park <jk7744.park@samsung.com>
Sat, 24 Oct 2015 06:44:18 +0000 (15:44 +0900)
163 files changed:
CMakeLists.txt [changed mode: 0755->0644]
LICENSE [changed mode: 0755->0644]
NOTICE [changed mode: 0755->0644]
include/dbus-util_w.h [deleted file]
include/dbus_util.h [new file with mode: 0644]
include/direct-access.h [deleted file]
include/lock-daemon-lite.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/popup.h [new file with mode: 0644]
include/mobile/starter.h [moved from include/starter.h with 97% similarity]
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_w.h [deleted file]
include/status.h [new file with mode: 0644]
include/util.h [changed mode: 0755->0644]
include/wearable/clock_mgr.h [moved from include/hw_key_w.h with 83% similarity, mode: 0644]
include/wearable/home_mgr.h [moved from include/lockd-bt.h with 70% similarity, mode: 0644]
include/wearable/hourly_alert.h [moved from include/hourly_alert.h with 91% similarity, mode: 0644]
include/wearable/hw_key.h [moved from include/hw_key.h with 89% similarity, mode: 0644]
include/window_mgr.h [new file with mode: 0644]
include/x11.h [deleted file]
lock_pwd/include/lock_pwd_complex.h [moved from include/dbus-util.h with 65% similarity, mode: 0644]
lock_pwd/include/lock_pwd_control_panel.h [moved from include/clock-mgr.h with 72% similarity, mode: 0644]
lock_pwd/include/lock_pwd_simple.h [new file with mode: 0755]
lock_pwd/include/lock_pwd_util.h [new file with mode: 0644]
lock_pwd/include/lock_pwd_verification.h [new file with mode: 0755]
lock_pwd/res/CMakeLists.txt [new file with mode: 0755]
lock_pwd/res/edje/CMakeLists.txt [new file with mode: 0755]
lock_pwd/res/edje/images/enter_pin_dot.png [new file with mode: 0644]
lock_pwd/res/edje/images/event_close_bg.#.png [new file with mode: 0644]
lock_pwd/res/edje/images/ls_back_02_nor.png [new file with mode: 0644]
lock_pwd/res/edje/images/ls_back_02_press.png [new file with mode: 0644]
lock_pwd/res/edje/images/ls_icon_call.png [new file with mode: 0644]
lock_pwd/res/edje/images/ls_password_underline.#.png [new file with mode: 0644]
lock_pwd/res/edje/images/ls_pin_dot.png [new file with mode: 0644]
lock_pwd/res/edje/lock_btn.edc [new file with mode: 0755]
lock_pwd/res/edje/lock_entry.edc [new file with mode: 0755]
lock_pwd/res/edje/lock_pwd.edc [new file with mode: 0755]
lock_pwd/res/edje/lock_pwd_complex.edc [new file with mode: 0755]
lock_pwd/res/edje/lock_pwd_control_panel.edc [new file with mode: 0644]
lock_pwd/res/edje/lock_pwd_simple.edc [new file with mode: 0755]
lock_pwd/src/lock_pwd_complex.c [new file with mode: 0644]
lock_pwd/src/lock_pwd_control_panel.c [new file with mode: 0644]
lock_pwd/src/lock_pwd_simple.c [new file with mode: 0755]
lock_pwd/src/lock_pwd_util.c [new file with mode: 0644]
lock_pwd/src/lock_pwd_verification.c [new file with mode: 0755]
packaging/starter-pre.service [new file with mode: 0644]
packaging/starter.service [changed mode: 0755->0644]
packaging/starter.spec [changed mode: 0755->0644]
packaging/wait-lock.service [deleted file]
po/CMakeLists.txt [changed mode: 0755->0644]
po/ar.po [new file with mode: 0644]
po/az.po
po/bg.po
po/bn.po [new file with mode: 0644]
po/ca.po
po/cs.po
po/da.po
po/de.po
po/el_GR.po
po/en.po
po/en_PH.po [new file with mode: 0644]
po/en_US.po
po/es_ES.po
po/es_US.po
po/et.po
po/eu.po
po/fa.po [new file with mode: 0644]
po/fi.po
po/fr.po
po/fr_CA.po
po/ga.po [new file with mode: 0644]
po/gl.po
po/gu.po [new file with mode: 0644]
po/he.po [new file with mode: 0644]
po/hi.po [new file with mode: 0644]
po/hr.po
po/hu.po
po/hy.po
po/is.po
po/it_IT.po
po/ja_JP.po [new file with mode: 0644]
po/ka.po
po/kk.po
po/kn.po [new file with mode: 0644]
po/ko_KR.po
po/lt.po
po/lv.po
po/mk.po [new file with mode: 0644]
po/ml.po [new file with mode: 0644]
po/mn_MN.po
po/nb.po
po/nl.po
po/pl.po
po/pt_BR.po
po/pt_PT.po
po/ro.po
po/ru_RU.po
po/si.po [new file with mode: 0644]
po/sk.po
po/sl.po
po/sr.po
po/sv.po
po/ta.po [new file with mode: 0644]
po/te.po [new file with mode: 0644]
po/th.po [new file with mode: 0644]
po/tr_TR.po
po/uk.po
po/ur.po [new file with mode: 0644]
po/uz.po
po/zh_CN.po [new file with mode: 0644]
po/zh_HK.po [new file with mode: 0644]
po/zh_TW.po [new file with mode: 0644]
rd3starter [changed mode: 0755->0644]
rd4starter
src/clock-mgr.c [deleted file]
src/dbus-util.c [deleted file]
src/dbus-util_w.c [deleted file]
src/dbus_util.c [new file with mode: 0644]
src/direct-access.c [deleted file]
src/hw_key.c [deleted file]
src/hw_key_w.c [deleted file]
src/lock-daemon-lite.c [deleted file]
src/lock-daemon.c [deleted file]
src/lockd-bt.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/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/starter_w.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 [moved from src/hourly_alert.c with 56% similarity, 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]
starter.desktop.in [deleted file]
starter.efl [new file with mode: 0644]
starter.manifest [changed mode: 0755->0644]
test/get_entry.c [deleted file]
test/get_theme.c [deleted file]
test/set_theme.c [deleted file]

old mode 100755 (executable)
new mode 100644 (file)
index 141f44a..f89d8e1
@@ -1,22 +1,22 @@
 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
 PROJECT(starter C)
 
-SET(VENDOR "samsung")
 SET(PACKAGE ${PROJECT_NAME})
-SET(PKGNAME "com.${VENDOR}.${PACKAGE}")
+SET(PKGNAME "org.tizen.${PACKAGE}")
 SET(PREFIX ${CMAKE_INSTALL_PREFIX})
 SET(BINDIR "${PREFIX}/bin")
 SET(DATADIR "${PREFIX}/share")
-SET(RESDIR "${PREFIX}/res")
 SET(LOCALEDIR "${PREFIX}/share/locale")
+SET(LOCKPWDDIR "${PREFIX}/lock_pwd")
 
-INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include)
-
-IF("${STARTER_FEATURE_LITE}" STREQUAL "ENABLE")
-MESSAGE("######################################## LITE")
+IF("${TIZEN_PROFILE_NAME}" STREQUAL "MOBILE")
+INCLUDE_DIRECTORIES(
+       ${CMAKE_SOURCE_DIR}/include
+       ${CMAKE_SOURCE_DIR}/include/mobile
+       ${CMAKE_SOURCE_DIR}/lock_pwd/include
+)
 INCLUDE(FindPkgConfig)
 pkg_check_modules(pkgs REQUIRED
-       ail
        aul
        capi-system-media-key
        db-util
@@ -26,16 +26,12 @@ pkg_check_modules(pkgs REQUIRED
        ecore-input
        ecore-x
        edbus
-       eet
        eina
        elementary
        evas
        syspopup-caller
        utilX
        vconf
-       x11
-       xcomposite
-       xext
        appcore-efl
        glib-2.0
        ui-gadget-1
@@ -43,6 +39,8 @@ pkg_check_modules(pkgs REQUIRED
        capi-appfw-application
        capi-appfw-app-manager
        capi-network-bluetooth
+       capi-system-system-settings
+       capi-ui-efl-util
        feedback
        alarm-service
        pkgmgr-info
@@ -52,11 +50,17 @@ pkg_check_modules(pkgs REQUIRED
        dbus-glib-1
        tts
        capi-message-port
+       security-server
+       efl-extension
+       callmgr_client
+)
+ELSE("${TIZEN_PROFILE_NAME}" STREQUAL "MOBILE")
+INCLUDE_DIRECTORIES(
+       ${CMAKE_SOURCE_DIR}/include
+       ${CMAKE_SOURCE_DIR}/include/wearable
 )
-ELSE()
 INCLUDE(FindPkgConfig)
 pkg_check_modules(pkgs REQUIRED
-       ail
        aul
        capi-system-media-key
        db-util
@@ -66,16 +70,12 @@ pkg_check_modules(pkgs REQUIRED
        ecore-input
        ecore-x
        edbus
-       eet
        eina
        elementary
        evas
        syspopup-caller
        utilX
        vconf
-       x11
-       xcomposite
-       xext
        appcore-efl
        glib-2.0
        ui-gadget-1
@@ -91,8 +91,7 @@ pkg_check_modules(pkgs REQUIRED
        dbus-1
        dbus-glib-1
 )
-ENDIF()
-
+ENDIF("${TIZEN_PROFILE_NAME}" STREQUAL "MOBILE")
 
 FOREACH(flag ${pkgs_CFLAGS})
        SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
@@ -117,38 +116,46 @@ 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")
 
-IF("${STARTER_FEATURE_LITE}" STREQUAL "ENABLE")
-MESSAGE("######################################## LITE")
+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/lock-daemon-lite.c
-       src/lockd-debug.c
-       src/lockd-process-mgr.c
-       src/lockd-window-mgr.c
-       src/lockd-bt.c
-       src/direct-access.c
-       src/dbus-util.c
+       src/dbus_util.c
+       src/package_mgr.c
+       src/process_mgr.c
+       src/status.c
+
+       src/mobile/starter.c
+       src/mobile/popup.c
+       src/mobile/hw_key.c
+       src/mobile/home_mgr.c
+       src/mobile/lock_mgr.c
+       src/mobile/window_mgr.c
+
+       lock_pwd/src/lock_pwd_util.c
+       lock_pwd/src/lock_pwd_simple.c
+       lock_pwd/src/lock_pwd_complex.c
+       lock_pwd/src/lock_pwd_verification.c
+       lock_pwd/src/lock_pwd_control_panel.c
 )
-ELSE()
+ELSE("${TIZEN_PROFILE_NAME}" STREQUAL "MOBILE")
 ADD_EXECUTABLE(${PROJECT_NAME}
-       src/starter_w.c
-       src/hw_key_w.c
-       src/hourly_alert.c
-       src/dbus-util_w.c
-       src/clock-mgr.c
+       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()
+ENDIF("${TIZEN_PROFILE_NAME}" STREQUAL "MOBILE")
 TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${pkgs_LDFLAGS})
 INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${BINDIR})
 INSTALL(DIRECTORY DESTINATION ${DATADIR})
@@ -161,4 +168,11 @@ INSTALL(FILES ${CMAKE_SOURCE_DIR}/rd3starter DESTINATION /etc/init.d
                GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
 #INSTALL to /etc/init.d
 
+INSTALL(FILES starter.efl DESTINATION /etc/smack/accesses.d)
+
 ADD_SUBDIRECTORY(po)
+
+#FOR PASSWORD LOCKSCREEN
+IF("${TIZEN_PROFILE_NAME}" STREQUAL "MOBILE")
+ADD_SUBDIRECTORY(lock_pwd/res)
+ENDIF("${TIZEN_PROFILE_NAME}" STREQUAL "MOBILE")
diff --git a/LICENSE b/LICENSE
old mode 100755 (executable)
new mode 100644 (file)
diff --git a/NOTICE b/NOTICE
old mode 100755 (executable)
new mode 100644 (file)
diff --git a/include/dbus-util_w.h b/include/dbus-util_w.h
deleted file mode 100755 (executable)
index 5a279c8..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * 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_H__
-#define __DBUS_H__
-
-#include <E_DBus.h>
-
-int request_Poweroff(void);
-int request_dbus_cpu_booster(void);
-int init_dbus_ALPM_signal(void *data);
-int init_dbus_COOL_DOWN_MODE_signal(void *data);
-int get_dbus_cool_down_mode(void *data);
-int init_dbus_NIKE_RUNNING_STATUS_signal(void *data);
-int init_dbus_ALPM_clock_state_signal(void *data);
-void starter_dbus_alpm_clock_signal_send(void *data);
-DBusConnection *starter_dbus_connection_get(void);
-
-
-#endif //__DBUS_H__
-
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/direct-access.h b/include/direct-access.h
deleted file mode 100755 (executable)
index a4f4067..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * 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 __DIRECT_ACCESS_H__
-#define __DIRECT_ACCESS_H__
-
-#include <E_DBus.h>
-
-DBusMessage *invoke_dbus_method_sync(const char *dest, const char *path,
-               const char *interface, const char *method,
-               const char *sig, char *param[]);
-
-DBusMessage *invoke_dbus_method(const char *dest, const char *path,
-               const char *interface, const char *method,
-               const char *sig, char *param[]);
-
-int launch_direct_access(int access_val);
-
-#endif //__DIRECT_ACCESS_H__
-
diff --git a/include/lock-daemon-lite.h b/include/lock-daemon-lite.h
deleted file mode 100755 (executable)
index d1367a3..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * 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_LITE_H__
-#define __LOCK_DAEMON_LITE_H__
-
-int start_lock_daemon_lite(int launch_lock, int is_first_boot);
-int lockd_get_lock_type(void);
-int lockd_get_hall_status(void);
-int lockd_get_lock_state(void);
-
-#endif                         /* __LOCK_DAEMON_LITE_H__ */
diff --git a/include/lock-daemon.h b/include/lock-daemon.h
deleted file mode 100755 (executable)
index d43f3e6..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * 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__
-
-int start_lock_daemon(int launch_lock, int is_first_boot);
-int lockd_get_lock_type(void);
-int lockd_get_hall_status(void);
-int lockd_get_lock_state(void);
-
-#endif                         /* __LOCK_DAEMON_H__ */
diff --git a/include/lockd-debug.h b/include/lockd-debug.h
deleted file mode 100755 (executable)
index 4c24a23..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * 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 __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
-
-#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)
-#define STARTER_WARN(fmt, arg...)  LOGW("["LOG_TAG"%s:%d:W] "fmt, __FILE__, __LINE__, ##arg)
-#define STARTER_SECURE_ERR(fmt, arg...)  SECURE_LOGE("["LOG_TAG"%s:%d:E] "fmt, __FILE__, __LINE__, ##arg)
-#define STARTER_SECURE_DBG(fmt, arg...)  SECURE_LOGD("["LOG_TAG"%s:%d:D] "fmt, __FILE__, __LINE__, ##arg)
-#define STARTER_SECURE_WARN(fmt, arg...)  SECURE_LOGW("["LOG_TAG"%s:%d:W] "fmt, __FILE__, __LINE__, ##arg)
-#else
-#define STARTER_ERR(fmt, arg...)
-#define STARTER_DBG(fmt, arg...)
-#define STARTER_WARN(fmt, arg...)
-#define STARTER_SECURE_ERR(fmt, arg...)
-#define STARTER_SECURE_DBG(fmt, arg...)
-#define STARTER_SECURE_WARN(fmt, arg...)
-#endif
-
-#ifdef ENABLE_LOG_SYSTEM
-#define _ERR(fmt, arg...) do { STARTER_ERR(fmt, ##arg); } while (0)
-#define _DBG(fmt, arg...) do { STARTER_DBG(fmt, ##arg); } while (0)
-#define _WARN(fmt, arg...) do { STARTER_WARN(fmt, ##arg); } while (0)
-
-#define _SECURE_ERR(fmt, arg...) do { STARTER_SECURE_ERR(fmt, ##arg); } while (0)
-#define _SECURE_DBG(fmt, arg...) do { STARTER_SECURE_DBG(fmt, ##arg); } while (0)
-#define _SECURE_WARN(fmt, arg...) do { STARTER_SECURE_WARN(fmt, ##arg); } while (0)
-
-#define LOCKD_ERR(fmt, arg...) _ERR(fmt, ##arg)
-#define LOCKD_DBG(fmt, arg...) _DBG(fmt, ##arg)
-#define LOCKD_WARN(fmt, arg...) _WARN(fmt, ##arg)
-#define LOCKD_SECURE_ERR(fmt, arg...) _SECURE_ERR(fmt, ##arg)
-#define LOCKD_SECURE_DBG(fmt, arg...) _SECURE_DBG(fmt, ##arg)
-#define LOCKD_SECURE_WARN(fmt, arg...) _SECURE_WARN(fmt, ##arg)
-#else
-#define _ERR(...)
-#define _DBG(...)
-#define _WARN(...)
-#define _SECURE_ERR(...)
-#define _SECURE_DBG(...)
-#define _SECURE_WARN(...)
-
-#define LOCKD_ERR(...)
-#define LOCKD_DBG(...)
-#define LOCKD_WARN(...)
-#define LOCKD_SECURE_ERR(...)
-#define LOCKD_SECURE_DBG(...)
-#define LOCKD_SECURE_WARN(...)
-#endif
-
-#ifndef TRUE
-#define TRUE 1
-#endif
-#ifndef FALSE
-#define FALSE 0
-#endif
-
-#endif                         /* __LOCKD_DEBUG_H__ */
diff --git a/include/lockd-process-mgr.h b/include/lockd-process-mgr.h
deleted file mode 100755 (executable)
index f7429da..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * 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 __LOCKD_PROCESS_MGR_H__
-#define __LOCKD_PROCESS_MGR_H__
-
-void lockd_process_mgr_init(void);
-
-int lockd_process_mgr_start_lock(void *data, int (*dead_cb) (int, void *),
-                                int lock_type);
-
-int lockd_process_mgr_restart_lock(int lock_type);
-
-int lockd_process_mgr_start_recovery_lock(void);
-
-int lockd_process_mgr_start_back_to_app_lock(void);
-
-int lockd_process_mgr_start_ready_lock(void);
-
-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);
-
-void lockd_process_mgr_kill_lock_app(int lock_app_pid);
-
-int lockd_process_mgr_check_lock(int pid);
-
-int lockd_process_mgr_check_call(int pid);
-
-int lockd_process_mgr_check_home(int pid);
-
-int lockd_process_mgr_set_lockscreen_priority(int pid);
-int lockd_process_mgr_set_pwlock_priority(int pid);
-#endif                         /* __LOCKD_PROCESS_MGR_H__ */
diff --git a/include/lockd-window-mgr.h b/include/lockd-window-mgr.h
deleted file mode 100755 (executable)
index cbb1a98..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * 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 __LOCKD_WINDOW_MGR_H__
-#define __LOCKD_WINDOW_MGR_H__
-
-typedef struct _lockw_data lockw_data;
-
-int
-lockd_window_mgr_get_focus_win_pid(void);
-
-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_scroll_property(lockw_data * data, int lock_type);
-
-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);
-
-void lockd_create_ug_window(void *data);
-
-void lockd_destroy_ug_window(void *data);
-
-void lockd_show_phonelock_alpha_ug(void *data);
-#endif                         /* __LOCKD_WINDOW_MGR_H__ */
diff --git a/include/menu_daemon.h b/include/menu_daemon.h
deleted file mode 100755 (executable)
index 5972da5..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * 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 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 void menu_daemon_launch_app_tray(void);
-
-extern bool menu_daemon_is_homescreen(pid_t pid);
-extern int menu_daemon_is_safe_mode(void);
-extern int menu_daemon_get_cradle_status(void);
-extern const char *menu_daemon_get_svoice_pkg_name(void);
-
-extern int menu_daemon_check_dead_signal(int pid);
-
-extern char *menu_daemon_get_selected_pkgname(void);
-extern int menu_daemon_open_homescreen(const char *pkgname);
-
-#if 0
-extern int menu_daemon_get_pm_key_ignore(int ignore_key);
-extern void menu_daemon_set_pm_key_ignore(int ignore_key, int value);
-#endif
-
-extern int menu_daemon_get_volume_pid(void);
-
-extern int menu_daemon_launch_search(void);
-
-
-// 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..6fd5061
--- /dev/null
@@ -0,0 +1,31 @@
+/*
+ * 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 int home_mgr_get_home_pid(void);
+extern int home_mgr_get_volume_pid(void);
+
+extern void home_mgr_init(void *data);
+extern void home_mgr_fini(void);
+
+void home_mgr_relaunch_homescreen(void);
+void home_mgr_relaunch_volume(void);
+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..6db7a69
--- /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)
+
+#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_get_lock_pid(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);
+void lock_mgr_unlock(void);
+
+
+int lock_mgr_daemon_start(void);
+void lock_mgr_daemon_end(void);
+
+#endif                         /* __LOCK_DAEMON_H__ */
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
similarity index 97%
rename from include/starter.h
rename to include/mobile/starter.h
index 4ce9124..a9700c2 100644 (file)
@@ -21,6 +21,7 @@
 
 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 100644 (file)
index c7ee8b6..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * 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 __NOTIFIER_H__
-#define __NOTIFIER_H__
-#include <stdbool.h>
-
-#if !defined(PUBLIC)
-#define PUBLIC          __attribute__((visibility("default")))  /**<All other from outside modules can access this typed API */
-#endif
-
-#if !defined(PROTECTED)
-#define PROTECTED       __attribute__((visibility("hidden")))   /**<All other from outside modules can not access this directly */
-#endif
-
-#if !defined(PRIVATE)
-#define PRIVATE         __attribute__((visibility("internal"))) /**<Does not export APIs to the other. only can be accessed in this module */
-#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 41999f6..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * 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_UTIL_H__
-#define __STARTER_UTIL_H__
-
-#include <stdio.h>
-#include <sys/time.h>
-
-#if 0
-#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
-#endif                         /* __STARTER_UTIL_H__ */
diff --git a/include/starter-vconf.h b/include/starter-vconf.h
deleted file mode 100755 (executable)
index 2d51f0c..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * 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_VCONF_H__
-#define __STARTER_VCONF_H__
-
-#define VCONF_PRIVATE_LOCKSCREEN_PKGNAME "file/private/lockscreen/pkgname"
-#define VCONF_PRIVATE_LOCKSCREEN_DEFAULT_PKGNAME "file/private/lockscreen/default_pkgname"
-
-#endif                         /* __STARTER_VCONF_H__ */
diff --git a/include/starter_w.h b/include/starter_w.h
deleted file mode 100755 (executable)
index 102a00b..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * 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_W_H__
-#define __STARTER_W_H__
-
-#include <sys/time.h>
-#include <aul.h>
-#include <alarm.h>
-
-struct appdata {
-       struct timeval tv_start;        /* start time */
-       int launcher_pid;
-       alarm_id_t alarm_id;    /* -1 : None, others : set alarm */
-       int bt_connected;
-       char *home_pkgname;
-       int first_boot;
-       int cool_down_mode;
-       int wake_up_setting;
-       int pid_ALPM_clock;
-       int ambient_mode;
-       int retry_cnt;
-       int nike_running_status;
-       int ALPM_clock_state;
-       int reserved_apps_local_port_id;
-       Eina_List *reserved_apps_list;
-       int lcd_status;
-       char *reserved_popup_app_id;
-
-       int pid_clock_viewer;
-};
-
-typedef enum {
-       STARTER_RESERVED_APPS_SHEALTH = 0,
-       STARTER_RESERVED_APPS_NIKE = 1,
-       STARTER_RESERVED_APPS_HERE = 2,
-       STARTER_RESERVED_APPS_MAX = 3,
-} starter_reservd_apps_type;
-
-#define W_HOME_PKGNAME "org.tizen.w-home"
-#define W_LAUNCHER_PKGNAME "com.samsung.w-launcher-app"
-
-#define W_CLOCK_VIEWER_PKGNAME "org.tizen.w-clock-viewer"
-
-
-int w_open_app(char *pkgname);
-int w_launch_app(char *pkgname, bundle *b);
-
-#endif                         /* __STARTER_H__ */
diff --git a/include/status.h b/include/status.h
new file mode 100644 (file)
index 0000000..9f203f3
--- /dev/null
@@ -0,0 +1,87 @@
+/*
+ * 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
+
+#define VCONFKEY_SETAPPL_PASSWORD_ATTEMPTS_LEFT_INT      VCONFKEY_SETAPPL_PREFIX"/phone_lock_attempts_left"
+
+#define STATUS_DEFAULT_LOCK_PKG_NAME "org.tizen.lockscreen"
+
+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 wms_wakeup_by_gesture_setting;
+
+       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 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 5972926..bec5430
 #include <dlog.h>
 #include <stdio.h>
 #include <sys/time.h>
+#include <app.h>
 
-#define APP_TRAY_PKG_NAME "com.samsung.app-tray"
+#define APP_TRAY_PKG_NAME "org.tizen.app-tray"
 #define MENU_SCREEN_PKG_NAME "org.tizen.menu-screen"
-#define PROVIDER_PKG_NAME "com.samsung.data-provider-master"
-#define SVOICE_PKG_NAME "com.samsung.svoice"
-#define CLUSTER_HOME_PKG_NAME "com.samsung.cluster-home"
-#define EASY_HOME_PKG_NAME "com.samsung.easy-home"
-#define EASY_APPS_PKG_NAME "com.samsung.easy-apps"
+#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 "com.samsung.taskmgr"
+#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"
        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__ */
old mode 100755 (executable)
new mode 100644 (file)
similarity index 83%
rename from include/hw_key_w.h
rename to include/wearable/clock_mgr.h
index 13f9062..4f3af15
  * limitations under the License.
  */
 
-extern void destroy_key_window(void);
-extern void create_key_window(char *home_pkgname, void *data);
+#ifndef __CLOCK_MGR_H__
+#define __CLOCK_MGR_H__
 
-// End of a file
+void clock_mgr_init(void);
+void clock_mgr_fini(void);
+
+#endif /* __CLOCK_MGR_H__*/
old mode 100755 (executable)
new mode 100644 (file)
similarity index 70%
rename from include/lockd-bt.h
rename to include/wearable/home_mgr.h
index 33a9369..d01a8ea
  * limitations under the License.
  */
 
-#ifndef __LOCKD_BT_H__
-#define __LOCKD_BT_H__
+#ifndef __HOME_MGR_H__
+#define __HOME_MGR_H__
 
-int lockd_start_bt_monitor(void);
+extern void home_mgr_launch_home(void);
+extern void home_mgr_launch_home_first(void);
+extern void home_mgr_launch_home_by_power(void);
 
-void lockd_stop_bt_monitor(void);
+extern void home_mgr_init(void);
+extern void home_mgr_fini(void);
 
-void lockd_change_security_auto_lock(int is_connected);
-
-int lockd_get_auto_lock_security(void);
-
-#endif                         /* __LOCKD_BT_H__ */
+#endif /* __HOME_MGR_H__*/
old mode 100755 (executable)
new mode 100644 (file)
similarity index 91%
rename from include/hourly_alert.h
rename to include/wearable/hourly_alert.h
index 1e8ee11..a0ecf40
@@ -18,7 +18,7 @@
 #define __HOURLY_ALERT_H__
 
 
-void init_hourly_alert(void *data);
-void fini_hourly_alert(void *data);
+void hourly_alert_init(void);
+void hourly_alert_fini(void);
 
 #endif                         /* __HOURLY_ALERT_H__ */
old mode 100755 (executable)
new mode 100644 (file)
similarity index 89%
rename from include/hw_key.h
rename to include/wearable/hw_key.h
index ec02f61..a937000
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-extern void destroy_key_window(void);
-extern void create_key_window(void);
+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..1205798
--- /dev/null
@@ -0,0 +1,37 @@
+/*
+ * 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 *));
+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 100644 (file)
index ef0bbc5..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * 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_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                         /* __STARTER_X11_H__ */
old mode 100755 (executable)
new mode 100644 (file)
similarity index 65%
rename from include/dbus-util.h
rename to lock_pwd/include/lock_pwd_complex.h
index 3b20715..bb92dca
  * limitations under the License.
  */
 
-#ifndef __DBUS_UTIL_H__
-#define __DBUS_UTIL_H__
+#ifndef __LOCK_PWD_COMPLEX_H__
+#define __LOCK_PWD_COMPLEX_H__
 
-#include <E_DBus.h>
+#include "lock_pwd_verification.h"
 
-#define OOM_ADJ_VALUE_HOMESCREEN 0
+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_destroy(void);
+void lock_pwd_complex_view_init(void);
 
-#ifdef FEATURE_LITE
-#define OOM_ADJ_VALUE_DEFAULT   200
-#else
-#define OOM_ADJ_VALUE_DEFAULT   0
 #endif
-
-void starter_dbus_home_raise_signal_send(void);
-int starter_dbus_set_oomadj(int pid, int oom_adj_value);
-
-#endif //__DBUS_UTIL_H__
old mode 100755 (executable)
new mode 100644 (file)
similarity index 72%
rename from include/clock-mgr.h
rename to lock_pwd/include/lock_pwd_control_panel.h
index 2b32512..9c65e80
  * limitations under the License.
  */
 
-#ifndef __CLOCK_MGR_H__
-#define __CLOCK_MGR_H__
+#ifndef __LOCK_PWD_CONTROL_PANEL_H__
+#define __LOCK_PWD_CONTROL_PANEL_H__
 
-void init_clock_mgr(void *data);
-void fini_clock_mgr(void *data);
-void clock_mgr_set_reserved_apps_status(void *data);
+void lock_pwd_control_panel_cancel_btn_enable_set(Eina_Bool enable);
 
-#endif
-/* __CLOCK_MGR_H__*/
+Evas_Object *lock_pwd_control_panel_create(Evas_Object *parent);
+void lock_pwd_control_panel_del(void);
 
+#endif
diff --git a/lock_pwd/include/lock_pwd_simple.h b/lock_pwd/include/lock_pwd_simple.h
new file mode 100755 (executable)
index 0000000..b820003
--- /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_destroy(void);
+void lock_pwd_simple_event(lock_pwd_event_e event);
+void lock_pwd_simple_view_init(void);
+
+#endif
diff --git a/lock_pwd/include/lock_pwd_util.h b/lock_pwd/include/lock_pwd_util.h
new file mode 100644 (file)
index 0000000..cd53bfa
--- /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/lock_pwd/res/edje/lock_pwd.edj"
+#define LOCK_PWD_BTN_EDJE_FILE "/usr/share/starter/lock_pwd/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_destroy(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/lock_pwd/include/lock_pwd_verification.h b/lock_pwd/include/lock_pwd_verification.h
new file mode 100755 (executable)
index 0000000..5d3b15b
--- /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_SIMPLE_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/lock_pwd/res/CMakeLists.txt b/lock_pwd/res/CMakeLists.txt
new file mode 100755 (executable)
index 0000000..2ab7c7b
--- /dev/null
@@ -0,0 +1 @@
+ADD_SUBDIRECTORY(edje)
diff --git a/lock_pwd/res/edje/CMakeLists.txt b/lock_pwd/res/edje/CMakeLists.txt
new file mode 100755 (executable)
index 0000000..23de665
--- /dev/null
@@ -0,0 +1,23 @@
+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}/lock_pwd/res/edje/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/lock_pwd/res/edje)
+
+ADD_CUSTOM_TARGET(lock_entry.edj
+                COMMAND edje_cc -id ${CMAKE_CURRENT_SOURCE_DIR}/images
+                               ${CMAKE_CURRENT_SOURCE_DIR}/lock_entry.edc ${CMAKE_BINARY_DIR}/lock_pwd/res/edje/lock_entry.edj
+                               DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/lock_entry.edc
+)
+ADD_DEPENDENCIES(${PROJECT_NAME} lock_entry.edj)
+INSTALL(FILES lock_entry.edj DESTINATION /usr/share/starter/lock_pwd/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}/lock_pwd/res/edje/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/lock_pwd/res/edje)
diff --git a/lock_pwd/res/edje/images/enter_pin_dot.png b/lock_pwd/res/edje/images/enter_pin_dot.png
new file mode 100644 (file)
index 0000000..467db33
Binary files /dev/null and b/lock_pwd/res/edje/images/enter_pin_dot.png differ
diff --git a/lock_pwd/res/edje/images/event_close_bg.#.png b/lock_pwd/res/edje/images/event_close_bg.#.png
new file mode 100644 (file)
index 0000000..047d7ca
Binary files /dev/null and b/lock_pwd/res/edje/images/event_close_bg.#.png differ
diff --git a/lock_pwd/res/edje/images/ls_back_02_nor.png b/lock_pwd/res/edje/images/ls_back_02_nor.png
new file mode 100644 (file)
index 0000000..7a8f607
Binary files /dev/null and b/lock_pwd/res/edje/images/ls_back_02_nor.png differ
diff --git a/lock_pwd/res/edje/images/ls_back_02_press.png b/lock_pwd/res/edje/images/ls_back_02_press.png
new file mode 100644 (file)
index 0000000..7426dfc
Binary files /dev/null and b/lock_pwd/res/edje/images/ls_back_02_press.png differ
diff --git a/lock_pwd/res/edje/images/ls_icon_call.png b/lock_pwd/res/edje/images/ls_icon_call.png
new file mode 100644 (file)
index 0000000..18bf92a
Binary files /dev/null and b/lock_pwd/res/edje/images/ls_icon_call.png differ
diff --git a/lock_pwd/res/edje/images/ls_password_underline.#.png b/lock_pwd/res/edje/images/ls_password_underline.#.png
new file mode 100644 (file)
index 0000000..9b6944b
Binary files /dev/null and b/lock_pwd/res/edje/images/ls_password_underline.#.png differ
diff --git a/lock_pwd/res/edje/images/ls_pin_dot.png b/lock_pwd/res/edje/images/ls_pin_dot.png
new file mode 100644 (file)
index 0000000..c01ca7c
Binary files /dev/null and b/lock_pwd/res/edje/images/ls_pin_dot.png differ
diff --git a/lock_pwd/res/edje/lock_btn.edc b/lock_pwd/res/edje/lock_btn.edc
new file mode 100755 (executable)
index 0000000..20ecbbb
--- /dev/null
@@ -0,0 +1,395 @@
+/*
+ * 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 {
+       base_scale: 2.6;
+       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;
+                                       color: 255 255 255 255;
+                                       visible: 1;
+                                       rel1.relative: 1.0 0.0;
+                                       rel2.relative: 1.0 1.0;
+                                       align: 1.0 0.5;
+                                       text {
+                                               align: 1.0 0.5;
+                                               size: 32;
+                                               //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/lock_pwd/res/edje/lock_entry.edc b/lock_pwd/res/edje/lock_entry.edc
new file mode 100755 (executable)
index 0000000..f4b3cca
--- /dev/null
@@ -0,0 +1,486 @@
+/*
+ * 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.
+ */
+
+collections {
+       base_scale : 2.6;
+
+       group {
+               name: "elm/entry/base-single/default";
+               data.item: "default_font_size" "43";
+               data.item: "min_font_size" "8";
+               data.item: "max_font_size" "60";
+               styles {
+                       style { name: "entry_single_textblock_style";
+                          base: "font=Tizen:style=Roman font_size=43 align=center color=#FFFFFFFF wrap=none left_margin=1 right_margin=3 text_class=Tizen style=shadow shadow_color=#000000bf";
+                          tag:  "br" "\n";
+                          tag:  "ps" "ps";
+                          tag:  "tab" "\t";
+                          tag:  "em" "+ font=Tizen:style=Oblique";
+                          tag:  "b" "+ font=Tizen:style=Bold";
+                          tag:  "link" "+ color=#800 underline=on underline_color=#8008";
+                          tag:  "hilight" "+ font=Tizen:style=Bold";
+                          tag:  "preedit" "+ underline=on underline_color="ENTRY_PREEDIT_UNDERLINE_COLOR_INC;
+                          tag:  "preedit_sel" "+ backing=on backing_color="ENTRY_PREEDIT_BACKGROUND_COLOR_INC" color="ENTRY_PREEDIT_TEXT_COLOR_INC" underline=on underline_color="ENTRY_PREEDIT_TEXT_COLOR_INC;
+                          tag:  "preedit_sub1" "+ backing=on backing_color="ENTRY_PREEDIT_SUB1_COLOR_INC" underline=on underline_color="ENTRY_PREEDIT_UNDERLINE_COLOR_INC;
+                          tag:  "preedit_sub2" "+ backing=on backing_color="ENTRY_PREEDIT_SUB2_COLOR_INC" underline=on underline_color="ENTRY_PREEDIT_UNDERLINE_COLOR_INC;
+                          tag:  "preedit_sub3" "+ backing=on backing_color="ENTRY_PREEDIT_SUB3_COLOR_INC" underline=on underline_color="ENTRY_PREEDIT_UNDERLINE_COLOR_INC;
+                          tag:  "preedit_sub4" "+ backing=on backing_color="ENTRY_PREEDIT_SUB4_COLOR_INC" underline=on underline_color="ENTRY_PREEDIT_UNDERLINE_COLOR_INC;
+                       }
+                       style { name: "entry_single_textblock_disabled_style";
+                          base: "font=Tizen:style=Roman font_size=43 color=00000080 wrap=none left_margin=1 right_margin=3 text_class=Tizen";
+                          tag:  "br" "\n";
+                          tag:  "ps" "ps";
+                          tag:  "tab" "\t";
+                          tag:  "em" "+ font=Tizen:style=Oblique";
+                          tag:  "b" "+ font=Tizen:style=Bold";
+                          tag:  "link " "+ color=#00000080 underline=on underline_color=#00000080";
+                          tag:  "hilight" "+ font=Tizen:style=Bold";
+                          tag:  "preedit" "+ underline=on underline_color="ENTRY_PREEDIT_UNDERLINE_COLOR_INC;
+                          tag:  "preedit_sel" "+ backing=on backing_color="ENTRY_PREEDIT_BACKGROUND_COLOR_INC" color="ENTRY_PREEDIT_TEXT_COLOR_INC" underline=on underline_color="ENTRY_PREEDIT_TEXT_COLOR_INC;
+                          tag:  "preedit_sub1" "+ backing=on backing_color="ENTRY_PREEDIT_SUB1_COLOR_INC" underline=on underline_color="ENTRY_PREEDIT_UNDERLINE_COLOR_INC;
+                          tag:  "preedit_sub2" "+ backing=on backing_color="ENTRY_PREEDIT_SUB2_COLOR_INC" underline=on underline_color="ENTRY_PREEDIT_UNDERLINE_COLOR_INC;
+                          tag:  "preedit_sub3" "+ backing=on backing_color="ENTRY_PREEDIT_SUB3_COLOR_INC" underline=on underline_color="ENTRY_PREEDIT_UNDERLINE_COLOR_INC;
+                          tag:  "preedit_sub4" "+ backing=on backing_color="ENTRY_PREEDIT_SUB4_COLOR_INC" underline=on underline_color="ENTRY_PREEDIT_UNDERLINE_COLOR_INC;
+                       }
+               }
+               data {
+                       item: context_menu_orientation "horizontal";
+               }
+               parts {
+                       part {
+                               name: "entry.swallow.background";
+                               type: SWALLOW;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       rel1 { relative: 0 0; to: "elm.text"; }
+                                       rel2 { relative: 1 1; to: "elm.text"; }
+                               }
+                       }
+               }
+               parts {
+                       part {
+                               name: "elm.text";
+                               type: TEXTBLOCK;
+                               mouse_events: 1;
+                               scale: 1;
+                               entry_mode: EDITABLE;
+                               select_mode: BLOCK_HANDLE;
+                               multiline: 0;
+                               source: "elm/entry/selection/default";
+                               source2: "elm/entry/selection/block_handle";
+                               source3: "elm/entry/selection/block_handle_top";
+                               source4: "elm/entry/cursor/default";
+                               source5: "elm/entry/anchor/default";
+                               description {
+                                       state: "default" 0.0;
+                                       text {
+                                               style: "entry_single_textblock_style";
+                                               min: 1 1;
+                                               max: 0 1;
+                                               ellipsis: -1;
+                                       }
+                               }
+                               description {
+                                       state: "disabled" 0.0;
+                                       inherit: "default" 0.0;
+                                       text {
+                                               style: "entry_single_textblock_disabled_style";
+                                       }
+                               }
+                       }
+               }
+               programs {
+                       program {
+                               name: "focus";
+                               signal: "load";
+                               source: "";
+                               action: FOCUS_SET;
+                               target: "elm.text";
+                       }
+                       program {
+                               name: "disable";
+                               signal: "elm,state,disabled";
+                               source: "elm";
+                               action: STATE_SET "disabled" 0.0;
+                               target: "elm.text";
+                       }
+                       program {
+                               name: "enable";
+                               signal: "elm,state,enabled";
+                               source: "elm";
+                               action: STATE_SET "default" 0.0;
+                               target: "elm.text";
+                       }
+               }
+       }
+       group {
+               name: "elm/entry/base-password/lockscreen_complex_password_style";
+               data.item: "default_font_size" "43";
+               data.item: "min_font_size" "8";
+               data.item: "max_font_size" "60";
+               data {
+                       item: context_menu_orientation "horizontal";
+               }
+               parts {
+                       part {
+                               name: "entry.swallow.background";
+                               type: SWALLOW;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       rel1 { relative: 0 0; to: "elm.text"; }
+                                       rel2 { relative: 1 1; to: "elm.text"; }
+                               }
+                       }
+               }
+               parts {
+                       part {
+                               name: "elm.text";
+                               type: TEXTBLOCK;
+                               mouse_events: 1;
+                               scale: 1;
+                               entry_mode: PASSWORD;
+                               select_mode: BLOCK_HANDLE;
+                               multiline: 0;
+                               source: "elm/entry/selection/default";
+                               source2: "elm/entry/selection/block_handle";
+                               source3: "elm/entry/selection/block_handle_top";
+                               source4: "elm/entry/cursor/default";
+                               source5: "elm/entry/anchor/default";
+                               description {
+                                       state: "default" 0.0;
+                                       text {
+                                               style: "entry_single_textblock_style";
+                                               repch: "•";
+                                               min: 1 1;
+                                               max: 0 0;
+                                               ellipsis: -1;
+                                       }
+                               }
+                               description {
+                                       state: "disabled" 0.0;
+                                       inherit: "default" 0.0;
+                                       text {
+                                               style: "entry_single_textblock_disabled_style";
+                                       }
+                               }
+                       }
+               }
+               programs {
+                       program {
+                               name: "focus";
+                               signal: "load";
+                               source: "";
+                               action: FOCUS_SET;
+                               target: "elm.text";
+                       }
+                       program {
+                               name: "disable";
+                               signal: "elm,state,disabled";
+                               source: "elm";
+                               action: STATE_SET "disabled" 0.0;
+                               target: "elm.text";
+                       }
+                       program {
+                               name: "enable";
+                               signal: "elm,state,enabled";
+                               source: "elm";
+                               action: STATE_SET "default" 0.0;
+                               target: "elm.text";
+                       }
+               }
+       }
+       group {
+               name: "elm/entry/cursor/default";
+               parts {
+                       part {
+                               name: "clip2";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1.to: "clip";
+                                       rel2.to: "clip";
+                                       visible: 0;
+                               }
+                               description {
+                                       state: "focused" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+                       part {
+                               name: "clip";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               clip_to: "clip2";
+                               description {
+                                       state: "default" 0.0;
+                                       rel1.offset: -10 0;
+                                       rel2.offset: 9 9;
+                               }
+                               description {
+                                       state: "hidden" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 0;
+                               }
+                       }
+                       part {
+                               name: "base";
+                               mouse_events: 0;
+                               scale: 1;
+                               clip_to: "clip";
+                               description {
+                                       state: "default" 0.0;
+                                       min: 2 2;
+                                       align: 0.5 1.0;
+                                       color: 0 0 0 0;
+                               }
+                       }
+                       part {
+                               name: "glow";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               clip_to: "clip2";
+                               description {
+                                       state: "default" 0.0;
+                                       min: 4 0;
+                                       fixed: 1 0;
+                                       align: 0.5 0.5;
+                                       rel1 {
+                                               relative: 0.0  0.0;
+                                               offset: 0 2;
+                                       }
+                                       rel2 {
+                                               relative: 0.0  1.0;
+                                               offset: 0 -2;
+                                       }
+                                       color: 42 137 194 255;
+                               }
+                               description {
+                                       state: "hidden" 0.0;
+                                       inherit: "default" 0.0;
+                                       color: 0 0 0 0;
+                               }
+                       }
+               }
+               programs {
+                       program {
+                               name: "show";
+                               action: STATE_SET "hidden" 0.0;
+                               in: 0.6 0.0;
+                               target: "glow";
+                               after: "show4";
+                       }
+                       program {
+                               name: "show4";
+                               action: STATE_SET "default" 0.0;
+                               in: 0.6 0.0;
+                               target: "glow";
+                               after: "show";
+                       }
+                       program {
+                               name: "focused";
+                               signal: "elm,action,focus";
+                               source: "elm";
+                               action: STATE_SET "focused" 0.0;
+                               target: "clip2";
+                               after: "show4";
+                       }
+                       program {
+                               name: "unfocused";
+                               signal: "elm,action,unfocus";
+                               source: "elm";
+                               action: STATE_SET "default" 0.0;
+                               target: "clip2";
+                               after: "stop_glow";
+                       }
+                       program {
+                               name: "stop_glow";
+                               action: ACTION_STOP;
+                               target: "show";
+                               target: "show4";
+                       }
+               }
+       }
+       group { name: "elm/entry/selection/default";
+               parts {
+                       part {
+                               name: "bg";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                                       color: 138 183 223 128;
+                               }
+                       }
+               }
+       }
+       group {
+               name: "elm/entry/selection/block_handle";
+               data.item: "position" "BOTH";
+               parts {
+                       part {
+                               name: "bg";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       fixed: 1 1;
+                                       align: 0.5 0.25;
+                                       min: 50 80;
+                                       color: 0 0 0 0;
+                               }
+                       }
+                       part {
+                               name: "handle";
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       fixed: 1 1;
+                                       align: 0.5 0.0;
+                                       min: 48 66;
+                                       rel1 {
+                                               relative: 0.0 0.0;
+                                               offset: 0 0;
+                                       }
+                                       rel2 {
+                                               relative: 0.0 0.0;
+                                               offset: 0 0;
+                                       }
+                                       image {
+                                               border: 0 0 0 0;
+                                       }
+                                       image.middle: SOLID;
+                                       fill.smooth: 0;
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+               }
+               programs {
+                       program {
+                               name: "focused";
+                               signal: "elm,action,focus";
+                               source: "elm";
+                               action: STATE_SET "show" 0.0;
+                               target: "handle";
+                       }
+                       program {
+                               name: "unfocused";
+                               signal: "elm,action,unfocus";
+                               source: "elm";
+                               action: STATE_SET "default" 0.0;
+                               target: "handle";
+                       }
+               }
+       }
+       group {
+               name: "elm/entry/selection/block_handle_top";
+               data.item: "position" "BOTH";
+               parts {
+                       part {
+                               name: "bg";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 1;
+                                       fixed: 1 1;
+                                       align: 0.5 0.75;
+                                       min: 50 80;
+                                       color: 0 0 0 0;
+                               }
+                       }
+                       part {
+                               name: "handle";
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       fixed: 1 1;
+                                       align: 0.5 1.0;
+                                       min: 48 66;
+                                       rel1 {
+                                               relative: 0.0 0.0;
+                                               offset: 0 0;
+                                       }
+                                       rel2 {
+                                               relative: 0.0 0.0;
+                                               offset: 0 0;
+                                       }
+                                       image {
+                                               border: 0 0 0 0;
+                                       }
+                                       image.middle: SOLID;
+                                       fill.smooth: 0;
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+               }
+               programs {
+                       program {
+                               name: "focused";
+                               signal: "elm,action,focus";
+                               source: "elm";
+                               action: STATE_SET "show" 0.0;
+                               target: "handle";
+                       }
+                       program {
+                               name: "unfocused";
+                               signal: "elm,action,unfocus";
+                               source: "elm";
+                               action: STATE_SET "default" 0.0;
+                               target: "handle";
+                       }
+               }
+       }
+       group {
+               name: "elm/entry/anchor/default";
+               parts {
+                       part {
+                               name: "bg";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                                       color: 128 0 0 64;
+                               }
+                       }
+               }
+       }
+}
diff --git a/lock_pwd/res/edje/lock_pwd.edc b/lock_pwd/res/edje/lock_pwd.edc
new file mode 100755 (executable)
index 0000000..0f974f3
--- /dev/null
@@ -0,0 +1,120 @@
+/*
+ * 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 WIN_WIDTH 720
+#define WIN_HEIGHT 1280
+
+#define INDICATOR_HEIGHT 52
+
+/* simple password */
+#define HELP_TEXT_AREA_HEIGHT 398
+#define KEYPAD_AREA_HEIGHT 592
+#define CONTROL_AREA_HEIGHT 184
+
+#define NUMBER_PANEL_DOT_WIDTH 32
+#define NUMBER_PANEL_DOT_HEIGHT NUMBER_PANEL_DOT_WIDTH
+#define NUMBER_PANEL_PADDING_LEFT 144
+#define NUMBER_PANEL_PADDING_RIGHT NUMBER_PANEL_PADDING_LEFT
+#define NUMBER_PANEL_WIDTH 96
+#define NUMBER_PANEL_HEIGHT NUMBER_PANEL_WIDTH
+#define NUMBER_PANEL_PADDING 16
+
+#define NUMBER_KEYPAD_PANEL_WIDTH      WIN_WIDTH
+#define NUMBER_KEYPAD_PANEL_HEIGHT     WIN_HEIGHT
+#define NUMBER_KEYPAD_BUTTON_WIDTH     (WIN_WIDTH/3)
+#define NUMBER_KEYPAD_BUTTON_HEIGHT    (KEYPAD_AREA_HEIGHT/4)
+#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 NUMBER_KEYPAD_NUM_SIZE 72
+#define NUMBER_KEYPAD_NUM_TEXT_SIZE 29
+
+/* 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
+
+#define RETURN_TO_CALL_HEIGHT 46
+#define RETURN_TO_CALL_ICON_SIZE 46
+
+
+collections {
+       base_scale: 2.6;
+
+#include "lock_pwd_simple.edc"
+#include "lock_pwd_complex.edc"
+#include "lock_pwd_control_panel.edc"
+
+       group {
+               name: "lock_pwd";
+               parts {
+                       part {
+                               name: "bg";
+                               type: SPACER;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; }
+                                       rel2 { relative: 1.0 1.0; }
+                               }
+                       }
+                       part {
+                               name: "sw.bg";
+                               type: SWALLOW;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { to: "bg"; }
+                                       rel2 { to: "bg"; }
+                               }
+                       }
+                       part {
+                               name: "dim.bg";
+                               type: RECT;
+                               description {
+                                       state: "default" 0.0;
+                                       color: 20 20 20 100;
+                                       rel1 { to: "bg"; }
+                                       rel2 { to: "bg"; }
+                               }
+                       }
+                       part {
+                               name: "sw.lock_pwd";
+                               type: SWALLOW;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { to: "bg"; }
+                                       rel2 { to: "bg"; }
+                               }
+                       }
+               }
+       }
+
+}
diff --git a/lock_pwd/res/edje/lock_pwd_complex.edc b/lock_pwd/res/edje/lock_pwd_complex.edc
new file mode 100755 (executable)
index 0000000..f484c47
--- /dev/null
@@ -0,0 +1,168 @@
+/*
+ * 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=40 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";
+               images {
+                       image: "ls_password_underline.#.png" COMP;
+               }
+               parts {
+                       part {
+                               name: "bg";
+                               type: SPACER;
+                               description {
+                                       state: "default" 0.0;
+                               }
+                       }
+                       part {
+                               name: "padding.top.title";
+                               type: SPACER;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: WIN_WIDTH 153;
+                                       max: WIN_WIDTH 153;
+                                       fixed: 1 1;
+                                       align: 0.5 0.0;
+                               }
+                       }
+                       part {
+                               name: "title";
+                               type: TEXTBLOCK;
+                               scale: 1;
+                               effect: "SHADOW";
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 1.0; to: "padding.top.title"; }
+                                       rel2 { relative: 1.0 1.0; to: "padding.top.title"; }
+                                       align: 0.5 0.0;
+                                       fixed: 1 1;
+                                       color_class: "ATO033";
+                                       text {
+                                               style: "style_simple_title";
+                                               min: 0 1;
+                                               align: 0.5 0.5;
+                                               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: "padding.top.entry";
+                               type: SPACER;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       align: 0.5 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "bg"; }
+                                       rel2 { relative: 1.0 0.0; to: "bg"; }
+                                       min: WIN_WIDTH (INDICATOR_HEIGHT+232);
+                                       max: WIN_WIDTH (INDICATOR_HEIGHT+232);
+                                       fixed: 1 1;
+                               }
+                 }
+                 part {
+                               name: "entry";
+                               type: SWALLOW;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 1.0; to : "padding.top.entry"; }
+                                       rel2 { relative: 1.0 1.0; to : "padding.top.entry"; }
+                                       min: (WIN_WIDTH-32-32) 70;
+                                       max: (WIN_WIDTH-32-32) 70;
+                                       fixed: 1 1;
+                                       align: 0.5 0.0;
+                               }
+                       }
+                       part {
+                               name: "underline";
+                               type: IMAGE;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       fixed: 1 1;
+                                       rel1 { relative: 0.0 1.0; to: "entry"; offset: 0 10;}
+                                       rel2 { relative: 1.0 1.0; to: "entry"; offset: 0 10;}
+                                       min: 0 4;
+                                       max: -1 4;
+                                       image.normal: "ls_password_underline.#.png";
+                               }
+                       }
+                       /* Bottom : changed by IME height */
+                       part {
+                               name: "spacer.bottom";
+                               type: SPACER;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: WIN_WIDTH CONTROL_AREA_HEIGHT;
+                                       max: WIN_WIDTH CONTROL_AREA_HEIGHT;
+                                       fixed: 1 1;
+                                       align: 0.5 1.0;
+                                       rel1 { relative: 0.0 1.0; to: "bg"; }
+                                       rel2 { relative: 1.0 1.0; to: "bg"; }
+                               }
+                       }
+                       part {
+                               name: "control_panel";
+                               type: SWALLOW;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       align: 0.5 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "spacer.bottom"; }
+                                       rel2 { relative: 1.0 1.0; to: "spacer.bottom"; }
+                               }
+                       }
+               } //parts
+               programs {
+                       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";
+                       }
+               } //programs
+       } //gorup
diff --git a/lock_pwd/res/edje/lock_pwd_control_panel.edc b/lock_pwd/res/edje/lock_pwd_control_panel.edc
new file mode 100644 (file)
index 0000000..c4415a5
--- /dev/null
@@ -0,0 +1,329 @@
+/*
+ * 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: "btn_text_style";
+                       base: "font=Tizen:style=Regular color=#FFFFFF font_size=32 wrap=none align=center";
+               }
+       }
+
+       group {
+               name: "lock-control-panel";
+               images {
+                       image: "event_close_bg.#.png" COMP;
+               }
+               parts {
+                       part {
+                               name: "bg";
+                               type: SPACER;
+                               description {
+                                       state: "default" 0.0;
+                               }
+                       }
+                       part {
+                               name: "padding.top";
+                               type: SPACER;
+                               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;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "bg"; }
+                                       rel2 { relative: 38/WIN_WIDTH 1.0; to: "bg"; }
+                               }
+                       }
+                       part {
+                               name: "padding.right";
+                               type: SPACER;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: (WIN_WIDTH-50)/WIN_WIDTH 0.0; to: "bg"; }
+                                       rel2 { relative: 1.0 1.0; to: "bg"; }
+                               }
+                       }
+                       part {
+                               name: "padding.bottom";
+                               type: SPACER;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 (CONTROL_AREA_HEIGHT-42)/CONTROL_AREA_HEIGHT; to: "bg"; }
+                                       rel2 { relative: 1.0 1.0; to: "bg"; }
+                               }
+                       }
+
+                       /* Return to Call*/
+                       part {
+                               name: "sw.btn.return_to_call";
+                               type: SWALLOW;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       align: 0.0 1.0;
+                                       min: 1 46;
+                                       rel1 { relative: 1.0 0.0; to_x: "padding.left"; to_y: "padding.btn"; }
+                                       rel2 { relative: 0.0 0.0; to_x: "btn.cancel"; to_y: "padding.btn"; }
+                               }
+                       }
+
+                       part {
+                               name: "padding.btn";
+                               type: SPACER;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       align: 0.0 1.0;
+                                       min: WIN_WIDTH 16;
+                                       max: WIN_WIDTH 16;
+                                       rel1 { relative: 0.0 0.0; to_x: "bg"; to_y: "sw.btn.plmn"; }
+                                       rel2 { relative: 1.0 0.0; to_x: "bg"; to_y: "sw.btn.plmn"; }
+                               }
+                       }
+
+                       /* PLMN-SPN */
+                       part {
+                               name: "sw.btn.plmn";
+                               type: SWALLOW;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       align: 0.0 1.0;
+                                       min: 1 46;
+                                       rel1 { relative: 1.0 0.0; to_x: "padding.left"; to_y: "padding.bottom"; }
+                                       rel2 { relative: 0.0 0.0; to_x: "btn.cancel"; to_y: "padding.bottom"; }
+                               }
+                       }
+
+                       /* Cancel */
+                       part {
+                               name: "rect.cancel.btn";
+                               type: SPACER;
+                               description {
+                                       state: "default" 0.0;
+                                       align: 1.0 1.0;
+                                       rel1 { to: "txt.cancel"; }
+                                       rel2 { to: "txt.cancel"; }
+                               }
+                       }
+                       part {
+                               name: "txt.cancel";
+                               type: TEXTBLOCK;
+                               scale: 1;
+                               repeat_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       align: 1.0 1.0;
+                                       rel1 { relative: 0.0 0.0; to_x: "padding.right"; to_y: "padding.bottom"; }
+                                       rel2 { relative: 0.0 0.0; to_x: "padding.right"; to_y: "padding.bottom"; }
+                                       text {
+                                               style: "btn_text_style";
+                                               min: 1 1;
+                                               ellipsis: -1;
+                                               align: 0.5 0.5;
+                                               text: "CANCEL";
+                                       }
+                               }
+                       }
+                       part {
+                               name: "btn.cancel";
+                               type: IMAGE;
+                               description {
+                                       state: "default" 0.0;
+                                       align: 1.0 0.0;
+                                       rel1 { to: "txt.cancel"; offset: -10 0; }
+                                       rel2 { to: "txt.cancel"; offset: 10 0; }
+                                       image {
+                                               normal: "event_close_bg.#.png";
+                                       }
+                                       color: 100 100 100 100;
+                               }
+                               description {
+                                       state: "press" 0.0;
+                                       inherit: "default" 0.0;
+                                       color: 50 50 50 50;
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       color: 178 178 178 178;
+                               }
+                       }
+                       part {
+                               name: "btn.cancel.block";
+                               type: RECT;
+                               mouse_events: 1;
+                               repeat_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { to: "btn.cancel"; }
+                                       rel2 { to: "btn.cancel"; }
+                                       color: 0 0 0 0;
+                                       visible: 0;
+                               }
+                               description {
+                                       state: "show" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                       }
+               }
+               programs {
+                       program {
+                               signal: "btn,cancel,enable";
+                               source: "prog";
+                               action: STATE_SET "default" 0.0;
+                               target: "btn.cancel.block";
+                               target: "btn.cancel";
+                       }
+                       program {
+                               signal: "btn,cancel,disable";
+                               source: "prog";
+                               action: STATE_SET "show" 0.0;
+                               target: "btn.cancel.block";
+                               target: "btn.cancel";
+                       }
+                       program {
+                               name: "btn,cancel,press";
+                               signal: "mouse,down,1";
+                               source: "btn.cancel";
+                               action: STATE_SET "press" 0.0;
+                               target: "btn.cancel";
+                       }
+                       program {
+                               name: "btn,cancel,release";
+                               signal: "mouse,up,1";
+                               source: "btn.cancel";
+                               action: STATE_SET "default" 0.0;
+                               target: "btn.cancel";
+                       }
+                       program {
+                               name: "btn,cancel,clicked";
+                               signal: "mouse,clicked,1";
+                               source: "btn.cancel";
+                               action: SIGNAL_EMIT "btn,cancel,clicked" "btn.cancel";
+                       }
+               }
+       }
+
+       group {
+               name: "btn-return-to-call";
+               images {
+                       image: "ls_icon_call.png" COMP;
+               }
+               parts {
+                       part {
+                               name: "bg";
+                               type: SPACER;
+                               description {
+                                       state: "default" 0.0;
+                               }
+                       }
+                       part {
+                               name: "img.call.icon";
+                               type: IMAGE;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       align: 0.0 0.0;
+                                       min: RETURN_TO_CALL_ICON_SIZE RETURN_TO_CALL_ICON_SIZE;
+                                       max: RETURN_TO_CALL_ICON_SIZE RETURN_TO_CALL_ICON_SIZE;
+                                       rel1 { relative: 0.0 0.0; to: "bg"; }
+                                       rel2 { relative: 0.0 0.0; to: "bg"; }
+                                       image {
+                                               normal: "ls_icon_call.png";
+                                       }
+                               }
+                       }
+                       part {
+                               name: "padding.icon";
+                               type: SPACER;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       align: 0.0 0.0;
+                                       min: 10 RETURN_TO_CALL_HEIGHT;
+                                       max: 10 RETURN_TO_CALL_HEIGHT;
+                                       rel1 { relative: 1.0 0.0; to_x: "img.call.icon"; to_y: "bg"; }
+                                       rel2 { relative: 1.0 1.0; to_x: "img.call.icon"; to_y: "bg"; }
+                               }
+                       }
+                       part {
+                               name: "txt.return_to_call";
+                               type: TEXTBLOCK;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       align: 0.0 0.0;
+                                       rel1 { relative: 1.0 0.0; to_x: "padding.icon"; to_y: "bg"; }
+                                       rel2 { relative: 1.0 1.0; to_x: "padding.icon"; to_y: "bg"; }
+                                       text {
+                                               style: "btn_text_style";
+                                               min: 1 1;
+                                               ellipsis: -1;
+                                               align: 0.0 0.5;
+                                               text: "Return to call";
+                                       }
+                               }
+                       }
+                       part {
+                               name: "btn.return_to_call";
+                               type: RECT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       align: 0.0 0.0;
+                                       color: 0 0 0 0;
+                                       rel1 { relative: 0.0 0.0; to_x: "img.call.icon"; to_y: "bg"; }
+                                       rel2 { relative: 1.0 1.0; to_x: "txt.return_to_call"; to_y: "bg"; }
+                               }
+                               description {
+                                       state: "press" 0.0;
+                                       inherit: "default" 0.0;
+                                       color: 50 50 50 50;
+                               }
+                       }
+               }
+               programs {
+                       program {
+                               name: "btn,return_to_call,press";
+                               signal: "mouse,down,1";
+                               source: "btn.return_to_call";
+                               action: STATE_SET "press" 0.0;
+                               target: "btn.return_to_call";
+                       }
+                       program {
+                               name: "btn,return_to_call,release";
+                               signal: "mouse,up,1";
+                               source: "btn.return_to_call";
+                               action: STATE_SET "default" 0.0;
+                               target: "btn.return_to_call";
+                       }
+                       program {
+                               name: "btn,return_to_call,clicked";
+                               signal: "mouse,clicked,1";
+                               source: "btn.return_to_call";
+                               action: SIGNAL_EMIT "btn,return_to_call,clicked" "btn.return_to_call";
+                       }
+               }
+       }
diff --git a/lock_pwd/res/edje/lock_pwd_simple.edc b/lock_pwd/res/edje/lock_pwd_simple.edc
new file mode 100755 (executable)
index 0000000..759435b
--- /dev/null
@@ -0,0 +1,452 @@
+/*
+ * 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; \
+                               mouse_events: 1; \
+                               repeat_events: 1; \
+                               description { \
+                                       state: "default" 0.0; \
+                                       color: 0 0 0 0; \
+                                       fixed: 1 1; \
+                                       rel1 { relative: NUMBER_KEYPAD_REL_W(offx) NUMBER_KEYPAD_REL_H(WIN_HEIGHT-CONTROL_AREA_HEIGHT-KEYPAD_AREA_HEIGHT+offy); to:"bg";} \
+                                       rel2 { relative: NUMBER_KEYPAD_REL_W(offx+NUMBER_KEYPAD_BUTTON_WIDTH) NUMBER_KEYPAD_REL_H(WIN_HEIGHT-CONTROL_AREA_HEIGHT-KEYPAD_AREA_HEIGHT+offy+NUMBER_KEYPAD_BUTTON_HEIGHT); to:"bg"; } \
+                               } \
+                               description { \
+                                       state: "pressed" 0.0; \
+                                       inherit: "default" 0.0; \
+                                       color: BUTTON_PRESSED_COLOR; \
+                               } \
+                               description { \
+                                       state: "hide" 0.0; \
+                                       visible: 0; \
+                               } \
+                       } \
+                       part { \
+                               name: keypad_button"_feedback"; \
+                               type: RECT; \
+                               repeat_events: 1; \
+                               description { \
+                                       state: "default" 0.0; \
+                                       fixed: 1 1; \
+                                       color: BUTTON_PRESSED_COLOR; \
+                                       visible: 0; \
+                                       rel1.to: keypad_button; \
+                                       rel2.to: keypad_button; \
+                               } \
+                               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; \
+                                       fixed: 1 1; \
+                                       align: 0.5 0.5; \
+                                       color_class: PASS_KEY_NUM_COLOR; \
+                                       visible: 1; \
+                                       rel1 { relative: 0.0 (17)/NUMBER_KEYPAD_BUTTON_HEIGHT; to: keypad_button;} \
+                                       rel2 { relative: 1.0 (17+81)/NUMBER_KEYPAD_BUTTON_HEIGHT; to: keypad_button;} \
+                                       text { \
+                                               align: 0.5 0.5; \
+                                               size: NUMBER_KEYPAD_NUM_SIZE; \
+                                               text: button_number; \
+                                               font: "Tizen:style=SNum-3L"; \
+                                               text_class: "tizen"; \
+                                       } \
+                               } \
+                               description { \
+                                       state: "hide" 0.0; \
+                                       inherit: "default" 0.0; \
+                                       visible: 0; \
+                               } \
+                               description { \
+                                       state: "center" 0.0; \
+                                       inherit: "default" 0.0; \
+                                       align: 0.5 0.5; \
+                                       rel1 { relative: 0.0 0.0; to: keypad_button;} \
+                                       rel2 { relative: 1.0 1.0; to: keypad_button;} \
+                                       text { \
+                                               align: 0.5 0.5; \
+                                               size: NUMBER_KEYPAD_NUM_SIZE; \
+                                               text: button_number; \
+                                               font: "Tizen:style=SNum-3L"; \
+                                               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; \
+                                       fixed: 1 1; \
+                                       align: 0.5 0.5; \
+                                       color_class: PASS_KEY_SUB_COLOR; \
+                                       rel1 { relative: 0.0 (17+81)/NUMBER_KEYPAD_BUTTON_HEIGHT; to: keypad_button;} \
+                                       rel2 { relative: 1.0 (17+81+24)/NUMBER_KEYPAD_BUTTON_HEIGHT; to: keypad_button;} \
+                                       text { \
+                                               size: NUMBER_KEYPAD_NUM_TEXT_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: "panel"idx; \
+               type: TEXT; \
+               scale: 1; \
+               effect: "SHADOW"; \
+               description { \
+                       state: "default" 0.0; \
+                       fixed: 1 1; \
+                       rel1 { relative: NUMBER_KEYPAD_REL_W(NUMBER_PANEL_PADDING_LEFT+(idx*(NUMBER_PANEL_WIDTH+NUMBER_PANEL_PADDING))) NUMBER_KEYPAD_REL_H(INDICATOR_HEIGHT+HELP_TEXT_AREA_HEIGHT-166+35); to: "bg"; } \
+                       rel2 { relative: NUMBER_KEYPAD_REL_W(NUMBER_PANEL_PADDING_LEFT+(idx*(NUMBER_PANEL_WIDTH+NUMBER_PANEL_PADDING))+NUMBER_PANEL_WIDTH) NUMBER_KEYPAD_REL_H(INDICATOR_HEIGHT+HELP_TEXT_AREA_HEIGHT-166+35+NUMBER_PANEL_HEIGHT); to: "bg"; } \
+                       text { \
+                               size: 90; \
+                               font: "Tizen:style=SNum-3L"; \
+                               text_class: "tizen"; \
+                       } \
+                       visible: 0; \
+               } \
+               description { \
+                       state: "show" 0.0; \
+                       inherit: "default" 0.0; \
+                       visible: 1; \
+               } \
+       } \
+       part { \
+               name: "dot"idx; \
+               type: IMAGE; \
+               scale: 1; \
+               description { \
+                       state: "default" 0.0; \
+                       fixed: 1 1; \
+                       min: NUMBER_PANEL_DOT_WIDTH NUMBER_PANEL_DOT_HEIGHT; \
+                       max: NUMBER_PANEL_DOT_WIDTH NUMBER_PANEL_DOT_HEIGHT; \
+                       rel1 { to: "panel"idx; } \
+                       rel2 { to: "panel"idx; } \
+                       image { \
+                               normal: "ls_pin_dot.png"; \
+                       } \
+                       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=ATO030 font_size=40 wrap=mixed align=center style=shadow shadow_color=#000000bf text_class=ATO030";
+               tag: "br" "\n";
+               tag: "hilight" "+ color=#ffff";
+               tag: "b" "+ color=#ffff";
+               tag: "tab" "\t";
+       }
+}
+
+       group {
+               name: "lock-simple-password";
+               images {
+                       image: "ls_pin_dot.png" COMP;
+                       image: "ls_back_02_nor.png" COMP;
+                       image: "ls_back_02_press.png" COMP;
+               }
+               parts {
+                       part {
+                               name: "bg";
+                               type: SPACER;
+                               description {
+                                       state: "default" 0.0;
+                               }
+                       }
+                       part {
+                               name: "title";
+                               type: TEXTBLOCK;
+                               scale: 1;
+                               effect: "SHADOW";
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 (INDICATOR_HEIGHT+HELP_TEXT_AREA_HEIGHT-166-25-54)/WIN_HEIGHT; to: "bg"; }
+                                       rel2 { relative: 1.0 (INDICATOR_HEIGHT+HELP_TEXT_AREA_HEIGHT-166-25)/WIN_HEIGHT; to: "bg"; }
+                                       fixed: 1 1;
+                                       color_class: "ATO033";
+                                       text {
+                                               style: "style_simple_title";
+                                               min: 0 1;
+                                               align: 0.5 0.5;
+                                               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, 0, "2", "ABC");
+                       PART_KEYPAD_BUTTON_NUMBER("3", 2*(NUMBER_KEYPAD_BUTTON_WIDTH), 0, "3", "DEF");
+                       PART_KEYPAD_BUTTON_NUMBER("4", 0, NUMBER_KEYPAD_BUTTON_HEIGHT, "4", "GHI");
+                       PART_KEYPAD_BUTTON_NUMBER("5", NUMBER_KEYPAD_BUTTON_WIDTH, NUMBER_KEYPAD_BUTTON_HEIGHT, "5", "JKL");
+                       PART_KEYPAD_BUTTON_NUMBER("6", 2*(NUMBER_KEYPAD_BUTTON_WIDTH), NUMBER_KEYPAD_BUTTON_HEIGHT, "6", "MNO");
+                       PART_KEYPAD_BUTTON_NUMBER("7", 0, 2*(NUMBER_KEYPAD_BUTTON_HEIGHT), "7", "PQRS");
+                       PART_KEYPAD_BUTTON_NUMBER("8", NUMBER_KEYPAD_BUTTON_WIDTH, 2*(NUMBER_KEYPAD_BUTTON_HEIGHT), "8", "TUV");
+                       PART_KEYPAD_BUTTON_NUMBER("9", 2*(NUMBER_KEYPAD_BUTTON_WIDTH), 2*(NUMBER_KEYPAD_BUTTON_HEIGHT), "9", "WXYZ");
+                       PART_KEYPAD_BUTTON_NUMBER("0", NUMBER_KEYPAD_BUTTON_WIDTH, 3*(NUMBER_KEYPAD_BUTTON_HEIGHT), "0", "");
+
+                       part {
+                               name: "Backspace";
+                               type: IMAGE;
+                               repeat_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: NUMBER_KEYPAD_REL_W(2*(NUMBER_KEYPAD_BUTTON_WIDTH)) NUMBER_KEYPAD_REL_H(WIN_HEIGHT-CONTROL_AREA_HEIGHT-KEYPAD_AREA_HEIGHT+3*(NUMBER_KEYPAD_BUTTON_HEIGHT)); to: "bg"; }
+                                       rel2 { relative: NUMBER_KEYPAD_REL_W(2*(NUMBER_KEYPAD_BUTTON_WIDTH)+NUMBER_KEYPAD_BUTTON_WIDTH) NUMBER_KEYPAD_REL_H(WIN_HEIGHT-CONTROL_AREA_HEIGHT-KEYPAD_AREA_HEIGHT+3*(NUMBER_KEYPAD_BUTTON_HEIGHT)+NUMBER_KEYPAD_BUTTON_HEIGHT); to: "bg"; }
+                                       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";
+                               }
+                       }
+                       part {
+                               name: "Backspace_feedback";
+                               type: RECT;
+                               mouse_events: 1;
+                               repeat_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { to: "Backspace"; }
+                                       rel2 { to: "Backspace"; }
+                                       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;
+                               }
+                       }
+                       /* Bottom */
+                       part {
+                               name: "control_panel";
+                               type: SWALLOW;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 (WIN_HEIGHT-CONTROL_AREA_HEIGHT)/WIN_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/lock_pwd/src/lock_pwd_complex.c b/lock_pwd/src/lock_pwd_complex.c
new file mode 100644 (file)
index 0000000..dd70267
--- /dev/null
@@ -0,0 +1,397 @@
+/*
+ * 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 MAX_COMPLEX_PASSWORD_NUM 16
+#define LOCK_PWD_ENTRY_EDJE_FILE "/usr/share/starter/lock_pwd/res/edje/lock_entry.edj"
+
+static struct _s_lock_pwd_complex {
+       Evas_Object *pwd_complex_layout;
+       Evas_Object *pwd_complex_entry;
+
+       Eina_Bool is_blocked;
+       Ecore_Timer *timer_pin;
+       Elm_Theme *entry_theme;
+       int pin_time_remain;
+} s_lock_pwd_complex = {
+       .pwd_complex_layout = NULL,
+       .pwd_complex_entry = NULL,
+
+       .is_blocked = EINA_FALSE,
+       .timer_pin = NULL,
+       .entry_theme = 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_PASSWORD"));
+
+       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_IDLE_BODY_INCORRECT_PASSWORD"), 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_IDLE_BODY_INCORRECT_PASSWORD"), 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) {
+                       if (!lock_mgr_lockscreen_launch()) {
+                               _E("Failed to launch lockscreen");
+                       }
+               }
+       }
+
+       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_IDLE_BODY_INCORRECT_PASSWORD"), 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)
+{
+       char buf[BUF_SIZE_256] = { 0, };
+       char *markup_txt = NULL;
+
+       ret_if(!obj);
+
+       const char *password = elm_entry_entry_get(obj);
+       ret_if(!password);
+
+       markup_txt = elm_entry_utf8_to_markup(password);
+       snprintf(buf, sizeof(buf), "%s", markup_txt);
+       free(markup_txt);
+
+       lock_pwd_event_e pwd_event = lock_pwd_verification_verify(buf);
+       lock_pwd_complex_event(pwd_event);
+}
+
+
+
+static void _pwd_complex_entry_customize(Evas_Object *entry)
+{
+       static Elm_Entry_Filter_Limit_Size limit_filter_data_alpha;
+       Elm_Theme *th = elm_theme_new();
+       ret_if(!th);
+
+       elm_theme_ref_set(th, NULL);
+       elm_theme_extension_add(th, LOCK_PWD_ENTRY_EDJE_FILE);
+       elm_object_theme_set(entry, th);
+       elm_object_style_set(entry, "lockscreen_complex_password_style");
+       limit_filter_data_alpha.max_char_count = MAX_COMPLEX_PASSWORD_NUM;
+       limit_filter_data_alpha.max_byte_count = 0;
+       elm_entry_markup_filter_append(entry, elm_entry_filter_limit_size, &limit_filter_data_alpha);
+
+       s_lock_pwd_complex.entry_theme = th;
+}
+
+
+
+Evas_Object *_pwd_complex_entry_create(void *data)
+{
+       Evas_Object *parent = NULL;
+       Evas_Object *entry = NULL;
+
+       parent = (Evas_Object *)data;
+       retv_if(!parent, NULL);
+
+       entry = elm_entry_add(parent);
+       retv_if(!entry, NULL);
+
+       _pwd_complex_entry_customize(entry);
+
+       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_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;
+}
+
+
+
+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_PASSWORD"));
+
+       /* create control panel */
+       pwd_control_panel = lock_pwd_control_panel_create(pwd_complex_layout);
+       if (pwd_control_panel) {
+               elm_object_part_content_set(pwd_complex_layout, "control_panel", pwd_control_panel);
+       } else {
+               _E("Failed to create password control panel");
+       }
+
+       evas_object_show(pwd_complex_layout);
+
+       return pwd_complex_layout;
+
+ERROR:
+       _E("Failed to create complex password layout");
+
+       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_destroy(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.entry_theme) {
+               elm_theme_free(s_lock_pwd_complex.entry_theme);
+               s_lock_pwd_complex.entry_theme = 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_PASSWORD"));
+       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/lock_pwd/src/lock_pwd_control_panel.c b/lock_pwd/src/lock_pwd_control_panel.c
new file mode 100644 (file)
index 0000000..52a6675
--- /dev/null
@@ -0,0 +1,263 @@
+/*
+ * 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 <call-manager.h>
+
+#include "lock_mgr.h"
+#include "util.h"
+#include "lock_pwd_util.h"
+#include "lock_pwd_control_panel.h"
+
+static struct _s_lock_pwd_control_panel {
+       Evas_Object *control_panel_layout;
+       Evas_Object *btn_cancel;
+       Evas_Object *btn_return_to_call;
+       Evas_Object *btn_plmn;
+       cm_client_h cm_handle;
+} s_lock_pwd_control_panel = {
+       .control_panel_layout = NULL,
+       .btn_cancel = NULL,
+       .btn_return_to_call = NULL,
+       .btn_plmn = NULL,
+       .cm_handle = NULL,
+};
+
+
+
+
+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, "btn,cancel,enable", "prog");
+       } else {
+               elm_object_signal_emit(s_lock_pwd_control_panel.control_panel_layout, "btn,cancel,disable", "prog");
+       }
+}
+
+
+
+static void _btn_cancel_clicked_cb(void *data, Evas_Object *obj, const char *emission, const char *source)
+{
+       _D("Cancel button is clicked");
+
+       lock_mgr_sound_play(LOCK_SOUND_TAP);
+
+       if (!lock_mgr_lockscreen_launch()) {
+               _E("Failed to launch lockscreen");
+       }
+
+       lock_pwd_util_view_init();
+}
+
+
+
+static void _btn_return_to_call_clicked_cb(void *data, Evas_Object *obj, const char *emission, const char *source)
+{
+       _D("'Return to call' button is clicked");
+
+       ret_if(!s_lock_pwd_control_panel.cm_handle);
+
+       cm_activate_ui(s_lock_pwd_control_panel.cm_handle);
+}
+
+
+
+static Evas_Object *_create_btn_return_to_call(Evas_Object *parent)
+{
+       Evas_Object *layout = NULL;
+
+       retv_if(!parent, NULL);
+
+       layout = elm_layout_add(parent);
+       retv_if(!layout, NULL);
+
+       if (!elm_layout_file_set(layout, LOCK_PWD_EDJE_FILE, "btn-return-to-call")) {
+               _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);
+
+       elm_object_signal_callback_add(layout, "btn,return_to_call,clicked", "btn.return_to_call", _btn_return_to_call_clicked_cb, NULL);
+
+       evas_object_show(layout);
+
+       return layout;
+
+error:
+       if (layout) {
+               evas_object_del(layout);
+       }
+
+       return NULL;
+}
+
+
+
+static void _destroy_btn_return_to_call(void)
+{
+       if (s_lock_pwd_control_panel.btn_return_to_call) {
+               elm_object_signal_callback_del(s_lock_pwd_control_panel.btn_return_to_call, "btn,return_to_call,clicked", "btn.return_to_call", _btn_return_to_call_clicked_cb);
+               evas_object_del(s_lock_pwd_control_panel.btn_return_to_call);
+               s_lock_pwd_control_panel.btn_return_to_call = NULL;
+       }
+}
+
+
+
+#if 0
+static Evas_Object *_create_btn_plmn(Evas_Object *parent)
+{
+       Evas_Object *plmn = NULL;
+
+       return plmn;
+}
+#endif
+
+
+static void _destroy_btn_plmn(void)
+{
+       if (s_lock_pwd_control_panel.btn_plmn) {
+               evas_object_del(s_lock_pwd_control_panel.btn_plmn);
+               s_lock_pwd_control_panel.btn_plmn = NULL;
+       }
+}
+
+
+
+static void _call_status_changed_cb(cm_call_status_e call_status, const char *call_num, void *user_data)
+{
+       Evas_Object *control_panel_layout = NULL;
+       Evas_Object *btn_return_to_call = NULL;
+
+       control_panel_layout = user_data;
+       ret_if(!control_panel_layout);
+
+       btn_return_to_call = elm_object_part_content_get(control_panel_layout, "sw.btn.return_to_call");
+
+       switch (call_status) {
+       case CM_CALL_STATUS_IDLE:
+               if (btn_return_to_call) {
+                       _D("remove 'Return to call' button");
+                       _destroy_btn_return_to_call();
+               }
+               break;
+       case CM_CALL_STATUS_RINGING:
+       case CM_CALL_STATUS_OFFHOOK:
+               if (!btn_return_to_call) {
+                       _D("create 'Return to call' button");
+                       btn_return_to_call = _create_btn_return_to_call(control_panel_layout);
+                       if (btn_return_to_call) {
+                               elm_object_part_content_set(control_panel_layout, "sw.btn.return_to_call", btn_return_to_call);
+                               s_lock_pwd_control_panel.btn_return_to_call = btn_return_to_call;
+                       } else {
+                               _E("Failed to add a button for Return to call");
+                       }
+               }
+               break;
+       default:
+               _E("call status error : %d", call_status);
+               break;
+       }
+}
+
+
+
+Evas_Object *lock_pwd_control_panel_create(Evas_Object *parent)
+{
+       Evas_Object *control_panel_layout = NULL;
+       int ret = 0;
+
+       /* Initialize callmgr-client */
+       cm_init(&s_lock_pwd_control_panel.cm_handle);
+
+       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);
+
+#if 0
+       /* plmn button */
+       Evas_Object *btn_plmn = NULL;
+       btn_plmn = _create_btn_plmn(control_panel_layout);
+       if (btn_plmn) {
+               elm_object_part_content_set(control_panel_layout, "sw.btn.plmn", btn_plmn);
+               s_lock_pwd_control_panel.btn_plmn = btn_plmn;
+       } else {
+               _E("Failed to add a button for PLMN");
+       }
+#endif
+
+       /* cancel button */
+       elm_object_part_text_set(control_panel_layout, "txt.cancel", _("IDS_COM_BUTTON_CANCEL"));
+       elm_object_signal_callback_add(control_panel_layout, "btn,cancel,clicked", "btn.cancel", _btn_cancel_clicked_cb, NULL);
+
+       evas_object_show(control_panel_layout);
+
+       ret = cm_set_call_status_cb(s_lock_pwd_control_panel.cm_handle, _call_status_changed_cb, control_panel_layout);
+       if (ret != CM_ERROR_NONE) {
+               _E("Failed to register call status callback");
+       }
+
+       return control_panel_layout;
+
+ERROR:
+       _E("Failed to create password control panel");
+
+       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)
+{
+       _destroy_btn_return_to_call();
+       _destroy_btn_plmn();
+
+       if (s_lock_pwd_control_panel.btn_cancel) {
+               elm_object_signal_callback_del(s_lock_pwd_control_panel.control_panel_layout, "btn,cancel,clicked", "btn.cancel", _btn_cancel_clicked_cb);
+               evas_object_del(s_lock_pwd_control_panel.btn_cancel);
+               s_lock_pwd_control_panel.btn_cancel= 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;
+       }
+
+       /* Deinitialize callmgr-client */
+       cm_unset_call_status_cb(s_lock_pwd_control_panel.cm_handle);
+       cm_deinit(s_lock_pwd_control_panel.cm_handle);
+       s_lock_pwd_control_panel.cm_handle = NULL;
+}
diff --git a/lock_pwd/src/lock_pwd_simple.c b/lock_pwd/src/lock_pwd_simple.c
new file mode 100755 (executable)
index 0000000..b737464
--- /dev/null
@@ -0,0 +1,450 @@
+/*
+ * 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_SIMPLE_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_SIMPLE_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_SIMPLE_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_SIMPLE_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_destroy(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) {
+                       if (!lock_mgr_lockscreen_launch()) {
+                               _E("Failed to launch lockscreen");
+                       }
+               }
+       }
+
+       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/lock_pwd/src/lock_pwd_util.c b/lock_pwd/src/lock_pwd_util.c
new file mode 100644 (file)
index 0000000..0a2b872
--- /dev/null
@@ -0,0 +1,485 @@
+/*
+ * 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_extension.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;
+}
+
+
+
+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);
+}
+
+
+
+static Evas_Object *_pwd_conformant_add(Evas_Object *parent)
+{
+       Evas_Object *conformant = NULL;
+
+       retv_if(!parent, NULL);
+
+       conformant = elm_conformant_add(parent);
+       retv_if(!conformant, NULL);
+
+       evas_object_size_hint_weight_set(conformant, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       elm_win_resize_object_add(parent, conformant);
+
+       elm_object_signal_emit(conformant, "elm,state,indicator,overlap", "elm");
+
+       evas_object_show(conformant);
+
+       return conformant;
+}
+
+
+void lock_pwd_util_bg_image_set(Evas_Object *bg, char *file)
+{
+       const char *old_filename = NULL;
+       char *lock_bg = NULL;
+       int ret = 0;
+
+       ret_if(!bg);
+
+       elm_image_file_get(bg, &old_filename, NULL);
+       if (!old_filename) {
+               old_filename = LOCK_MGR_DEFAULT_BG_PATH;
+       }
+       _D("old file name : %s", old_filename);
+
+       if (file) {
+               if (!elm_image_file_set(bg, file, NULL)) {
+                       _E("Failed to set image file : %s", file);
+                       goto ERROR;
+               }
+       } else {
+               ret = system_settings_get_value_string(SYSTEM_SETTINGS_KEY_WALLPAPER_LOCK_SCREEN, &lock_bg);
+               if (SYSTEM_SETTINGS_ERROR_NONE != ret) {
+                       _E("Failed to get system setting value : %d", SYSTEM_SETTINGS_KEY_WALLPAPER_LOCK_SCREEN);
+                       goto ERROR;
+               }
+               goto_if(!lock_bg, ERROR);
+
+               _D("lock_bg : %s", lock_bg);
+
+               if (!elm_image_file_set(bg, lock_bg, NULL)) {
+                       _E("Failed to set image file : %s", lock_bg);
+                       goto ERROR;
+               }
+
+               free(lock_bg);
+       }
+
+       return;
+
+ERROR:
+
+       if (!elm_bg_file_set(bg, old_filename, NULL)) {
+               _E("Failed to set old BG file : %s / Retry to set default BG.", old_filename);
+               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;
+               }
+       }
+
+       return;
+}
+
+
+
+static void _wallpaper_lock_screen_changed_cb(system_settings_key_e key, void *data)
+{
+       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_image_add(parent);
+       retv_if(!bg, NULL);
+
+       elm_image_aspect_fixed_set(bg, EINA_TRUE);
+       elm_image_fill_outside_set(bg, EINA_TRUE);
+       elm_image_preload_disabled_set(bg, EINA_TRUE);
+
+       lock_pwd_util_bg_image_set(bg, NULL);
+       evas_object_show(bg);
+
+       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;
+}
+
+
+
+static Evas_Object *_pwd_layout_create(Evas_Object *parent)
+{
+       Evas_Object *layout = NULL;
+
+       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);
+
+       if (!lock_mgr_lockscreen_launch()) {
+               _E("Failed to launch lockscreen");
+       }
+
+       lock_pwd_util_view_init();
+}
+
+
+
+static void __win_resize_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+       Evas_Coord x = 0;
+       Evas_Coord y = 0;
+       Evas_Coord w = 0;
+       Evas_Coord h = 0;
+
+       ret_if(!obj);
+
+       evas_object_geometry_get(obj, &x, &y, &w, &h);
+       _D("win resize : %d, %d(%d*%d)", x, y, w, h);
+}
+
+
+
+static void __conformant_resize_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+       Evas_Coord x = 0;
+       Evas_Coord y = 0;
+       Evas_Coord w = 0;
+       Evas_Coord h = 0;
+
+       ret_if(!obj);
+
+       evas_object_geometry_get(obj, &x, &y, &w, &h);
+       _D("conformant resize : %d, %d(%d*%d)", x, y, w, h);
+}
+
+
+
+static void __layout_resize_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+       Evas_Coord x = 0;
+       Evas_Coord y = 0;
+       Evas_Coord w = 0;
+       Evas_Coord h = 0;
+
+       ret_if(!obj);
+
+       evas_object_geometry_get(obj, &x, &y, &w, &h);
+       _D("layout resize : %d, %d(%d*%d)", x, y, w, h);
+}
+
+
+
+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;
+
+       evas_object_event_callback_add(s_lock_pwd_util.lock_pwd_win, EVAS_CALLBACK_RESIZE, __win_resize_cb, NULL);
+       evas_object_event_callback_add(conformant, EVAS_CALLBACK_RESIZE, __conformant_resize_cb, NULL);
+       evas_object_event_callback_add(conformant, EVAS_CALLBACK_RESIZE, __layout_resize_cb, NULL);
+
+       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_destroy();
+
+       return;
+}
+
+
+
+void lock_pwd_util_destroy(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_destroy();
+       } else if (lock_type == SETTING_SCREEN_LOCK_TYPE_PASSWORD) {
+               lock_pwd_complex_layout_destroy();
+       }
+
+       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);
+       if (!btn) {
+               _E("Failed to create lock popup button");
+               evas_object_del(popup);
+               return;
+       }
+
+       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);
+               eext_object_event_callback_add(popup, EEXT_CALLBACK_BACK, func, popup);
+       } else {
+               evas_object_smart_callback_add(btn, "clicked", _pwd_popup_cb, popup);
+               eext_object_event_callback_add(popup, EEXT_CALLBACK_BACK, _pwd_popup_cb, popup);
+       }
+
+       evas_object_show(popup);
+
+       return;
+}
+
+
+
+void lock_pwd_util_view_init(void)
+{
+       _D("initialize password lock values");
+       int lock_type = 0;
+
+       /* 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) {
+               lock_pwd_complex_view_init();
+       }
+}
+
+
+
+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/lock_pwd/src/lock_pwd_verification.c b/lock_pwd/src/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/packaging/starter-pre.service b/packaging/starter-pre.service
new file mode 100644 (file)
index 0000000..bbbf95b
--- /dev/null
@@ -0,0 +1,7 @@
+[Unit]
+Description=Pre actions for "starter"
+
+[Service]
+Type=oneshot
+ExecStart=/etc/init.d/rd3starter
+SmackProcessLabel=starter
old mode 100755 (executable)
new mode 100644 (file)
index 78fe1b9..08e4873
@@ -1,14 +1,16 @@
 [Unit]
 Description=Start the "starter" program
-After=wm_ready.service ac.service system-server.service launchpad-preload.service
-
+Requires=starter-pre.service
+After=starter-pre.service wm_ready.service ac.service deviced.service launchpad-preload.service
 
 [Service]
-Type=forking
-ExecStart=/etc/init.d/rd3starter
+ExecStart=/usr/bin/starter
 Restart=always
 RestartSec=0
 KillSignal=SIGKILL
+User=system
+Group=system
+SmackProcessLabel=starter
 
 [Install]
 WantedBy=tizen-system.target
old mode 100755 (executable)
new mode 100644 (file)
index 2510b38..5a466c4
@@ -7,20 +7,29 @@ Group:      TO_BE/FILLED_IN
 License:    Apache-2.0
 Source0:    starter-%{version}.tar.gz
 Source1:    starter.service
-Source2:    wait-lock.service
+Source2:    starter-pre.service
+
+%if "%{?tizen_profile_name}"=="tv"
+ExcludeArch: %{arm} %ix86 x86_64
+%endif
+
 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)
+BuildRequires:  pkgconfig(capi-ui-efl-util)
 
 %if "%{?tizen_profile_name}" == "mobile"
 BuildRequires:  tts
 BuildRequires:  tts-devel
 BuildRequires:  pkgconfig(capi-message-port)
+BuildRequires:  pkgconfig(security-server)
+BuildRequires:  pkgconfig(efl-extension)
+BuildRequires:  pkgconfig(callmgr_client)
 %endif
 
 BuildRequires:  pkgconfig(feedback)
@@ -29,19 +38,14 @@ BuildRequires:  pkgconfig(dlog)
 BuildRequires:  pkgconfig(ecore)
 BuildRequires:  pkgconfig(edje)
 BuildRequires: pkgconfig(edbus)
-BuildRequires:  pkgconfig(eet)
 BuildRequires:  pkgconfig(eina)
 BuildRequires:  pkgconfig(elementary)
 BuildRequires:  pkgconfig(evas)
 BuildRequires:  pkgconfig(glib-2.0)
 BuildRequires:  pkgconfig(syspopup-caller)
-BuildRequires:  pkgconfig(tapi)
 BuildRequires:  pkgconfig(ui-gadget-1)
 BuildRequires:  pkgconfig(utilX)
 BuildRequires:  pkgconfig(vconf)
-BuildRequires:  pkgconfig(x11)
-BuildRequires:  pkgconfig(xcomposite)
-BuildRequires:  pkgconfig(xext)
 BuildRequires: pkgconfig(alarm-service)
 BuildRequires: pkgconfig(pkgmgr-info)
 BuildRequires: pkgconfig(deviced)
@@ -72,12 +76,25 @@ export FFLAGS="$FFLAGS -DTIZEN_DEBUG_ENABLE"
 
 %if "%{?tizen_profile_name}" == "mobile"
 echo "tizen_profile_name is 'mobile'"
-%define STARTER_FEATURE_LITE "ENABLE"
-export CFLAGS="$CFLAGS -DFEATURE_LITE"
-export CXXFLAGS="$CXXFLAGS -DFEATURE_LITE"
+%define TIZEN_PROFILE_NAME "MOBILE"
+export CFLAGS="$CFLAGS -DTIZEN_PROFILE_MOBILE"
+export CXXFLAGS="$CXXFLAGS -DTIZEN_PROFILE_MOBILE"
+%else if "%{?tizen_profile_name}" == "wearable"
+echo "tizen_profile_name 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
+export CFLAGS="$CFLAGS -DTIZEN_BUILD_EMULATOR"
+export CXXFLAGS="$CXXFLAGS -DTIZEN_BUILD_EMULATOR"
 %endif
 
-cmake . -DSTARTER_FEATURE_LITE=%{STARTER_FEATURE_LITE} -DCMAKE_INSTALL_PREFIX=%{_prefix}
+cmake . -DTIZEN_PROFILE_NAME=%{TIZEN_PROFILE_NAME} -DCMAKE_INSTALL_PREFIX=%{_prefix}
 
 make
 make -j1
@@ -87,14 +104,17 @@ rm -rf %{buildroot}
 
 mkdir -p %{buildroot}%{_libdir}/systemd/system/multi-user.target.wants
 install -m 0644 %SOURCE1 %{buildroot}%{_libdir}/systemd/system/starter.service
+install -m 0644 %SOURCE2 %{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 %{buildroot}/usr/share/license/%{name}
 mkdir -p %{buildroot}/opt/data/home-daemon
 
+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()
 {
@@ -104,38 +124,7 @@ change_file_executable()
     fi
 }
 
-GOPTION="-u 5000 -f"
-SOPTION="-s system::vconf_inhouse"
-POPTION="-s starter_private::vconf"
-LOPTION="-s system::vconf_setting"
-
-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 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" 0 -i $GOPTION $SOPTION
-vconftool set -t int "memory/starter/use_volume_key" 0 -i $GOPTION $SOPTION
-vconftool set -t int db/starter/missed_call "0" -i -u 5000 -f $SOPTION
-vconftool set -t int db/starter/unread_message "0" -i -u 5000 -f $SOPTION
-
-vconftool set -t string db/svoice/package_name "com.samsung.svoice" -i -u 5000 -f -s svoice::vconf
-
-vconftool set -t string memory/idle-screen/focused_package "" -i $GOPTION $POPTION
-vconftool set -t int memory/idle-screen/is_idle_screen_launched 0 -i $GOPTION $POPTION
-
-vconftool set -t bool memory/lockscreen/sview_state 0 -i $GOPTION $SOPTION
-
-vconftool set -t int memory/lockscreen/security_auto_lock 1 -i $GOPTION $SOPTION
-
-vconftool set -t int file/private/lockscreen/bt_out -70 $GOPTION $POPTION
-vconftool set -t int file/private/lockscreen/bt_in -60 $GOPTION $POPTION
-
 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/
 
 #ln -sf /etc/init.d/rd4starter /etc/rc.d/rc4.d/S81starter
 #ln -sf /etc/init.d/rd4starter /etc/rc.d/rc3.d/S81starter
@@ -150,8 +139,15 @@ sync
 %{_bindir}/starter
 %{_libdir}/systemd/system/starter.service
 %{_libdir}/systemd/system/multi-user.target.wants/starter.service
-%{_libdir}/systemd/system/wait-lock.service
-%{_libdir}/systemd/system/tizen-system.target.wants/wait-lock.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
 /usr/share/license/%{name}
 /opt/data/home-daemon
 /usr/share/locale/*/LC_MESSAGES/*
+/etc/smack/accesses.d/starter.efl
+
+#FOR PASSWORD LOCKSCREEN
+%if "%{?tizen_profile_name}" == "mobile"
+/usr/share/starter/lock_pwd/res/edje/*
+%endif
diff --git a/packaging/wait-lock.service b/packaging/wait-lock.service
deleted file mode 100755 (executable)
index 1147161..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-[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
old mode 100755 (executable)
new mode 100644 (file)
index 51ec894..df8983d
@@ -1,6 +1,16 @@
 # 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(POFILES
+       ar.po az.po bg.po bn.po ca.po cs.po da.po de.po
+       el_GR.po en.po en_PH.po en_US.po es_ES.po es_US.po
+       et.po eu.po fa.po fi.po fr.po fr_CA.po ga.po gl.po
+       gu.po he.po hi.po hr.po hu.po hy.po is.po it_IT.po
+       ja_JP.po ka.po kk.po kn.po ko_KR.po lt.po lv.po mk.po
+       ml.po mn_MN.po nb.po nl.po pl.po pt_BR.po pt_PT.po
+       ro.po ru_RU.po si.po sk.po sl.po sr.po sv.po ta.po
+       te.po th.po tr_TR.po uk.po ur.po uz.po zh_CN.po
+       zh_HK.po zh_TW.po
+       )
 
 SET(MSGFMT "/usr/bin/msgfmt")
 
diff --git a/po/ar.po b/po/ar.po
new file mode 100644 (file)
index 0000000..ecd8035
--- /dev/null
+++ b/po/ar.po
@@ -0,0 +1,57 @@
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "تتبقى محاولة واحدة."
+
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "محاولات متبقية %d"
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "كلمة مرور غير صحيحة."
+
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "يتعذر بدء %s."
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "موافق"
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "خطأ  PIN."
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "أدخل PIN."
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "أدخل كلمة المرور."
+
+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_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "أعد المحاولة خلال %d ثوان."
+
+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_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_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"
+msgstr "يلزم إدخال %1$d إلى %2$d أرقام أو حروف."
+
+msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "مكالمة طوارئ"
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "تحذير"
+
+msgid "IDS_COM_BUTTON_CANCEL"
+msgstr "إلغاء"
+
+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 "يتعذر إلغاء قفل الشاشة"
+
index f9ef67f..8cc6b55 100644 (file)
--- a/po/az.po
+++ b/po/az.po
@@ -1,6 +1,57 @@
-msgid "IDS_TPLATFORM_BODY_SCREEN_READER_ENABLED_T_TTS"
-msgstr "Ekran oxuyucusu aktivdir."
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "1 cəhd qalmışdır."
 
-msgid "IDS_TPLATFORM_BODY_SCREEN_READER_DISABLED_T_TTS"
-msgstr "Ekran oxuyucusu qeyri-aktivdir."
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "%d cəhd qalıb."
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "Yanlış şifrə."
+
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "%s-ə başlamaq mümkün deyildir."
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "Yanlış PIN."
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "PIN daxil et."
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "Kodu daxil et."
+
+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_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "%d saniyə yenidən cəhd 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_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_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_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "Təcili zəng"
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "Xəbərdarlıq"
+
+msgid "IDS_COM_BUTTON_CANCEL"
+msgstr "Ləğv et"
+
+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"
 
index 2128e0a..3ef4412 100644 (file)
--- a/po/bg.po
+++ b/po/bg.po
@@ -1,6 +1,57 @@
-msgid "IDS_TPLATFORM_BODY_SCREEN_READER_ENABLED_T_TTS"
-msgstr "Екранният четец е активиран."
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "1 оставащ опит."
 
-msgid "IDS_TPLATFORM_BODY_SCREEN_READER_DISABLED_T_TTS"
-msgstr "Екранният четец е деактивиран."
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "Остават %d опита."
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "Грешна парола."
+
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "Не може да се стартира %s."
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "Неправилен PIN."
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "Въведете PIN."
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "Въвеждане на парола"
+
+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_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "Опитайте пак след %d сек."
+
+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_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_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"
+msgstr "Задължителни са %1$d до %2$d цифри или букви."
+
+msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "Спешно повикване"
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "Предупреждение"
+
+msgid "IDS_COM_BUTTON_CANCEL"
+msgstr "Отказ"
+
+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 "Екранът не може да се отключи"
 
diff --git a/po/bn.po b/po/bn.po
new file mode 100644 (file)
index 0000000..f9db98f
--- /dev/null
+++ b/po/bn.po
@@ -0,0 +1,57 @@
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "1টি চেষ্টা বাকী।"
+
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "%dটি প্রয়াস বাকি।"
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "ভুল পাসওয়ার্ড।"
+
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "%s লঞ্চ করা যায়নি।"
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "ওকে"
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "ভুল PIN।"
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "PIN লিখুন।"
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "পাসওয়ার্ড লিখুন।"
+
+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_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "%d সেকেন্ড পরে আবার চেষ্টা করুন।"
+
+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_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_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"
+msgstr "%1$d থেকে %2$dটি সংখ্যা বা অক্ষর প্রয়োজনীয়।"
+
+msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "আপৎকালীন কল"
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "সাবধানতা"
+
+msgid "IDS_COM_BUTTON_CANCEL"
+msgstr "বাতিল"
+
+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 "স্ক্রিন আনলক করতে অক্ষম"
+
index e41dbf4..3b54fa0 100644 (file)
--- a/po/ca.po
+++ b/po/ca.po
@@ -1,6 +1,57 @@
-msgid "IDS_TPLATFORM_BODY_SCREEN_READER_ENABLED_T_TTS"
-msgstr "Lector de pantalla habilitat."
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "Queda 1 intent"
 
-msgid "IDS_TPLATFORM_BODY_SCREEN_READER_DISABLED_T_TTS"
-msgstr "Lector de pantalla deshabilitat."
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "Queden %d intents"
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "Contrasenya incorrecta"
+
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "No es pot iniciar %s"
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "Acceptar"
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "PIN incorrecte"
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "Introdueixi PIN"
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "Introduir contrasenya"
+
+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_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "Torni a intentar en %d s"
+
+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_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_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"
+msgstr "Calen de %1$d a %2$d dígits o lletres"
+
+msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "Trucada d'emergència"
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "Advertiment"
+
+msgid "IDS_COM_BUTTON_CANCEL"
+msgstr "Cancel"
+
+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"
 
index f2a093b..7253b83 100644 (file)
--- a/po/cs.po
+++ b/po/cs.po
@@ -1,6 +1,57 @@
-msgid "IDS_TPLATFORM_BODY_SCREEN_READER_ENABLED_T_TTS"
-msgstr "Čtečka displeje byla zapnuta."
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "Zbývá 1 pokus."
 
-msgid "IDS_TPLATFORM_BODY_SCREEN_READER_DISABLED_T_TTS"
-msgstr "Čtečka displeje byla vypnuta."
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "Počet zbývajících pokusů: %d."
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "Nesprávné heslo."
+
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "Nelze spustit %s."
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "Chybný PIN."
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "Zadat PIN."
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "Zadejte heslo."
+
+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_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "Opakujte akci za %d s."
+
+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_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_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"
+msgstr "Musí obsahovat %1$d až %2$d číslic nebo písmen."
+
+msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "Tísňové volání"
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "Upozornění"
+
+msgid "IDS_COM_BUTTON_CANCEL"
+msgstr "Storno"
+
+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"
 
index 04b2a51..e5fae14 100644 (file)
--- a/po/da.po
+++ b/po/da.po
@@ -1,6 +1,57 @@
-msgid "IDS_TPLATFORM_BODY_SCREEN_READER_ENABLED_T_TTS"
-msgstr "Skærmlæser aktiveret."
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "1 forsøg tilbage."
 
-msgid "IDS_TPLATFORM_BODY_SCREEN_READER_DISABLED_T_TTS"
-msgstr "Skærmlæser deaktiveret."
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "%d forsøg tilbage."
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "Forkert adgangskode."
+
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "Kunne ikke starte %s."
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "Forkert PIN-kode."
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "Angiv PIN-kode."
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "Angiv adgangskode."
+
+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_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "Prøv igen om %d sekunder."
+
+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_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_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"
+msgstr "%1$d til %2$d cifre eller bogstaver krævet."
+
+msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "Nødopkald"
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "Advarsel"
+
+msgid "IDS_COM_BUTTON_CANCEL"
+msgstr "Annullér"
+
+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"
 
index 516f1da..e2368bd 100644 (file)
--- a/po/de.po
+++ b/po/de.po
@@ -1,6 +1,57 @@
-msgid "IDS_TPLATFORM_BODY_SCREEN_READER_ENABLED_T_TTS"
-msgstr "Bildschirmleseprogramm aktiviert."
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "Noch 1 Versuch"
 
-msgid "IDS_TPLATFORM_BODY_SCREEN_READER_DISABLED_T_TTS"
-msgstr "Bildschirmleseprogramm deaktiviert."
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "%d Versuche übrig"
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "Falsches Passwort"
+
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "%s kann nicht gestartet werden"
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "Falsche PIN"
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "PIN eingeben"
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "Passwort eingeben"
+
+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_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "In %d s erneut versuchen."
+
+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_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_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"
+msgstr "Es sind %1$d bis %2$d Ziffern oder Buchstaben erforderlich."
+
+msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "Notruf"
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "Warnung"
+
+msgid "IDS_COM_BUTTON_CANCEL"
+msgstr "Abbruch"
+
+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"
 
index 00f22d6..d2e79b3 100644 (file)
@@ -1,6 +1,57 @@
-msgid "IDS_TPLATFORM_BODY_SCREEN_READER_ENABLED_T_TTS"
-msgstr "Î\97 ÎµÏ\86αÏ\81μογή Î±Î½Î¬Î³Î½Ï\89Ï\83ηÏ\82 Î¿Î¸Ï\8cνηÏ\82 ÎµÎ½ÎµÏ\81γοÏ\80οιήθηκε."
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "Î\91Ï\80ομένει 1 Ï\80Ï\81οÏ\83Ï\80άθεια."
 
-msgid "IDS_TPLATFORM_BODY_SCREEN_READER_DISABLED_T_TTS"
-msgstr "Η εφαρμογή ανάγνωσης οθόνης απενεργοποιήθηκε."
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "%d προσπάθειες απομένουν."
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "Λάθος κωδικός."
+
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "Αδύνατη η εκκίνηση του %s."
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "Λανθασμένο PIN κλειδώματος"
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "Εισαγωγή PIN κλειδώματος."
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "Εισαγωγή κωδικού."
+
+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_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "Δοκιμ. ξανά σε %d δευτ."
+
+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_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_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"
+msgstr "Απαιτούνται από %1$d έως %2$d ψηφία ή γράμματα."
+
+msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "Κλήση έκτακτης ανάγκης"
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "Προειδοποίηση"
+
+msgid "IDS_COM_BUTTON_CANCEL"
+msgstr "Ακύρωση"
+
+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 "Ξεκλείδωμα οθόνης μη δυνατό"
 
index 41ba44d..29903c5 100644 (file)
--- a/po/en.po
+++ b/po/en.po
@@ -1,6 +1,57 @@
-msgid "IDS_TPLATFORM_BODY_SCREEN_READER_ENABLED_T_TTS"
-msgstr "Screen reader enabled."
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "1 attempt left."
 
-msgid "IDS_TPLATFORM_BODY_SCREEN_READER_DISABLED_T_TTS"
-msgstr "Screen reader disabled."
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "%d attempts left."
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "Incorrect password."
+
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "Unable to launch %s."
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "Incorrect PIN."
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "Enter PIN."
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "Enter password."
+
+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_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "Try again in %d seconds."
+
+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_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_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"
+msgstr "%1$d to %2$d digits or letters required."
+
+msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "Emergency call"
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "Warning"
+
+msgid "IDS_COM_BUTTON_CANCEL"
+msgstr "Cancel"
+
+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"
 
diff --git a/po/en_PH.po b/po/en_PH.po
new file mode 100644 (file)
index 0000000..6ff6f94
--- /dev/null
@@ -0,0 +1,57 @@
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "1 attempt left."
+
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "%d attempts left."
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "Incorrect password."
+
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "Unable to launch %s."
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "Incorrect PIN."
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "Enter PIN."
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "Enter password"
+
+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_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "Try again in %d seconds."
+
+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_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_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"
+msgstr "%1$d to %2$d digits or letters required."
+
+msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "Emergency call"
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "Warning"
+
+msgid "IDS_COM_BUTTON_CANCEL"
+msgstr "Cancel"
+
+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"
+
index 2a2607e..7ec17e0 100644 (file)
@@ -1,6 +1,57 @@
-msgid "IDS_TPLATFORM_BODY_SCREEN_READER_ENABLED_T_TTS"
-msgstr "Screen reader turned on."
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "1 attempt left."
 
-msgid "IDS_TPLATFORM_BODY_SCREEN_READER_DISABLED_T_TTS"
-msgstr "Screen reader turned off."
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "%d attempts left."
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "Incorrect password."
+
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "Unable to launch %s."
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "Incorrect PIN."
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "Enter PIN"
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "Enter password"
+
+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_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "Try again in %d seconds."
+
+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_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_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"
+msgstr "%1$d to %2$d digits or letters required."
+
+msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "Emergency call"
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "Warning"
+
+msgid "IDS_COM_BUTTON_CANCEL"
+msgstr "Cancel"
+
+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"
 
index 7dd881f..f7e2f19 100644 (file)
@@ -1,6 +1,57 @@
-msgid "IDS_TPLATFORM_BODY_SCREEN_READER_ENABLED_T_TTS"
-msgstr "Lector de pantalla activado."
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "Último intento"
 
-msgid "IDS_TPLATFORM_BODY_SCREEN_READER_DISABLED_T_TTS"
-msgstr "Lector de pantalla desactivado."
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "Quedan %d intentos."
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "Contraseña incorrecta"
+
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "No se puede iniciar %s"
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "PIN incorrecto"
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "Introducir PIN"
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "Introducir contraseña"
+
+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_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "Int. de nuevo en %d seg"
+
+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_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_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"
+msgstr "Se requieren de %1$d a %2$d dígitos o letras"
+
+msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "Llamada de emergencia"
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "Aviso"
+
+msgid "IDS_COM_BUTTON_CANCEL"
+msgstr "Cancelar"
+
+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"
 
index 7dd881f..2d14448 100644 (file)
@@ -1,6 +1,57 @@
-msgid "IDS_TPLATFORM_BODY_SCREEN_READER_ENABLED_T_TTS"
-msgstr "Lector de pantalla activado."
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "Último intento."
 
-msgid "IDS_TPLATFORM_BODY_SCREEN_READER_DISABLED_T_TTS"
-msgstr "Lector de pantalla desactivado."
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "Quedan %d intentos."
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "Contraseña incorrecta."
+
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "No es posible iniciar %s."
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "Aceptar"
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "PIN incorrecto."
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "Introducir PIN."
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "Introducir contraseña."
+
+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_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "Intentar de nuevo en %d segundos"
+
+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_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_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"
+msgstr "Se requieren de %1$d a %2$d dígitos o letras."
+
+msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "Llamada de emergencia"
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "Aviso"
+
+msgid "IDS_COM_BUTTON_CANCEL"
+msgstr "Cancelar"
+
+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"
 
index 7319504..a549be3 100644 (file)
--- a/po/et.po
+++ b/po/et.po
@@ -1,6 +1,57 @@
-msgid "IDS_TPLATFORM_BODY_SCREEN_READER_ENABLED_T_TTS"
-msgstr "Ekraanilugeja on aktiveeritud."
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "1 katse on jäänud."
 
-msgid "IDS_TPLATFORM_BODY_SCREEN_READER_DISABLED_T_TTS"
-msgstr "Ekraanilugeja on desaktiveeritud."
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "%d katset jäänud."
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "Vale parool."
+
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "Üksust %s ei saa käivitada."
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "Vale PIN-kood."
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "Sisestage PIN-kood."
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "Sisestage parool."
+
+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_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "Proovige %d sek parast."
+
+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_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_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_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "Hädaabikõne"
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "Hoiatus"
+
+msgid "IDS_COM_BUTTON_CANCEL"
+msgstr "Tühista"
+
+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"
 
index c8955fa..d52315f 100644 (file)
--- a/po/eu.po
+++ b/po/eu.po
@@ -1,6 +1,57 @@
-msgid "IDS_TPLATFORM_BODY_SCREEN_READER_ENABLED_T_TTS"
-msgstr "Pantaila irakurgailua gaituta."
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "Ahalegin 1 gelditzen zaizu"
 
-msgid "IDS_TPLATFORM_BODY_SCREEN_READER_DISABLED_T_TTS"
-msgstr "Pantaila irakurgailua ezgaituta."
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "%d saiakera geratzen dira"
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "Pasahitz okerra"
+
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "Ezin da %s abiatu"
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "Ados"
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "PIN okerra"
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "PINa idatzi"
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "Pasahitza idatzi"
+
+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_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "Saiatu berriz %d segundoren ondoren"
+
+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_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_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"
+msgstr "%1$d eta %2$d digitu edo letra artean behar dira"
+
+msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "Emergentzia deia"
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "Oharra"
+
+msgid "IDS_COM_BUTTON_CANCEL"
+msgstr "Ezeztatu"
+
+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"
 
diff --git a/po/fa.po b/po/fa.po
new file mode 100644 (file)
index 0000000..4f9fcbe
--- /dev/null
+++ b/po/fa.po
@@ -0,0 +1,57 @@
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "1 تلاش باقی مانده است."
+
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "%d فرصت داريد."
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "رمز اشتباه است."
+
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "راه‌اندازی %s ممکن نیست."
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "تأیید"
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "پين اشتباه است."
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "پین را وارد کنيد."
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "رمز را وارد کنيد."
+
+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_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "پس از %d ثانیه دوباره امتحان کنید."
+
+msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB"
+msgstr "برای مشاهده پیام پین را وارد کنید"
+
+msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB"
+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_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"
+msgstr "%1$d تا %2$d رقم یا حرف الزامی است."
+
+msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "تماس اضطراری"
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "هشدار"
+
+msgid "IDS_COM_BUTTON_CANCEL"
+msgstr "لغو"
+
+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 "باز کردن قفل صفحه ممکن نیست"
+
index 7a43509..efd48b4 100644 (file)
--- a/po/fi.po
+++ b/po/fi.po
@@ -1,6 +1,57 @@
-msgid "IDS_TPLATFORM_BODY_SCREEN_READER_ENABLED_T_TTS"
-msgstr "Näytönlukija on käytössä."
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "1 yritys jäljellä"
 
-msgid "IDS_TPLATFORM_BODY_SCREEN_READER_DISABLED_T_TTS"
-msgstr "Näytönlukija on poistettu käytöstä."
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "%d yritystä jäljellä"
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "Virheellinen salasana"
+
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "Sovellusta %s ei voi käynnistää."
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "Virheellinen PIN-koodi."
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "Anna PIN-koodi."
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "Kirjoita salasana."
+
+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_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "Yritä %d s kul. uudelleen."
+
+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_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_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"
+msgstr "Oltava %1$d–%2$d numeroa tai kirjainta."
+
+msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "Hätäpuhelu"
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "Varoitus"
+
+msgid "IDS_COM_BUTTON_CANCEL"
+msgstr "Peruuta"
+
+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"
 
index 7efde4d..29eb6b7 100644 (file)
--- a/po/fr.po
+++ b/po/fr.po
@@ -1,6 +1,57 @@
-msgid "IDS_TPLATFORM_BODY_SCREEN_READER_ENABLED_T_TTS"
-msgstr "Lecteur d'écran activé."
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "1 essai restant"
 
-msgid "IDS_TPLATFORM_BODY_SCREEN_READER_DISABLED_T_TTS"
-msgstr "Lecteur d'écran désactivé."
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "%d essais restants"
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "Mot de passe incorrect"
+
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "Impossible de lancer %s."
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "Code PIN incorrect"
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "Saisir le code PIN."
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "Saisir le mot de passe."
+
+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_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "Réessayez dans %d secondes."
+
+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_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_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"
+msgstr "%1$d à %2$d chiffres ou lettres requis"
+
+msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "Appel d'urgence"
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "Avertissement"
+
+msgid "IDS_COM_BUTTON_CANCEL"
+msgstr "Annuler"
+
+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"
 
index 7efde4d..45e6b58 100644 (file)
@@ -1,6 +1,57 @@
-msgid "IDS_TPLATFORM_BODY_SCREEN_READER_ENABLED_T_TTS"
-msgstr "Lecteur d'écran activé."
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "1 essai restant."
 
-msgid "IDS_TPLATFORM_BODY_SCREEN_READER_DISABLED_T_TTS"
-msgstr "Lecteur d'écran désactivé."
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "%d essais restants."
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "Mot de passe incorrect."
+
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "Impossible de lancer %s."
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "NIP incorrect"
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "Saisir le NIP."
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "Saisir le mot de passe."
+
+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_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "Réessayez ds %d secondes."
+
+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_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_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"
+msgstr "%1$d à %2$d chiffres ou lettres requis."
+
+msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "Appel d'urgence"
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "Avertissement"
+
+msgid "IDS_COM_BUTTON_CANCEL"
+msgstr "Annuler"
+
+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"
 
diff --git a/po/ga.po b/po/ga.po
new file mode 100644 (file)
index 0000000..a2daa3d
--- /dev/null
+++ b/po/ga.po
@@ -0,0 +1,57 @@
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "1 iarracht fágtha."
+
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "%d iarracht fágtha."
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "Pasfhocal mícheart."
+
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "Ní féidir %s a lainseáil."
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "PIN mícheart."
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "Iontráil PIN"
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "Iontráil pasfhocal"
+
+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 "Rinne tú iarracht mhícheart an gléas a dhíghlasáil %1$d uair. Tá %2$d iarracht fágtha sula bhfillfear an gléas ar réamhshocruithe monarchan agus sula scriosfar gach sonra."
+
+msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "Triail arís i gceann %d soicind"
+
+msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB"
+msgstr "Iontráil PIN le hamharc ar an teachtaireacht"
+
+msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB"
+msgstr "Iontráil PIN le hamharc ar an loga glaonna"
+
+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 "Rinne tú iarracht mhícheart an gléas a dhíghlasáil %d uair. Socrófar anois chuig na réamhshocruithe monarchan é agus scriosfar na sonraí go léir."
+
+msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"
+msgstr "%1$d suas le %2$d digit nó litir de dhíth."
+
+msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "Glao éigeandála"
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "Rabhadh"
+
+msgid "IDS_COM_BUTTON_CANCEL"
+msgstr "Cealaigh"
+
+msgid "IDS_LCKSCN_POP_YOU_HAVE_MADE_P1SD_UNSUCCESSFUL_ATTEMPTS_TO_UNLOCK_YOUR_DEVICE_TRY_AGAIN_IN_P2SD_SECONDS"
+msgstr "Rinne tú %1$d iarracht nár éirigh leo le do ghléas a dhíghlasáil. Triail arís i gceann %2$d soicind."
+
+msgid "IDS_LCKSCN_HEADER_UNABLE_TO_UNLOCK_SCREEN_ABB"
+msgstr "Díghlasáil scáil. dodhéanta."
+
index 7dd881f..e3ce975 100644 (file)
--- a/po/gl.po
+++ b/po/gl.po
@@ -1,6 +1,57 @@
-msgid "IDS_TPLATFORM_BODY_SCREEN_READER_ENABLED_T_TTS"
-msgstr "Lector de pantalla activado."
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "Queda 1 intento"
 
-msgid "IDS_TPLATFORM_BODY_SCREEN_READER_DISABLED_T_TTS"
-msgstr "Lector de pantalla desactivado."
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "Quedan %d intentos"
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "Contrasinal non válido"
+
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "Non se pode iniciar %s"
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "Aceptar"
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "PIN incorrecto"
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "Introducir PIN"
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "Introduza o contrasinal"
+
+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_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "Ténteo de novo en %d seg."
+
+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_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_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"
+msgstr "Precísanse entre %1$d e %2$d díxitos ou letras"
+
+msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "Chamada de urxencia"
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "Aviso"
+
+msgid "IDS_COM_BUTTON_CANCEL"
+msgstr "Cancelar"
+
+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"
 
diff --git a/po/gu.po b/po/gu.po
new file mode 100644 (file)
index 0000000..7b5bec3
--- /dev/null
+++ b/po/gu.po
@@ -0,0 +1,57 @@
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "1 પ્રયત્ન બાકી."
+
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "%d પ્રયત્ન બાકી."
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "ખોટો પાસવર્ડ."
+
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "%s ને લોંચ કરવામાં અક્ષમ."
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "ઓકે"
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "ખોટો PIN."
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "PIN દાખલ કરો."
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "પાસવર્ડ દાખલ કરો."
+
+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_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "%d સેકંડ્સ પછી ફરી પ્રયત્ન કરો."
+
+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_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_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"
+msgstr "%1$d થી %2$d અંકો અથવા પત્રો આવશ્યક છે."
+
+msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "તાત્કાલિક કૉલ"
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "ચેતવણી"
+
+msgid "IDS_COM_BUTTON_CANCEL"
+msgstr "રદ કરો"
+
+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 "સ્ક્રીનને અનલોક કરવામાં અસમર્થ"
+
diff --git a/po/he.po b/po/he.po
new file mode 100644 (file)
index 0000000..ace2950
--- /dev/null
+++ b/po/he.po
@@ -0,0 +1,57 @@
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "נותר 1 ניסיון."
+
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "נותרו %d ניסיונות."
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "סיסמה שגויה."
+
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "לא ניתן להפעיל את %s."
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "אישור"
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "קוד PIN שגוי."
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "הזן PIN."
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "הזן סיסמה."
+
+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_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "נסה שוב בעוד %d שניות."
+
+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_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_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"
+msgstr "יש צורך ב-%1$d עד %2$d ספרות או אותיות."
+
+msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "שיחת חירום"
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "אזהרה"
+
+msgid "IDS_COM_BUTTON_CANCEL"
+msgstr "ביטול"
+
+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 "לא ניתן לבטל נעילת מסך"
+
diff --git a/po/hi.po b/po/hi.po
new file mode 100644 (file)
index 0000000..64fa4e0
--- /dev/null
+++ b/po/hi.po
@@ -0,0 +1,57 @@
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "1 प्रयास शेष।"
+
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "%d प्रयास शेष।"
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "गलत पासवर्ड।"
+
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "%s प्रारंभ करने में अक्षम।"
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "ओके"
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "गलत PIN."
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "PIN प्रविष्ट करें।"
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "पासवर्ड प्रविष्ट करें"
+
+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_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "%d सेकंड में फिर से प्रयास करें।"
+
+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_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_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"
+msgstr "%1$d से %2$d तक अंक या वर्ण आवश्यक।"
+
+msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "आपातकालीन कॉल"
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "चेतावनी"
+
+msgid "IDS_COM_BUTTON_CANCEL"
+msgstr "रद्द"
+
+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 "स्क्रीन अनलॉक करने में अक्षम"
+
index b4081ad..c39f364 100644 (file)
--- a/po/hr.po
+++ b/po/hr.po
@@ -1,6 +1,57 @@
-msgid "IDS_TPLATFORM_BODY_SCREEN_READER_ENABLED_T_TTS"
-msgstr "Isključen čitač zaslona."
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "Još 1 pokušaj."
 
-msgid "IDS_TPLATFORM_BODY_SCREEN_READER_DISABLED_T_TTS"
-msgstr "Uključen čitač zaslona."
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "%d pokušaja preostalo."
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "Neispravna lozinka."
+
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "Nemoguće pokrenuti %s."
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "U redu"
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "Neispravan PIN."
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "Unesite PIN."
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "Unesite lozinku."
+
+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_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "Ponovite nakon %d sek."
+
+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_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_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"
+msgstr "Potrebno je %1$d do %2$d znamenki ili slova."
+
+msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "SOS poziv"
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "Upozorenje"
+
+msgid "IDS_COM_BUTTON_CANCEL"
+msgstr "Prekid"
+
+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"
 
index c6dad99..6e0dfcf 100644 (file)
--- a/po/hu.po
+++ b/po/hu.po
@@ -1,6 +1,57 @@
-msgid "IDS_TPLATFORM_BODY_SCREEN_READER_ENABLED_T_TTS"
-msgstr "Képernyőolvasó engedélyezve."
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "Még 1 próbálkozásra van."
 
-msgid "IDS_TPLATFORM_BODY_SCREEN_READER_DISABLED_T_TTS"
-msgstr "Képernyőolvasó letiltva."
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "%d kísérlet maradt."
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "Téves jelszó"
+
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "A(z) %s nem indítható el."
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "Hibás PIN-kód"
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "Írja be a PIN-kódot!"
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "Írja be a jelszót."
+
+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_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "Prób. újra %d mp múlva."
+
+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_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_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"
+msgstr "%1$d–%2$d számjegy vagy betű szükséges."
+
+msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "Segélyhívás"
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "Figyelmeztetés"
+
+msgid "IDS_COM_BUTTON_CANCEL"
+msgstr "Mégse"
+
+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ő"
 
index df2b103..36b2425 100644 (file)
--- a/po/hy.po
+++ b/po/hy.po
@@ -1,6 +1,57 @@
-msgid "IDS_TPLATFORM_BODY_SCREEN_READER_ENABLED_T_TTS"
-msgstr "Էկրանի ընթերցողը՝ միաց:"
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "1 փորձ է մնացել:"
 
-msgid "IDS_TPLATFORM_BODY_SCREEN_READER_DISABLED_T_TTS"
-msgstr "Էկրանի ընթերցողը՝ անջատ:"
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "Մնացել է %d փորձ:"
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "Սխալ գաղտնաբառ:"
+
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "Հնարավոր չէ գործարկել %s-ը:"
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "Սխալ PIN:"
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "Մուտքագրեք PIN-ը:"
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "Մուտքագրեք գաղտնաբառը:"
+
+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_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "Նորից փորձեք %d վրկ.-ից:"
+
+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_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_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"
+msgstr "Պահանջվում է %1$d-ից %2$d թվանշան կամ տառ:"
+
+msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "Հրատապ զանգ"
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "Զգուշացում"
+
+msgid "IDS_COM_BUTTON_CANCEL"
+msgstr "Չեղարկել"
+
+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 "Անհնար է արգելաբացել էկրանը"
 
index 3618b8c..33efc14 100644 (file)
--- a/po/is.po
+++ b/po/is.po
@@ -1,6 +1,57 @@
-msgid "IDS_TPLATFORM_BODY_SCREEN_READER_ENABLED_T_TTS"
-msgstr "Kveikt á skjálesara."
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "1 tilraun eftir."
 
-msgid "IDS_TPLATFORM_BODY_SCREEN_READER_DISABLED_T_TTS"
-msgstr "Slökkt á skjálesara."
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "%d tilraunir eftir."
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "Rangt aðgangsorð."
+
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "Mistókst að opna %s."
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "Í lagi"
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "Rangt PIN-númer."
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "Sláðu inn PIN-númeri."
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "Rita aðgangsorð."
+
+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_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "Reyndu aftur eftir %d sek."
+
+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_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_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"
+msgstr "Slá þarf inn %1$d til %2$d stafi."
+
+msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "Neyðarhringing"
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "Viðvörun"
+
+msgid "IDS_COM_BUTTON_CANCEL"
+msgstr "Hætta v."
+
+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á"
 
index 46b8a59..34dd7ac 100644 (file)
@@ -1,6 +1,57 @@
-msgid "IDS_TPLATFORM_BODY_SCREEN_READER_ENABLED_T_TTS"
-msgstr "Lettura dello schermo attivata."
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "1 tentativo rimasto."
 
-msgid "IDS_TPLATFORM_BODY_SCREEN_READER_DISABLED_T_TTS"
-msgstr "Lettura dello schermo disattivata."
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "%d tentativi rimasti."
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "Password errata."
+
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "Impossibile avviare %s."
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "PIN errato."
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "Inserisci PIN."
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "Inserisci password."
+
+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_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "Riprovate tra %d secondi."
+
+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_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_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"
+msgstr "Sono necessarie da %1$d a %2$d cifre o lettere."
+
+msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "Chiamata di emergenza"
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "Avviso"
+
+msgid "IDS_COM_BUTTON_CANCEL"
+msgstr "Annulla"
+
+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"
 
diff --git a/po/ja_JP.po b/po/ja_JP.po
new file mode 100644 (file)
index 0000000..986e784
--- /dev/null
@@ -0,0 +1,57 @@
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "残りの試行回数は1回です。"
+
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "残り入力回数:%d回"
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "パスワードが正しくありません。"
+
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "%sを起動できません。"
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "PINが正しくありません。"
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "PINを入力してください。"
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "パスワードを入力"
+
+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_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "%d秒後にやり直してください。"
+
+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_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_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"
+msgstr "%1$d~%2$d文字の英数字で入力してください。"
+
+msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "緊急通報"
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "警告"
+
+msgid "IDS_COM_BUTTON_CANCEL"
+msgstr "キャンセル"
+
+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 "画面のロック解除不可"
+
index 3ff5ebf..470e48b 100644 (file)
--- a/po/ka.po
+++ b/po/ka.po
@@ -1,6 +1,57 @@
-msgid "IDS_TPLATFORM_BODY_SCREEN_READER_ENABLED_T_TTS"
-msgstr "á\83\94á\83\99á\83 á\83\90á\83\9cá\83\98á\83¡ á\83¬á\83\90á\83\9bá\83\99á\83\98á\83\97á\83®á\83\95á\83\94á\83\9aá\83\98 á\83©á\83\90á\83 á\83\97á\83£á\83\9aá\83\98ა."
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "á\83\93á\83\90á\83 á\83©á\83\90 1 á\83ªá\83\93ა."
 
-msgid "IDS_TPLATFORM_BODY_SCREEN_READER_DISABLED_T_TTS"
-msgstr "ეკრანის წამკითხველი გამორთულია."
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "%d ცდა დარჩა."
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "პაროლი არასწორია."
+
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "ვერ გაიხსნება %s."
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "არასწორი PIN."
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "შეიყვანეთ PIN."
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "პაროლის შეყვანა."
+
+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_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "კიდევ ცადეთ %d წამში."
+
+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_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_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"
+msgstr "უნდა იყოს %1$d-%2$d ციფრი ან ასო."
+
+msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "საგანგებო ზარი"
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "გაფრთხილება"
+
+msgid "IDS_COM_BUTTON_CANCEL"
+msgstr "გაუქმება"
+
+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 "ეკრანის განბლოკვა შეუძლებელია"
 
index f307ec9..0145442 100644 (file)
--- a/po/kk.po
+++ b/po/kk.po
@@ -1,6 +1,57 @@
-msgid "IDS_TPLATFORM_BODY_SCREEN_READER_ENABLED_T_TTS"
-msgstr "Экран оқу құралы қосылды."
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "1 әрекет қалды."
 
-msgid "IDS_TPLATFORM_BODY_SCREEN_READER_DISABLED_T_TTS"
-msgstr "Экран оқу құралы өшірілді."
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "%d әрекеттену аяқталды."
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "Қате кілтсөз."
+
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "%s іске қосу мүмкін емес."
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "Қате PIN."
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "PIN енгізу."
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "Кілтсөз енгізіңіз."
+
+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_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "%d сек кейін қайталаңыз."
+
+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_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_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"
+msgstr "%1$d-%2$d сан немесе әріп талап етіледі."
+
+msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "Шұғыл қоңырау шалу"
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "Ескерту"
+
+msgid "IDS_COM_BUTTON_CANCEL"
+msgstr "Тоқтату"
+
+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 "Экран құлпын ашу мүмкін емес"
 
diff --git a/po/kn.po b/po/kn.po
new file mode 100644 (file)
index 0000000..050163f
--- /dev/null
+++ b/po/kn.po
@@ -0,0 +1,57 @@
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "1 ಪ್ರಯತ್ನ ಉಳಿದಿದೆ."
+
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "%d ಪ್ರಯತ್ನಗಳು ಉಳಿದಿವೆ."
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "ತಪ್ಪಾದ ಪಾಸ್‌ವರ್ಡ್."
+
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "%s ಪ್ರಾರಂಭಿಸಲಾಗಲಿಲ್ಲ."
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "ಓಕೆ"
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "PIN ತಪ್ಪಾಗಿದೆ."
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "PIN ನಮೂದಿಸಿ."
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "ಪಾಸ್‌ವರ್ಡ್ ನಮೂದಿಸಿ."
+
+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_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "%d ಸೆಕೆಂಡುಗಳಲ್ಲಿ ಮತ್ತೊಮ್ಮೆ ಪ್ರಯತ್ನಿಸಿ."
+
+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_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_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"
+msgstr "%1$d ರಿಂದ %2$d ಅಂಕಿಗಳು ಅಥವಾ ಅಕ್ಷರಗಳು ಅಗತ್ಯವಿರುತ್ತವೆ."
+
+msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "ತುರ್ತು ಕರೆ"
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "ಎಚ್ಚರಿಕೆ"
+
+msgid "IDS_COM_BUTTON_CANCEL"
+msgstr "ರದ್ದು"
+
+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 "ಸ್ಕ್ರೀನ್ ಅನ್‌ಲಾಕ್ ಮಾಡಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ"
+
index 42cb3ff..c1c0d17 100644 (file)
@@ -1,6 +1,57 @@
-msgid "IDS_TPLATFORM_BODY_SCREEN_READER_ENABLED_T_TTS"
-msgstr "ì\8a¤í\81¬ë¦° ë¦¬ë\8d\94를 ì\8b¤í\96\89í\95\98ì\98\80습니다."
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "ì\9e\85ë ¥ ê¸°í\9a\8cê°\80 1í\9a\8c ë\82¨ì\95\98습니다."
 
-msgid "IDS_TPLATFORM_BODY_SCREEN_READER_DISABLED_T_TTS"
-msgstr "스크린 리더를 해제하였습니다."
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "입력 기회가 %d회 남았습니다."
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "잘못된 비밀번호를 입력하였습니다."
+
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "%s을(를) 실행할 수 없습니다."
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "확인"
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "잘못된 PIN을 입력하였습니다."
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "PIN을 입력하세요."
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "비밀번호를 입력하세요."
+
+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_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "%d초 후에 다시 시도하세요."
+
+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_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_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"
+msgstr "%1$d-%2$d자의 숫자 또는 문자를 입력하세요."
+
+msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "긴급전화"
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "경고"
+
+msgid "IDS_COM_BUTTON_CANCEL"
+msgstr "취소"
+
+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 "화면 잠금을 해제할 수 없음"
 
index 9b58a9a..f4fd72d 100644 (file)
--- a/po/lt.po
+++ b/po/lt.po
@@ -1,6 +1,57 @@
-msgid "IDS_TPLATFORM_BODY_SCREEN_READER_ENABLED_T_TTS"
-msgstr "Ekrano skaitytuvas įjungtas."
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "Liko 1 bandymas."
 
-msgid "IDS_TPLATFORM_BODY_SCREEN_READER_DISABLED_T_TTS"
-msgstr "Ekrano skaitytuvas išjungtas."
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "%d likę bandymai."
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "Neteisingas slaptažodis."
+
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "Negalima paleisti %s."
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "Gerai"
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "Netinkamas PIN kodas."
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "Įvesti PIN kodą."
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "Įvesti slaptažodį."
+
+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_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "Bandykite dar po %d sek."
+
+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_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_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"
+msgstr "Reikia nurodyti %1$d–%2$d skaitmenis (-ų) ar raides (-ių)."
+
+msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "Pagalbos skambučiai"
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "Perspėjimas"
+
+msgid "IDS_COM_BUTTON_CANCEL"
+msgstr "Atšaukti"
+
+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"
 
index d3215f7..82311ee 100644 (file)
--- a/po/lv.po
+++ b/po/lv.po
@@ -1,6 +1,57 @@
-msgid "IDS_TPLATFORM_BODY_SCREEN_READER_ENABLED_T_TTS"
-msgstr "Ekrāna lasītājs ir aktivizēts."
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "Atlicis 1 mēģinājums."
 
-msgid "IDS_TPLATFORM_BODY_SCREEN_READER_DISABLED_T_TTS"
-msgstr "Ekrāna lasītājs ir deaktivizēts."
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "Atlikuši %d mēģinājumi."
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "Nepareiza parole."
+
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "Nevar palaist %s."
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "Labi"
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "Nepareizs PIN."
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "Ievadiet PIN kodu."
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "Ievadiet paroli."
+
+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_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "Mēģiniet vēlr.pēc %d sek."
+
+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_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_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_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "Ārkārtas zvans"
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "Brīdinājums"
+
+msgid "IDS_COM_BUTTON_CANCEL"
+msgstr "Atcelt"
+
+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"
 
diff --git a/po/mk.po b/po/mk.po
new file mode 100644 (file)
index 0000000..c245f51
--- /dev/null
+++ b/po/mk.po
@@ -0,0 +1,57 @@
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "Уште 1 обид."
+
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "Има уште %d обиди."
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "Погрешна лозинка."
+
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "Не може да се активира %s."
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "Погрешен PIN."
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "Внесете PIN."
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "Внесете лозинка."
+
+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_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "Повт. обид за %d секунди."
+
+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_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_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"
+msgstr "%1$d до %2$d бројки или букви се потребни."
+
+msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "SOS повик"
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "Предупредување"
+
+msgid "IDS_COM_BUTTON_CANCEL"
+msgstr "Откажи"
+
+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 "Не може да се отклучи екранот"
+
diff --git a/po/ml.po b/po/ml.po
new file mode 100644 (file)
index 0000000..70bcbad
--- /dev/null
+++ b/po/ml.po
@@ -0,0 +1,57 @@
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "1 ശ്രമം ശേഷിക്കുന്നു."
+
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "%d ശ്രമങ്ങള്‍  ശേഷിക്കുന്നു."
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "തെറ്റായ പാസ്‌വേഡ്."
+
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "%s സമാരംഭിക്കാന്‍ ആവുന്നില്ല."
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "ശരി"
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "തെറ്റായ PIN."
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "PIN നല്‍കുക."
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "പാസ്‌വേഡ് നല്‍കുക."
+
+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_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "%d സെക്കന്‍റിനുശേഷം വീണ്ടും ശ്രമിക്കുക."
+
+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_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 "നിങ്ങള്‍ %1$d തവണ തെറ്റായി ഉപകരണം അണ്‍ലോക്കുചെയ്യാന്‍ ശ്രമിച്ചു. ഇത് ഇപ്പോള്‍ ഫാക്ടറി സ്ഥിരസ്ഥിതികളിലേയ്ക്ക് പുനഃക്രമീകരിക്കുകയും എല്ലാ ഡാറ്റയും മായ്ക്കുകയും ചെയ്യും"
+
+msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"
+msgstr "%1$d മുതല്‍ %2$d വരെ അക്കങ്ങളോ അക്ഷരങ്ങളോ ആവശ്യമാണ്."
+
+msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "എമര്‍ജന്‍സി കോള്‍"
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "മുന്നറിയിപ്പ്"
+
+msgid "IDS_COM_BUTTON_CANCEL"
+msgstr "റദ്ദാക്കുക"
+
+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 "സ്ക്രീൻ ലോക്കുനീക്കാൻ ആകില്ല"
+
index 52ca19a..20e8b5a 100644 (file)
@@ -1,6 +1,57 @@
-msgid "IDS_TPLATFORM_BODY_SCREEN_READER_ENABLED_T_TTS"
-msgstr "Дэлгэцийн уншигчийг идэвхжүүлсэн."
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "1 оролдлого үлдсэн."
 
-msgid "IDS_TPLATFORM_BODY_SCREEN_READER_DISABLED_T_TTS"
-msgstr "Дэлгэцийн уншигчийг идэвхгүй болгосон."
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "%d оролдлого үлдсэн."
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "Буруу нууц үг"
+
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "Unable to launch %s."
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "Буруу PIN код"
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "PIN код оруулах"
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "Нууц үг оруулах"
+
+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_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "%d сек дараа дахин оролд"
+
+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_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_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"
+msgstr "%1$d to %2$d digits or letters required."
+
+msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "Яаралтай тусламжийн дуудлага"
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "Анхааруулга"
+
+msgid "IDS_COM_BUTTON_CANCEL"
+msgstr "Цуцлах"
+
+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 "Дэлгэц нээх боломжгүй"
 
index a942a8c..59f5305 100644 (file)
--- a/po/nb.po
+++ b/po/nb.po
@@ -1,6 +1,57 @@
-msgid "IDS_TPLATFORM_BODY_SCREEN_READER_ENABLED_T_TTS"
-msgstr "Skjermleser aktivert."
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "1 forsøk gjenstår."
 
-msgid "IDS_TPLATFORM_BODY_SCREEN_READER_DISABLED_T_TTS"
-msgstr "Skjermleser deaktivert."
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "%d forsøk igjen."
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "Feil passord."
+
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "Kan ikke starte %s."
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "Ugyldig PIN."
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "Angi PIN."
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "Angi passord."
+
+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_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "Prøv på nytt om %d sek."
+
+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_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_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"
+msgstr "%1$d til %2$d sifre eller bokstaver nødvendige."
+
+msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "Nødanrop"
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "Advarsel"
+
+msgid "IDS_COM_BUTTON_CANCEL"
+msgstr "Avbryt"
+
+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"
 
index 8d1f208..cf57503 100644 (file)
--- a/po/nl.po
+++ b/po/nl.po
@@ -1,6 +1,57 @@
-msgid "IDS_TPLATFORM_BODY_SCREEN_READER_ENABLED_T_TTS"
-msgstr "Schermlezer ingeschakeld."
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "1 poging over."
 
-msgid "IDS_TPLATFORM_BODY_SCREEN_READER_DISABLED_T_TTS"
-msgstr "Schermlezer uitgeschakeld."
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "%d pogingen over."
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "Onjuist wachtwoord."
+
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "Kan %s niet starten."
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "Onjuiste PIN."
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "PIN invoeren"
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "Wachtwoord invoeren"
+
+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_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "Probeer opn. over %d sec."
+
+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_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_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"
+msgstr "%1$d tot %2$d cijfers of letters vereist."
+
+msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "Noodoproep"
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "Waarschuwing"
+
+msgid "IDS_COM_BUTTON_CANCEL"
+msgstr "Annuleer"
+
+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"
 
index 68bd811..7a263fe 100644 (file)
--- a/po/pl.po
+++ b/po/pl.po
@@ -1,6 +1,57 @@
-msgid "IDS_TPLATFORM_BODY_SCREEN_READER_ENABLED_T_TTS"
-msgstr "Czytnik ekranu włączony."
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "Pozostała 1 próba."
 
-msgid "IDS_TPLATFORM_BODY_SCREEN_READER_DISABLED_T_TTS"
-msgstr "Czytnik ekranu wyłączony."
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "Pozostało prób: %d."
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "Błędne hasło."
+
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "Nie można uruchomić %s."
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "Nieprawidłowy PIN."
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "Wpisz PIN."
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "Wpisz hasło."
+
+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_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "Ponów próbę za %d sek."
+
+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_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_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"
+msgstr "Wymaganych jest co najmniej cyfr lub liter: %1$d do %2$d."
+
+msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "Połączenie alarmowe"
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "Ostrzeżenie"
+
+msgid "IDS_COM_BUTTON_CANCEL"
+msgstr "Anuluj"
+
+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"
 
index fd10756..2a72b18 100644 (file)
@@ -1,6 +1,57 @@
-msgid "IDS_TPLATFORM_BODY_SCREEN_READER_ENABLED_T_TTS"
-msgstr "Leitor de tela ativado."
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "Resta 1 tentativa."
 
-msgid "IDS_TPLATFORM_BODY_SCREEN_READER_DISABLED_T_TTS"
-msgstr "Leitor de tela desativado."
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "Restam %d tentativas."
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "Senha incorreta."
+
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "Impossível iniciar %s."
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "PIN incorreto."
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "Insira o PIN."
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "Insira senha."
+
+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_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "Tente nov. dentro %d seg."
+
+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_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_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_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "Chamada de emergência"
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "Aviso"
+
+msgid "IDS_COM_BUTTON_CANCEL"
+msgstr "Cancelar"
+
+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"
 
index 6e8c871..e409d63 100644 (file)
@@ -1,6 +1,57 @@
-msgid "IDS_TPLATFORM_BODY_SCREEN_READER_ENABLED_T_TTS"
-msgstr "Leitor de ecrã activado."
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "Resta 1 tentativa."
 
-msgid "IDS_TPLATFORM_BODY_SCREEN_READER_DISABLED_T_TTS"
-msgstr "Leitor de ecrã desactivado."
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "%d tentativas restantes."
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "Palavra-passe incorrecta."
+
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "Impossível iniciar %s."
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "PIN incorrecto."
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "Introduzir PIN."
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "Introduzir palavra-passe."
+
+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_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "Tente nov. dentro %d seg."
+
+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_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_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_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "Chamada de emergência"
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "Aviso"
+
+msgid "IDS_COM_BUTTON_CANCEL"
+msgstr "Cancelar"
+
+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ã"
 
index a499c01..01abe1c 100644 (file)
--- a/po/ro.po
+++ b/po/ro.po
@@ -1,6 +1,57 @@
-msgid "IDS_TPLATFORM_BODY_SCREEN_READER_ENABLED_T_TTS"
-msgstr "Cititor de ecran activat."
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "1 încercare rămasă"
 
-msgid "IDS_TPLATFORM_BODY_SCREEN_READER_DISABLED_T_TTS"
-msgstr "Cititor de ecran dezactivat."
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "%d încercări rămase"
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "Parolă incorectă"
+
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "Imposibil de lansat %s"
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "PIN incorect"
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "Introduceţi PIN."
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "Introduceţi parola."
+
+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_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "Reîncercaţi peste %d sec."
+
+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_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_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"
+msgstr "Sunt necesare între %1$d şi %2$d cifre sau litere."
+
+msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "Apel de urgenţă"
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "Avertisment"
+
+msgid "IDS_COM_BUTTON_CANCEL"
+msgstr "Anulare"
+
+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"
 
index 9048cf9..8bf77d8 100644 (file)
@@ -1,6 +1,57 @@
-msgid "IDS_TPLATFORM_BODY_SCREEN_READER_ENABLED_T_TTS"
-msgstr "ЧÑ\82ение Ñ\81 Ñ\8dкÑ\80ана Ð²ÐºÐ»Ñ\8eÑ\87ено."
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "Ð\9eÑ\81Ñ\82алаÑ\81Ñ\8c 1 Ð¿Ð¾Ð¿Ñ\8bÑ\82ка."
 
-msgid "IDS_TPLATFORM_BODY_SCREEN_READER_DISABLED_T_TTS"
-msgstr "Чтение с экрана отключено."
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "Осталось попыток: %d."
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "Неправильный пароль"
+
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "Невозможно запустить %s."
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "ОК"
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "Неверный PIN"
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "Введите PIN."
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "Введите пароль."
+
+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_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "Повторите через %d сек."
+
+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_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_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"
+msgstr "Требуется от %1$d до %2$d цифр или букв."
+
+msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "Экстренный вызов"
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "Предупреждение"
+
+msgid "IDS_COM_BUTTON_CANCEL"
+msgstr "Отмена"
+
+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 "Невозможно разблокир-ть экран"
 
diff --git a/po/si.po b/po/si.po
new file mode 100644 (file)
index 0000000..f6ea642
--- /dev/null
+++ b/po/si.po
@@ -0,0 +1,57 @@
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "1 උත්සාහයක් ඉතිරිව ඇත."
+
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "උත්සාහයන් %d ක් ඉතිරිවී ඇත."
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "වැරදි මුරපදය."
+
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "%s ආරම්භ කළ නොහැක."
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "හරි"
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "වැරදි PIN."
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "PIN අංකය ඇතුල් කරන්න."
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "මුරපදය ඇතුල් කරන්න."
+
+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_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "නැවත තත්පර %d කින් උත්සාහ කරන්න."
+
+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_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_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"
+msgstr "%1$d සිට %2$d දක්වා අංක හෝ අක්ෂර ගණනක් අවශ්‍ය වේ."
+
+msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "හදිසි ඇමතුම්"
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "අනතුරු ඇඟවීම"
+
+msgid "IDS_COM_BUTTON_CANCEL"
+msgstr "අවල. කර."
+
+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 "තිරය අගුලු හැරිය නොහැක"
+
index 870138a..a7c4730 100644 (file)
--- a/po/sk.po
+++ b/po/sk.po
@@ -1,6 +1,57 @@
-msgid "IDS_TPLATFORM_BODY_SCREEN_READER_ENABLED_T_TTS"
-msgstr "Čítačka obrazovky je zapnutá."
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "Zostáva 1 pokus."
 
-msgid "IDS_TPLATFORM_BODY_SCREEN_READER_DISABLED_T_TTS"
-msgstr "Čítačka obrazovky je vypnutá."
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "Počet zostávajúcich pokusov: %d."
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "Nesprávne heslo."
+
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "Nedá sa spustiť %s."
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "Nesprávny PIN."
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "Zadať PIN"
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "Zadajte heslo."
+
+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_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "Skúste znova o %d sekúnd."
+
+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_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_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"
+msgstr "Vyžaduje sa %1$d až %2$d číslic alebo písmen."
+
+msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "Tiesňový hovor"
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "Varovanie"
+
+msgid "IDS_COM_BUTTON_CANCEL"
+msgstr "Zrušiť"
+
+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úť"
 
index bea56e7..4b88c19 100644 (file)
--- a/po/sl.po
+++ b/po/sl.po
@@ -1,6 +1,57 @@
-msgid "IDS_TPLATFORM_BODY_SCREEN_READER_ENABLED_T_TTS"
-msgstr "Bralnik zaslona je omogočen."
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "Preostal je še 1 poskus."
 
-msgid "IDS_TPLATFORM_BODY_SCREEN_READER_DISABLED_T_TTS"
-msgstr "Bralnik zaslona je onemogočen."
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "%d preostalih poizkusov."
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "Napačno geslo."
+
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "Ni mogoče zagnati %s."
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "V redu"
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "Napačna koda PIN."
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "Vnesite PIN."
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "Vnesite geslo."
+
+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_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "Poskusite znova čez %d s."
+
+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_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_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"
+msgstr "Zahtevanih je od %1$d do %2$d znakov ali črk."
+
+msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "Klic v sili"
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "Opozorilo"
+
+msgid "IDS_COM_BUTTON_CANCEL"
+msgstr "Prekliči"
+
+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"
 
index 68c4406..03a9563 100644 (file)
--- a/po/sr.po
+++ b/po/sr.po
@@ -1,6 +1,57 @@
-msgid "IDS_TPLATFORM_BODY_SCREEN_READER_ENABLED_T_TTS"
-msgstr "Čitač ekrana je omogućen."
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "1 pokušaj preostao."
 
-msgid "IDS_TPLATFORM_BODY_SCREEN_READER_DISABLED_T_TTS"
-msgstr "Čitač ekrana je onemogućen."
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "%d pokušaja ostalo."
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "Pogrešna šifra"
+
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "Nemoguće pokrenuti %s."
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "Neispravan PIN kod."
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "Unesi PIN kod."
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "Unesi šifru."
+
+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_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "Probaj opet za %d sekundi."
+
+msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB"
+msgstr "Unesi PIN kod da bi prikazao/la poruku"
+
+msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB"
+msgstr "Unesi PIN kod da bi prikazao/la dnevnik poziva"
+
+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_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"
+msgstr "Obavezno je između %1$d i %2$d cifara ili slova."
+
+msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "Pozivi u hitnim slučajevima"
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "Upozorenje"
+
+msgid "IDS_COM_BUTTON_CANCEL"
+msgstr "Otkaži"
+
+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"
 
index 9c12889..48bcad7 100644 (file)
--- a/po/sv.po
+++ b/po/sv.po
@@ -1,6 +1,57 @@
-msgid "IDS_TPLATFORM_BODY_SCREEN_READER_ENABLED_T_TTS"
-msgstr "Skärmläsare aktiverad."
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "1 försök kvar."
 
-msgid "IDS_TPLATFORM_BODY_SCREEN_READER_DISABLED_T_TTS"
-msgstr "Skärmläsare inaktiverad."
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "%d försök kvar."
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "Fel lösenord."
+
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "Kan inte starta %s."
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "Fel PIN-kod."
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "Ange PIN."
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "Ange lösenord."
+
+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_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "Försök igen om %d sek."
+
+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_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_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"
+msgstr "%1$d till %2$d siffror eller bokstäver krävs."
+
+msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "Nödsamtal"
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "Varning"
+
+msgid "IDS_COM_BUTTON_CANCEL"
+msgstr "Avbryt"
+
+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"
 
diff --git a/po/ta.po b/po/ta.po
new file mode 100644 (file)
index 0000000..b4ed5da
--- /dev/null
+++ b/po/ta.po
@@ -0,0 +1,57 @@
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "1 முயற்சி மீதம்."
+
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "மேலும் %d முயற்சிகள் உள்ளன."
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "கடவுச்சொல் தவறு."
+
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "%s ஐ தொடங்க முடியவில்லை."
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "சரி"
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "தவறான PIN."
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "PIN பதி."
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "கடவுச்சொல் பதிக."
+
+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_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "%d விநாடி. கழித்து மீ. முயலுக."
+
+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_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_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"
+msgstr "%1$d முதல் %2$d வரையான இலக்கங்கள் அல்லது எழுத்துக்கள் தேவை."
+
+msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "அவசர அழைப்பு"
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "எச்சரிக்கை"
+
+msgid "IDS_COM_BUTTON_CANCEL"
+msgstr "ரத்து"
+
+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 "திரையைத் திறக்க முடியவில்லை"
+
diff --git a/po/te.po b/po/te.po
new file mode 100644 (file)
index 0000000..fb6bc44
--- /dev/null
+++ b/po/te.po
@@ -0,0 +1,57 @@
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "1 ప్రయత్నం మిగిలి ఉంది."
+
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "%d ప్రయత్నాలు మిగిలాయి."
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "తప్పు పాస్వర్డ్."
+
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "%sను ఆవిష్కరించడం సాధ్యం కాదు."
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "సరే"
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "తప్పు PIN."
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "PIN నమోదు చేయండి."
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "పాస్వర్డును నమోదు చేయండి."
+
+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_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "%d సెకన్లలో మళ్ళీ ప్రయత్నించండి."
+
+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_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_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"
+msgstr "%1$d నుండి %2$d అంకెలు లేదా అక్షరాలు అవసరం."
+
+msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "అత్యవసర కాల్"
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "హెచ్చరిక"
+
+msgid "IDS_COM_BUTTON_CANCEL"
+msgstr "రద్దు"
+
+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 "స్క్రీన్ అన్‌లాక్ చేయలేరు"
+
diff --git a/po/th.po b/po/th.po
new file mode 100644 (file)
index 0000000..633afcf
--- /dev/null
+++ b/po/th.po
@@ -0,0 +1,57 @@
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "เหลือ​อีก 1 ​ครั้ง"
+
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "เหลือ %d ​ครั้ง"
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "รหัสผ่าน\nไม่ถูกต้อง"
+
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "ไม่​ได้​รับรอง %s"
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "ตกลง"
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "PIN ​ผิด"
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "ใส่ PIN"
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "ใส่รหัสผ่าน"
+
+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_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "ลอง​อีก​ครั้ง​ใน %d ​วินาที"
+
+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_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_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"
+msgstr "ต้องมี %1$d ถึง %2$d ตัวเลขหรือตัวอักษร"
+
+msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "โทร​ฉุก​เฉิน"
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "เตือน"
+
+msgid "IDS_COM_BUTTON_CANCEL"
+msgstr "ยกเลิก"
+
+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 "ไม่สามารถปลดล็อคหน้าจอ"
+
index 10a566a..cbeeb07 100644 (file)
@@ -1,6 +1,57 @@
-msgid "IDS_TPLATFORM_BODY_SCREEN_READER_ENABLED_T_TTS"
-msgstr "Ekran okuyucusu etkinleştirildi."
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "1 deneme hakkı kaldı."
 
-msgid "IDS_TPLATFORM_BODY_SCREEN_READER_DISABLED_T_TTS"
-msgstr "Ekran okuyucusu devre dışı bırakıldı."
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "%d deneme kaldı."
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "Şifre yanlış."
+
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "%s öğesi başlatılamıyor."
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "Tamam"
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "PIN yanlış."
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "PIN'i girin."
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "Şifreyi girin."
+
+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_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "%d saniye içinde de tekrar deneyin."
+
+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_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_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"
+msgstr "%1$d - %2$d hane veya harf gerekli."
+
+msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "Acil arama"
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "Uyarı"
+
+msgid "IDS_COM_BUTTON_CANCEL"
+msgstr "İptal"
+
+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"
 
index db1dd24..9dde615 100644 (file)
--- a/po/uk.po
+++ b/po/uk.po
@@ -1,6 +1,57 @@
-msgid "IDS_TPLATFORM_BODY_SCREEN_READER_ENABLED_T_TTS"
-msgstr "Ð\9fÑ\80огÑ\80амÑ\83 Ñ\87иÑ\82аннÑ\8f Ð· ÐµÐºÑ\80ана Ñ\83вÑ\96мкнено."
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "Ð\97алиÑ\88илаÑ\81Ñ\8c 1 Ñ\81пÑ\80оба."
 
-msgid "IDS_TPLATFORM_BODY_SCREEN_READER_DISABLED_T_TTS"
-msgstr "Програму читання з екрана вимкнено."
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "%d спроби залишилось."
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "Хибний пароль."
+
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "Неможливо запустити %s."
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "ОК"
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "Хибний PIN."
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "Введіть PIN."
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "Введіть пароль."
+
+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_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "Повт.спробу через %d сек."
+
+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_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_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"
+msgstr "Потрібно ввести від %1$d до %2$d цифр або літер."
+
+msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "Екстрений виклик"
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "Попередження"
+
+msgid "IDS_COM_BUTTON_CANCEL"
+msgstr "Скасувати"
+
+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 "Неможливо розблокувати екран"
 
diff --git a/po/ur.po b/po/ur.po
new file mode 100644 (file)
index 0000000..82de3ce
--- /dev/null
+++ b/po/ur.po
@@ -0,0 +1,57 @@
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "1 کوشش باقی رہگئی۔"
+
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "%d کوششیں باقی۔"
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "غلط پاسورڈ۔"
+
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "%s چلانے سے قاصر۔"
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "ٹھیک ہے"
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "غلط پن کوڈ۔"
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "پن نمبر درج کریں"
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "پاس ورڈ درج کریں"
+
+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_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "%d سیکنڈ میں دوبارہ کوشش کریں"
+
+msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB"
+msgstr "پیغام دیکھنے کے لیے پن داخل کریں"
+
+msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB"
+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_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"
+msgstr "%1$d سے %2$d ہندسے یا حروف درکار۔"
+
+msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "ایمرجنسی کال"
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "خطرہ"
+
+msgid "IDS_COM_BUTTON_CANCEL"
+msgstr "منسوخ"
+
+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 "اسکرین کو غیر مقفل کرنے سے قاصر"
+
index 37a0168..424e3f0 100644 (file)
--- a/po/uz.po
+++ b/po/uz.po
@@ -1,6 +1,57 @@
-msgid "IDS_TPLATFORM_BODY_SCREEN_READER_ENABLED_T_TTS"
-msgstr "Ekranni o‘qish vositasi yoqildi."
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "1 attempt left."
 
-msgid "IDS_TPLATFORM_BODY_SCREEN_READER_DISABLED_T_TTS"
-msgstr "Ekranni o‘qish vositasi o‘chirildi."
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "%d urinish qoldi."
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "Noto‘g‘ri parol."
+
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "%sni ishga tushirib bo‘lmaydi."
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "OK"
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "Noto‘g‘ri PIN."
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "PIN-kod kiriting."
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "Parol kiriting."
+
+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 marta qurilmani blokdan chiqarishga noto‘g‘ri urindingiz. Yana %2$dta noto‘g‘ri urinishdan so‘ng qurilma ishlab chiqaruvchi parametrlariga qaytariladi va barcha ma’lumotlar o‘chirib tashlanadi."
+
+msgid "IDS_LCKSCN_POP_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "%d soniyada qayta urining."
+
+msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_MESSAGE_ABB"
+msgstr "Xabarni ko‘rib chiqish uchun PIN-kodni kiriting"
+
+msgid "IDS_LCKSCN_NPBODY_ENTER_PIN_TO_VIEW_CALL_LOG_ABB"
+msgstr "Qo‘ng‘iroqlar jurnalini ko‘rish uchun PIN-kodni kiriting"
+
+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 marta qurilmani blokdan chiqarishga noto‘g‘ri urindingiz. U hozir ishlab chiqaruvchi parametrlariga qaytariladi va barcha ma’lumotlar o‘chirib tashlanadi"
+
+msgid "IDS_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"
+msgstr "%1$d-%2$d raqam yoki harflar talab qilinadi."
+
+msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "Favqulodda qo‘ng‘iroqlar"
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "Ogohlantirish"
+
+msgid "IDS_COM_BUTTON_CANCEL"
+msgstr "Bekor qilish"
+
+msgid "IDS_LCKSCN_POP_YOU_HAVE_MADE_P1SD_UNSUCCESSFUL_ATTEMPTS_TO_UNLOCK_YOUR_DEVICE_TRY_AGAIN_IN_P2SD_SECONDS"
+msgstr "Qurilmangizni blokdan chiqarish uchun %1$dta noto‘g‘ri urinishni amalga oshirdingiz. %2$d soniyada qayta urinib ko‘ring."
+
+msgid "IDS_LCKSCN_HEADER_UNABLE_TO_UNLOCK_SCREEN_ABB"
+msgstr "Ekr. blkdan chiqar. bo‘lmaydi"
 
diff --git a/po/zh_CN.po b/po/zh_CN.po
new file mode 100644 (file)
index 0000000..294f851
--- /dev/null
@@ -0,0 +1,57 @@
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "还能尝试 1 次。"
+
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "还有 %d 次机会。"
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "密码错误"
+
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "无法启动 %s。"
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "确定"
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "错误的 PIN 码"
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "输入PIN码"
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "输入密码"
+
+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_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "请在%d秒后重试。"
+
+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_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_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"
+msgstr "需要 %1$d 至 %2$d 个数字或字母。"
+
+msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "紧急呼叫"
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "警告"
+
+msgid "IDS_COM_BUTTON_CANCEL"
+msgstr "取消"
+
+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 "无法解锁屏幕"
+
diff --git a/po/zh_HK.po b/po/zh_HK.po
new file mode 100644 (file)
index 0000000..9c5fdfd
--- /dev/null
@@ -0,0 +1,57 @@
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "剩餘1次機會。"
+
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "剩餘 %d 次機會。"
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "密碼不正確"
+
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "無法啟動 %s。"
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "確定"
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "PIN 碼不正確。"
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "輸入 PIN 碼"
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "輸入密碼。"
+
+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_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "請在 %d 秒後重試。"
+
+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_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_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"
+msgstr "需輸入 %1$d 至 %2$d 位數或字母。"
+
+msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "緊急通話"
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "警告"
+
+msgid "IDS_COM_BUTTON_CANCEL"
+msgstr "取消"
+
+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 "無法解鎖螢幕"
+
diff --git a/po/zh_TW.po b/po/zh_TW.po
new file mode 100644 (file)
index 0000000..1d5e946
--- /dev/null
@@ -0,0 +1,57 @@
+msgid "IDS_IDLE_BODY_1_ATTEMPT_LEFT"
+msgstr "剩下一次機會。"
+
+msgid "IDS_IDLE_BODY_PD_ATTEMPTS_LEFT"
+msgstr "剩餘 %d 次嘗試機會。"
+
+msgid "IDS_IDLE_BODY_INCORRECT_PASSWORD"
+msgstr "密碼不正確"
+
+msgid "IDS_IDLE_POP_UNABLE_TO_LAUNCH_PS"
+msgstr "無法啟動 %s。"
+
+msgid "IDS_COM_BUTTON_OK_ABB"
+msgstr "確定"
+
+msgid "IDS_COM_BODY_INCORRECT_PIN"
+msgstr "PIN 不正確。"
+
+msgid "IDS_COM_BODY_ENTER_PIN"
+msgstr "輸入PIN"
+
+msgid "IDS_COM_BODY_ENTER_PASSWORD"
+msgstr "輸入密碼。"
+
+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_TRY_AGAIN_IN_PD_SECONDS"
+msgstr "%d 秒後再試一次。"
+
+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_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_LCKSCN_BODY_P1SD_TO_P2SD_DIGITS_OR_LETTERS_REQUIRED"
+msgstr "需輸入 %1$d 至 %2$d 位數或字母。"
+
+msgid "IDS_LCKSCN_BODY_EMERGENCY_CALL"
+msgstr "緊急電話"
+
+msgid "IDS_COM_POP_WARNING"
+msgstr "警告"
+
+msgid "IDS_COM_BUTTON_CANCEL"
+msgstr "取消"
+
+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 "無法解除螢幕鎖定"
+
old mode 100755 (executable)
new mode 100644 (file)
index aced30e..e12e50a
@@ -11,17 +11,4 @@ do
         /bin/sleep 0.1
 done
 
-vconf_set_safemode()
-{
-       if [ -f /opt/etc/.safeboot ]
-       then
-               /usr/bin/vconftool set -t int memory/idle-screen/safemode "1" -f
-       else
-               /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
index 409c90c..58f910f 100644 (file)
@@ -1,14 +1,3 @@
 #!/bin/sh
-vconf_set_safemode()
-{
-       if [ -f /opt/etc/.safeboot ]
-       then
-               /usr/bin/vconftool set -t int memory/idle-screen/safemode "1" -i -f
-       else
-               /usr/bin/vconftool set -t int memory/idle-screen/safemode "0" -i -f
-       fi
-}
-vconf_set_safemode
-
 echo -e "<2>[${_G}menu-daemon start${C_}]" > /dev/kmsg
 /usr/bin/starter &
diff --git a/src/clock-mgr.c b/src/clock-mgr.c
deleted file mode 100755 (executable)
index 01d147d..0000000
+++ /dev/null
@@ -1,807 +0,0 @@
-/*
- * 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 <ail.h>
-#include <bundle.h>
-#include <Elementary.h>
-#include <Ecore_X.h>
-#include <Ecore_Input.h>
-#include <utilX.h>
-#include <vconf.h>
-#include <dd-display.h>
-#if 0 // Disable temporarily for TIZEN 2.3 build
-#include <message_port.h>
-#endif
-
-#include "starter_w.h"
-#include "dbus-util_w.h"
-#include "util.h"
-
-
-#define APP_CONTROL_OPERATION_MAIN_KEY "__APP_SVC_OP_TYPE__"
-#define APP_CONTROL_OPERATION_MAIN_VALUE "http://tizen.org/appcontrol/operation/main"
-#define APP_CONTROL_OPERATION_DEFAULT_VALUE "http://tizen.org/appcontrol/operation/default"
-
-
-#ifndef VCONFKEY_SHEALTH_VIEW_TYPE_STR
-#define VCONFKEY_SHEALTH_VIEW_TYPE_STR "memory/shealth/view_type"
-#endif
-
-#ifndef VCONFKEY_HERE_TBT_STATUS_INT
-#define VCONFKEY_HERE_TBT_STATUS_INT "memory/private/navigation/guidance"
-#endif
-
-#ifndef VCONFKEY_STARTER_RESERVED_APPS_STATUS
-#define VCONFKEY_STARTER_RESERVED_APPS_STATUS "memory/starter/reserved_apps_status"            /*  2 digits for reserved apps & popup
-                                                                                                                                                                                *      10 : popup
-                                                                                                                                                                                *      01 : apps
-                                                                                                                                                                                *                                                              */
-#endif
-
-#ifndef VCONFKEY_SETTING_SIMPLE_CLOCK_MODE
-#define VCONFKEY_SETTING_SIMPLE_CLOCK_MODE     "db/setting/simpleclock_mode"
-#endif
-
-
-
-#define W_LOCKSCREEN_PKGNAME            "com.samsung.w-lockscreen"
-
-#define W_ALPM_CLOCK_PKGNAME "com.samsung.alpm-clock-manager"
-#define ALPM_CLOCK_OP "ALPM_CLOCK_OP"
-#define ALPM_CLOCK_SHOW "alpm_clock_show"
-#define ALPM_CLOCK_HIDE "alpm_clock_hide"
-
-#define HOME_OPERATION_KEY "home_op"
-#define POWERKEY_VALUE "powerkey"
-
-#define PM_UNLOCK_TIMER_SEC 0.3
-
-#define RESERVED_DISPLAY_MESSAGE_PORT_ID "Home.Reserved.Display"
-#define RESERVED_DISPLAY_MESSAGE_KEY_STATE "state"
-#define RESERVED_DISPLAY_MESSAGE_STATE_SHOW "show"
-#define RESERVED_DISPLAY_MESSAGE_STATE_HIDE "hide"
-#define RESERVED_DISPLAY_MESSAGE_STATE_POPUP_SHOW "popup_show"
-#define RESERVED_DISPLAY_MESSAGE_STATE_POPUP_HIDE "popup_hide"
-
-#define SHEALTH_SLEEP_PKGNAME          "com.samsung.shealth.sleep"
-
-static int _check_reserved_popup_status(void *data)
-{
-       int val = 0;
-       int tmp = 0;
-       struct appdata *ad = (struct appdata *)data;
-       if (ad == NULL) {
-               _E("ad is NULL");
-               return -1;
-       }
-
-       vconf_get_int(VCONFKEY_STARTER_RESERVED_APPS_STATUS, &val);
-
-       _W("Current reserved apps status : %x", val);
-
-       tmp = val;
-       tmp = tmp & 0x10;
-       if(tmp == 0x10){
-               if(aul_app_is_running(ad->reserved_popup_app_id) == 1){
-                       return TRUE;
-               }
-               else{
-                       _E("%s is not running now.", ad->reserved_popup_app_id);
-                       ad->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;
-               }
-       }
-       else{
-               return FALSE;
-       }
-
-}
-
-static int _check_reserved_apps_status(void *data)
-{
-       int val = 0;
-       struct appdata *ad = (struct appdata *)data;
-       if (ad == NULL) {
-               _E("ad is NULL");
-               return -1;
-       }
-
-       vconf_get_int(VCONFKEY_STARTER_RESERVED_APPS_STATUS, &val);
-
-       _W("Current reserved apps status : %x", val);
-
-       if(val > 0){
-               val = TRUE;
-       }
-       else{
-               val = FALSE;
-       }
-
-       return val;
-}
-
-static void reserved_apps_message_received_cb(int local_port_id, const char *remote_app_id, const char *remote_port, bool trusted_port, bundle* msg)
-{
-       ret_if(remote_app_id == NULL);
-       ret_if(msg == NULL);
-       struct appdata *ad = starter_get_app_data();
-       Eina_List *l = NULL;
-       char *state = NULL;
-       char *data = NULL;
-       char *appid = NULL;
-       int count = 0;
-       int i = 0;
-       int val = 0;
-       int tmp = 0;
-
-       vconf_get_int(VCONFKEY_STARTER_RESERVED_APPS_STATUS, &val);
-       _W("current reserved apps status : %x", val);
-
-       state = bundle_get_val(msg, RESERVED_DISPLAY_MESSAGE_KEY_STATE);
-       _W("appid [%s], msg value[%s]", remote_app_id, state);
-       if (strncmp(state, RESERVED_DISPLAY_MESSAGE_STATE_SHOW, strlen(state)) == 0) {
-               //reserved app is start
-               EINA_LIST_FOREACH(ad->reserved_apps_list, l, data){
-                       if(strncmp(data, remote_app_id, strlen(data)) == 0){
-                               _W("%s is already in the list", data);
-                               ad->reserved_apps_list = eina_list_remove_list(ad->reserved_apps_list, l);
-                               break;
-                       }
-               }
-               appid = strdup(remote_app_id);
-               ad->reserved_apps_list = eina_list_append(ad->reserved_apps_list, appid);
-               val = val | 0x01;
-               vconf_set_int(VCONFKEY_STARTER_RESERVED_APPS_STATUS, val);
-               _W("now reserved apps status %x", val);
-       }
-       else if (strncmp(state, RESERVED_DISPLAY_MESSAGE_STATE_HIDE, strlen(state)) == 0){
-               //reserved app is stop
-               EINA_LIST_FOREACH(ad->reserved_apps_list, l, data){
-                       if(strncmp(data, remote_app_id, strlen(data)) == 0){
-                               ad->reserved_apps_list = eina_list_remove_list(ad->reserved_apps_list, l);
-                               break;
-                       }
-               }
-               count = eina_list_count(ad->reserved_apps_list);
-               if(count == 0){
-                       _W("there is no reserved app.");
-                       tmp = val;
-                       val = tmp & 0x01;
-                       if(val == 0x01){
-                               tmp = tmp ^ 0x01;
-                       }
-                       vconf_set_int(VCONFKEY_STARTER_RESERVED_APPS_STATUS, tmp);
-                       _W("now reserved apps status %x", tmp);
-               }
-       }
-       else if (strncmp(state, RESERVED_DISPLAY_MESSAGE_STATE_POPUP_SHOW, strlen(state)) == 0){
-               //reserved popup is show
-               ad->reserved_popup_app_id = strdup(remote_app_id);
-               val = val | 0x0010;
-               vconf_set_int(VCONFKEY_STARTER_RESERVED_APPS_STATUS, val);
-               _W("now reserved apps status %x", val);
-       }
-       else if (strncmp(state, RESERVED_DISPLAY_MESSAGE_STATE_POPUP_HIDE, strlen(state)) == 0){
-               //reserved popup is hide
-               if(ad->reserved_popup_app_id == NULL){
-                       _E("there is no reserved popup already");
-               }
-               else{
-                       if(strncmp(ad->reserved_popup_app_id, remote_app_id, strlen(ad->reserved_popup_app_id)) == 0){
-                               ad->reserved_popup_app_id = NULL;
-                               tmp = val;
-                               val = tmp & 0x10;
-                               if(val == 0x10){
-                                       tmp = tmp ^ 0x10;
-                               }
-                               vconf_set_int(VCONFKEY_STARTER_RESERVED_APPS_STATUS, tmp);
-                               _W("now reserved apps status %x", tmp);
-                       }
-               }
-       }
-       else{
-               // no info
-       }
-       EINA_LIST_REVERSE_FOREACH(ad->reserved_apps_list, l, data){
-               _W("%d. %s", i++, data);
-       }
-}
-#if 0
-static void _shealth_view_type_changed_cb(keynode_t* node, void *data)
-{
-       char *val = NULL;
-       struct appdata *ad = (struct appdata *)data;
-
-       _D("%s, %d", __func__, __LINE__);
-
-       if (ad == NULL) {
-               _E("ad is NULL");
-               return;
-       }
-
-       if (node) {
-               val = vconf_keynode_get_str(node);
-       } else {
-               val = vconf_get_str(VCONFKEY_SHEALTH_VIEW_TYPE_STR);
-       }
-
-       clock_mgr_set_reserved_apps_status(val, STARTER_RESERVED_APPS_SHEALTH, ad);
-}
-
-static void _here_navigation_status_changed_cb(keynode_t* node, void *data)
-{
-       int val = NULL;
-       struct appdata *ad = (struct appdata *)data;
-
-       _D("%s, %d", __func__, __LINE__);
-
-       if (ad == NULL) {
-               _E("ad is NULL");
-               return;
-       }
-
-       if (node) {
-               val = vconf_keynode_get_int(node);
-       } else {
-               vconf_get_int(VCONFKEY_HERE_TBT_STATUS_INT, &val);
-       }
-
-       clock_mgr_set_reserved_apps_status(val, STARTER_RESERVED_APPS_HERE, ad);
-}
-
-void clock_mgr_set_reserved_apps_status(void *info, int type, void *data){
-       char *str_info = NULL;
-       int int_info = NULL;
-       int val = 0;
-       int tmp = 0;
-       struct appdata *ad = (struct appdata *)data;
-       _D("%s, %d", __func__, __LINE__);
-       if (ad == NULL) {
-               _E("ad is NULL");
-               return;
-       }
-
-       vconf_get_int(VCONFKEY_STARTER_RESERVED_APPS_STATUS, &val);
-       _W("current reserved apps status : %x", val);
-
-       switch(type){
-               case STARTER_RESERVED_APPS_SHEALTH:{
-                       str_info = (char *)info;
-                       _W("Shealth status is changed (%s)", str_info);
-                       if (strncmp(str_info, "exercise", strlen(str_info)) == 0){
-                               val = val | 0x1000;
-                               if(val >= 0x1100){
-                                       val = val ^ 0x0100;
-                               }
-                               vconf_set_int(VCONFKEY_STARTER_RESERVED_APPS_STATUS, val);
-                               _W("now reserved apps status %x", val);
-                       }
-                       else if (strncmp(str_info, "sleep", strlen(str_info)) == 0){
-                               val = val | 0x0100;
-                               if(val >= 0x1100){
-                                       val = val ^ 0x1000;
-                               }
-                               vconf_set_int(VCONFKEY_STARTER_RESERVED_APPS_STATUS, val);
-                               _W("now reserved apps status %x", val);
-                       }
-                       else{
-                               tmp = val;
-                               val = tmp & 0x1000;
-                               if(val == 0x1000){
-                                       tmp = tmp ^ 0x1000;
-                               }
-                               val = tmp & 0x0100;
-                               if(val == 0x0100){
-                                       tmp = tmp ^ 0x0100;
-                               }
-                               vconf_set_int(VCONFKEY_STARTER_RESERVED_APPS_STATUS, tmp);
-                               _W("now reserved apps status %x", tmp);
-                       }
-                       break;
-               }
-               case STARTER_RESERVED_APPS_NIKE:{
-                       int_info = (int)info;
-                       _W("Nike status is changed (%d)", int_info);
-                       if(int_info == 1){
-                               val = val | 0x0010;
-                               vconf_set_int(VCONFKEY_STARTER_RESERVED_APPS_STATUS, val);
-                               _W("now reserved apps status %x", val);
-                       }
-                       else{
-                               tmp = val;
-                               val = tmp & 0x0010;
-                               if(val == 0x0010){
-                                       tmp = tmp ^ 0x0010;
-                               }
-                               vconf_set_int(VCONFKEY_STARTER_RESERVED_APPS_STATUS, tmp);
-                               _W("now reserved apps status %x", tmp);
-                       }
-                       break;
-               }
-               case STARTER_RESERVED_APPS_HERE:{
-                       int_info = (int)info;
-                       _W("Here status is changed (%d)", int_info);
-                       if(int_info == 1){
-                               val = val | 0x0001;
-                               vconf_set_int(VCONFKEY_STARTER_RESERVED_APPS_STATUS, val);
-                               _W("now reserved apps status %x", val);
-                       }
-                       else{
-                               tmp = val;
-                               val = tmp & 0x0001;
-                               if(val == 0x0001){
-                                       tmp = tmp ^ 0x0001;
-                               }
-                               vconf_set_int(VCONFKEY_STARTER_RESERVED_APPS_STATUS, tmp);
-                               _W("now reserved apps status %x", tmp);
-                       }
-                       break;
-               }
-               default:{
-                       _E("Unknown reserved app.");
-                       break;
-               }
-       }
-       return 0;
-}
-#endif
-
-static void _wake_up_setting_changed_cb(keynode_t* node, void *data)
-{
-       int val = 0;
-       struct appdata *ad = (struct appdata *)data;
-
-       _D("%s, %d", __func__, __LINE__);
-
-       if (ad == NULL) {
-               _E("ad is NULL");
-               return;
-       }
-
-       if(vconf_get_int(VCONFKEY_WMS_WAKEUP_BY_GESTURE_SETTING, &val) < 0) {
-               _E("Failed to get VCONFKEY_WMS_WAKEUP_BY_GESTURE_SETTING");
-               val = 1;
-       }
-       ad->wake_up_setting = val;
-       _W("wake_up_setting is changed to [%d]", ad->wake_up_setting);
-}
-
-static void _ambient_mode_setting_changed_cb(keynode_t* node, void *data)
-{
-       int ambient_mode = 0;
-       struct appdata *ad = (struct appdata *)data;
-       ret_if(!ad);
-
-       ambient_mode = vconf_keynode_get_bool(node);
-       _D("ambient mode : %d", ambient_mode);
-
-       if (ambient_mode) {
-               _D("launch w-clock-viewer");
-               ad->pid_clock_viewer = w_launch_app(W_CLOCK_VIEWER_PKGNAME, NULL);
-       } else {
-               _D("kill w-clock-viewer(%d)", ad->pid_clock_viewer);
-               if (ad->pid_clock_viewer > 0) {
-                       aul_kill_pid(ad->pid_clock_viewer);
-                       ad->pid_clock_viewer = 0;
-               }
-       }
-
-       ad->ambient_mode = ambient_mode;
-       _W("ambient_mode_setting is changed to [%d]", ad->ambient_mode);
-}
-
-
-static Eina_Bool _w_lcdoff_idler_cb(void *data)
-{
-       struct appdata *ad = (struct appdata *)data;
-
-       _D("%s, %d", __func__, __LINE__);
-
-       w_open_app(ad->home_pkgname);
-
-       return ECORE_CALLBACK_CANCEL;
-}
-
-static Eina_Bool _w_launch_pm_unlock_idler_cb(void *data)
-{
-       struct appdata *ad = (struct appdata *)data;
-
-       _D("%s, %d", __func__, __LINE__);
-       display_unlock_state(LCD_OFF, PM_SLEEP_MARGIN);
-
-       return ECORE_CALLBACK_CANCEL;
-}
-
-static Eina_Bool _pm_unlock_timer_cb(void *data){
-       _D("%s, %d", __func__, __LINE__);
-       ecore_idler_add(_w_launch_pm_unlock_idler_cb, data);
-       return ECORE_CALLBACK_CANCEL;
-}
-
-
-static void _notify_pm_lcdoff_cb(keynode_t * node, void *data)
-{
-
-       int ret = -1;
-       int setup_wizard_state = -1;
-       bundle *b = NULL;
-       int lock_type = 0;
-       int tutorial_state = -1;
-       Eina_List *l = NULL;
-       char *info = NULL;
-       int count = 0;
-       int lcdoff_source = vconf_keynode_get_int(node);
-       struct appdata *ad = (struct appdata *)data;
-
-
-       if (ad == NULL) {
-               _E("ad is NULL");
-               return;
-       }
-
-       if (lcdoff_source < 0) {
-               _E("Cannot get VCONFKEY, error (%d)", lcdoff_source);
-               return;
-       }
-
-       _W("LCD OFF by lcd off source[%d], wake_up_setting[%d], ALPM_clock_state[%d]", lcdoff_source, ad->wake_up_setting, ad->ALPM_clock_state);
-
-#if 0
-       if(csc_feature_get_bool(CSC_FEATURE_DEF_BOOL_HOME_LAUNCH_LOCK_WHEN_LCD_ON) == CSC_FEATURE_BOOL_TRUE){
-               _E("CHC bin.");
-               vconf_get_int(VCONFKEY_SETAPPL_PRIVACY_LOCK_TYPE_INT, &lock_type);
-               if(lock_type == 1){
-                       int r = 0;
-                       //PM LOCK - don't go to sleep
-                       display_lock_state(LCD_OFF, STAY_CUR_STATE, 0);
-                       _E("CHC bin & lock type is %d", lock_type);
-                       r = w_launch_app(W_LOCKSCREEN_PKGNAME, NULL);
-
-                       ecore_timer_add(PM_UNLOCK_TIMER_SEC, _pm_unlock_timer_cb, ad);
-               }
-       }
-#endif
-
-       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("don't react for lcd off, setup wizard state is [%d]", setup_wizard_state);
-                       return;
-               }
-       }
-
-
-
-#if 0
-       if (_check_reserved_apps_status(ad)) {
-               _E("_check_running_heath = > don't react for lcd off except ALPM");
-               if (ad->ambient_mode == 1)  {
-                       //Step1. Launch ALPM clock
-                       b = bundle_create();
-                       if(!b) {
-                               _E("Failed to create bundle");
-                               return;
-                       }
-                       //bundle_add(b, APP_CONTROL_OPERATION_MAIN_KEY, APP_CONTROL_OPERATION_MAIN_VALUE);
-                       bundle_add(b, ALPM_CLOCK_OP, ALPM_CLOCK_SHOW);
-
-                       //PM LOCK - don't go to sleep
-                       display_lock_state(LCD_OFF, STAY_CUR_STATE, 0);
-
-                       ad->pid_ALPM_clock = 0;
-                       ret = w_launch_app(W_ALPM_CLOCK_PKGNAME, b);
-                       if (ret >= 0) {
-                               ad->pid_ALPM_clock =ret;
-                               _SECURE_D("[%s] is launched, pid=[%d]", W_ALPM_CLOCK_PKGNAME, ad->pid_ALPM_clock );
-                       }
-                       if(b){
-                               bundle_free(b);
-                       }
-                       //Step2. Do not raise Homescreen
-                       ecore_timer_add(PM_UNLOCK_TIMER_SEC, _pm_unlock_timer_cb, ad);
-               }
-               return;
-       }
-
-
-       if (ad->wake_up_setting == SETTING_WAKE_UP_GESTURE_CLOCK) {
-               //Step1. Launch ALPM clock
-               b = bundle_create();
-               if(!b) {
-                       _E("Failed to create bundle");
-                       return;
-               }
-               //bundle_add(b, APP_CONTROL_OPERATION_MAIN_KEY, APP_CONTROL_OPERATION_MAIN_VALUE);
-               bundle_add(b, ALPM_CLOCK_OP, ALPM_CLOCK_SHOW);
-
-               //PM LOCK - don't go to sleep
-               display_lock_state(LCD_OFF, STAY_CUR_STATE, 0);
-
-               ad->pid_ALPM_clock = 0;
-               ret = w_launch_app(W_ALPM_CLOCK_PKGNAME, b);
-               if (ret >= 0) {
-                       ad->pid_ALPM_clock =ret;
-                       _SECURE_D("[%s] is launched, pid=[%d]", W_ALPM_CLOCK_PKGNAME, ad->pid_ALPM_clock );
-               }
-               if(b) {
-                       bundle_free(b);
-               }
-
-               if(vconf_get_int("db/private/com.samsung.w-home/tutorial", &tutorial_state) < 0) {
-                       _E("Failed to get tutorial status");
-
-               }
-               if(!tutorial_state) {
-                       //Step2. Raise Homescreen
-                       w_open_app(ad->home_pkgname);
-               }
-               ecore_timer_add(PM_UNLOCK_TIMER_SEC, _pm_unlock_timer_cb, ad);
-       } else if (ad->ambient_mode == 1)  {
-
-               //Step1. Launch ALPM clock
-               b = bundle_create();
-               if(!b) {
-                       _E("Failed to create bundle");
-                       return;
-               }
-               //bundle_add(b, APP_CONTROL_OPERATION_MAIN_KEY, APP_CONTROL_OPERATION_MAIN_VALUE);
-               bundle_add(b, ALPM_CLOCK_OP, ALPM_CLOCK_SHOW);
-
-               //PM LOCK - don't go to sleep
-               display_lock_state(LCD_OFF, STAY_CUR_STATE, 0);
-
-               ad->pid_ALPM_clock = 0;
-               ret = w_launch_app(W_ALPM_CLOCK_PKGNAME, b);
-               if (ret >= 0) {
-                       ad->pid_ALPM_clock =ret;
-                       _SECURE_D("[%s] is launched, pid=[%d]", W_ALPM_CLOCK_PKGNAME, ad->pid_ALPM_clock );
-               }
-               if(b) {
-                       bundle_free(b);
-               }
-               //Step2. Do not raise Homescreen
-               ecore_timer_add(PM_UNLOCK_TIMER_SEC, _pm_unlock_timer_cb, ad);
-       }
-
-
-#else
-       if(_check_reserved_popup_status(ad)){
-               _W("reserved popup is on top. do nothing");
-               if((ad->ambient_mode == 1) && (ad->ALPM_clock_state == 0)){
-                       starter_dbus_alpm_clock_signal_send(ad);
-               }
-               return;
-       }
-
-       if (_check_reserved_apps_status(ad)) {
-               _W("reserved app is running now. raise it.");
-
-               EINA_LIST_FOREACH(ad->reserved_apps_list, l, info){
-                       if(strncmp(info, SHEALTH_SLEEP_PKGNAME, strlen(info)) == 0){
-                               _W("%s is in the list. check running state", info);
-                               if(aul_app_is_running(info) == 1){
-                                       _W("%s is now running. raise it.", info);
-                                       //PM LOCK - don't go to sleep
-                                       display_lock_state(LCD_OFF, STAY_CUR_STATE, 0);
-                                       w_open_app(info);
-                                       ecore_timer_add(PM_UNLOCK_TIMER_SEC, _pm_unlock_timer_cb, ad);
-                                       return;
-                               }
-                               else{
-                                       _W("%s is not running now", info);
-                                       ad->reserved_apps_list = eina_list_remove_list(ad->reserved_apps_list, l);
-                                       break;
-                               }
-                       }
-               }
-
-               EINA_LIST_REVERSE_FOREACH(ad->reserved_apps_list, l, info){
-                       if(aul_app_is_running(info) == 1){
-                               //PM LOCK - don't go to sleep
-                               display_lock_state(LCD_OFF, STAY_CUR_STATE, 0);
-                               w_open_app(info);
-                               ecore_timer_add(PM_UNLOCK_TIMER_SEC, _pm_unlock_timer_cb, ad);
-                               break;
-                       }
-                       else{
-                               _W("%s is not running now", info);
-                               ad->reserved_apps_list = eina_list_remove_list(ad->reserved_apps_list, l);
-                               continue;
-                       }
-               }
-               count = eina_list_count(ad->reserved_apps_list);
-               if(count == 0){
-                       _W("there is no reserved app.");
-                       vconf_set_int(VCONFKEY_STARTER_RESERVED_APPS_STATUS, 0);
-               }
-       }
-
-       if ((ad->ambient_mode == 1) && (ad->ALPM_clock_state == 0))  {
-#if 0
-               //Step1. Launch ALPM clock
-               b = bundle_create();
-               if(!b) {
-                       _E("Failed to create bundle");
-                       return;
-               }
-               //bundle_add(b, APP_CONTROL_OPERATION_MAIN_KEY, APP_CONTROL_OPERATION_MAIN_VALUE);
-               bundle_add(b, ALPM_CLOCK_OP, ALPM_CLOCK_SHOW);
-
-               //PM LOCK - don't go to sleep
-               display_lock_state(LCD_OFF, STAY_CUR_STATE, 0);
-
-               ad->pid_ALPM_clock = 0;
-               ret = w_launch_app(W_ALPM_CLOCK_PKGNAME, b);
-               if (ret >= 0) {
-                       ad->pid_ALPM_clock =ret;
-                       _SECURE_D("[%s] is launched, pid=[%d]", W_ALPM_CLOCK_PKGNAME, ad->pid_ALPM_clock );
-               }
-               if(b){
-                       bundle_free(b);
-               }
-               //Step2. Do not raise Homescreen
-               ecore_timer_add(PM_UNLOCK_TIMER_SEC, _pm_unlock_timer_cb, ad);
-#endif
-               starter_dbus_alpm_clock_signal_send(ad);
-       } else {
-               int val = 0;
-               if(vconf_get_bool(VCONFKEY_SETTING_SIMPLE_CLOCK_MODE, &val) < 0) {
-                       _E("Failed to get VCONFKEY_SETTING_SIMPLE_CLOCK_MODE");
-               }
-
-
-               // Not yet fix the setting concept.
-               //if ((_check_reserved_apps_status(ad) == FALSE) && (val == TRUE) && (ad->wake_up_setting == SETTING_WAKE_UP_GESTURE_CLOCK)) {
-               if ((_check_reserved_apps_status(ad) == FALSE) && (ad->wake_up_setting == SETTING_WAKE_UP_GESTURE_CLOCK) && (ad->ALPM_clock_state == 0)) {
-                       //_W("Not reserved apss status AND wake_up_setting is CLOCK AND simple clock setting is [%d] => show simple clock..!!", val);
-                       _W("Not reserved apss status AND wake_up_setting is CLOCK => show simple clock..!!");
-#if 0
-                       //Step1. Launch ALPM clock
-                       b = bundle_create();
-                       if(!b) {
-                               _E("Failed to create bundle");
-                               return;
-                       }
-                       //bundle_add(b, APP_CONTROL_OPERATION_MAIN_KEY, APP_CONTROL_OPERATION_MAIN_VALUE);
-                       bundle_add(b, ALPM_CLOCK_OP, ALPM_CLOCK_SHOW);
-
-                       //PM LOCK - don't go to sleep
-                       display_lock_state(LCD_OFF, STAY_CUR_STATE, 0);
-
-                       ad->pid_ALPM_clock = 0;
-                       ret = w_launch_app(W_ALPM_CLOCK_PKGNAME, b);
-                       if (ret >= 0) {
-                               ad->pid_ALPM_clock =ret;
-                               _SECURE_D("[%s] is launched, pid=[%d]", W_ALPM_CLOCK_PKGNAME, ad->pid_ALPM_clock );
-                       }
-                       if(b){
-                               bundle_free(b);
-                       }
-                       //Step2. Do not raise Homescreen
-                       ecore_timer_add(PM_UNLOCK_TIMER_SEC, _pm_unlock_timer_cb, ad);
-#endif
-                       starter_dbus_alpm_clock_signal_send(ad);
-               }
-       }
-#endif
-}
-
-
-void init_clock_mgr(void *data)
-{
-       int status = -1;
-       int ret = -1;
-       int val = -1;
-       int reserved_apps_msg_port_id = 0;
-       struct appdata *ad = (struct appdata *)data;
-
-       _W("init_clock_mgr.!!");
-#if 0
-       //register message port for reserved apps
-       if ((reserved_apps_msg_port_id = message_port_register_local_port(RESERVED_DISPLAY_MESSAGE_PORT_ID, reserved_apps_message_received_cb)) <= 0) {
-               _E("Failed to register reserved_apps message port cb");
-       }
-       _E("port_id:%d", reserved_apps_msg_port_id);
-       ad->reserved_apps_local_port_id = reserved_apps_msg_port_id;
-#endif
-       if(init_dbus_ALPM_clock_state_signal(ad) < 0) {
-               _E("Failed to init_dbus_ALPM_clock_state_signal");
-       }
-
-       //register wake up gesture setting changed.
-       if(vconf_get_int(VCONFKEY_WMS_WAKEUP_BY_GESTURE_SETTING, &val) < 0) {
-               _E("Failed to get VCONFKEY_WMS_WAKEUP_BY_GESTURE_SETTING");
-               val = 1;
-       }
-       ad->wake_up_setting = val;
-       _W("wake_up_setting : %d", ad->wake_up_setting);
-
-       if (vconf_notify_key_changed(VCONFKEY_WMS_WAKEUP_BY_GESTURE_SETTING, _wake_up_setting_changed_cb, ad) < 0) {
-               _E("Failed to add the callback for VCONFKEY_WMS_WAKEUP_BY_GESTURE_SETTING changed");
-       }
-
-       //register ambient mode changed.
-       if(vconf_get_bool(VCONFKEY_SETAPPL_AMBIENT_MODE_BOOL, &val) < 0) {
-               _E("Failed to get VCONFKEY_SETAPPL_AMBIENT_MODE_BOOL");
-               val = 0;
-       }
-       ad->ambient_mode = val;
-       _W("ambient_mode : %d", ad->ambient_mode);
-
-       if (vconf_notify_key_changed(VCONFKEY_SETAPPL_AMBIENT_MODE_BOOL, _ambient_mode_setting_changed_cb, ad) < 0) {
-               _E("Failed to add the callback for VCONFKEY_SETAPPL_AMBIENT_MODE_BOOL changed");
-       }
-
-       if (vconf_notify_key_changed(VCONFKEY_PM_LCDOFF_SOURCE, _notify_pm_lcdoff_cb, ad) != 0) {
-               _E("Fail vconf_notify_key_changed : VCONFKEY_PM_LCDOFF_SOURCE");
-       }
-
-#if 0
-       if (vconf_notify_key_changed(VCONFKEY_SHEALTH_VIEW_TYPE_STR, _shealth_view_type_changed_cb, ad) < 0) {
-               _E("Failed to add the callback for VCONFKEY_SHEALTH_VIEW_TYPE_STR changed");
-       }
-
-       if (vconf_notify_key_changed(VCONFKEY_HERE_TBT_STATUS_INT, _here_navigation_status_changed_cb, ad) < 0) {
-               _E("Failed to add the callback for VCONFKEY_HERE_TBT_STATUS_INT changed");
-       }
-#endif
-}
-
-
-
-void fini_clock_mgr(void *data)
-{
-       struct appdata *ad = (struct appdata *)data;
-
-       if(vconf_ignore_key_changed(VCONFKEY_WMS_WAKEUP_BY_GESTURE_SETTING, _wake_up_setting_changed_cb) < 0) {
-               _E("Failed to ignore the VCONFKEY_WMS_WAKEUP_BY_GESTURE_SETTING");
-       }
-
-       if(vconf_ignore_key_changed(VCONFKEY_PM_LCDOFF_SOURCE, _notify_pm_lcdoff_cb) < 0) {
-               _E("Failed to ignore the VCONFKEY_PM_LCDOFF_SOURCE");
-       }
-
-       if (vconf_ignore_key_changed(VCONFKEY_SETAPPL_AMBIENT_MODE_BOOL, _ambient_mode_setting_changed_cb) < 0) {
-               _E("Failed to ignore the VCONFKEY_SETAPPL_AMBIENT_MODE_BOOL");
-       }
-
-#if 0
-       if(vconf_ignore_key_changed(VCONFKEY_SHEALTH_VIEW_TYPE_STR, _shealth_view_type_changed_cb) < 0) {
-               _E("Failed to ignore the VCONFKEY_SHEALTH_VIEW_TYPE_STR");
-       }
-
-       if(vconf_ignore_key_changed(VCONFKEY_HERE_TBT_STATUS_INT, _here_navigation_status_changed_cb) < 0) {
-               _E("Failed to ignore the VCONFKEY_HERE_TBT_STATUS_INT");
-       }
-#endif
-
-#if 0 // Disable temporarily for TIZEN 2.3 build
-       if (ad->reserved_apps_local_port_id >= 0) {
-               if (message_port_unregister_local_port(ad->reserved_apps_local_port_id) != MESSAGE_PORT_ERROR_NONE) {
-                       _E("Failed to unregister reserved apps message port cb");
-               }
-       }
-#endif
-
-}
-
-
-
-// End of a file
diff --git a/src/dbus-util.c b/src/dbus-util.c
deleted file mode 100755 (executable)
index ba47cbf..0000000
+++ /dev/null
@@ -1,225 +0,0 @@
-/*
- * 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 "starter.h"
-#include "starter-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 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 DBUS_REPLY_TIMEOUT (120 * 1000)
-
-static struct _info {
-       DBusConnection *connection;
-} s_info = {
-       .connection = NULL,
-};
-
-static DBusConnection *_dbus_connection_get(void) {
-       if (s_info.connection == NULL) {
-               _W("no connection for dbus. get dbus connection");
-               DBusError derror;
-               DBusConnection *connection = NULL;
-
-               dbus_error_init(&derror);
-               connection = dbus_bus_get_private(DBUS_BUS_SYSTEM, &derror);
-               if (connection == NULL) {
-                       _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 int _invoke_dbus_method_sync(const char *dest, const char *path,
-               const char *interface, const char *method,
-               const char *sig, char *param[])
-{
-       DBusMessage *msg;
-       DBusMessageIter iter;
-       DBusMessage *reply;
-       DBusError err;
-       int r, ret;
-
-       DBusConnection *conn = NULL;
-
-       conn = (DBusConnection *)_dbus_connection_get();
-       if (!conn) {
-               _E("dbus_bus_get error");
-               return -1;
-       }
-
-       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 -EBADMSG;
-       }
-
-       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 -EBADMSG;
-       }
-
-       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 -EBADMSG;
-       }
-
-       return reply;
-}
-
-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 starter_dbus_home_raise_signal_send(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 starter_dbus_set_oomadj(int pid, int oom_adj_value)
-{
-       if(pid <= 0){
-               _E("Pid is invalid");
-               return -1;
-       }
-       DBusError err;
-       DBusMessage *msg;
-       char *pa[4];
-       char buf1[16];
-       char buf2[16];
-       int ret, val;
-
-       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;
-}
diff --git a/src/dbus-util_w.c b/src/dbus-util_w.c
deleted file mode 100755 (executable)
index 751adf2..0000000
+++ /dev/null
@@ -1,745 +0,0 @@
-/*
- * 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 <Ecore.h>
-#include <dd-display.h>
-#include <aul.h>
-
-#include "starter_w.h"
-#include "dbus-util_w.h"
-#include "util.h"
-
-
-#define DEVICED_BUS_NAME        "org.tizen.system.deviced"
-#define DEVICED_OBJECT_PATH     "/Org/Tizen/System/DeviceD"
-#define DEVICED_INTERFACE_NAME  DEVICED_BUS_NAME
-
-#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 DBUS_REPLY_TIMEOUT      (120 * 1000)
-
-#define DISPLAY_OBJECT_PATH     DEVICED_OBJECT_PATH"/Display"
-#define DEVICED_INTERFACE_DISPLAY  DEVICED_INTERFACE_NAME".display"
-#define MEMBER_ALPM_ON          "ALPMOn"
-#define MEMBER_ALPM_OFF         "ALPMOff"
-#define MEMBER_LCD_ON                  "LCDOn"
-#define MEMBER_LCD_OFF                         "LCDOff"
-#define LCD_ON_BY_GESTURE              "gesture"
-
-
-#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 COOL_DOWN_MODE_PATH            DEVICED_OBJECT_PATH"/SysNoti"
-#define COOL_DOWN_MODE_INTERFACE       DEVICED_BUS_NAME".SysNoti"
-#define SIGNAL_COOL_DOWN_MODE          "CoolDownChanged"
-#define METHOD_COOL_DOWN_MODE          "GetCoolDownStatus"
-#define COOL_DOWN_MODE_RELEASE         "Release"
-#define COOL_DOWN_MODE_LIMITACTION     "LimitAction"
-
-#define NIKE_RUNNING_STATUS_PATH               "/Com/Nike/Nrunning/RunningMgr"
-#define NIKE_RUNNING_STATUS_INTERFACE  "com.nike.nrunning.runningmgr"
-#define NIKE_RUNNING_STATUS_SIGNAL             "RunningStatus"
-#define NIKE_RUNNING_STATUS_START              "start"
-#define NIKE_RUNNING_STATUS_END                        "end"
-
-#define DBUS_ALPM_CLOCK_PATH                   "/Org/Tizen/System/AlpmMgr"
-#define DBUS_ALPM_CLOCK_INTERFACE              "org.tizen.system.alpmmgr"
-#define DBUS_ALPM_CLOCK_MEMBER_STATUS  "ALPMStatus"
-#define ALPM_CLOCK_SHOW                                "show"
-
-#define DBUS_STARTER_ALPMCLOCK_PATH                    "/Org/Tizen/Coreapps/starter"
-#define DBUS_STARTER_ALPMCLOCK_INTERFACE       "org.tizen.coreapps.starter.alpmclock"
-#define DBUS_STARTER_ALPMCLOCK_MEMBER          "show"
-
-
-static struct _info {
-       DBusConnection *connection;
-} s_info = {
-       .connection = NULL,
-};
-
-static int pid_ALPM_clock = 0;
-
-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;
-}
-
-DBusConnection *starter_dbus_connection_get(void) {
-       if (s_info.connection == NULL) {
-               _W("no connection for dbus. get dbus connection");
-               DBusError derror;
-               DBusConnection *connection = NULL;
-
-               dbus_error_init(&derror);
-               connection = dbus_bus_get_private(DBUS_BUS_SYSTEM, &derror);
-               if (connection == NULL) {
-                       _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 _dbus_message_send(const char *path, const char *interface, const char *member)
-{
-       int ret = 0;
-       DBusMessage *msg = NULL;
-       DBusConnection *conn = NULL;
-
-       conn = (DBusConnection *)starter_dbus_connection_get();
-       if (!conn) {
-               _E("dbus_bus_get error");
-               return -1;
-       }
-       _E("dbus_message_new_signal(%s:%s-%s)", path, interface, member);
-
-       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 starter_dbus_alpm_clock_signal_send(void *data)
-{
-       int ret = 0;
-
-       struct appdata *ad = (struct appdata *)data;
-       if(ad == NULL){
-               _E("app data is NULL");
-               return;
-       }
-#if 0
-       if(ad->lcd_status == 1){
-               _W("LCD is already on. Do not send alpm clock show msg.");
-               return;
-       }
-#endif
-
-       ret = _dbus_message_send(
-                       DBUS_STARTER_ALPMCLOCK_PATH,
-                       DBUS_STARTER_ALPMCLOCK_INTERFACE,
-                       DBUS_STARTER_ALPMCLOCK_MEMBER);
-       _E("Sending alpmclock show signal, result:%d", ret);
-}
-
-
-DBusMessage *_invoke_dbus_method_sync(const char *dest, const char *path,
-               const char *interface, const char *method,
-               const char *sig, char *param[])
-{
-       DBusConnection *conn;
-       DBusMessage *msg;
-       DBusMessageIter iter;
-       DBusMessage *reply;
-       DBusError err;
-       int r;
-
-       conn = dbus_bus_get(DBUS_BUS_SYSTEM, NULL);
-       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);
-               return NULL;
-       }
-
-       dbus_error_init(&err);
-
-       reply = dbus_connection_send_with_reply_and_block(conn, msg, DBUS_REPLY_TIMEOUT, &err);
-
-       if (!reply) {
-               _E("dbus_connection_send error(No reply)");
-       }
-
-       if (dbus_error_is_set(&err)) {
-               _E("dbus_connection_send error(%s:%s)", err.name, err.message);
-               reply = NULL;
-       }
-
-       dbus_message_unref(msg);
-       dbus_error_free(&err);
-
-       return reply;
-}
-
-DBusMessage *_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;
-       DBusMessage *reply;
-       DBusError err;
-       int r;
-
-       conn = dbus_bus_get(DBUS_BUS_SYSTEM, NULL);
-       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);
-               return NULL;
-       }
-
-       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 -ECOMM;
-       }
-       _D("dbus_connection_send, ret=%d", r);
-       return NULL;
-}
-
-int get_dbus_cool_down_mode(void *data)
-{
-       _D();
-       struct appdata *ad = (struct appdata *)data;
-       if(ad == NULL){
-               _E("app data is NULL");
-               return -1;
-       }
-       DBusError err;
-       DBusMessage *msg;
-       int ret = 0;
-       char *str = NULL;
-       int ret_val = 0;
-
-       msg = _invoke_dbus_method_sync(DEVICED_BUS_NAME, COOL_DOWN_MODE_PATH, COOL_DOWN_MODE_INTERFACE,
-                       METHOD_COOL_DOWN_MODE, NULL, NULL);
-       if (!msg)
-               return -EBADMSG;
-
-       dbus_error_init(&err);
-
-       ret = dbus_message_get_args(msg, &err, DBUS_TYPE_STRING, &str, DBUS_TYPE_INVALID);
-       if (!ret) {
-               _E("no message : [%s:%s]", err.name, err.message);
-               ret_val = -EBADMSG;
-       }
-
-       dbus_message_unref(msg);
-       dbus_error_free(&err);
-
-       _D("%s-%s : %s", COOL_DOWN_MODE_INTERFACE, METHOD_COOL_DOWN_MODE, str);
-
-       if(!strncmp(str, COOL_DOWN_MODE_RELEASE, strlen(COOL_DOWN_MODE_RELEASE))){
-               _D("%s", COOL_DOWN_MODE_RELEASE);
-               ad->cool_down_mode = 0;
-               return ret_val;
-       }
-       if(!strncmp(str, COOL_DOWN_MODE_LIMITACTION, strlen(COOL_DOWN_MODE_LIMITACTION))){
-               _D("%s", COOL_DOWN_MODE_LIMITACTION);
-               ad->cool_down_mode = 1;
-               return ret_val;
-       }
-}
-
-int request_dbus_cpu_booster(void)
-{
-       DBusError err;
-       DBusMessage *msg;
-       int ret, ret_val;
-       char *arr[1];
-       char val[32];
-
-       snprintf(val, sizeof(val), "%d", DBUS_CPU_BOOSTER_SEC);
-       arr[0] = val;
-
-       msg = _invoke_dbus_method_async(DEVICED_BUS_NAME, CPU_BOOSTER_OBJECT_PATH, CPU_BOOSTER_INTERFACE,
-                       METHOD_CPU_BOOSTER, "i", arr);
-       if (!msg)
-               return -EBADMSG;
-
-       dbus_error_init(&err);
-
-       ret = dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &ret_val, DBUS_TYPE_INVALID);
-       if (!ret) {
-               _E("no message : [%s:%s]", err.name, err.message);
-               ret_val = -EBADMSG;
-       }
-
-       dbus_message_unref(msg);
-       dbus_error_free(&err);
-
-       _D("%s-%s : %d", CPU_BOOSTER_INTERFACE, METHOD_CPU_BOOSTER, ret_val);
-       return ret_val;
-}
-
-
-int request_Poweroff(void)
-{
-       DBusError err;
-       DBusMessage *msg;
-       int ret, ret_val;
-
-       msg = _invoke_dbus_method_async(POWEROFF_BUS_NAME, POWEROFF_OBJECT_PATH, POWEROFF_INTERFACE_NAME,
-                       METHOD_POWEROFF_NAME, NULL, NULL);
-       if (!msg)
-               return -EBADMSG;
-
-       dbus_error_init(&err);
-
-       ret = dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &ret_val, DBUS_TYPE_INVALID);
-       if (!ret) {
-               _E("no message : [%s:%s]", err.name, err.message);
-               ret_val = -EBADMSG;
-       }
-
-       dbus_message_unref(msg);
-       dbus_error_free(&err);
-
-       _D("%s-%s : %d", POWEROFF_INTERFACE_NAME, METHOD_POWEROFF_NAME, ret_val);
-       return ret_val;
-}
-
-
-#define W_CLOCK_ALPM_PKGNAME "com.samsung.idle-clock-alpm"
-static void _on_ALPM_changed_receive(void *data, DBusMessage *msg)
-{
-       DBusError err;
-       char *str;
-       int response;
-       int r;
-       int alpm_on = 0;        
-       int alpm_off = 0;
-
-       _D("ALPM signal is received");
-
-       alpm_on = dbus_message_is_signal(msg, DEVICED_INTERFACE_DISPLAY, MEMBER_ALPM_ON);
-       alpm_off = dbus_message_is_signal(msg, DEVICED_INTERFACE_DISPLAY, MEMBER_ALPM_OFF);
-
-       if (alpm_on) {
-               pid_ALPM_clock = w_launch_app(W_CLOCK_ALPM_PKGNAME, NULL);
-               _D("Launch ALPM clock[%s], pid[%d]", W_CLOCK_ALPM_PKGNAME, pid_ALPM_clock);
-       } else if (alpm_off) {
-#if 1
-               aul_terminate_pid(pid_ALPM_clock);
-#else
-               if (!pid_ALPM_clock) {
-                       aul_terminate_pid(pid_ALPM_clock);
-                       _D("Terminate ALPM clock pid[%d]", pid_ALPM_clock);
-                       pid_ALPM_clock = 0;
-               } else {
-                       _E(" ALPM clock pid is 0");
-               }
-#endif
-       } else {
-               _E("%s dbus_message_is_signal error", DEVICED_INTERFACE_DISPLAY);
-       }
-}
-
-
-int init_dbus_ALPM_signal(void *data)
-{
-       E_DBus_Connection *conn;
-       E_DBus_Signal_Handler *handler;
-       int r;
-
-       g_type_init();
-       e_dbus_init();
-
-       conn = e_dbus_bus_get(DBUS_BUS_SYSTEM);
-       if (conn == NULL) {
-               _E("e_dbus_bus_get error");
-               return -1;
-       }
-
-       handler = e_dbus_signal_handler_add(conn, NULL, DISPLAY_OBJECT_PATH,
-                                                               DEVICED_INTERFACE_DISPLAY, MEMBER_ALPM_ON,
-                                                               _on_ALPM_changed_receive, NULL);
-       if (handler == NULL) {
-               _E("e_dbus_signal_handler_add error");
-               return -1;
-       }
-
-
-       handler = e_dbus_signal_handler_add(conn, NULL, DISPLAY_OBJECT_PATH,
-                                                               DEVICED_INTERFACE_DISPLAY, MEMBER_ALPM_OFF,
-                                                               _on_ALPM_changed_receive, NULL);
-       if (handler == NULL) {
-               _E("e_dbus_signal_handler_add error");
-               return -1;
-       }
-}
-
-static void _on_COOL_DOWN_MODE_changed_receive(void *data, DBusMessage *msg)
-{
-       struct appdata *ad = (struct appdata *)data;
-       if(ad == NULL){
-               _E("app data is NULL");
-               return;
-       }
-       DBusError err;
-       const char *str = NULL;
-       int response;
-       int r;
-       int mode_release = 0;
-       int mode_limitaction = 0;
-
-       _W("COOL DOWN MODE signal is received");
-       dbus_error_init(&err);
-
-       r = dbus_message_is_signal(msg, COOL_DOWN_MODE_INTERFACE, SIGNAL_COOL_DOWN_MODE);
-
-       r = dbus_message_get_args(msg, &err, DBUS_TYPE_STRING, &str, DBUS_TYPE_INVALID);
-       if (!r) {
-               _E("no message : [%s:%s]", err.name, err.message);
-               return;
-       }
-
-       _D("received siganl : %s", str);
-
-       if (!strncmp(str, COOL_DOWN_MODE_RELEASE, strlen(COOL_DOWN_MODE_RELEASE))) {
-               _W("%s", COOL_DOWN_MODE_RELEASE);
-               ad->cool_down_mode = 0;
-       } else if (!strncmp(str, COOL_DOWN_MODE_LIMITACTION, strlen(COOL_DOWN_MODE_LIMITACTION))) {
-               _W("%s", COOL_DOWN_MODE_LIMITACTION);
-               ad->cool_down_mode = 1;
-       } else {
-               _E("%s dbus_message_is_signal error", SIGNAL_COOL_DOWN_MODE);
-       }
-}
-
-int init_dbus_COOL_DOWN_MODE_signal(void *data)
-{
-       struct appdata *ad = (struct appdata *)data;
-       if(ad == NULL){
-               _E("app data is NULL");
-               return -1;
-       }
-       E_DBus_Connection *conn;
-       E_DBus_Signal_Handler *handler;
-       int r;
-
-       g_type_init();
-       e_dbus_init();
-
-       conn = e_dbus_bus_get(DBUS_BUS_SYSTEM);
-       if (conn == NULL) {
-               _E("e_dbus_bus_get error");
-               return -1;
-       }
-
-       handler = e_dbus_signal_handler_add(conn, NULL, COOL_DOWN_MODE_PATH,
-                                                               COOL_DOWN_MODE_INTERFACE, SIGNAL_COOL_DOWN_MODE,
-                                                               _on_COOL_DOWN_MODE_changed_receive, ad);
-       if (handler == NULL) {
-               _E("e_dbus_signal_handler_add error");
-               return -1;
-       }
-}
-#if 0
-static void _on_NIKE_RUNNING_STATUS_changed_receive(void *data, DBusMessage *msg)
-{
-       struct appdata *ad = (struct appdata *)data;
-       if(ad == NULL){
-               _E("app data is NULL");
-               return;
-       }
-       DBusError err;
-       const char *str = NULL;
-       int response;
-       int r;
-       int mode_release = 0;
-       int mode_limitaction = 0;
-
-       _W("NIKE RUNNING STATUS signal is received");
-       dbus_error_init(&err);
-
-       r = dbus_message_is_signal(msg, NIKE_RUNNING_STATUS_INTERFACE, NIKE_RUNNING_STATUS_SIGNAL);
-
-       r = dbus_message_get_args(msg, &err, DBUS_TYPE_STRING, &str, DBUS_TYPE_INVALID);
-       if (!r) {
-               _E("no message : [%s:%s]", err.name, err.message);
-               return;
-       }
-
-       _W("received siganl : %s", str);
-
-       if (!strncmp(str, NIKE_RUNNING_STATUS_START, strlen(NIKE_RUNNING_STATUS_START))) {
-               _W("%s", NIKE_RUNNING_STATUS_START);
-               ad->nike_running_status = 1;
-       } else if (!strncmp(str, NIKE_RUNNING_STATUS_END, strlen(NIKE_RUNNING_STATUS_END))) {
-               _W("%s", NIKE_RUNNING_STATUS_END);
-               ad->nike_running_status = 0;
-       } else {
-               _E("%s dbus_message_is_signal error", NIKE_RUNNING_STATUS_SIGNAL);
-       }
-       clock_mgr_set_reserved_apps_status(ad->nike_running_status, STARTER_RESERVED_APPS_NIKE, ad);
-}
-
-int init_dbus_NIKE_RUNNING_STATUS_signal(void *data)
-{
-       struct appdata *ad = (struct appdata *)data;
-       if(ad == NULL){
-               _E("app data is NULL");
-               return -1;
-       }
-       E_DBus_Connection *conn;
-       E_DBus_Signal_Handler *handler;
-       int r;
-
-       g_type_init();
-       e_dbus_init();
-
-       conn = e_dbus_bus_get(DBUS_BUS_SYSTEM);
-       if (conn == NULL) {
-               _E("e_dbus_bus_get error");
-               return -1;
-       }
-
-       handler = e_dbus_signal_handler_add(conn, NULL, NIKE_RUNNING_STATUS_PATH,
-                                                               NIKE_RUNNING_STATUS_INTERFACE, NIKE_RUNNING_STATUS_SIGNAL,
-                                                               _on_NIKE_RUNNING_STATUS_changed_receive, ad);
-       if (handler == NULL) {
-               _E("e_dbus_signal_handler_add error");
-               return -1;
-       }
-}
-#endif
-
-static void _on_lcd_changed_receive(void *data, DBusMessage *msg)
-{
-       DBusError err;
-       const char *str = NULL;
-       int response;
-       int r;
-       int lcd_on = 0;
-       int lcd_off = 0;
-
-       struct appdata *ad = (struct appdata *)data;
-
-       _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) {
-#if 0
-               dbus_error_init(&err);
-
-               r = dbus_message_get_args(msg, &err, DBUS_TYPE_STRING, &str, DBUS_TYPE_INVALID);
-
-               if (!r) {
-                       _E("no message : [%s:%s]", err.name, err.message);
-                       return;
-               }
-
-               _W("%s, %d, str=[%s]", __func__, __LINE__, str);
-
-               if (!strncmp(str, LCD_ON_BY_GESTURE, strlen(LCD_ON_BY_GESTURE))) {
-                       _W("LCD ON by [%s], do not terminate ALPM clock", LCD_ON_BY_GESTURE);
-               } else {
-                       if (ad->pid_ALPM_clock > 0) {
-                               _W("LCD ON by [%s], terminate ALPM clock pid[%d]", str, ad->pid_ALPM_clock);
-                               aul_terminate_pid(ad->pid_ALPM_clock);
-                               ad->pid_ALPM_clock = 0;
-                       }
-               }
-#endif
-               _W("LCD on");
-               ad->lcd_status = 1;
-       }
-       else if(lcd_off){
-               _W("LCD off");
-               ad->lcd_status = 0;
-       } else {
-               _E("%s dbus_message_is_signal error", DEVICED_INTERFACE_DISPLAY);
-       }
-}
-
-
-int init_dbus_lcd_on_off_signal(void *data)
-{
-       E_DBus_Connection *conn;
-       E_DBus_Signal_Handler *handler;
-       int r;
-
-       g_type_init();
-       e_dbus_init();
-
-       conn = e_dbus_bus_get(DBUS_BUS_SYSTEM);
-       if (conn == NULL) {
-               _E("e_dbus_bus_get error");
-               return -1;
-       }
-
-
-       handler = e_dbus_signal_handler_add(conn, NULL, DISPLAY_OBJECT_PATH,
-                                                               DEVICED_INTERFACE_DISPLAY, MEMBER_LCD_ON,
-                                                               _on_lcd_changed_receive, data);
-       if (handler == NULL) {
-               _E("e_dbus_signal_handler_add error");
-               return -1;
-       }
-
-       handler = e_dbus_signal_handler_add(conn, NULL, DISPLAY_OBJECT_PATH,
-                                                               DEVICED_INTERFACE_DISPLAY, MEMBER_LCD_OFF,
-                                                               _on_lcd_changed_receive, data);
-       if (handler == NULL) {
-               _E("e_dbus_signal_handler_add error");
-               return -1;
-       }
-}
-
-
-
-static void _on_ALPM_clock_state_changed_receive(void *data, DBusMessage *msg)
-{
-       DBusError err;
-       const char *str = NULL;
-       int response;
-       int r;
-       int lcd_on = 0; 
-
-       struct appdata *ad = (struct appdata *)data;
-
-       _D("ALPM clock state is received");
-
-       lcd_on = dbus_message_is_signal(msg, DBUS_ALPM_CLOCK_INTERFACE, DBUS_ALPM_CLOCK_MEMBER_STATUS);
-
-
-       if (lcd_on) {
-               dbus_error_init(&err);
-
-               r = dbus_message_get_args(msg, &err, DBUS_TYPE_STRING, &str, DBUS_TYPE_INVALID);
-
-               if (!r) {
-                       _E("no message : [%s:%s]", err.name, err.message);
-                       return;
-               }
-
-               _D("%s, %d, str=[%s]", __func__, __LINE__, str);
-               if (!strncmp(str, ALPM_CLOCK_SHOW, strlen(ALPM_CLOCK_SHOW))) {
-                       _W("ALPM clock state is [%s]", ALPM_CLOCK_SHOW);
-                       ad->ALPM_clock_state = 1;
-               } else {
-                       ad->ALPM_clock_state = 0;
-               }
-       } else {
-               _E("%s dbus_message_is_signal error", DBUS_ALPM_CLOCK_INTERFACE);
-       }
-}
-
-int init_dbus_ALPM_clock_state_signal(void *data)
-{
-       struct appdata *ad = (struct appdata *)data;
-       if(ad == NULL){
-               _E("app data is NULL");
-               return -1;
-       }
-       E_DBus_Connection *conn;
-       E_DBus_Signal_Handler *handler;
-       int r;
-
-       g_type_init();
-       e_dbus_init();
-
-       ad->ALPM_clock_state = 0;
-       conn = e_dbus_bus_get(DBUS_BUS_SYSTEM);
-       if (conn == NULL) {
-               _E("e_dbus_bus_get error");
-               return -1;
-       }
-
-       handler = e_dbus_signal_handler_add(conn, NULL, DBUS_ALPM_CLOCK_PATH,
-                                                               DBUS_ALPM_CLOCK_INTERFACE, DBUS_ALPM_CLOCK_MEMBER_STATUS,
-                                                               _on_ALPM_clock_state_changed_receive, ad);
-
-       if (handler == NULL) {
-               _E("e_dbus_signal_handler_add error");
-               return -1;
-       }
-
-       return 1;
-}
-
-
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/direct-access.c b/src/direct-access.c
deleted file mode 100755 (executable)
index bfeaa84..0000000
+++ /dev/null
@@ -1,476 +0,0 @@
-/*
- * 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 <stdio.h>
-#include <Ecore.h>
-#include <dd-display.h>
-#include <dd-led.h>
-#include <aul.h>
-#include <vconf.h>
-#include <Ecore_X.h>
-#include <Ecore_Input.h>
-#include <utilX.h>
-#include <feedback.h>
-#include<Elementary.h>
-#ifndef FEATURE_LITE
-#include <tts.h>
-#endif
-
-#include "starter.h"
-#include "util.h"
-#include "direct-access.h"
-
-#define _(str) dgettext("starter", str)
-
-#define DBUS_REPLY_TIMEOUT (120 * 1000)
-#define DEVICED_BUS_NAME        "org.tizen.system.deviced"
-#define DEVICED_OBJECT_PATH     "/Org/Tizen/System/DeviceD"
-#define DEVICED_INTERFACE_NAME  DEVICED_BUS_NAME
-
-#define ALWAYS_ASK_BUS_NAME       "org.tizen.system.popup"
-#define ALWAYS_ASK_OBJECT_PATH    "/Org/Tizen/System/Popup/System"
-#define ALWAYS_ASK_INTERFACE_NAME ALWAYS_ASK_BUS_NAME".System"
-#define METHOD_ALWAYS_ASK_NAME    "AccessibilityPopupLaunch"
-#define ALWAYS_ASK_PARAM_1        "_SYSPOPUP_CONTENT_"
-#define ALWAYS_ASK_PARAM_2        "accessibility"
-
-#ifndef FEATURE_LITE
-static tts_h tts;
-#endif
-static int tts_status;
-
-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;
-}
-
-
-DBusMessage *invoke_dbus_method_sync(const char *dest, const char *path,
-               const char *interface, const char *method,
-               const char *sig, char *param[])
-{
-       DBusConnection *conn;
-       DBusMessage *msg;
-       DBusMessageIter iter;
-       DBusMessage *reply;
-       DBusError err;
-       int r;
-
-       conn = dbus_bus_get(DBUS_BUS_SYSTEM, NULL);
-       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);
-               return NULL;
-       }
-
-       dbus_error_init(&err);
-
-       reply = dbus_connection_send_with_reply_and_block(conn, msg, DBUS_REPLY_TIMEOUT, &err);
-       if (!reply) {
-               _E("dbus_connection_send error(No reply)");
-       }
-
-       if (dbus_error_is_set(&err)) {
-               _E("dbus_connection_send error(%s:%s)", err.name, err.message);
-               reply = NULL;
-       }
-
-       dbus_message_unref(msg);
-       dbus_error_free(&err);
-
-       return reply;
-}
-
-
-DBusMessage *invoke_dbus_method(const char *dest, const char *path,
-               const char *interface, const char *method,
-               const char *sig, char *param[])
-{
-       DBusConnection *conn;
-       DBusMessage *msg;
-       DBusMessageIter iter;
-       DBusMessage *reply;
-       DBusError err;
-       int r;
-
-       conn = dbus_bus_get(DBUS_BUS_SYSTEM, NULL);
-       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);
-               return NULL;
-       }
-
-       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 -ECOMM;
-       }
-       _D("dbus_connection_send, ret=%d", r);
-       return NULL;
-}
-
-
-
-
-
-
-
-
-static void _set_assistive_light(void)
-{
-       int max, state, ret;
-
-       max = led_get_max_brightness();
-       if (max < 0)
-               max = 1;
-
-       state = led_get_brightness();
-       if (state > 0) {
-               ret = led_set_brightness_with_noti(0, true);
-               if (ret == 0)
-                       vconf_set_bool(VCONFKEY_SETAPPL_ACCESSIBILITY_TORCH_LIGHT, 0);
-       } else {
-               ret = led_set_brightness_with_noti(max, true);
-               if (ret == 0)
-                       vconf_set_bool(VCONFKEY_SETAPPL_ACCESSIBILITY_TORCH_LIGHT, 1);
-       }
-
-       if(feedback_initialize() == FEEDBACK_ERROR_NONE)
-       {
-               _D("make vibration effect");
-               feedback_play_type(FEEDBACK_TYPE_VIBRATION, FEEDBACK_PATTERN_TAP);
-               feedback_deinitialize();
-       }
-}
-
-
-
-#define LIVE_SETTING_APP "com.samsung.live-setting-app"
-static int _launch_live_setting_app(void)
-{
-       bundle *b;
-       int ret;
-
-       b = bundle_create();
-       if (!b) {
-               _E("Failed to create bundle");
-               return -ENOMEM;
-       }
-
-       ret = bundle_add(b, "popup", "zoom");
-       if (ret < 0) {
-               _E("Failed to add parameters to bundle");
-               goto out;
-       }
-
-       ret = aul_launch_app(LIVE_SETTING_APP, b);
-       if (ret < 0)
-               _E("Failed to launch app(%s)", LIVE_SETTING_APP);
-
-out:
-       bundle_free(b);
-       return ret;
-}
-
-static bool _is_aircommand_on(void)
-{
-       int state;
-       if (vconf_get_bool(VCONFKEY_AIRCOMMAND_ENABLED, &state) == 0
-                       && state == 1)
-               return true;
-       return false;
-}
-
-#define PROP_ZOOM      "_E_ACC_ENABLE_ZOOM_UI_"
-static void _set_zoom(void)
-{
-       int ret;
-       unsigned int value;
-       Ecore_X_Window rootWin;
-       Ecore_X_Atom atomZoomUI;
-
-       rootWin = ecore_x_window_root_first_get();
-       atomZoomUI = ecore_x_atom_get(PROP_ZOOM);
-
-       ret = ecore_x_window_prop_card32_get(rootWin, atomZoomUI, &value, 1);
-       if (ret == 1 && value == 1)
-               value = 0;
-       else
-               value = 1;
-
-       ecore_x_window_prop_card32_set(rootWin, atomZoomUI, &value, 1);
-       ecore_x_flush();
-
-       vconf_set_bool(VCONFKEY_SETAPPL_ACCESSIBILITY_SCREEN_ZOOM, value);
-}
-
-
-
-#define PROP_HIGH_CONTRAST "_E_ACC_ENABLE_HIGH_CONTRAST_"
-static void _set_contrast(void)
-{
-       int ret;
-       unsigned int value;
-       Ecore_X_Window rootWin;
-       Ecore_X_Atom atomHighContrast;
-
-       rootWin = ecore_x_window_root_first_get();
-       atomHighContrast = ecore_x_atom_get(PROP_HIGH_CONTRAST);
-
-       ret = ecore_x_window_prop_card32_get(rootWin, atomHighContrast, &value, 1);
-       if (ret == 1 && value == 1)
-               value = 0;
-       else
-               value = 1;
-
-       ecore_x_window_prop_card32_set(rootWin, atomHighContrast, &value, 1);
-       ecore_x_flush();
-
-       vconf_set_bool(VCONFKEY_SETAPPL_ACCESSIBILITY_HIGH_CONTRAST, value);
-}
-#ifndef FEATURE_LITE
-void utterance_completed_callback(tts_h tts, int utt_id, void* user_data){
-       _D("");
-       int ret = 0;
-       int u_id = 0;
-       ret = tts_stop(tts);
-       if(ret != TTS_ERROR_NONE){
-               _E("fail to stop(%d)", ret);
-               return;
-       }
-       ret = tts_unprepare(tts);
-       if(ret != TTS_ERROR_NONE){
-               _E("fail to unprepare(%d)", ret);
-               return;
-       }
-       if(tts){
-               ret = tts_destroy(tts);
-               tts = NULL;
-       }
-       return;
-}
-
-void _tts_state_changed_cb(tts_h tts, tts_state_e previous, tts_state_e current, void* data){
-       int ret = 0;
-       int u_id = 0;
-       bindtextdomain("starter", "/usr/share/locale");
-       appcore_set_i18n();
-       if(TTS_STATE_CREATED == previous && current == TTS_STATE_READY){
-               if(tts_status){
-                       ret = tts_add_text(tts, _("IDS_TPLATFORM_BODY_SCREEN_READER_ENABLED_T_TTS"), NULL, TTS_VOICE_TYPE_AUTO, TTS_SPEED_AUTO, &u_id);
-                       if(ret != TTS_ERROR_NONE){
-                               _E("fail to add text(%d)", ret);
-                               return;
-                       }
-               }
-               else{
-                       ret = tts_add_text(tts, _("IDS_TPLATFORM_BODY_SCREEN_READER_DISABLED_T_TTS"), NULL, TTS_VOICE_TYPE_AUTO, TTS_SPEED_AUTO, &u_id);
-                       if(ret != TTS_ERROR_NONE){
-                               _E("fail to add text(%d)", ret);
-                               return;
-                       }
-               }
-               ret = tts_play(tts);
-               if(ret != TTS_ERROR_NONE){
-                       _E("fail to play(%d)", ret);
-                       return;
-               }
-       }
-}
-
-static void _starter_tts_play(void){
-       int ret = 0;
-       int u_id = 0;
-
-       ret = tts_create(&tts);
-       if(ret != TTS_ERROR_NONE){
-               _E("fail to get handle(%d)", ret);
-               return;
-       }
-       ret = tts_set_state_changed_cb(tts, _tts_state_changed_cb, NULL);
-       if(ret != TTS_ERROR_NONE){
-               _E("fail to set state changed cb(%d)", ret);
-               return;
-       }
-       ret = tts_set_mode(tts, TTS_MODE_NOTIFICATION);
-       if(ret != TTS_ERROR_NONE){
-               _E("fail to set mode(%d)", ret);
-               return;
-       }
-       ret = tts_set_utterance_completed_cb(tts, utterance_completed_callback, NULL);
-       if(ret != TTS_ERROR_NONE){
-               _E("fail to prepare(%d)", ret);
-               return;
-       }
-       ret = tts_prepare(tts);
-       if(ret != TTS_ERROR_NONE){
-               _E("fail to prepare(%d)", ret);
-               return;
-       }
-       return;
-}
-#endif
-static int _set_accessibility_tts(void)
-{
-       if (vconf_get_bool(VCONFKEY_SETAPPL_ACCESSIBILITY_TTS, &tts_status) < 0) {
-               _E("FAIL: vconf_get_bool()");
-               return -1;
-       }
-
-       if (tts_status == FALSE)
-               tts_status = TRUE;
-       else
-               tts_status = FALSE;
-       if (vconf_set_bool(VCONFKEY_SETAPPL_ACCESSIBILITY_TTS, tts_status) < 0) {
-               _E("FAIL: vconf_set_bool()");
-               return -1;
-       }
-#ifndef FEATURE_LITE
-       _starter_tts_play();
-#endif
-       return 0;
-}
-
-
-
-static int _launch_always_ask(void)
-{
-       DBusError err;
-       DBusMessage *msg;
-       int ret, ret_val;
-       char *arr[2];
-       char val[32];
-
-       arr[0] = ALWAYS_ASK_PARAM_1;
-       arr[1] = ALWAYS_ASK_PARAM_2;
-
-       msg = invoke_dbus_method(ALWAYS_ASK_BUS_NAME, ALWAYS_ASK_OBJECT_PATH, ALWAYS_ASK_INTERFACE_NAME,
-                       METHOD_ALWAYS_ASK_NAME, "ss", arr);
-       if (!msg)
-               return -EBADMSG;
-
-       dbus_error_init(&err);
-
-       ret = dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &ret_val, DBUS_TYPE_INVALID);
-       if (!ret) {
-               _E("no message : [%s:%s]", err.name, err.message);
-               ret_val = -EBADMSG;
-       }
-
-       dbus_message_unref(msg);
-       dbus_error_free(&err);
-
-       _D("%s-%s : %d", ALWAYS_ASK_INTERFACE_NAME, METHOD_ALWAYS_ASK_NAME, ret_val);
-       return ret_val;
-}
-
-
-
-int launch_direct_access(int access_val)
-{
-       int ret = 0;
-       _D("launch_direct_access [%d]", access_val);
-
-       /* Direct Access Operation */
-       switch (access_val) {
-               case SETTING_POWERKEY_SHORTCUT_ALWAYS_ASK:
-                       if (!_launch_always_ask())
-                               ret = -1;
-                       break;
-               case SETTING_POWERKEY_SHORTCUT_SCREEN_READER_TTS:
-                       if (!_set_accessibility_tts())
-                               ret = -1;
-                       break;
-               case SETTING_POWERKEY_SHORTCUT_NEGATIVE_COLOURS:
-                       _set_contrast();
-                       break;
-               case SETTING_POWERKEY_SHORTCUT_ZOOM:
-                       if (_is_aircommand_on()) {
-                               ret = -1;
-                               if (_launch_live_setting_app() < 0)
-                                       _E("Failed to launch (%s)", LIVE_SETTING_APP);
-                               return ret;
-                       }
-                       _set_zoom();
-                       break;
-               case SETTING_POWERKEY_SHORTCUT_ASSISTIVE_LIGHT:
-                       _set_assistive_light();
-                       break;
-               case SETTING_POWERKEY_SHORTCUT_SHOT_READER:
-
-                       break;
-               default:
-                       ret = -1;
-                       break;
-       }
-       return ret;
-}
-
diff --git a/src/hw_key.c b/src/hw_key.c
deleted file mode 100755 (executable)
index 6ddd9e0..0000000
+++ /dev/null
@@ -1,1600 +0,0 @@
-/*
- * 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 <ail.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 "direct-access.h"
-#include "hw_key.h"
-#include "lock-daemon.h"
-#include "menu_daemon.h"
-#include "util.h"
-#include "dbus-util.h"
-
-#define _DEF_BEZEL_AIR_COMMAND         0
-
-#define CAMERA_PKG_NAME "com.samsung.camera-app"
-#define CALLLOG_PKG_NAME "com.samsung.calllog"
-#define SVOICE_PKG_NAME "com.samsung.svoice"
-#define MUSIC_PLAYER_PKG_NAME "com.samsung.music-player"
-#define MUSIC_PLAYER_LITE_PKG_NAME "com.samsung.music-player-lite"
-
-#ifdef FEATURE_LITE
-#define SAFETY_ASSURANCE_PKG_NAME "com.samsung.emergency-message-lite"
-#else
-#define SAFETY_ASSURANCE_PKG_NAME "com.samsung.emergency-message"
-#endif
-
-#define WEBPAGE_PKG_NAME "com.samsung.browser"
-#define MAIL_PKG_NAME "com.samsung.email"
-#define DIALER_PKG_NAME "com.samsung.phone"
-#define STR_ATOM_XKEY_COMPOSITION "_XKEY_COMPOSITION"
-#define STR_ATOM_KEYROUTER_NOTIWINDOW "_KEYROUTER_NOTIWINDOW"
-
-#define SERVICE_OPERATION_MAIN_KEY "__APP_SVC_OP_TYPE__"
-#define SERVICE_OPERATION_MAIN_VALUE "http://tizen.org/appcontrol/operation/main"
-
-#define SVOICE_LAUNCH_BUNDLE_KEY "domain"
-#define SVOICE_LAUNCH_BUNDLE_VALUE "earjack"
-#define SVOICE_LAUNCH_BUNDLE_HOMEKEY_VALUE "home_key"
-
-#define _VCONF_QUICK_COMMADN_NAME              "db/aircommand/enabled"
-#define _VCONF_QUICK_COMMADN_FLOATING  "db/aircommand/floating"
-#define HALL_COVERED_STATUS            0
-
-#define POWERKEY_TIMER_SEC 0.700
-#define POWERKEY_TIMER_MSEC 700
-#define POWERKEY_CODE "XF86PowerOff"
-
-#define LONG_PRESS_TIMER_SEC 0.4
-#define HOMEKEY_TIMER_SEC 0.2
-#define UNLOCK_TIMER_SEC 0.8
-#define CANCEL_KEY_TIMER_SEC 0.3
-
-static struct {
-       Ecore_X_Window win;
-       Ecore_Event_Handler *key_up;
-       Ecore_Event_Handler *key_down;
-       Ecore_Event_Handler *client_msg_hd;
-       Ecore_Event_Handler *two_finger_double_tap;
-       Ecore_Event_Handler *two_finger_long_tap;
-       Ecore_Event_Handler *bezel_gesture;
-       Ecore_Timer *long_press_timer;
-       Ecore_Timer *single_timer;
-       Ecore_Timer *homekey_timer;
-       Ecore_Timer *media_long_press;
-       Ecore_Timer *client_msg_timer;
-       Ecore_Timer *cancel_key_timer;
-       Eina_Bool cancel;
-       Eina_Bool is_cancel;
-       Eina_Bool ignore_home_key;
-       Eina_Bool enable_safety_assurance;
-       Ecore_X_Window keyrouter_notiwindow;
-       int homekey_count;
-       int powerkey_count;
-       unsigned int powerkey_time_stamp;
-} key_info = {
-       .win = 0x0,
-       .key_up = NULL,
-       .key_down = NULL,
-       .client_msg_hd = NULL,
-       .long_press_timer = NULL,
-       .single_timer = NULL,
-       .homekey_timer = NULL,
-       .media_long_press = NULL,
-       .client_msg_timer = NULL,
-       .cancel_key_timer = NULL,
-       .cancel = EINA_FALSE,
-       .is_cancel = EINA_FALSE,
-       .ignore_home_key = EINA_FALSE,
-       .enable_safety_assurance = EINA_FALSE,
-       .keyrouter_notiwindow = 0x0,
-       .two_finger_double_tap = NULL,
-       .two_finger_long_tap = NULL,
-       .homekey_count = 0,
-       .powerkey_count = 0,
-       .powerkey_time_stamp = 0,
-};
-
-static Ecore_Timer *gtimer_launch = NULL;
-static bool gbenter_idle = false;
-static bool gbinit_floatwin = false;
-static int gbRegisterDuobleTap = 0;
-
-
-
-static Eina_Bool _launch_taskmgr_cb(void* data)
-{
-       int val = -1;
-       _D("Launch TASKMGR");
-
-       key_info.long_press_timer = NULL;
-
-       if (vconf_get_int(VCONFKEY_IDLE_LOCK_STATE, &val) < 0) {
-               _E("Cannot get VCONFKEY for lock state");
-       }
-       if (val == VCONFKEY_IDLE_LOCK) {
-               _E("lock state, ignore home key long press..!!");
-               return ECORE_CALLBACK_CANCEL;
-       }
-
-       if (lockd_get_hall_status() == HALL_COVERED_STATUS) {
-               _E("scover is closed, ignore home key long press..!!");
-               return ECORE_CALLBACK_CANCEL;
-       }
-
-       bundle *b;
-       b = bundle_create();
-       retv_if(NULL == b, ECORE_CALLBACK_CANCEL);
-       bundle_add(b, "HIDE_LAUNCH", "0");
-
-       int ret = menu_daemon_launch_app(menu_daemon_get_taskmgr_pkgname(), b);
-       goto_if(0 > ret, OUT);
-
-       if(ret > 0){
-               if(starter_dbus_set_oomadj(ret, OOM_ADJ_VALUE_DEFAULT) < 0){
-                       _E("failed to send oom dbus signal");
-               }
-       }
-
-OUT:
-       bundle_free(b);
-       return ECORE_CALLBACK_CANCEL;
-}
-
-
-
-#define DESKDOCK_PKG_NAME "com.samsung.desk-dock"
-static Eina_Bool _launch_by_home_key(void *data)
-{
-       int lock_state = (int) data;
-       int ret = 0;
-       _D("lock_state : %d ", lock_state);
-
-       key_info.single_timer = NULL;
-
-       if (lock_state == VCONFKEY_IDLE_LOCK) {
-               return ECORE_CALLBACK_CANCEL;
-       }
-
-       if (lockd_get_hall_status() == HALL_COVERED_STATUS) {
-               _D("scover is closed, ignore home key..!!");
-               return ECORE_CALLBACK_CANCEL;
-       }
-
-       if (lockd_get_lock_state() > VCONFKEY_IDLE_UNLOCK) {
-               return ECORE_CALLBACK_CANCEL;
-       }
-
-       int cradle_status = menu_daemon_get_cradle_status();
-       if (0 < cradle_status) {
-               int ret;
-               _SECURE_D("Cradle is enabled to [%d], we'll launch the desk dock[%s]", cradle_status, DESKDOCK_PKG_NAME);
-               ret = menu_daemon_open_app(DESKDOCK_PKG_NAME);
-               if (ret < 0) {
-                       _SECURE_E("cannot launch package %s(err:%d)", DESKDOCK_PKG_NAME, ret);
-               }
-       }
-
-       ret = menu_daemon_open_homescreen(NULL);
-
-       if(ret > 0){
-               starter_dbus_home_raise_signal_send();
-       }
-
-       return ECORE_CALLBACK_CANCEL;
-}
-
-
-
-inline static Eina_Bool _launch_svoice(void)
-{
-       const char *pkg_name = NULL;
-       bundle *b = NULL;
-       int val;
-
-       pkg_name = menu_daemon_get_svoice_pkg_name();
-       retv_if(NULL == pkg_name, EINA_FALSE);
-
-#if 1
-       if (vconf_get_int(VCONFKEY_SETAPPL_PSMODE , &val) < 0) {
-               _E("Cannot get VCONFKEY");
-       }
-       if (val == SETTING_PSMODE_EMERGENCY) {
-               _D("Emergency mode, ignore svoice key..!!");
-               return EINA_FALSE;
-       }
-#endif
-
-       if (vconf_get_int(VCONFKEY_SVOICE_OPEN_VIA_HOME_KEY, &val) < 0) {
-               _D("Cannot get VCONFKEY");
-       }
-
-       if (val != 1) {
-               _D("Launch nothing");
-               return EINA_FALSE;
-       }
-
-#if 1
-       if (!strcmp(pkg_name, SVOICE_PKG_NAME)) {
-               b = bundle_create();
-               retv_if(!b, EINA_FALSE);
-
-               bundle_add(b, SVOICE_LAUNCH_BUNDLE_KEY, SVOICE_LAUNCH_BUNDLE_HOMEKEY_VALUE);
-               bundle_add(b, SERVICE_OPERATION_MAIN_KEY, SERVICE_OPERATION_MAIN_VALUE);
-       }
-
-       if (menu_daemon_launch_app(pkg_name, b) < 0)
-               _SECURE_E("Failed to launch %s", pkg_name);
-
-       if (b != NULL)
-               bundle_free(b);
-#else
-       if (menu_daemon_open_app(pkg_name) < 0)
-               _SECURE_E("Failed to open %s", pkg_name);
-#endif
-       return EINA_TRUE;
-}
-
-
-
-static void _launch_safety_assurance(void)
-{
-       _SECURE_D("Launch %s", SAFETY_ASSURANCE_PKG_NAME);
-       if (menu_daemon_open_app(SAFETY_ASSURANCE_PKG_NAME) < 0) {
-               _SECURE_E("Cannot open %s", SAFETY_ASSURANCE_PKG_NAME);
-       }
-}
-
-
-static Eina_Bool _launch_svoice_cb(void* data)
-{
-       key_info.media_long_press = NULL;
-
-       int val = -1;
-
-       if (vconf_get_int(VCONFKEY_SETAPPL_PSMODE , &val) < 0) {
-               _E("Cannot get VCONFKEY");
-       }
-       if (val == SETTING_PSMODE_EMERGENCY) {
-               _D("Emergency mode, ignore KEY_MEDIA key..!!");
-               return ECORE_CALLBACK_CANCEL;
-       }
-
-       if (vconf_get_int(VCONFKEY_SVOICE_OPEN_VIA_EARPHONE_KEY, &val) < 0) {
-               _E("Cannot get VCONFKEY");
-       }
-       if (1 == val) {
-               _D("Launch SVOICE");
-#if 1
-               bundle *b;
-               b = bundle_create();
-               retv_if(!b, ECORE_CALLBACK_CANCEL);
-
-               bundle_add(b, SVOICE_LAUNCH_BUNDLE_KEY, SVOICE_LAUNCH_BUNDLE_VALUE);
-               bundle_add(b, SERVICE_OPERATION_MAIN_KEY, SERVICE_OPERATION_MAIN_VALUE);
-               if (menu_daemon_launch_app(SVOICE_PKG_NAME, b) < 0)
-                       _SECURE_E("Failed to launch %s", SVOICE_PKG_NAME);
-               bundle_free(b);
-#else
-               if (menu_daemon_open_app(SVOICE_PKG_NAME) < 0)
-                       _SECURE_E("Failed to open %s", SVOICE_PKG_NAME);
-#endif
-       }
-
-       return ECORE_CALLBACK_CANCEL;
-}
-
-
-
-#if 0
-static Eina_Bool _client_msg_timer_cb(void* data)
-{
-       _D("_client_msg_timer_cb, safety assurance is enable");
-
-       key_info.enable_safety_assurance = EINA_TRUE;
-       _D("Launch SafetyAssurance");
-       _launch_safety_assurance();
-       key_info.client_msg_timer = NULL;
-
-       return ECORE_CALLBACK_CANCEL;
-}
-#endif
-
-
-
-static Eina_Bool _set_unlock(void *data)
-{
-       _D("_set_unlock");
-       vconf_set_int(VCONFKEY_IDLE_LOCK_STATE, VCONFKEY_IDLE_UNLOCK);
-       return ECORE_CALLBACK_CANCEL;
-}
-
-
-inline static int _release_home_key(int lock_state)
-{
-       int val = -1;
-
-       if (vconf_get_int(VCONFKEY_SETAPPL_PSMODE , &val) < 0) {
-               _E("Cannot get VCONFKEY");
-       }
-       if (val != SETTING_PSMODE_EMERGENCY) {
-               retv_if(NULL == key_info.long_press_timer, EXIT_SUCCESS);
-               ecore_timer_del(key_info.long_press_timer);
-               key_info.long_press_timer = NULL;
-       }
-
-       if (NULL == key_info.single_timer) {
-               key_info.single_timer = ecore_timer_add(0.3, _launch_by_home_key, (void *) lock_state);
-               return EXIT_SUCCESS;
-       }
-       ecore_timer_del(key_info.single_timer);
-       key_info.single_timer = NULL;
-
-       if(EINA_TRUE == _launch_svoice()) {
-               if (lock_state == VCONFKEY_IDLE_LOCK) {
-                       ecore_timer_add(0.8, _set_unlock, NULL);
-               }
-       }
-       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;
-#ifdef FEATURE_LITE
-       ret = menu_daemon_launch_app(MUSIC_PLAYER_LITE_PKG_NAME, b);
-#else
-       ret = menu_daemon_launch_app(MUSIC_PLAYER_PKG_NAME, b);
-#endif
-       if (ret < 0)
-               _E("Failed to launch the running apps, ret : %d", ret);
-
-       bundle_free(b);
-}
-
-
-static Eina_Bool _homekey_timer_cb(void *data)
-{
-       int direct_access_val = -1;
-       int lock_state = (int) data;
-
-       _W("%s, homekey count[%d], lock state[%d]", __func__, key_info.homekey_count, lock_state);
-       key_info.homekey_timer = NULL;
-
-
-       /* Check Direct Access */
-       if (vconf_get_int(VCONFKEY_SETAPPL_ACCESSIBILITY_POWER_KEY_HOLD, &direct_access_val) < 0) {
-               _E("Cannot get VCONFKEY_SETAPPL_ACCESSIBILITY_POWER_KEY_HOLD");
-               direct_access_val = SETTING_POWERKEY_SHORTCUT_OFF;
-       }
-
-
-       if (SETTING_POWERKEY_SHORTCUT_OFF == direct_access_val) {
-               /* Direct Access OFF */
-               if(key_info.homekey_count%2 == 0) {
-                       /* double press operation */
-                       key_info.homekey_count = 0; //initialize powerkey count
-                       if(EINA_TRUE == _launch_svoice()) {
-                               if (lock_state == VCONFKEY_IDLE_LOCK) {
-                                       ecore_timer_add(UNLOCK_TIMER_SEC, _set_unlock, NULL);
-                               }
-                       }
-                       return ECORE_CALLBACK_CANCEL;
-               }
-       } else {
-               /* Direct Access ON */
-               if(key_info.homekey_count == 2) {
-                       /* double press operation*/
-                       key_info.homekey_count = 0; //initialize powerkey count
-                       if(EINA_TRUE == _launch_svoice()) {
-                               if (lock_state == VCONFKEY_IDLE_LOCK) {
-                                       ecore_timer_add(UNLOCK_TIMER_SEC, _set_unlock, NULL);
-                               }
-                       }
-                       return ECORE_CALLBACK_CANCEL;
-               } else if(key_info.homekey_count >= 3) {
-                       _W("Launch Direct Access : %d", direct_access_val);
-                       key_info.homekey_count = 0; //initialize powerkey count
-#ifdef FEATURE_LITE
-                       _E("Not supported in Lite feature");
-#else
-                       if (launch_direct_access(direct_access_val) < 0) {
-                               _E("Fail Launch Direct Access..!!");
-                       }
-#endif
-                       return ECORE_CALLBACK_CANCEL;
-               }
-       }
-
-       /* Single homekey operation */
-       key_info.homekey_count = 0; //initialize powerkey count
-       _launch_by_home_key(data);
-       return ECORE_CALLBACK_CANCEL;
-
-}
-
-
-static Eina_Bool _key_release_cb(void *data, int type, void *event)
-{
-       Evas_Event_Key_Up *ev = event;
-       int val = -1;
-       int lock_state = -1;
-
-       if (!ev) {
-               _D("_key_release_cb : Invalid event object");
-               return ECORE_CALLBACK_RENEW;
-       }
-
-       if (!ev->keyname) {
-               _D("_key_release_cb : Invalid event keyname object");
-               return ECORE_CALLBACK_RENEW;
-       } else {
-               _D("_key_release_cb : %s Released", ev->keyname);
-       }
-
-       /* Safety Assistance */
-       if (!strcmp(ev->keyname, POWERKEY_CODE)) {
-               //double current_timestamp = ecore_loop_time_get();
-               unsigned int current_timestamp = ev->timestamp;
-               _D("current_timestamp[%d] previous_timestamp[%d]", current_timestamp, key_info.powerkey_time_stamp);
-
-               if ((current_timestamp - key_info.powerkey_time_stamp) > POWERKEY_TIMER_MSEC) {
-                       key_info.powerkey_count = 0;
-               }
-               key_info.powerkey_count++;
-               if (key_info.powerkey_count >= 3) {
-                       _launch_safety_assurance();
-                       key_info.powerkey_count = 0;
-               }
-               _D("powerkey count:%d", key_info.powerkey_count);
-               key_info.powerkey_time_stamp = current_timestamp;
-       } else {
-               key_info.powerkey_count = 0;
-       }
-
-
-       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");
-
-               if (vconf_get_int(VCONFKEY_IDLE_LOCK_STATE, &lock_state) < 0) {
-                       _D("Cannot get VCONFKEY");
-               }
-               if ((lock_state == VCONFKEY_IDLE_LOCK) && (lockd_get_lock_type() == 1)) {
-                       _D("phone lock state, ignore home key..!!");
-                       key_info.homekey_count = 0; //initialize homekey count
-                       return ECORE_CALLBACK_RENEW;
-               }
-
-               if (lockd_get_hall_status() == HALL_COVERED_STATUS) {
-                       _D("scover is closed, ignore home key..!!");
-                       key_info.homekey_count = 0; //initialize homekey count
-                       return ECORE_CALLBACK_RENEW;
-               }
-#if 0
-               _release_home_key(val);
-#else
-               // Check homekey timer
-               if(key_info.homekey_timer) {
-                       ecore_timer_del(key_info.homekey_timer);
-                       key_info.homekey_timer = NULL;
-                       _D("delete homekey timer");
-               }
-
-               // Cancel key operation
-               if (EINA_TRUE == key_info.cancel) {
-                       _D("Cancel key is activated");
-                       key_info.cancel = EINA_FALSE;
-                       key_info.homekey_count = 0; //initialize homekey count
-                       return ECORE_CALLBACK_RENEW;
-               }
-               else{
-                       ecore_timer_del(key_info.cancel_key_timer);
-                       key_info.cancel_key_timer = NULL;
-                       key_info.is_cancel = EINA_FALSE;
-                       syspopup_destroy_all();
-                       _D("delete cancelkey timer");
-               }
-
-#if 0
-               if (vconf_get_int(VCONFKEY_SETAPPL_PSMODE , &val) < 0) {
-                       _E("Cannot get VCONFKEY");
-               }
-               if (val != SETTING_PSMODE_EMERGENCY) {
-                       // Check long press timer
-                       if(key_info.long_press_timer) {
-                               ecore_timer_del(key_info.long_press_timer);
-                               key_info.long_press_timer = NULL;
-                               _D("delete long press timer");
-                       } else {
-                               key_info.homekey_count = 0; //initialize homekey count
-                               return ECORE_CALLBACK_RENEW;
-                       }
-               }
-#else
-               // Check long press timer
-               if(key_info.long_press_timer) {
-                       ecore_timer_del(key_info.long_press_timer);
-                       key_info.long_press_timer = NULL;
-                       _D("delete long press timer");
-               } else {
-                       key_info.homekey_count = 0; //initialize homekey count
-                       return ECORE_CALLBACK_RENEW;
-               }
-#endif
-               key_info.homekey_timer = ecore_timer_add(HOMEKEY_TIMER_SEC, _homekey_timer_cb, (void *) lock_state);
-               return ECORE_CALLBACK_RENEW;
-#endif
-       } 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)) {
-               if (key_info.media_long_press) { // Short press
-                       ecore_timer_del(key_info.media_long_press);
-                       key_info.media_long_press = NULL;
-
-                       _release_multimedia_key("KEY_PLAYCD");
-               }
-       } else if (!strcmp(ev->keyname, KEY_APPS)) {
-               _D("App tray key is released");
-               menu_daemon_launch_app_tray();
-       } 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");
-               if (menu_daemon_open_app(WEBPAGE_PKG_NAME) < 0)
-                       _E("Failed to launch the web page");
-       } else if (!strcmp(ev->keyname, KEY_MAIL)) {
-               _D("Mail key is released");
-               if (menu_daemon_open_app(MAIL_PKG_NAME) < 0)
-                       _E("Failed to launch the mail");
-       } else if (!strcmp(ev->keyname, KEY_CONNECT)) {
-               _D("Connect key is released");
-               if (menu_daemon_open_app(DIALER_PKG_NAME) < 0)
-                       _E("Failed to launch the dialer");
-       } else if (!strcmp(ev->keyname, KEY_SEARCH)) {
-               _D("Search key is released");
-#if 0
-               if (menu_daemon_open_app(SEARCH_PKG_NAME) < 0)
-                       _E("Failed to launch the search");
-#else
-               if (vconf_get_int(VCONFKEY_IDLE_LOCK_STATE, &val) < 0) {
-                       _D("Cannot get VCONFKEY");
-               }
-               if (val == VCONFKEY_IDLE_LOCK) {
-                       _D("lock state, ignore search key..!!");
-                       return ECORE_CALLBACK_RENEW;
-               }
-
-               if (lockd_get_hall_status() == HALL_COVERED_STATUS) {
-                       _D("scover is closed, ignore search key..!!");
-                       return ECORE_CALLBACK_RENEW;
-               }
-
-               if (menu_daemon_launch_search() < 0)
-                       _E("Failed to launch the search");
-#endif
-       } else if (!strcmp(ev->keyname, KEY_VOICE)) {
-               _D("Voice key is released");
-               if (EINA_FALSE == _launch_svoice())
-                       _E("Failed to launch the svoice");
-       }
-
-       return ECORE_CALLBACK_RENEW;
-}
-
-static Eina_Bool _destroy_syspopup_cb(void* data)
-{
-       _D("timer for cancel key operation");
-       key_info.cancel_key_timer = NULL;
-       if(key_info.is_cancel == EINA_TRUE){
-               _W("cancel key is activated. Do not destroy syspopup");
-               key_info.is_cancel = EINA_FALSE;
-               return ECORE_CALLBACK_CANCEL;
-       }
-       key_info.is_cancel = EINA_FALSE;
-       syspopup_destroy_all();
-       return ECORE_CALLBACK_CANCEL;
-}
-
-static Eina_Bool _key_press_cb(void *data, int type, void *event)
-{
-       Evas_Event_Key_Down *ev = event;
-       int val = -1;
-
-       if (!ev) {
-               _D("_key_press_cb : Invalid event object");
-               return ECORE_CALLBACK_RENEW;
-       }
-
-       if (!ev->keyname) {
-               _D("_key_press_cb : Invalid event keyname object");
-               return ECORE_CALLBACK_RENEW;
-       } else {
-               _D("_key_press_cb : %s Pressed", ev->keyname);
-       }
-
-       if (!strcmp(ev->keyname, KEY_SEND)) {
-               _D("Launch calllog");
-               if (menu_daemon_open_app(CALLLOG_PKG_NAME) < 0)
-                       _SECURE_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)
-                       _SECURE_E("Failed to launch %s", CAMERA_PKG_NAME);
-       } else if (!strcmp(ev->keyname, KEY_HOME)) {
-               _W("Home Key is pressed");
-               if (key_info.long_press_timer) {
-                       ecore_timer_del(key_info.long_press_timer);
-                       key_info.long_press_timer = NULL;
-               }
-
-//             syspopup_destroy_all();
-               key_info.cancel_key_timer = ecore_timer_add(CANCEL_KEY_TIMER_SEC, _destroy_syspopup_cb, NULL);
-
-               if (vconf_get_int(VCONFKEY_SETAPPL_PSMODE , &val) < 0) {
-                       _E("Cannot get VCONFKEY");
-               }
-               if (val == SETTING_PSMODE_EMERGENCY) {
-                       key_info.homekey_count = 1;
-                       _D("Emergency mode, ignore home key..!!");
-               } else {
-                       // Check homekey press count
-                       key_info.homekey_count++;
-                       _W("homekey count : %d", key_info.homekey_count);
-
-                       // Check homekey timer
-                       if(key_info.homekey_timer) {
-                               ecore_timer_del(key_info.homekey_timer);
-                               key_info.homekey_timer = NULL;
-                               _D("delete homekey timer");
-                       }
-               }
-               _D("create long press timer");
-               key_info.long_press_timer = ecore_timer_add(LONG_PRESS_TIMER_SEC, _launch_taskmgr_cb, NULL);
-               if (!key_info.long_press_timer)
-                       _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;
-               key_info.is_cancel = EINA_TRUE;
-               if (key_info.long_press_timer) {
-                       ecore_timer_del(key_info.long_press_timer);
-                       key_info.long_press_timer = NULL;
-               }
-       } else if (!strcmp(ev->keyname, KEY_MEDIA)) {
-               _D("Media key is pressed");
-
-               if (key_info.media_long_press) {
-                       ecore_timer_del(key_info.media_long_press);
-                       key_info.media_long_press = NULL;
-               }
-
-               key_info.media_long_press = ecore_timer_add(0.5, _launch_svoice_cb, NULL);
-               if (!key_info.media_long_press)
-                       _E("Failed to add timer for long press detection");
-       } 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;
-}
-
-
-
-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;
-
-       if (MEDIA_KEY_PAUSE == key) {
-               _release_multimedia_key("KEY_PAUSECD");
-       } else if (MEDIA_KEY_PLAY == key) {
-               _release_multimedia_key("KEY_PLAYCD");
-       } else if (MEDIA_KEY_PLAYPAUSE == key) {
-               _release_multimedia_key("KEY_PLAYPAUSECD");
-       }
-}
-
-
-#define APP_ID_SPLIT_LAUNCHER "com.samsung.split-launcher"
-#define APP_ID_MINIAPPS_LAUNCHER "com.samsung.mini-apps"
-#define STR_ATOM_KEY_BACK_LONGPRESS "KEY_BACK_LONGPRESS"
-#define STR_ATOM_KEY_MENU_LONGPRESS "KEY_MENU_LONGPRESS"
-static Eina_Bool _client_message_cb(void *data, int type, void *event)
-{
-       Ecore_X_Event_Client_Message *ev = event;
-       Ecore_X_Atom safety_assurance_atom;
-       Ecore_X_Atom atomMenuLongPress;
-       Ecore_X_Atom atomBackLongPress;
-
-       if (ev->format != 32)
-               return ECORE_CALLBACK_RENEW;
-
-       safety_assurance_atom = ecore_x_atom_get(STR_ATOM_XKEY_COMPOSITION);
-       atomMenuLongPress = ecore_x_atom_get(STR_ATOM_KEY_MENU_LONGPRESS);
-       atomBackLongPress = ecore_x_atom_get(STR_ATOM_KEY_BACK_LONGPRESS);
-#if 0
-       _D("_client_message_cb, safety_assurance_atom=[0x%x] atomMenuLongPress=[0x%x] atomBackLongPress=[0x%x]",
-               safety_assurance_atom, atomMenuLongPress, atomBackLongPress);
-#endif
-       if ((ev->win == key_info.keyrouter_notiwindow) &&
-                       (ev->message_type == safety_assurance_atom) && (ev->format == 32)) {
-#if 0  /* Safety Assistance is changed to power key */
-               int press = ev->data.l[2];
-               int key_sum = ev->data.l[0]+ev->data.l[1];
-               if (key_sum == 245) {
-                       _D("check key_sum[%d] to 122(volume_down)+123(volume_up), press=[%d]", key_sum, press);
-                       if (press) {
-                               if (key_info.client_msg_timer) {
-                                       ecore_timer_del(key_info.client_msg_timer);
-                                       key_info.client_msg_timer = NULL;
-                               }
-                               key_info.enable_safety_assurance = EINA_FALSE;
-                               key_info.client_msg_timer = ecore_timer_add(3, _client_msg_timer_cb, NULL);
-                               if (!key_info.client_msg_timer)
-                                       _E("Failed to add timer for clent message");
-                       } else {
-                               if (key_info.client_msg_timer) {
-                                       ecore_timer_del(key_info.client_msg_timer);
-                                       key_info.client_msg_timer = NULL;
-                               }
-#if 0
-                               if (key_info.enable_safety_assurance == EINA_TRUE) {
-                                       _D("Launch SafetyAssurance");
-                                       _launch_safety_assurance();
-                               }
-                               key_info.enable_safety_assurance = EINA_FALSE;
-#endif
-                       }
-               }
-#endif
-       } else if (ev->message_type == atomBackLongPress) {
-               // Back key is long-pressed.
-               _D("ev->message_type=[0x%x], Back key long press", ev->message_type);
-
-               int val = 0;
-               if (vconf_get_int(VCONFKEY_IDLE_LOCK_STATE, &val) < 0) {
-                       _D("Cannot get VCONFKEY");
-               }
-
-               if (VCONFKEY_IDLE_LOCK == val) {
-                       _D("Lock state, ignore back key long-press.");
-                       return ECORE_CALLBACK_RENEW;
-               }
-
-               if (vconf_get_int(VCONFKEY_PWLOCK_STATE, &val) < 0) {
-                       _E("Cannot get VCONFKEY_PWLOCK_STATE");
-               }
-
-               if (VCONFKEY_PWLOCK_BOOTING_LOCK == val || VCONFKEY_PWLOCK_RUNNING_LOCK == val) {
-                       _E("PW-lock state, ignore back key long-press.");
-                       return ECORE_CALLBACK_RENEW;
-               }
-
-               if (lockd_get_hall_status() == HALL_COVERED_STATUS) {
-                       _D("Scover is closed, ignore back ke long-press.");
-                       return ECORE_CALLBACK_RENEW;
-               }
-
-#ifdef SPLIT_LAUNCHER_ENABLE //ORG
-               int multiwindow_enabled = 0;
-               if (vconf_get_bool(VCONFKEY_QUICKSETTING_MULTIWINDOW_ENABLED, &multiwindow_enabled) < 0) {
-                       _E("Cannot get VCONFKEY");
-                       multiwindow_enabled = 0;
-               }
-
-               if (vconf_get_bool(VCONFKEY_SETAPPL_ACCESSIBILITY_TTS, &val) < 0) {
-                       _D("Cannot get VCONFKEY");
-                       val = 0;
-               }
-
-               if ((val == 1) || (multiwindow_enabled == 0)) {
-                       _D("TTS : %d, Multiwindow enabled : %d", val, multiwindow_enabled);
-                       return ECORE_CALLBACK_RENEW;
-               }
-
-               _D("Launch the split-launcher");
-
-               int ret = aul_launch_app(APP_ID_SPLIT_LAUNCHER, NULL);
-               if (0 > ret) _E("cannot launch the split-launcher (%d)", ret);
-#else //DCM 
-               char *package = menu_daemon_get_selected_pkgname();
-               if (!package) return ECORE_CALLBACK_RENEW;
-
-               int apptray_enabled = !strcmp(package, CLUSTER_HOME_PKG_NAME);
-               free(package);
-               if (!apptray_enabled) return ECORE_CALLBACK_RENEW;
-
-               _D("Launch the app-tray");
-
-               bundle *b = bundle_create();
-               retv_if(NULL == b, false);
-               bundle_add(b, "LAUNCH", "ALL_APPS");
-               int ret = aul_launch_app(APP_TRAY_PKG_NAME, b);
-               if (0 > ret) _E("cannot launch the app-tray (%d)", ret);
-               bundle_free(b);
-#endif
-       } else if (ev->message_type == atomMenuLongPress) {
-               // Menu key is long-pressed.
-               _D("ev->message_type=[0x%x], Menu key long press", ev->message_type);
-
-               int val = 0;
-               if (vconf_get_int(VCONFKEY_IDLE_LOCK_STATE, &val) < 0) {
-                       _E("Cannot get VCONFKEY_IDLE_LOCK_STATE");
-               }
-
-               if (VCONFKEY_IDLE_LOCK == val) {
-                       _E("Lock state, ignore menu key long-press.");
-                       return ECORE_CALLBACK_RENEW;
-               }
-
-               if (vconf_get_int(VCONFKEY_PWLOCK_STATE, &val) < 0) {
-                       _E("Cannot get VCONFKEY_PWLOCK_STATE");
-               }
-
-               if (VCONFKEY_PWLOCK_BOOTING_LOCK == val || VCONFKEY_PWLOCK_RUNNING_LOCK == val) {
-                       _E("PW-lock state, ignore menu key long-press.");
-                       return ECORE_CALLBACK_RENEW;
-               }
-
-               if (vconf_get_int(VCONFKEY_SETAPPL_PSMODE, &val) < 0) {
-                       _E("Cannot get VCONFKEY_SETAPPL_PSMODE");
-               }
-
-               if (SETTING_PSMODE_EMERGENCY == val) {
-                       _E("Emergency mode, ignore menu key long-press.");
-                       return ECORE_CALLBACK_RENEW;
-               }
-
-               if (lockd_get_hall_status() == HALL_COVERED_STATUS) {
-                       _D("Scover is closed, ignore menu key long-press.");
-                       return ECORE_CALLBACK_RENEW;
-               }
-
-               _D("Launch the mini-apps");
-           int ret_aul;
-               bundle *b;
-               b = bundle_create();
-               retv_if(NULL == b, ECORE_CALLBACK_RENEW);
-               bundle_add(b, "HIDE_LAUNCH", "0");
-               ret_aul = aul_launch_app("com.samsung.mini-apps", b);
-               if (0 > ret_aul) _E("cannot launch the mini apps (%d)", ret_aul);
-               bundle_free(b);
-       }
-       return ECORE_CALLBACK_RENEW;
-}
-
-
-static bool gesture_is_availble_key(void)
-{
-
-       int ret = 0;
-       int status = 0;
-
-
-       ret = vconf_get_int(VCONFKEY_PWLOCK_STATE, &status);
-       if (ret != 0)
-       {
-               _E("fail to get memory/pwlock/state%d", ret);
-               return false;
-       }
-
-
-       if( status == VCONFKEY_PWLOCK_RUNNING_UNLOCK || status == VCONFKEY_PWLOCK_BOOTING_UNLOCK)
-       {
-               _D("enter the idle mode (%d)", status);
-       }
-       else
-       {
-               _D("don't enter the idle mode(%d)", status);
-               return false;
-       }
-
-       _D("checking idle lock");
-
-       ret = vconf_get_int(VCONFKEY_IDLE_LOCK_STATE, &status);
-       if (ret != 0)
-       {
-               _E("fail to get memory/pwlock/state%d", ret);
-               return false;
-       }
-
-
-       if( status == VCONFKEY_IDLE_LOCK)
-       {
-               _D("enter the lock mode(%d)", status);
-               return false;
-       }
-       else
-       {
-               _D("unlock state");
-       }
-
-       return true;
-}
-
-
-static inline void launch_app(int x, int y)
-{
-       // e->cx, e->cy 
-       bundle *param;
-       int pid;
-       int status = 0;
-       int ret = 0;
-
-       if(gesture_is_availble_key() == false)
-       {
-               _D("can't launch");
-               return;
-       }
-
-       _D("checking status");
-       ret = vconf_get_int(VCONFKEY_SETAPPL_PSMODE , &status);
-       if (ret != 0) _D("fail to VCONFKEY_SETAPPL_PSMODE", ret);
-
-       if( status == SETTING_PSMODE_EMERGENCY)
-       {
-               _D(" emergency on");
-               return;
-       }
-
-       ret = vconf_get_bool(VCONFKEY_SETAPPL_ACCESSIBILITY_TTS , &status);
-       if (ret != 0) _D("fail to VCONFKEY_SETAPPL_ACCESSIBILITY_TTS", ret);
-
-       if( status == 1)
-       {
-               _D(" tts on");
-               return;
-       }
-
-       ret = vconf_get_bool(_VCONF_QUICK_COMMADN_NAME, &status);
-       if (ret != 0) _E("fail to get db/aircommand/enabled:%d", ret);
-
-       if( status == 0)
-       {
-               _D("can't launch because of off");
-               return;
-       }
-
-       ret = vconf_get_bool("db/aircommand/floating", &status);
-       if (ret != 0) _E("fail to get db/aircommand/floating:%d", ret);
-
-       if( status == 1)
-       {
-               _D("only floating");
-               return;
-       }
-
-       param = bundle_create();
-       if (param) {
-               char coord[16];
-               snprintf(coord, sizeof(coord), "%dx%d", x, y);
-               bundle_add(param, "coordinate", coord);
-       }
-
-       feedback_play_type(FEEDBACK_TYPE_SOUND, FEEDBACK_PATTERN_TOUCH_TAP);
-
-       pid = aul_launch_app("com.samsung.air-command", param);
-       _D("Launch Pie Menu: %d\n", pid);
-
-       if (param) {
-               bundle_free(param);
-       }
-}
-
-
-
-#if 0
-static int gesture_hold_cb(void *data, int ev_type, void *ev)
-{
-       Ecore_X_Event_Gesture_Notify_Hold *e = ev;
-
-       if (e->num_fingers != 2) {
-               return 1;
-       }
-
-       switch (e->subtype) {
-       case ECORE_X_GESTURE_BEGIN:
-               _D("Begin: hold[%d]\n", e->hold_time);
-               launch_app(e->cx, e->cy);
-               break;
-       case ECORE_X_GESTURE_UPDATE:
-               _D("Update: hold[%d]\n", e->hold_time);
-               break;
-       case ECORE_X_GESTURE_END:
-               _D("End: hold[%d]\n", e->hold_time);
-               break;
-       default:
-               break;
-       }
-
-       return 1;
-}
-#endif
-
-
-
-static int gesture_cb(void *data, int ev_type, void *ev)
-{
-       Ecore_X_Event_Gesture_Notify_Tap *e = ev;
-
-       _D("key");
-
-       if (e->tap_repeat != 2) {
-               return 1;
-       }
-
-       if (e->num_fingers == 2) {
-               launch_app(e->cx, e->cy);
-       }
-
-       return 1;
-}
-
-
-
-static int gesture_flick_cb(void *data, int ev_type, void *ev)
-{
-       Ecore_X_Event_Gesture_Notify_Flick *e = ev;
-
-       _D(" input bezel");
-
-       if(e->num_fingers == 1)
-       {
-               launch_app(0, 0);
-       }
-
-       return 1;
-}
-
-
-
-static void gesture_key_init(void)
-{
-       int status;
-
-       _D("Init gesture for quick command");
-
-       if( gbRegisterDuobleTap > 1)
-       {
-               _E("Already registered callback cnt[%d]", gbRegisterDuobleTap);
-               return;
-       }
-
-       gbRegisterDuobleTap++;
-
-       status = ecore_x_gesture_event_grab(key_info.win, ECORE_X_GESTURE_EVENT_TAP, 2);
-       if (!status) {
-               _E("%d\n", status);
-               return;
-       }
-#if _DEF_BEZEL_AIR_COMMAND
-       status = ecore_x_gesture_event_grab(key_info.win, ECORE_X_GESTURE_EVENT_FLICK, 1);
-       if (!status) {
-               _E("%d\n", status);
-               return;
-       }
-#endif
-/*
-       status = ecore_x_gesture_event_grab(key_info.win, ECORE_X_GESTURE_EVENT_HOLD, 2);
-       if (!status) {
-               _E("%d\n", status);
-               return;
-       }
-*/
-       key_info.two_finger_double_tap = ecore_event_handler_add(ECORE_X_EVENT_GESTURE_NOTIFY_TAP, (Ecore_Event_Handler_Cb)gesture_cb, NULL);
-       if (!key_info.two_finger_double_tap) {
-               _E("Failed to add handler\n");
-       }
-#if _DEF_BEZEL_AIR_COMMAND
-       key_info.bezel_gesture = ecore_event_handler_add(ECORE_X_EVENT_GESTURE_NOTIFY_FLICK, (Ecore_Event_Handler_Cb)gesture_flick_cb, NULL);
-       if (!key_info.bezel_gesture) {
-               _E("Failed to add handle about bezel_gesture\n");
-       }
-#endif
-/*
-       key_info.two_finger_long_tap = ecore_event_handler_add(ECORE_X_EVENT_GESTURE_NOTIFY_HOLD, (Ecore_Event_Handler_Cb)gesture_hold_cb, NULL);
-       if (!key_info.two_finger_long_tap) {
-               _E("Failed to add handler\n");
-       }
-*/
-//     feedback_initialize();
-}
-
-static void gesture_key_fini(void)
-{
-       int status;
-
-       _D("fini gesture for quick command");
-
-       gbRegisterDuobleTap--;
-
-       if( gbRegisterDuobleTap < 0 )
-       {
-               _D("register value can't be decreased");
-               gbRegisterDuobleTap = 0;
-       }
-
-       if (key_info.two_finger_double_tap) {
-               ecore_event_handler_del(key_info.two_finger_double_tap);
-               key_info.two_finger_double_tap = NULL;
-       }
-
-       if (key_info.two_finger_long_tap) {
-               ecore_event_handler_del(key_info.two_finger_long_tap);
-               key_info.two_finger_long_tap = NULL;
-       }
-
-#if _DEF_BEZEL_AIR_COMMAND
-       if (key_info.bezel_gesture) {
-               ecore_event_handler_del(key_info.bezel_gesture);
-               key_info.bezel_gesture = NULL;
-       }
-#endif
-
-       status = ecore_x_gesture_event_ungrab(key_info.win, ECORE_X_GESTURE_EVENT_TAP, 2);
-       if (!status) {
-               _E("%d\n", status);
-       }
-
-       status = ecore_x_gesture_event_ungrab(key_info.win, ECORE_X_GESTURE_EVENT_HOLD, 2);
-       if (!status) {
-               _E("%d\n", status);
-       }
-#if _DEF_BEZEL_AIR_COMMAND
-       status = ecore_x_gesture_event_ungrab(key_info.win, ECORE_X_GESTURE_EVENT_FLICK, 1);
-       if (!status) {
-               _E("%d\n", status);
-       }
-#endif
-//     feedback_deinitialize();
-}
-
-static void gesture_key_vconf_cb(keynode_t *key, void* pUserData)
-{
-       char *keynode_name = vconf_keynode_get_name(key);
-       ret_if(!keynode_name);
-
-       if(!memcmp(keynode_name, _VCONF_QUICK_COMMADN_NAME, strlen(_VCONF_QUICK_COMMADN_NAME)))
-       {
-               if(vconf_keynode_get_int(key))
-               {
-                       int ret = 0;
-                       int status = 0;
-
-                       ret = vconf_get_bool(_VCONF_QUICK_COMMADN_NAME, &status);
-                       if (ret != 0) _E("fail to get db/aircommand/enabled:%d", ret);
-
-                       if( status == 1)
-                       {
-//                             _D(" quick command on");
-//                             gesture_key_init();
-
-                               int nRet = 0;
-                               int nStatus = 0;
-
-                               _D(" quick command on");
-
-                               nRet = vconf_get_bool("db/aircommand/floating", &nStatus);
-                               if (nRet != 0) _E("fail to get db/aircommand/floating:%d", nRet);
-
-                               if( nStatus == 1)
-                               {
-                                       int pid = aul_launch_app("com.samsung.air-command", NULL);
-                                       _D("run a floating window after booting(%d)", pid);
-//                                     gesture_key_fini();
-                               }
-                               else
-                               {
-                                       _D(" quick command double tap");
-                                       gesture_key_init();
-                               }
-
-                       }
-                       else
-                       {
-                               _D(" quick command off");
-
-                               gesture_key_fini();
-                       }
-               }
-       }
-}
-
-static Eina_Bool gesture_wating_launch_cb(void *data)
-{
-       int     pid = -1;
-
-       pid = aul_launch_app("com.samsung.air-command", NULL);
-       _D("launch callback (%d)", pid);
-
-       return ECORE_CALLBACK_CANCEL;
-}
-
-static void gesture_floating_vconf_cb(keynode_t *key, void* pUserData)
-{
-       char *keynode_name = vconf_keynode_get_name(key);
-       ret_if(!keynode_name);
-
-       if(!memcmp(keynode_name, _VCONF_QUICK_COMMADN_FLOATING, strlen(_VCONF_QUICK_COMMADN_FLOATING)))
-       {
-               if(vconf_keynode_get_int(key))
-               {
-                       int ret = 0;
-                       int status = 0;
-
-                       _D("changed floating mode");
-
-                       ret = vconf_get_bool(_VCONF_QUICK_COMMADN_NAME, &status);
-                       if (ret != 0) _E("fail to get db/aircommand/enabled:%d", ret);
-
-                       if( status == 1)
-                       {
-                               int nRet = 0;
-                               int nStatus = 0;
-
-                               _D(" quick command on");
-
-                               nRet = vconf_get_bool(_VCONF_QUICK_COMMADN_FLOATING, &nStatus);
-                               if (nRet != 0) _E("fail to get db/aircommand/floating:%d", nRet);
-
-                               if( nStatus == 1)
-                               {
-
-                                       if(gtimer_launch)
-                                       {
-                                               ecore_timer_del(gtimer_launch);
-                                               gtimer_launch = NULL;
-                                       }
-
-                                       gtimer_launch = ecore_timer_add(0.100f, gesture_wating_launch_cb, NULL);
-
-
-
-/*
-                                       service_h hService;
-
-                                       _D(" quick floating window: on");
-
-                                       service_create(&hService);
-                                       service_set_package(hService, "com.samsung.air-command");
-
-                                       if (service_send_launch_request(hService, NULL, this) != SERVICE_ERROR_NONE)
-                                       {
-                                               DLOG_QCOMMAND_ERR("Failed to com.samsung.air-command");
-                                       }
-                                       else
-                                       {
-                                               DLOG_QCOMMAND_DBG("Success to com.samsung.air-command");
-                                       }
-
-                                       service_destroy(hService);
-*/
-                               }
-                               else
-                               {
-                                       _D(" quick command double tap");
-                               }
-
-                       }
-                       else
-                       {
-                               _D(" already quick command off status");
-                       }
-       
-               }
-       }
-}
-
-
-static void gesture_enter_idle_initialize(void)
-{
-       int ret = 0;
-       int status = 0;
-
-       _D("Idle enter checking...");
-
-       ret = vconf_get_bool(_VCONF_QUICK_COMMADN_NAME, &status);
-       if (ret != 0) _E("fail to get db/aircommand/enabled:%d", ret);
-
-       if( status == 0)
-       {
-               _D("disabled qujick command");
-               return;
-       }
-       
-       status = 0;
-       ret = vconf_get_int(VCONFKEY_PWLOCK_STATE, &status);
-       if (ret != 0)
-       {
-               _E("fail to get db/aircommand/enabled:%d", ret);
-               return;
-       }
-
-       if( status == VCONFKEY_PWLOCK_RUNNING_UNLOCK || status == VCONFKEY_PWLOCK_BOOTING_UNLOCK)
-       {
-               gbenter_idle = true;
-               status = 0;
-
-               /* If it has a floating window, run it*/
-               ret = vconf_get_bool(_VCONF_QUICK_COMMADN_FLOATING, &status);
-               if (ret != 0) _E("fail to get db/aircommand/floating:%d", ret);
-
-               if( status == 1)
-               {
-                       if( gbinit_floatwin == false)
-                       {
-                               int pid = aul_launch_app("com.samsung.air-command", NULL);
-                               _D("run a floating window after booting(%d)", pid);
-
-                               gbinit_floatwin = true;
-                       }
-               }
-               else
-               {
-                       if( gbinit_floatwin == false)
-                       {
-                               _D("register touch grap");
-
-                               gesture_key_init();
-
-                               gbinit_floatwin = true;
-                       }
-
-               }
-       }
-       else
-       {
-               _D("already no idle state(%d)", status);
-       }
-}
-
-static void gesture_enter_idle_vconf_cb(keynode_t *key, void* pUserData)
-{
-       char *keynode_name = vconf_keynode_get_name(key);
-       ret_if(!keynode_name);
-
-       if(!memcmp(keynode_name, VCONFKEY_PWLOCK_STATE, strlen(VCONFKEY_PWLOCK_STATE)))
-       {
-               if(vconf_keynode_get_int(key))
-               {
-                       _D("received cb");
-                       gesture_enter_idle_initialize();
-               }
-
-       }
-
-}
-
-
-static void gesture_key_register(void)
-{
-       int ret;
-       char buf[1024] = { 0, };
-
-       ret = vconf_notify_key_changed(_VCONF_QUICK_COMMADN_NAME,       (vconf_callback_fn)gesture_key_vconf_cb, NULL);
-       if (ret < 0){
-
-               _E("Error: Failed to sigaction[%s]", strerror_r(errno, buf, sizeof(buf)));
-       }
-
-       ret = vconf_notify_key_changed(_VCONF_QUICK_COMMADN_FLOATING,   (vconf_callback_fn)gesture_floating_vconf_cb, NULL);
-       if (ret < 0){
-
-               _E("Error: Failed to sigaction[%s]", strerror_r(errno, buf, sizeof(buf)));
-       }
-
-       ret = vconf_notify_key_changed(VCONFKEY_PWLOCK_STATE,   (vconf_callback_fn)gesture_enter_idle_vconf_cb, NULL);
-       if (ret < 0){
-
-               _E("Error: Failed to sigaction[%s]", strerror_r(errno, buf, sizeof(buf)));
-       }
-
-       gesture_enter_idle_initialize();
-}
-
-#define PROP_HWKEY_EMULATION "_HWKEY_EMULATION"
-static void _set_long_press_time(void)
-{
-    Ecore_X_Window *keyrouter_input_window;
-    Ecore_X_Atom atom_keyrouter = ecore_x_atom_get(PROP_HWKEY_EMULATION);
-
-    int num = 0;
-    if (EINA_FALSE == ecore_x_window_prop_property_get(ecore_x_window_root_first_get(),
-            atom_keyrouter,
-            ECORE_X_ATOM_WINDOW,
-            32,
-            (unsigned char **) &keyrouter_input_window,
-            &num))
-    {
-        _E("Cannot get the property");
-               return;
-    }
-
-    int longpress_timeout = 500; // miliseconds
-    int menu_keycode = ecore_x_keysym_keycode_get(KEY_MENU);
-    ecore_x_client_message32_send(*keyrouter_input_window,
-            atom_keyrouter,
-            ECORE_X_EVENT_MASK_NONE,
-            key_info.win,
-            menu_keycode,
-            longpress_timeout,
-            0,
-            0);
-
-    int back_keycode = ecore_x_keysym_keycode_get(KEY_BACK);
-    ecore_x_client_message32_send(*keyrouter_input_window,
-            atom_keyrouter,
-            ECORE_X_EVENT_MASK_NONE,
-            key_info.win,
-            back_keycode,
-            longpress_timeout,
-            0,
-            0);
-}
-
-void create_key_window(void)
-{
-       int ret;
-       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_event_mask_unset(key_info.win, ECORE_X_EVENT_MASK_MOUSE_DOWN);
-       ecore_x_event_mask_unset(key_info.win, ECORE_X_EVENT_MASK_MOUSE_UP);
-       ecore_x_event_mask_unset(key_info.win, ECORE_X_EVENT_MASK_MOUSE_IN);
-       ecore_x_event_mask_unset(key_info.win, ECORE_X_EVENT_MASK_MOUSE_OUT);
-       ecore_x_event_mask_unset(key_info.win, ECORE_X_EVENT_MASK_MOUSE_MOVE);
-       */
-
-       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);
-       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");
-
-       /* 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);
-               /* mask set for  keyrouter notiwindow */
-               ecore_x_window_sniff(keyrouter_notiwindow);
-               key_info.keyrouter_notiwindow = keyrouter_notiwindow;
-               //xkey_composition = ecore_x_atom_get(STR_ATOM_XKEY_COMPOSITION);
-               /* Register client msg */
-               key_info.client_msg_hd = ecore_event_handler_add(ECORE_X_EVENT_CLIENT_MESSAGE,
-                                       _client_message_cb, NULL);
-               if (!key_info.client_msg_hd)
-                       _E("failed to add handler(ECORE_X_EVENT_CLIENT_MESSAGE)");
-       } 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);
-       //gesture_key_register();
-       _set_long_press_time();
-//     gesture_key_init();
-}
-
-
-
-void destroy_key_window(void)
-{
-       gesture_key_fini();
-       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();
-}
-
-
-
-// End of a file
diff --git a/src/hw_key_w.c b/src/hw_key_w.c
deleted file mode 100755 (executable)
index 7dc3d6c..0000000
+++ /dev/null
@@ -1,1480 +0,0 @@
-/*
- * 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 <ail.h>
-#include <bundle.h>
-#include <Elementary.h>
-#include <Ecore_X.h>
-#include <Ecore_Input.h>
-#include <utilX.h>
-#include <vconf.h>
-
-#include <syspopup_caller.h>
-#include <dd-display.h>
-#include <E_DBus.h>
-#include <feedback.h>
-#include <pkgmgr-info.h>
-#include <system/media_key.h>
-
-#include "starter_w.h"
-#include "hw_key_w.h"
-#include "util.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 SYSPOPUP_END_TIMER_SEC 0.5
-
-#define APP_CONTROL_OPERATION_MAIN_KEY "__APP_SVC_OP_TYPE__"
-#define APP_CONTROL_OPERATION_MAIN_VALUE "http://tizen.org/appcontrol/operation/main"
-#define APP_CONTROL_OPERATION_DEFAULT_VALUE "http://tizen.org/appcontrol/operation/default"
-#define HOME_OPERATION_KEY "home_op"
-#define POWERKEY_VALUE "powerkey"
-
-#define USE_DBUS_POWEROFF 1
-
-#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 DBUS_REPLY_TIMEOUT (120 * 1000)
-
-#define DOUBLE_PRESS_NONE "none"
-#define DOUBLE_PRESS_RECENT_APPS "recent"
-#define W_TASKMGR_PKGNAME "com.samsung.w-taskmanager"
-#define W_CONTROLS_PKGNAME "com.samsung.windicator"
-#define MUSIC_PLAYER_PKG_NAME "com.samsung.w-music-player"
-#define W_EMERGENCY_MESSAGE_PKGNAME "com.samsung.emergency-message"
-
-#define SVOICE_PKG_NAME "com.samsung.svoice"
-#define SVOICE_LAUNCH_BUNDLE_KEY "domain"
-#define SVOICE_LAUNCH_BUNDLE_HOMEKEY_VALUE "home_key"
-
-#define VCONFKEY_HOME_IS_TUTORIAL "memory/private/org.tizen.w-home/tutorial"
-#define VCONFKEY_SIMPLECLOCK_UI_STATUS "memory/alpm-clock-manager/simpleclock_ui_status"
-#define VCONFKEY_CALL_FORWARD_REQUESTING       "memory/ciss/call_forward_requesting"
-#define VCONFKEY_REMOTE_LOCK_ISLOCKED          "db/private/com.samsung.wfmw/is_locked"
-
-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 *long_press_timer;
-       Ecore_Timer *powerkey_timer;
-       Eina_Bool is_lcd_on;
-       int is_simple_clock_display;
-       Eina_Bool is_long_press;
-       int powerkey_count;
-       Eina_Bool is_cancel;
-       char *home_pkgname;
-} key_info = {
-       .win = 0x0,
-       .key_up = NULL,
-       .key_down = NULL,
-       .two_fingers_hold_hd = NULL,
-       .long_press_timer = NULL,
-       .powerkey_timer = NULL,
-       .is_lcd_on = EINA_FALSE,
-       .is_simple_clock_display = EINA_FALSE,
-       .is_long_press = EINA_FALSE,
-       .powerkey_count = 0,
-       .is_cancel = EINA_FALSE,
-       .home_pkgname = W_HOME_PKGNAME,
-};
-
-#if 0 // This is not W code
-/* NOTE: THIS FUNCTION Is ONLY USED FOR CONFIDENTIAL FEATURE. REMOVE ME */
-static inline int _launch_running_apps_FOR_TEMPORARY(void)
-{
-       bundle *kb = NULL;
-       char *package;
-       int ret;
-
-       package = menu_daemon_get_selected_pkgname();
-       if (!package)
-               return -ENOENT;
-
-       if (!strcmp(package, MENU_SCREEN_PKG_NAME)) {
-               free(package);
-               return -EINVAL;
-       }
-
-       free(package);
-
-       kb = bundle_create();
-       if (!kb) {
-               _E("Failed to create a bundle");
-               return -EFAULT;
-       }
-
-       bundle_add(kb, "LONG_PRESS", "1");
-       ret = menu_daemon_launch_app(APP_TRAY_PKG_NAME, kb);
-       bundle_free(kb);
-
-       if (ret < 0) {
-               _E("Failed to launch the running apps, ret : %d", ret);
-               return -EFAULT;
-       } else if (ret > 0) {
-               if (-1 == deviced_conf_set_mempolicy_bypid(ret, OOM_IGNORE)) {
-                       _E("Cannot set the memory policy for App tray(%d)", ret);
-               } else {
-                       _E("Set the memory policy for App tray(%d)", ret);
-               }
-       }
-
-       return 0;
-}
-
-
-
-#define DESKDOCK_PKG_NAME "com.samsung.desk-dock"
-static Eina_Bool _launch_by_home_key(void *data)
-{
-       int lock_state = (int) data;
-       _D("lock_state : %d ", lock_state);
-
-       key_info.single_timer = NULL;
-
-       if (lock_state == VCONFKEY_IDLE_LOCK) {
-               return ECORE_CALLBACK_CANCEL;
-       }
-
-       int cradle_status = menu_daemon_get_cradle_status();
-       if (0 < cradle_status) {
-               int ret;
-               _SECURE_D("Cradle is enabled to [%d], we'll launch the desk dock[%s]", cradle_status, DESKDOCK_PKG_NAME);
-               ret = menu_daemon_open_app(DESKDOCK_PKG_NAME);
-               if (ret < 0) {
-                       _SECURE_E("cannot launch package %s(err:%d)", DESKDOCK_PKG_NAME, ret);
-               }
-       }
-
-       menu_daemon_open_homescreen(NULL);
-
-       return ECORE_CALLBACK_CANCEL;
-}
-
-
-
-inline static Eina_Bool _launch_svoice(void)
-{
-       const char *pkg_name = NULL;
-       bundle *b;
-
-       pkg_name = menu_daemon_get_svoice_pkg_name();
-       retv_if(NULL == pkg_name, EINA_FALSE);
-
-       if (!strcmp(pkg_name, SVOICE_PKG_NAME)) {
-               int val = -1;
-
-               if (vconf_get_int(VCONFKEY_SVOICE_OPEN_VIA_HOME_KEY, &val) < 0) {
-                       _D("Cannot get VCONFKEY");
-               }
-
-               if (val != 1) {
-                       _D("Launch nothing");
-                       return EINA_FALSE;
-               }
-       }
-
-       b = bundle_create();
-       retv_if(!b, EINA_FALSE);
-
-       bundle_add(b, SVOICE_LAUNCH_BUNDLE_KEY, SVOICE_LAUNCH_BUNDLE_HOMEKEY_VALUE);
-       if (menu_daemon_launch_app(pkg_name, b) < 0)
-               _SECURE_E("Failed to launch %s", pkg_name);
-       bundle_free(b);
-
-       return EINA_TRUE;
-}
-
-
-
-static void _launch_safety_assurance(void)
-{
-       _SECURE_D("Launch %s", SAFETY_ASSURANCE_PKG_NAME);
-       if (menu_daemon_open_app(SAFETY_ASSURANCE_PKG_NAME) < 0) {
-               _SECURE_E("Cannot open %s", SAFETY_ASSURANCE_PKG_NAME);
-       }
-}
-
-
-static Eina_Bool _launch_svoice_cb(void* data)
-{
-       key_info.media_long_press = NULL;
-
-       int val = -1;
-       if (vconf_get_int(VCONFKEY_SVOICE_OPEN_VIA_EARPHONE_KEY, &val) < 0) {
-               _D("Cannot get VCONFKEY");
-       }
-       if (1 == val) {
-               _D("Launch SVOICE");
-
-               bundle *b;
-               b = bundle_create();
-               retv_if(!b, ECORE_CALLBACK_CANCEL);
-
-               bundle_add(b, SVOICE_LAUNCH_BUNDLE_KEY, SVOICE_LAUNCH_BUNDLE_VALUE);
-               if (menu_daemon_launch_app(SVOICE_PKG_NAME, b) < 0)
-                       _SECURE_E("Failed to launch %s", TASKMGR_PKG_NAME);
-               bundle_free(b);
-       }
-
-       return ECORE_CALLBACK_CANCEL;
-}
-
-
-static Eina_Bool _client_msg_timer_cb(void* data)
-{
-       _D("_client_msg_timer_cb, safety assurance is enable");
-
-       key_info.enable_safety_assurance = EINA_TRUE;
-       _D("Launch SafetyAssurance");
-       _launch_safety_assurance();
-       key_info.client_msg_timer = NULL;
-
-       return ECORE_CALLBACK_CANCEL;
-}
-
-
-static Eina_Bool _set_unlock(void *data)
-{
-       _D("_set_unlock");
-       vconf_set_int(VCONFKEY_IDLE_LOCK_STATE, VCONFKEY_IDLE_UNLOCK);
-       return ECORE_CALLBACK_CANCEL;
-}
-
-
-inline static int _release_home_key(int lock_state)
-{
-       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, (void *) lock_state);
-               return EXIT_SUCCESS;
-       }
-       ecore_timer_del(key_info.single_timer);
-       key_info.single_timer = NULL;
-
-       if(EINA_TRUE == _launch_svoice()) {
-               if (lock_state == VCONFKEY_IDLE_LOCK) {
-                       ecore_timer_add(0.8, _set_unlock, NULL);
-               }
-       }
-       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 _client_message_cb(void *data, int type, void *event)
-{
-       int key_sum;
-       int press;
-       Ecore_X_Event_Client_Message *ev = event;
-       Ecore_X_Atom safety_assurance_atom;
-
-       if (ev->format != 32)
-               return ECORE_CALLBACK_RENEW;
-
-       safety_assurance_atom = ecore_x_atom_get(ATOM_KEY_COMPOSITION);
-       if (ev->message_type == safety_assurance_atom) {
-               press = ev->data.l[2];
-               key_sum = ev->data.l[0]+ev->data.l[1];
-               if (key_sum == 245) {
-                       _D("check key_sum[%d] to 122(volume_down)+123(volume_up), press=[%d]", key_sum, press);
-                       if (press) {
-                               if (key_info.client_msg_timer) {
-                                       ecore_timer_del(key_info.client_msg_timer);
-                                       key_info.client_msg_timer = NULL;
-                               }
-                               key_info.enable_safety_assurance = EINA_FALSE;
-                               key_info.client_msg_timer = ecore_timer_add(3, _client_msg_timer_cb, NULL);
-                               if (!key_info.client_msg_timer)
-                                       _E("Failed to add timer for clent message");
-                       } else {
-                               if (key_info.client_msg_timer) {
-                                       ecore_timer_del(key_info.client_msg_timer);
-                                       key_info.client_msg_timer = NULL;
-                               }
-#if 0
-                               if (key_info.enable_safety_assurance == EINA_TRUE) {
-                                       _D("Launch SafetyAssurance");
-                                       _launch_safety_assurance();
-                               }
-                               key_info.enable_safety_assurance = EINA_FALSE;
-#endif
-                       }
-               }
-       }
-       return ECORE_CALLBACK_RENEW;
-}
-
-#endif // This is not W code
-
-
-#if 0
-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;
-}
-
-
-DBusMessage *_invoke_dbus_method_sync(const char *dest, const char *path,
-               const char *interface, const char *method,
-               const char *sig, char *param[])
-{
-       DBusConnection *conn;
-       DBusMessage *msg;
-       DBusMessageIter iter;
-       DBusMessage *reply;
-       DBusError err;
-       int r;
-
-       conn = dbus_bus_get(DBUS_BUS_SYSTEM, NULL);
-       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);
-               return NULL;
-       }
-
-#if 0 //Temp block sync call from power off popup.
-       dbus_error_init(&err);
-
-       reply = dbus_connection_send_with_reply_and_block(conn, msg, DBUS_REPLY_TIMEOUT, &err);
-
-       if (!reply) {
-               _E("dbus_connection_send error(No reply)");
-       }
-
-       if (dbus_error_is_set(&err)) {
-               _E("dbus_connection_send error(%s:%s)", err.name, err.message);
-               reply = NULL;
-       }
-
-       dbus_message_unref(msg);
-       dbus_error_free(&err);
-
-       return reply;
-#else //Temp async call
-       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 -ECOMM;
-       }
-       _D("dbus_connection_send, ret=%d", r);
-       return NULL;
-#endif
-}
-
-
-static int _request_Poweroff(void)
-{
-       DBusError err;
-       DBusMessage *msg;
-       int ret, ret_val;
-
-       msg = _invoke_dbus_method_sync(POWEROFF_BUS_NAME, POWEROFF_OBJECT_PATH, POWEROFF_INTERFACE_NAME,
-                       METHOD_POWEROFF_NAME, NULL, NULL);
-       if (!msg)
-               return -EBADMSG;
-
-       dbus_error_init(&err);
-
-       ret = dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &ret_val, DBUS_TYPE_INVALID);
-       if (!ret) {
-               _E("no message : [%s:%s]", err.name, err.message);
-               ret_val = -EBADMSG;
-       }
-
-       dbus_message_unref(msg);
-       dbus_error_free(&err);
-
-       _D("%s-%s : %d", POWEROFF_INTERFACE_NAME, METHOD_POWEROFF_NAME, ret_val);
-       return ret_val;
-}
-#endif
-
-char *_get_app_type(const char *pkgname)
-{
-       int ret = 0;
-       char *apptype = NULL;
-       char *re_apptype = NULL;
-       pkgmgrinfo_pkginfo_h handle;
-       ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgname, &handle);
-       if (ret != PMINFO_R_OK)
-               return NULL;
-       ret = pkgmgrinfo_pkginfo_get_type(handle, &apptype);
-       if (ret != PMINFO_R_OK) {
-               pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
-               return NULL;
-       }
-
-       /*after call pkgmgrinfo_appinfo_destroy_appinfo, mainappid is destroyed with handle, so must copy it*/
-       re_apptype = strdup(apptype);
-       _SECURE_D("apptype : %s - %s", apptype, re_apptype);
-       pkgmgrinfo_pkginfo_destroy_pkginfo(handle);
-
-       return re_apptype;
-}
-
-static Eina_Bool _launch_home_by_powerkey(void)
-{
-       bundle *b = NULL;
-       int pid = 0;
-
-       _D("%s", __func__);
-
-       b = bundle_create();
-       if(!b) {
-               _E("Failed to create bundle");
-               return EINA_FALSE;
-       }
-       bundle_add(b, HOME_OPERATION_KEY, POWERKEY_VALUE);
-
-       pid = w_launch_app(key_info.home_pkgname, b);
-       _SECURE_D("launch[%s], pid[%d]", key_info.home_pkgname, pid);
-
-       if(pid < AUL_R_OK) {
-               if(b) {
-                       bundle_free(b);
-               }
-               return EINA_FALSE;
-       }
-
-       if(b) {
-               bundle_free(b);
-       }
-       return EINA_TRUE;
-}
-
-
-static Eina_Bool _syspopup_end_timer_cb(void *data)
-{
-       /* terminate syspopup */
-       syspopup_destroy_all();
-       return ECORE_CALLBACK_CANCEL;
-}
-
-
-#define APP_TYPE_WIDGET "wgt"
-#define W_CAMERA_PKGNAME "com.samsung.w-camera-app"
-static Eina_Bool _launch_app_by_double_press(void *data)
-{
-       struct appdata *ad = (struct appdata *)data;
-       if(ad == NULL){
-               _E("app data is NULL");
-               return EINA_FALSE;
-       }
-       char *appid = NULL;
-       char *pkgname = NULL;
-       char *pkgtype = NULL;
-       bundle *b = NULL;
-       int pid = 0;
-       int ret = 0;
-       int ret_aul = 0;
-       int val = 0;
-       int tts_status = 0;
-       int pwlock_status = 0;
-
-       _D("%s", __func__);
-
-       /* Check home tutorial mode */
-       if(vconf_get_int(VCONFKEY_HOME_IS_TUTORIAL, &val) < 0) {
-               _E("Failed to get vconfkey[VCONFKEY_HOME_IS_TUTORIAL]");
-       }
-       if(val == 1) {  // Home tutorial on
-               _E("Home Tutorial ON, ignore double key");
-               return EINA_FALSE;
-       }
-
-       /* Check UPS mode */
-       if(vconf_get_int(VCONFKEY_SETAPPL_PSMODE, &val) < 0) {
-               _E("Failed to get vconfkey[VCONFKEY_SETAPPL_PSMODE]");
-       }
-       if(val == SETTING_PSMODE_WEARABLE_ENHANCED) { //UPS Mode
-               _E("UPS Mode, ignore double key");
-               return EINA_FALSE;
-       }
-
-       /* Check TTS mode */
-       if (vconf_get_bool(VCONFKEY_SETAPPL_ACCESSIBILITY_TTS, &tts_status) < 0) {
-               _E("Failed to get vconfkey[VCONFKEY_SETAPPL_ACCESSIBILITY_TTS]");
-       }
-       if(tts_status == 1){ //TTS mode
-               _E("TTS Mode, ignore double key");
-               return EINA_FALSE;
-       }
-
-       /* Check Cool down mode */
-       if(ad->cool_down_mode != 0){
-               _E("Cool down mode is LimitAction(%d), ignore double key", ad->cool_down_mode);
-               return EINA_FALSE;
-       }
-
-       /* Check PW Lock state */
-       if(vconf_get_int(VCONFKEY_PWLOCK_STATE, &pwlock_status) < 0){
-               _SECURE_E("Failed to get vconfkey[%s]", VCONFKEY_PWLOCK_STATE);
-       }
-       if((pwlock_status == VCONFKEY_PWLOCK_BOOTING_LOCK) || (pwlock_status == VCONFKEY_PWLOCK_RUNNING_LOCK)){
-               _E("pwlock state (%d), ignore double key", pwlock_status);
-               return EINA_FALSE;
-       }
-
-       /* Check Privacy Lock state */
-       if(vconf_get_int(VCONFKEY_IDLE_LOCK_STATE, &val) < 0){
-               _SECURE_E("Failed to get vconfkey[%s]", VCONFKEY_IDLE_LOCK_STATE);
-       }
-       if(val > VCONFKEY_IDLE_UNLOCK){
-               _E("lock state (%d), ignore double key", val);
-               return EINA_FALSE;
-       }
-
-       /* Check Call state */
-       if(vconf_get_int(VCONFKEY_CALL_STATE, &val) < 0){
-               _SECURE_E("Failed to get vconfkey[%s]", VCONFKEY_CALL_STATE);
-       }
-       if(val != VCONFKEY_CALL_OFF){
-               _E("call state (%d), ignore double key", val);
-               return EINA_FALSE;
-       }
-
-       /* Check remote-lock state */
-       if(vconf_get_bool(VCONFKEY_REMOTE_LOCK_ISLOCKED, &val) < 0){
-               _E("failed to get %s", VCONFKEY_REMOTE_LOCK_ISLOCKED);
-       }
-
-       if(val == true){
-               _E("remote lock is on top (%d), ignore double key", val);
-               return EINA_FALSE;
-       }
-
-       appid = vconf_get_str(VCONFKEY_WMS_POWERKEY_DOUBLE_PRESSING);
-
-       if (appid == NULL) {
-               _E("appid is NULL");
-       } else if (!strcmp(appid, DOUBLE_PRESS_NONE)) {
-               _D("none : DOUBLE_PRESS_NONE !!");
-               return EINA_TRUE;
-       } else if (!strcmp(appid, DOUBLE_PRESS_RECENT_APPS)) {
-               _D("recent : launch task mgr..!!");
-
-               b = bundle_create();
-               if(!b) {
-                       _E("Failed to create bundle");
-                       return EINA_FALSE;
-               }
-               bundle_add(b, APP_CONTROL_OPERATION_MAIN_KEY, APP_CONTROL_OPERATION_MAIN_VALUE);
-
-               request_dbus_cpu_booster();
-               ret = w_launch_app(W_TASKMGR_PKGNAME, NULL);
-               if (ret >= 0) {
-                       _SECURE_D("[%s] is launched, pid=[%d]", W_TASKMGR_PKGNAME, ret);
-               }
-               if(b) {
-                       bundle_free(b);
-               }
-               return EINA_TRUE;
-       } else {
-               char *last = NULL;
-               char *temp = NULL;
-               char *new_appid = NULL;
-               last = strrchr(appid, '/');
-               if (last == NULL || *(last + 1) == NULL) {
-                       _E("Invaild data");
-               } else {
-                       _D("appid has class name");
-                       new_appid = strdup(last + 1);
-                       if(new_appid == NULL) {
-                               _E("appid is NULL");
-                       }
-                       temp = strtok(appid, "/");
-                       if(temp == NULL){
-                               _E("Invalid data");
-                       }
-                       else{
-                               pkgname = strdup(temp);
-                       }
-               }
-               free(appid);
-               appid = new_appid;
-       }
-
-       if(appid == NULL) {
-               _E("appid is NULL. set default to none.");
-               return EINA_FALSE;
-       }
-
-       pkgtype = _get_app_type(pkgname);
-       if(pkgtype == NULL) {
-               _E("Failed to get app_type. app_type is NULL");
-               if(appid){
-                       free(appid);
-               }
-               if(pkgname){
-                       free(pkgname);
-               }
-               return EINA_FALSE;
-       }
-
-       _SECURE_D("appid : %s, pkgname : %s, pkgtype : %s", appid, pkgname, pkgtype);
-
-       if(!strcmp(pkgtype, APP_TYPE_WIDGET)){
-               ret_aul = aul_open_app(appid);
-               if(ret_aul < AUL_R_OK) {
-                       _D("Launching app ret : [%d]", ret_aul);
-                       free(appid);
-                       free(pkgname);
-                       free(pkgtype);
-                       return EINA_FALSE;
-               }
-               if(appid) {
-                       free(appid);
-               }
-       }
-       else{
-
-               b = bundle_create();
-               if(!b) {
-                       _E("Failed to create bundle");
-                       if(appid) {
-                               free(appid);
-                       }
-                       return EINA_FALSE;
-               }
-               bundle_add(b, APP_CONTROL_OPERATION_MAIN_KEY, APP_CONTROL_OPERATION_MAIN_VALUE);
-
-               if (!strcmp(appid, SVOICE_PKG_NAME)) {
-                       bundle_add(b, SVOICE_LAUNCH_BUNDLE_KEY, SVOICE_LAUNCH_BUNDLE_HOMEKEY_VALUE);
-               }
-
-               request_dbus_cpu_booster();
-               pid = w_launch_app(appid, b);
-               _SECURE_D("launch[%s], pid[%d]", appid, pid);
-
-               if(pid < AUL_R_OK) {
-                       if(b) {
-                               bundle_free(b);
-                       }
-                       if(appid) {
-                               free(appid);
-                       }
-                       return EINA_FALSE;
-               }
-
-#if 0
-               if (strcmp(appid, W_CONTROLS_PKGNAME)) {
-                       /* terminate syspopup */
-                       //syspopup_destroy_all();
-                       ecore_timer_add(SYSPOPUP_END_TIMER_SEC, _syspopup_end_timer_cb, NULL);
-               }
-#endif
-               if(b) {
-                       bundle_free(b);
-               }
-               if(appid) {
-                       free(appid);
-               }
-       }
-       if(pkgname){
-               free(pkgname);
-       }
-       if(pkgtype){
-               free(pkgtype);
-       }
-       return EINA_TRUE;
-}
-
-
-static Eina_Bool _powerkey_timer_cb(void *data)
-{
-       int val = -1;
-       int trigger_val = -1;
-       int ret = -1;
-
-       _W("%s, powerkey count[%d]", __func__, key_info.powerkey_count);
-#if 0
-       if(key_info.long_press_timer) {
-               ecore_timer_del(key_info.long_press_timer);
-               key_info.long_press_timer = NULL;
-               _D("delete long_press_timer");
-       }
-
-       if(key_info.powerkey_timer) {
-               ecore_timer_del(key_info.powerkey_timer);
-               key_info.powerkey_timer = NULL;
-               _D("delete powerkey_timer");
-       }
-#endif
-
-       key_info.powerkey_timer = NULL;
-
-       /* setdup_wizard is running : should not turn off LCD*/
-       if(vconf_get_int(VCONFKEY_SETUP_WIZARD_STATE, &val) < 0) {
-               _SECURE_E("Failed to get vconfkey[%s]", VCONFKEY_SETUP_WIZARD_STATE);
-               val = -1;
-       }
-       if(val == VCONFKEY_SETUP_WIZARD_LOCK) {
-               _E("setdup_wizard is running");
-               key_info.powerkey_count = 0;
-               return ECORE_CALLBACK_CANCEL;
-       }
-
-       /* Check critical low batt clock mode */
-       if(vconf_get_int(VCONFKEY_PM_KEY_IGNORE, &val) < 0) {
-               _SECURE_E("Failed to get vconfkey[%s]", VCONFKEY_PM_KEY_IGNORE);
-               val = -1;
-       }
-       if(val == 1) { //Critical Low Batt Clock Mode
-               _E("Critical Low Batt Clock Mode");
-               key_info.powerkey_count = 0; //initialize powerkey count
-               if(!key_info.is_lcd_on) {
-                       _W("just turn on LCD by powerkey.. starter ignore powerkey operation");
-               } else {
-                       _W("just turn off LCD");
-                       display_change_state(LCD_OFF);
-               }
-               return ECORE_CALLBACK_CANCEL;
-       }
-
-
-       /* Safety Assitance */
-       if(vconf_get_int(VCONFKEY_WMS_SAFETY_ENABLE, &val) < 0) {
-               _SECURE_E("Failed to get vconfkey[%s]", VCONFKEY_WMS_SAFETY_ENABLE);
-               val = -1;
-       }
-       if(val == 1) { //Safety Assistance is ON
-               if(key_info.powerkey_count == 2) {
-                       /* double press */
-                       _W("powerkey double press");
-                       key_info.powerkey_count = 0;
-                       if(!_launch_app_by_double_press(data)) {
-                               _E("Failed to launch by double press");
-                       }
-                       return ECORE_CALLBACK_CANCEL;
-               } else if(key_info.powerkey_count >= 3) {
-                       _E("Safety Assistance : safety is enabled");
-                       key_info.powerkey_count = 0;
-#ifdef TELEPHONY_DISABLE //B2
-                       if(vconf_get_int(VCONFKEY_WMS_SAFETY_MESSAGE_TRIGGER, &trigger_val) < 0) {
-                               _SECURE_E("Failed to get vconfkey[%s]", VCONFKEY_WMS_SAFETY_MESSAGE_TRIGGER);
-                       }
-                       _E("Safety Assistance trigger status : [%d]", trigger_val);
-                       if(trigger_val == 0) {
-                               //set wms trigger
-                               if(vconf_set_int(VCONFKEY_WMS_SAFETY_MESSAGE_TRIGGER, 2) < 0) {
-                                       _SECURE_E("Failed to set vconfkey[%s]", VCONFKEY_WMS_SAFETY_MESSAGE_TRIGGER);
-                               }
-
-                               feedback_initialize();
-                               feedback_play(FEEDBACK_PATTERN_SAFETY_ASSISTANCE);
-                               feedback_deinitialize();
-                       }
-#else //B2-3G
-                       bundle *b;
-                       b = bundle_create();
-                       if (!b) {
-                               _E("Cannot create bundle");
-                               return ECORE_CALLBACK_CANCEL;
-                       }
-                       bundle_add(b, "starter_call", "true");
-
-                       ret = w_launch_app(W_EMERGENCY_MESSAGE_PKGNAME, b);
-                       if (ret < 0)
-                               _E("Failed to launch emergency-message, ret : %d", ret);
-
-                       bundle_free(b);
-#endif
-                       return ECORE_CALLBACK_CANCEL;
-               }
-       } else { //Safety Assistance is OFF
-               if(key_info.powerkey_count%2 == 0) {
-                       /* double press */
-                       _W("powerkey double press");
-                       key_info.powerkey_count = 0;
-                       if(!_launch_app_by_double_press(data)) {
-                               _E("Failed to launch by double press");
-                       }
-                       return ECORE_CALLBACK_CANCEL;
-               }
-       }
-       key_info.powerkey_count = 0; //initialize powerkey count
-
-       if (key_info.is_simple_clock_display == 1) {
-               _W("Simple clock is displayed.. starter ignore powerkey operation");
-               return ECORE_CALLBACK_CANCEL;
-       }
-
-       if(!key_info.is_lcd_on) {
-               _W("just turn on LCD by powerkey.. starter ignore powerkey operation");
-               return ECORE_CALLBACK_CANCEL;
-       } else {
-               // Check LCD status
-               if(vconf_get_int(VCONFKEY_PM_STATE, &val) < 0) {
-                       _E("Cannot get VCONFKEY_PM_STATE");
-               }
-               _W("LCD ON when powerkey & current LCD state : %d", val);
-               if(val >= VCONFKEY_PM_STATE_LCDOFF) {
-                       _E("Already lcd state was changed while powerkey op. starter ignore powerkey operation");
-                       return ECORE_CALLBACK_CANCEL;
-               }
-       }
-
-       /* check Call state */
-       if(vconf_get_int(VCONFKEY_CALL_STATE, &val) < 0) {
-               _E("Failed to get call state");
-               val = -1;
-       }
-       if(val == VCONFKEY_CALL_VOICE_ACTIVE) {
-               _W("call state is [%d] -> just turn off LCD", val);
-               display_change_state(LCD_OFF);
-               return ECORE_CALLBACK_CANCEL;
-       }
-
-       /* checkLockstate */
-       if(vconf_get_int(VCONFKEY_IDLE_LOCK_STATE, &val) < 0) {
-               _E("Failed to get lock state");
-               val = -1;
-       }
-       if(val == VCONFKEY_IDLE_LOCK) {
-               _W("lock state is [%d] -> just turn off LCD", val);
-               display_change_state(LCD_OFF);
-               return ECORE_CALLBACK_CANCEL;
-       }
-
-       /* Check remote-lock state */
-       if(vconf_get_bool(VCONFKEY_REMOTE_LOCK_ISLOCKED, &val) < 0){
-               _E("failed to get %s", VCONFKEY_REMOTE_LOCK_ISLOCKED);
-               val = -1;
-       }
-
-       if(val == true){
-               _W("remote lock is on top (%d), -> just turn off LCD", val);
-               display_change_state(LCD_OFF);
-               return ECORE_CALLBACK_CANCEL;
-       }
-
-       /* Show Idle-Clock */
-       if(!_launch_home_by_powerkey())
-               _E("Failed to send powerkey to home..!!");
-#if 0
-       /* terminate syspopup */
-       syspopup_destroy_all();
-#endif
-
-       /* To notify powerkey to fmd & fmw */
-       vconf_set_int("memory/wfmd/wfmd_end_key", 1);
-       vconf_set_int("memory/wfmw/wfmw_end_key", 1);
-
-       return ECORE_CALLBACK_CANCEL;
-}
-
-
-static Eina_Bool _long_press_timer_cb(void* data)
-{
-       int pid;
-       bundle *b;
-       int test_mode = -1;
-       int call_forward_requesting = -1;
-       int remote_lock_status = -1;
-
-       _W("%s", __func__);
-
-       key_info.long_press_timer = NULL;
-       key_info.is_long_press = EINA_TRUE;
-       key_info.powerkey_count = 0; //initialize powerkey count
-
-       vconf_get_int(VCONFKEY_TESTMODE_POWER_OFF_POPUP, &test_mode);
-       if (test_mode == VCONFKEY_TESTMODE_POWER_OFF_POPUP_DISABLE) {
-               _E("test mode => skip poweroff popup");
-               return ECORE_CALLBACK_CANCEL;
-       }
-
-       vconf_get_bool(VCONFKEY_CALL_FORWARD_REQUESTING, &call_forward_requesting);
-       if (call_forward_requesting == TRUE) {
-               _E("call forward requesting => skip poweroff popup");
-               return ECORE_CALLBACK_CANCEL;
-       }
-
-       /* Check remote-lock state */
-       if(vconf_get_bool(VCONFKEY_REMOTE_LOCK_ISLOCKED, &remote_lock_status) < 0){
-               _E("failed to get %s", VCONFKEY_REMOTE_LOCK_ISLOCKED);
-       }
-
-       if(remote_lock_status == true){
-               _E("remote lock is on top (%d), ignore double key", remote_lock_status);
-               return ECORE_CALLBACK_CANCEL;
-       }
-
-#ifdef TARGET
-       if (bincfg_is_factory_binary() == 1) {
-               _E("Factory binary..!!");
-               return ECORE_CALLBACK_CANCEL;
-       }
-#endif
-
-       //Check single powerkey press/release
-       if(key_info.powerkey_timer) {
-               ecore_timer_del(key_info.powerkey_timer);
-               key_info.powerkey_timer = NULL;
-               _D("delete powerkey_timer");
-       }
-
-#if USE_DBUS_POWEROFF
-       //_request_Poweroff();
-       request_Poweroff();
-#else
-       b = bundle_create();
-       if (!b)
-               return ECORE_CALLBACK_CANCEL;
-       pid = syspopup_launch("poweroff-syspopup", b);
-       _D("launch power off syspopup, pid : %d", pid);
-       bundle_free(b);
-#endif
-       feedback_initialize();
-       feedback_play_type(FEEDBACK_TYPE_VIBRATION, FEEDBACK_PATTERN_HOLD);
-       feedback_deinitialize();
-
-       return ECORE_CALLBACK_CANCEL;
-}
-
-
-static Eina_Bool _key_release_cb(void *data, int type, void *event)
-{
-       Evas_Event_Key_Up *ev = event;
-       int val = -1;
-
-       if (!ev) {
-               _D("Invalid event object");
-               return ECORE_CALLBACK_RENEW;
-       }
-
-       if (!ev->keyname) {
-               _D("_key_release_cb : Invalid event keyname object");
-               return ECORE_CALLBACK_RENEW;
-       } else {
-               _D("_key_release_cb : %s Released", ev->keyname);
-       }
-
-       if (!strcmp(ev->keyname, KEY_POWER)) {
-
-               _W("POWER Key is released");
-
-               // Check long press timer
-               if(key_info.long_press_timer) {
-                       ecore_timer_del(key_info.long_press_timer);
-                       key_info.long_press_timer = NULL;
-                       _D("delete long press timer");
-               }
-
-               // Check powerkey timer
-               if(key_info.powerkey_timer) {
-                       ecore_timer_del(key_info.powerkey_timer);
-                       key_info.powerkey_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) {
-                       _D("lcd off --> [%f]sec timer", POWERKEY_LCDOFF_TIMER_SEC);
-                       key_info.powerkey_timer = ecore_timer_add(POWERKEY_LCDOFF_TIMER_SEC, _powerkey_timer_cb, data);
-               } else {
-                       key_info.powerkey_timer = ecore_timer_add(POWERKEY_TIMER_SEC, _powerkey_timer_cb, data);
-               }
-
-       } else if (!strcmp(ev->keyname, KEY_CANCEL)) {
-               _D("CANCEL Key is released");
-               key_info.is_cancel = EINA_FALSE;
-       }
-
-       return ECORE_CALLBACK_RENEW;
-}
-
-
-
-static Eina_Bool _key_press_cb(void *data, int type, void *event)
-{
-       Evas_Event_Key_Down *ev = event;
-       int pm_val = -1;
-       int val = -1;
-
-
-       if (!ev) {
-               _D("Invalid event object");
-               return ECORE_CALLBACK_RENEW;
-       }
-
-       if (!ev->keyname) {
-               _D("_key_press_cb : Invalid event keyname object");
-               return ECORE_CALLBACK_RENEW;
-       } else {
-               _D("_key_press_cb : %s Pressed", ev->keyname);
-       }
-
-       if (!strcmp(ev->keyname, KEY_POWER)) {
-
-               _W("POWER Key is pressed");
-
-               // Check LCD status
-               if(vconf_get_int(VCONFKEY_PM_STATE, &val) < 0) {
-                       _E("Cannot get VCONFKEY_PM_STATE");
-               }
-               _W("LCD state : %d", val);
-               if(val <= VCONFKEY_PM_STATE_LCDDIM) {
-                       key_info.is_lcd_on = EINA_TRUE;
-               } else if(val >= VCONFKEY_PM_STATE_LCDOFF) {
-                       key_info.is_lcd_on = EINA_FALSE;
-               }
-
-               // Check Simple Clock status
-               if(vconf_get_int(VCONFKEY_SIMPLECLOCK_UI_STATUS, &val) < 0) {
-                       _E("Failed to get VCONFKEY_SIMPLECLOCK_UI_STATUS");
-                       val = 0;
-               }
-               _W("Simple Clock state : %d", val);
-               key_info.is_simple_clock_display = val;
-
-               // Check powerkey press count
-               key_info.powerkey_count++;
-               _W("powerkey count : %d", key_info.powerkey_count);
-
-               // Check powerkey timer
-               if(key_info.powerkey_timer) {
-                       ecore_timer_del(key_info.powerkey_timer);
-                       key_info.powerkey_timer = NULL;
-                       _D("delete powerkey timer");
-               }
-
-               // Check long press
-               if (key_info.long_press_timer) {
-                       ecore_timer_del(key_info.long_press_timer);
-                       key_info.long_press_timer = NULL;
-               }
-               _D("create long press timer");
-               key_info.is_long_press = EINA_FALSE;
-               key_info.long_press_timer = ecore_timer_add(LONG_PRESS_TIMER_SEC, _long_press_timer_cb, NULL);
-               if(!key_info.long_press_timer) {
-                       _E("Failed to add 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;
-}
-
-
-
-static int _w_gesture_hold_cb(void *data, int ev_type, void *ev)
-{
-       struct appdata *ad = (struct appdata *)data;
-       if(ad == NULL){
-               _E("app data is NULL");
-               return ECORE_CALLBACK_RENEW;
-       }
-       Ecore_X_Event_Gesture_Notify_Hold *e = ev;
-       int ret = 0;
-       int val = -1;
-       bundle *b = NULL;
-
-       _D("_w_gesture_hold_cb..!!");
-
-#ifdef TARGET
-       if (bincfg_is_factory_binary() == 1) {
-               _E("Factory binary..!!");
-               return ECORE_CALLBACK_RENEW;
-       }
-#endif
-
-       /* Check Simple clock ui status */
-       if(vconf_get_int(VCONFKEY_SIMPLECLOCK_UI_STATUS, &val) < 0) {
-               _SECURE_E("Failed to get vconfkey[%s]", VCONFKEY_SIMPLECLOCK_UI_STATUS);
-       }
-       if(val == 1) { //Simple Clock ui Show.
-               _E("Simple Clock ui Show, ignore gesture");
-               return ECORE_CALLBACK_RENEW;
-       }
-
-       /* Check critical low batt clock mode */
-       if(vconf_get_int(VCONFKEY_PM_KEY_IGNORE, &val) < 0) {
-               _SECURE_E("Failed to get vconfkey[%s]", VCONFKEY_PM_KEY_IGNORE);
-       }
-       if(val == 1) { //Critical Low Batt Clock Mode
-               _E("Critical Low Batt Clock Mode, ignore gesture");
-               return ECORE_CALLBACK_RENEW;
-       }
-
-       /* Check UPS mode */
-       if(vconf_get_int(VCONFKEY_SETAPPL_PSMODE, &val) < 0) {
-               _SECURE_E("Failed to get vconfkey[%s]", VCONFKEY_SETAPPL_PSMODE);
-       }
-       if(val == SETTING_PSMODE_WEARABLE_ENHANCED) { //UPS Mode
-               _E("UPS Mode, ignore gesture");
-               return ECORE_CALLBACK_RENEW;
-       }
-
-       /* Check Cool Down mode */
-       if(ad->cool_down_mode !=0){
-               _E("Cool down mode is LimitAction(%d), ignore double key", ad->cool_down_mode);
-               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..!!");
-
-                       b = bundle_create();
-                       if(!b) {
-                               _E("Failed to create bundle");
-                               return EINA_FALSE;
-                       }
-                       bundle_add(b, APP_CONTROL_OPERATION_MAIN_KEY, APP_CONTROL_OPERATION_MAIN_VALUE);
-
-                       request_dbus_cpu_booster();
-
-                       ret = w_launch_app(W_TASKMGR_PKGNAME, NULL);
-                       if (ret >= 0) {
-                               _SECURE_D("[%s] is launched, pid=[%d]", W_TASKMGR_PKGNAME, ret);
-#if 0
-                               /* terminate syspopup */
-                               //syspopup_destroy_all();
-                               ecore_timer_add(SYSPOPUP_END_TIMER_SEC*2, _syspopup_end_timer_cb, NULL);
-#endif
-                       }
-                       if(b) {
-                               bundle_free(b);
-                       }
-               }
-       }
-
-       return ECORE_CALLBACK_RENEW;
-}
-
-
-
-inline static void _release_multimedia_key(const char *value)
-{
-       int pid = 0;
-
-       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);
-       bundle_add(b, APP_CONTROL_OPERATION_MAIN_KEY, APP_CONTROL_OPERATION_DEFAULT_VALUE);
-
-       pid = w_launch_app(MUSIC_PLAYER_PKG_NAME, b);
-       if (pid < 0)
-               _E("Failed to launch music player, ret : %d", pid);
-
-       bundle_free(b);
-}
-
-
-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;
-
-       if (MEDIA_KEY_PAUSE == key) {
-               _release_multimedia_key("KEY_PAUSECD");
-       } else if (MEDIA_KEY_PLAY == key) {
-               _release_multimedia_key("KEY_PLAYCD");
-       } else if (MEDIA_KEY_PLAYPAUSE == key) {
-               _release_multimedia_key("KEY_PLAYPAUSECD");
-       }
-}
-
-static Eina_Bool _key_release_in_factory_cb(void *data, int type, void *event)
-{
-       Evas_Event_Key_Up *ev = event;
-       int val = -1;
-
-       if (!ev) {
-               _D("Invalid event object");
-               return ECORE_CALLBACK_RENEW;
-       }
-
-       if (!ev->keyname) {
-               _D("_key_release_cb : Invalid event keyname object");
-               return ECORE_CALLBACK_RENEW;
-       } else {
-               _D("_key_release_cb : %s Released", ev->keyname);
-       }
-
-       if (!strcmp(ev->keyname, KEY_POWER)) {
-
-               _W("POWER Key is released");
-               if(!key_info.is_lcd_on) {
-                       _W("just turn on LCD by powerkey.. starter ignore powerkey operation");
-               } else {
-                       _W("just turn off LCD");
-                       display_change_state(LCD_OFF);
-               }
-               return ECORE_CALLBACK_CANCEL;
-       }
-       return ECORE_CALLBACK_RENEW;
-}
-
-static Eina_Bool _key_press_in_factory_cb(void *data, int type, void *event)
-{
-       Evas_Event_Key_Down *ev = event;
-       int pm_val = -1;
-       int val = -1;
-
-
-       if (!ev) {
-               _D("Invalid event object");
-               return ECORE_CALLBACK_RENEW;
-       }
-
-       if (!ev->keyname) {
-               _D("_key_press_cb : Invalid event keyname object");
-               return ECORE_CALLBACK_RENEW;
-       } else {
-               _D("_key_press_cb : %s Pressed", ev->keyname);
-       }
-
-       if (!strcmp(ev->keyname, KEY_POWER)) {
-
-               _W("POWER Key is pressed");
-               // Check LCD status
-               if(vconf_get_int(VCONFKEY_PM_STATE, &val) < 0) {
-                       _E("Cannot get VCONFKEY_PM_STATE");
-               }
-               _W("LCD state : %d", val);
-               if(val <= VCONFKEY_PM_STATE_LCDDIM) {
-                       key_info.is_lcd_on = EINA_TRUE;
-               } else if(val >= VCONFKEY_PM_STATE_LCDOFF) {
-                       key_info.is_lcd_on = EINA_FALSE;
-               }
-       }
-       return ECORE_CALLBACK_RENEW;
-}
-
-void create_key_window_factory_mode(char *home_pkgname, void *data)
-{
-       int status = -1;
-       int ret = -1;
-
-       _W("create_key_window in factory mode!!");
-
-       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_in_factory_cb, data);
-       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_in_factory_cb, NULL);
-       if (!key_info.key_down)
-               _E("Failed to register a key down event handler");
-}
-
-
-
-void create_key_window(char *home_pkgname, void *data)
-{
-       int status = -1;
-       int ret = -1;
-
-       _W("create_key_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());
-
-#if 0
-       g_type_init();
-       e_dbus_init();
-
-       init_dbus_ALPM_signal(NULL);
-#endif
-
-       key_info.home_pkgname = home_pkgname;
-
-       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, data);
-       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,
-               (Ecore_Event_Handler_Cb)_w_gesture_hold_cb, data);
-       if (!key_info.two_fingers_hold_hd) {
-               _E("Failed to register handler : ECORE_X_EVENT_GESTURE_NOTIFY_TAPNHOLD\n");
-       }
-
-       media_key_reserve(_media_key_event_cb, NULL);
-
-}
-
-
-
-void destroy_key_window(void)
-{
-       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);
-       }
-
-       utilx_ungrab_key(ecore_x_display_get(), key_info.win, KEY_POWER);
-
-       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;
-
-}
-
-
-
-// End of a file
diff --git a/src/lock-daemon-lite.c b/src/lock-daemon-lite.c
deleted file mode 100755 (executable)
index 5351c58..0000000
+++ /dev/null
@@ -1,2185 +0,0 @@
-/*
- * 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 <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 <sensors.h>
-#include <feedback.h>
-#include <alarm.h>
-#include <time.h>
-#include <dd-deviced.h>
-#include <dd-display.h>
-#include <E_DBus.h>
-#include <aul.h>
-
-#ifndef FEATURE_LITE
-#include <context_manager.h>
-#endif
-
-#include "lockd-debug.h"
-#include "lock-daemon-lite.h"
-#include "lockd-process-mgr.h"
-#include "lockd-window-mgr.h"
-#include "starter-util.h"
-#include "menu_daemon.h"
-#include "hw_key.h"
-#include "lockd-bt.h"
-#include "dbus-util.h"
-#include "util.h"
-
-static int phone_lock_pid;
-static int auto_lock_pid;
-static bool lock_state_available = TRUE;
-
-struct lockd_data {
-       int lock_app_pid;
-       int phone_lock_app_pid;
-       int lock_type;  /* -1: None, 0:Normal, 1:Security,  2:Other */
-       Eina_Bool is_sensor;    /* EINA_TRUE : can use sensor EINA_FALSE : cannot use */
-       Eina_Bool request_recovery;
-       Eina_Bool back_to_app;
-       Eina_Bool start_ready;
-       lockw_data *lockw;
-       GPollFD *gpollfd;
-       Eina_Bool is_alarm;     /* EINA_TRUE : can use alarm EINA_FALSE : cannot use */
-       alarm_id_t alarm_id;    /* -1 : None, others : set alarm */
-       Eina_Bool is_first_boot;        /* EINA_TRUE : first boot  */
-       int hall_status;        /* 0: cover is closed, 1:cover is opened */
-       E_DBus_Connection *hall_conn;
-       E_DBus_Signal_Handler *hall_handler;
-       E_DBus_Connection *display_conn;
-       E_DBus_Signal_Handler *display_handler;
-
-};
-
-
-
-/* Local features*/
-#define _FEATURE_LCD_OFF_DBUS  0 //Check to apply lcd off dbus by PM part
-#define _FEATURE_SCOVER                        0 //Scover view
-
-#define VCONFKEY_LOCKSCREEN_FESTIVAL_WALLPAPER_DISPLAYING "db/lockscreen/festival_wallpaper"
-
-
-#define PHLOCK_SOCK_PREFIX "/tmp/phlock"
-#define PHLOCK_SOCK_MAXBUFF 1024
-
-#define VOLUNE_APP_CMDLINE "/usr/apps/org.volume.volume/bin/volume"             // LOCK_EXIT_CMD
-#define PHLOCK_APP_CMDLINE "/usr/apps/org.volume.lockscreen/bin/lockscreen" //PHLOCK_UNLOCK_CMD
-#define MDM_APP_CMDLINE "/usr/bin/mdm-server" //PHLOCK_LAUNCH_CMD
-#define VOICE_CALL_APP_CMDLINE "/usr/apps/com.samsung.call/bin/calls" //HOME_RAISE_CMD, LOCK_SHOW_CMD
-#define VIDEO_CALL_APP_CMDLINE "/usr/apps/com.samsung.vtmain/bin/vtmain" //HOME_RAISE_CMD, LOCK_SHOW_CMD
-#define OMA_DRM_AGENT_CMDLINE "/usr/bin/oma-dm-agent" //PHLOCK_UNLOCK_RESET_CMD
-
-#define PHLOCK_UNLOCK_CMD "unlock"
-#define PHLOCK_LAUNCH_CMD "launch_phone_lock"
-#define PHLOCK_UNLOCK_RESET_CMD "unlock_reset"
-#define HOME_RAISE_CMD "raise_homescreen"
-#define LOCK_SHOW_CMD "show_lockscreen"
-#define LOCK_LAUNCH_CMD "launch_lockscreen"
-#define LOCK_EXIT_CMD "exit_lockscreen"
-
-#define LAUNCH_INTERVAL 100*1000
-
-#define HALL_COVERED_STATUS            0
-#define BUS_NAME       "org.tizen.system.deviced"
-#define OBJECT_PATH    "/Org/Tizen/System/DeviceD"
-#define INTERFACE_NAME BUS_NAME
-#define DEVICED_PATH_HALL              OBJECT_PATH"/Hall"
-#define DEVICED_INTERFACE_HALL INTERFACE_NAME".hall"
-#define SIGNAL_HALL_STATE      "ChangeState"
-#define METHOD_GET_STATUS      "getstatus"
-#define DBUS_REPLY_TIMEOUT (120 * 1000)
-#define DEVICED_PATH_PMQOS             OBJECT_PATH"/PmQos"
-#define DEVICED_INTERFACE_PMQOS        INTERFACE_NAME".PmQos"
-#define METHOD_PMQOS_NAME      "LockScreen"
-#define REQUEST_PMQOS_DURATION (2 * 1000)
-
-#define DEVICED_PATH_LCD_OFF   OBJECT_PATH"/Display"
-#define DEVICED_INTERFACE_LCD_OFF      INTERFACE_NAME".display"
-#define METHOD_LCD_OFF_NAME    "LCDOffByPowerkey"
-
-#define VOLUME_PKG_NAME "org.tizen.volume"
-#define WALLPAPER_UI_SERVICE_PKG_NAME "com.samsung.wallpaper-ui-service"
-#define SHOW_LOCK "show_lock"
-#define ISTRUE "TRUE"
-#define SMART_ALERT_INTERVAL 0.5
-
-#define PASSWORD_LOCK_PROGRESS "/tmp/.passwordlock"
-static int checkfd = 0;
-
-enum {
-       LOCK_TYPE_NONE = -1,
-       LOCK_TYPE_NORMAL = 0,
-       LOCK_TYPE_SECURITY,
-       LOCK_TYPE_AUTO_LOCK,
-       LOCK_TYPE_OTHER,
-       LOCK_TYPE_MAX
-};
-
-static int lockd_launch_app_lockscreen_lite(struct lockd_data *lockd);
-static int lockd_launch_app_other_lockscreen(struct lockd_data *lockd);
-static void lockd_unlock_other_lockscreen(struct lockd_data *lockd);
-static void lockd_init_vconf(struct lockd_data *lockd);
-static void lockd_fini_vconf(struct lockd_data *lockd);
-static void _lockd_check_ongoing(bool ongoing);
-#if 0
-static Eina_Bool lockd_start_sensor(void *data);
-static void lockd_stop_sensor(void *data);
-#endif
-
-static void _lockd_set_lock_state(int lock_state)
-{
-       LOCKD_DBG("%s, %d, %d", __func__, __LINE__, lock_state);
-       if(lock_state < VCONFKEY_IDLE_UNLOCK || lock_state > VCONFKEY_IDLE_LAUNCHING_LOCK) {
-               LOCKD_ERR("Can't set lock_state : %d out of range", lock_state);
-       } else {
-               vconf_set_int(VCONFKEY_IDLE_LOCK_STATE, lock_state);
-       }
-}
-
-static void _lockd_play_sound(bool unlock)
-{
-       int ret = -1, val = 0;
-       ret = vconf_get_bool(VCONFKEY_SETAPPL_SOUND_LOCK_BOOL, &val);
-
-       if(ret == 0 && val == 1) {
-               feedback_initialize();
-               feedback_play_type(FEEDBACK_TYPE_SOUND, unlock ? FEEDBACK_PATTERN_UNLOCK : FEEDBACK_PATTERN_LOCK);
-       }
-}
-
-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_NONE) {
-               ret = LOCK_TYPE_NONE;
-       } else if (lock_type == SETTING_SCREEN_LOCK_TYPE_PASSWORD ||
-               lock_type == SETTING_SCREEN_LOCK_TYPE_SIMPLE_PASSWORD ||
-               lock_type == SETTING_SCREEN_LOCK_TYPE_FINGERPRINT ||
-               lock_type == SETTING_SCREEN_LOCK_TYPE_FACE_AND_VOICE) {
-               ret = LOCK_TYPE_SECURITY;
-       } else if (lock_type == SETTING_SCREEN_LOCK_TYPE_SWIPE ||
-               lock_type == SETTING_SCREEN_LOCK_TYPE_MOTION) {
-               ret = LOCK_TYPE_NORMAL;
-       } else if (lock_type == SETTING_SCREEN_LOCK_TYPE_AUTO_LOCK) {
-               ret = LOCK_TYPE_AUTO_LOCK;
-       } else {
-               ret = LOCK_TYPE_OTHER;
-       }
-
-       LOCKD_DBG("lockd_get_lock_type ret(%d), lock_type (%d)", ret, lock_type);
-
-       return ret;
-}
-
-static int _lockd_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;
-}
-
-DBusMessage *_lockd_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;
-       DBusMessage *reply;
-       DBusError err;
-       int r;
-
-       conn = dbus_bus_get(DBUS_BUS_SYSTEM, NULL);
-       if (!conn) {
-               LOCKD_ERR("dbus_bus_get error");
-               return NULL;
-       }
-
-       msg = dbus_message_new_method_call(dest, path, interface, method);
-       if (!msg) {
-               LOCKD_ERR("dbus_message_new_method_call(%s:%s-%s)", path, interface, method);
-               return NULL;
-       }
-
-       dbus_message_iter_init_append(msg, &iter);
-       r = _lockd_append_variant(&iter, sig, param);
-       if (r < 0) {
-               LOCKD_ERR("append_variant error(%d)", r);
-               return NULL;
-       }
-
-       r = dbus_connection_send(conn, msg, NULL);
-       dbus_message_unref(msg);
-       if (r != TRUE) {
-               LOCKD_ERR("dbus_connection_send error(%s:%s:%s-%s)", dest, path, interface, method);
-               return -ECOMM;
-       }
-       LOCKD_DBG("dbus_connection_send, ret=%d", r);
-       return NULL;
-}
-
-DBusMessage *_lockd_invoke_dbus_method_sync(const char *dest, const char *path,
-               const char *interface, const char *method,
-               const char *sig, char *param[])
-{
-       DBusConnection *conn;
-       DBusMessage *msg;
-       DBusMessageIter iter;
-       DBusMessage *reply;
-       DBusError err;
-       int r;
-
-       conn = dbus_bus_get(DBUS_BUS_SYSTEM, NULL);
-       if (!conn) {
-               LOCKD_ERR("dbus_bus_get error");
-               return NULL;
-       }
-
-       msg = dbus_message_new_method_call(dest, path, interface, method);
-       if (!msg) {
-               LOCKD_ERR("dbus_message_new_method_call(%s:%s-%s)", path, interface, method);
-               return NULL;
-       }
-
-       dbus_message_iter_init_append(msg, &iter);
-       r = _lockd_append_variant(&iter, sig, param);
-       if (r < 0) {
-               LOCKD_ERR("append_variant error(%d)", r);
-               return NULL;
-       }
-
-       dbus_error_init(&err);
-
-       reply = dbus_connection_send_with_reply_and_block(conn, msg, DBUS_REPLY_TIMEOUT, &err);
-       if (!reply) {
-               LOCKD_ERR("dbus_connection_send error(No reply)");
-       }
-
-       if (dbus_error_is_set(&err)) {
-               LOCKD_ERR("dbus_connection_send error(%s:%s)", err.name, err.message);
-               reply = NULL;
-       }
-
-       dbus_message_unref(msg);
-       dbus_error_free(&err);
-
-       return reply;
-}
-
-int lockd_get_hall_status(void)
-{
-       DBusError err;
-       DBusMessage *msg;
-       int ret, ret_val;
-
-       LOCKD_DBG("[ == %s == ]", __func__);
-       msg = _lockd_invoke_dbus_method_sync(BUS_NAME, DEVICED_PATH_HALL, DEVICED_INTERFACE_HALL,
-                       METHOD_GET_STATUS, NULL, NULL);
-       if (!msg)
-               return -EBADMSG;
-
-       dbus_error_init(&err);
-
-       ret = dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &ret_val, DBUS_TYPE_INVALID);
-       if (!ret) {
-               LOCKD_ERR("no message : [%s:%s]", err.name, err.message);
-               ret_val = -EBADMSG;
-       }
-
-       dbus_message_unref(msg);
-       dbus_error_free(&err);
-
-       LOCKD_DBG("%s-%s : %d", DEVICED_INTERFACE_HALL, METHOD_GET_STATUS, ret_val);
-       return ret_val;
-}
-
-int lockd_get_lock_state(void)
-{
-       int idle_lock_state = VCONFKEY_IDLE_UNLOCK;
-
-       if (vconf_get_int(VCONFKEY_IDLE_LOCK_STATE, &idle_lock_state) < 0) {
-               LOCKD_ERR("Cannot get VCONFKEY");
-               idle_lock_state = VCONFKEY_IDLE_UNLOCK;
-       }
-       LOCKD_DBG("Get lock state : %d", idle_lock_state);
-       return idle_lock_state;
-}
-
-static void _lockd_on_changed_receive(void *data, DBusMessage *msg)
-{
-       DBusError err;
-       char *str;
-       int response;
-       int r;
-       int automatic_unlock = 0;
-
-       struct lockd_data *lockd = (struct lockd_data *)data;
-
-       if (lockd == NULL) {
-               LOCKD_ERR("lockd is NULL");
-               return;
-       }
-
-       LOCKD_DBG("hall signal is received");
-
-       r = dbus_message_is_signal(msg, DEVICED_INTERFACE_HALL, SIGNAL_HALL_STATE);
-       if (!r) {
-               LOCKD_ERR("dbus_message_is_signal error");
-               return;
-       }
-
-       LOCKD_DBG("%s - %s", DEVICED_INTERFACE_HALL, SIGNAL_HALL_STATE);
-
-       dbus_error_init(&err);
-       r = dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &response, DBUS_TYPE_INVALID);
-       if (!r) {
-               LOCKD_ERR("dbus_message_get_args error");
-               return;
-       }
-
-       LOCKD_DBG("receive data : %d", response);
-       lockd->hall_status = response;
-
-}
-
-static int _lockd_request_PmQos(int duration)
-{
-       DBusError err;
-       DBusMessage *msg;
-       int ret, ret_val;
-       char *arr[1];
-       char val[32];
-
-       snprintf(val, sizeof(val), "%d", duration);
-       arr[0] = val;
-
-       //msg = _lockd_invoke_dbus_method_sync(BUS_NAME, DEVICED_PATH_PMQOS, DEVICED_INTERFACE_PMQOS,
-       //              METHOD_PMQOS_NAME, "i", arr);
-       msg = _lockd_invoke_dbus_method_async(BUS_NAME, DEVICED_PATH_PMQOS, DEVICED_INTERFACE_PMQOS,
-                       METHOD_PMQOS_NAME, "i", arr);
-
-       if (!msg)
-               return -EBADMSG;
-
-       dbus_error_init(&err);
-
-       ret = dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &ret_val, DBUS_TYPE_INVALID);
-       if (!ret) {
-               LOCKD_ERR("no message : [%s:%s]", err.name, err.message);
-               ret_val = -EBADMSG;
-       }
-
-       dbus_message_unref(msg);
-       dbus_error_free(&err);
-
-       LOCKD_DBG("%s-%s : %d", DEVICED_INTERFACE_PMQOS, METHOD_PMQOS_NAME, ret_val);
-       return ret_val;
-}
-
-static void _lockd_delete_alarm_lite(alarm_id_t id, void * user_param)
-{
-       int ret_val = ALARMMGR_RESULT_SUCCESS;
-       LOCKD_DBG("Del alarm_id(%d)", id);
-       ret_val = alarmmgr_remove_alarm(id);
-       if(ret_val != ALARMMGR_RESULT_SUCCESS) {
-               LOCKD_ERR("alarmmgr_enum_alarm_ids() failed");
-       }
-}
-
-static void _lockd_unset_alarms_lite(void)
-{
-       LOCKD_DBG("[ == %s == ]", __func__);
-       int ret_val = ALARMMGR_RESULT_SUCCESS;
-       ret_val = alarmmgr_enum_alarm_ids(_lockd_delete_alarm_lite, NULL);
-       if(ret_val != ALARMMGR_RESULT_SUCCESS) {
-               LOCKD_ERR("alarmmgr_enum_alarm_ids() failed");
-       }
-}
-
-static void _lockd_lauch_other_lockscreen(alarm_id_t alarm_id, void *data)
-{
-       struct lockd_data *lockd = (struct lockd_data *)data;
-       if (lockd == NULL) {
-               LOCKD_ERR("lockd is NULL");
-               return;
-       }
-
-       int ret_val = ALARMMGR_RESULT_SUCCESS;
-
-       LOCKD_DBG("[ == %s == ], alarm_id(%d)", __func__, alarm_id);
-
-       lockd_launch_app_other_lockscreen(lockd);
-
-       if(alarm_id != -1) {
-               if(alarm_id != lockd->alarm_id) {
-                       LOCKD_ERR("alarm ids are different callback->id(%d), lockd->alarm_id(%d)", alarm_id, lockd->alarm_id);
-                       /* delete all registering alarm*/
-                       _lockd_unset_alarms_lite();
-                       lockd->alarm_id = -1;
-               } else {
-                       ret_val = alarmmgr_remove_alarm(alarm_id);
-                       if(ret_val != ALARMMGR_RESULT_SUCCESS) {
-                               LOCKD_ERR("alarmmgr_remove_alarm() failed");
-                               /* delete all registering alarm*/
-                               _lockd_unset_alarms_lite();
-                       }
-                       lockd->alarm_id = -1;
-               }
-       }
-}
-
-static Eina_Bool _lockd_set_alarm(int sec, void *data)
-{
-       struct lockd_data *lockd = (struct lockd_data *)data;
-       if (lockd == NULL) {
-               LOCKD_ERR("lockd is NULL");
-               return EINA_FALSE;
-       }
-
-       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_val = ALARMMGR_RESULT_SUCCESS;
-
-       /* delete before registering alarm ids */
-       if(lockd->alarm_id != -1){
-               LOCKD_ERR("ad->alarm_id(%d) deleted", lockd->alarm_id);
-               ret_val = alarmmgr_remove_alarm(lockd->alarm_id);
-               if(ret_val != ALARMMGR_RESULT_SUCCESS) {
-                       LOCKD_ERR("alarmmgr_remove_alarm(%d) failed", lockd->alarm_id);
-                       _lockd_unset_alarms_lite();
-               }
-               lockd->alarm_id = -1;
-       }
-
-       /* set alarm after sec */
-       time(&current_time);
-
-       localtime_r(&current_time, &current_tm);
-
-       alarm_info = alarmmgr_create_alarm();
-       if(alarm_info == NULL) {
-               LOCKD_ERR("alarmmgr_create_alarm() is failed\n");
-               return 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_val = alarmmgr_add_alarm_with_localtime(alarm_info, NULL, &alarm_id);
-       if(ret_val != ALARMMGR_RESULT_SUCCESS) {
-               LOCKD_ERR("alarmmgr_add_alarm_with_localtime() failed");
-               alarmmgr_free_alarm(alarm_info) ;
-               return EINA_FALSE;
-       }
-
-       LOCKD_DBG("alarm id(%d) is set", alarm_id);
-       lockd->alarm_id = alarm_id;
-       alarmmgr_free_alarm(alarm_info) ;
-
-       return EINA_TRUE;
-}
-
-
-#ifndef FEATURE_LITE
-static Eina_Bool _lockd_play_smart_alert_cb(void *data)
-{
-       LOCKD_DBG("%s, %d", __func__, __LINE__);
-       struct lockd_data *lockd = (struct lockd_data *)data;
-
-       feedback_initialize();
-       feedback_play_type(FEEDBACK_TYPE_VIBRATION, FEEDBACK_PATTERN_REACTIVE_ALERT);
-       //feedback_deinitialize();
-       //lockd_stop_sensor(lockd);
-
-       return ECORE_CALLBACK_CANCEL;
-}
-
-void _lockd_context_update_cb(int error, context_item_e context, char* context_data, void* user_data, int req_id)
-{
-       LOCKD_DBG("%s, %d", __func__, __LINE__);
-
-       struct lockd_data *lockd = (struct lockd_data *)user_data;
-
-       if (error == CONTEXT_ERROR_NONE && context == CONTEXT_ITEM_MOVEMENT) {
-               int action = -1;
-               int ret = 0;
-               int calls = 0;
-               int messages = 0;
-
-               context_context_data_get_int(context_data, CONTEXT_MOTION_ACTION, &action);
-
-               switch (action) {
-               case CONTEXT_MOVEMENT_ACTION:
-                       ret = vconf_get_int(VCONFKEY_STARTER_MISSED_CALL, &calls);
-                       if(ret != 0)
-                               calls = 0;
-
-                       ret = vconf_get_int(VCONFKEY_STARTER_UNREAD_MESSAGE, &messages);
-                       if(ret != 0)
-                               messages = 0;
-
-                       if(calls > 0 || messages > 0) {
-                               LOCKD_WARN("[ sensor ] SMART ALERT calls = %d messages = %d", calls, messages);
-                               ecore_timer_add(SMART_ALERT_INTERVAL, _lockd_play_smart_alert_cb, user_data);
-                       }
-                       break;
-               case CONTEXT_MOVEMENT_NONE:
-                       break;
-               default:
-                       break;
-               }
-               context_unset_changed_callback(CONTEXT_ITEM_MOVEMENT);
-               free(context_data);
-       }
-}
-
-static Eina_Bool _lockd_smart_alert_idelr_cb(void *data)
-{
-       LOCKD_DBG("%s, %d", __func__, __LINE__);
-
-       int val = -1;
-       struct lockd_data *lockd = (struct lockd_data *)data;
-       if (vconf_get_int(VCONFKEY_PM_STATE, &val) < 0) {
-               LOCKD_ERR("Cannot get VCONFKEY_PM_STATE");
-               return ECORE_CALLBACK_CANCEL;
-       }
-
-       if ((val == VCONFKEY_PM_STATE_LCDOFF) || (val == VCONFKEY_PM_STATE_SLEEP)) {
-               LOCKD_DBG("LCD OFF ==> smart alert start");
-
-               int ret = 0;
-               int is_motion = 0;
-               int is_pickup = 0;
-
-               ret = vconf_get_bool(VCONFKEY_SETAPPL_MOTION_ACTIVATION, &is_motion);
-               LOCKD_DBG("[ sensor ] ret = %d is_motion = %d", ret, is_motion);
-               if(ret == 0 && is_motion == 1) {
-                       ret = vconf_get_bool(VCONFKEY_SETAPPL_USE_PICK_UP, &is_pickup);
-                       LOCKD_DBG("[ sensor ] ret = %d is_pickup = %d", ret, is_pickup);
-                       if(ret == 0 && is_pickup == 1) {
-                               int ret = 0;
-                               int calls = 0;
-                               int messages = 0;
-                               int req_id, r;
-
-                               ret = vconf_get_int(VCONFKEY_STARTER_MISSED_CALL, &calls);
-                               if(ret != 0)
-                                       calls = 0;
-
-                               ret = vconf_get_int(VCONFKEY_STARTER_UNREAD_MESSAGE, &messages);
-                               if(ret != 0)
-                                       messages = 0;
-
-                               if(calls > 0 || messages > 0) {
-                                       r = context_set_changed_callback(CONTEXT_ITEM_MOVEMENT, NULL, _lockd_context_update_cb, lockd, &req_id);
-                                       if (r != CONTEXT_ERROR_NONE) {
-                                               LOCKD_ERR("[ sensor ] context_set_changed_callback fail");
-                                       }
-                                       LOCKD_WARN("[ sensor ] context_set_changed_callback, r=[%d]", r);
-                               }
-                       }
-               }
-       } else {
-               LOCKD_DBG("Not LCD OFF ==> cancel smart alert");
-       }
-       return ECORE_CALLBACK_CANCEL;
-}
-#endif
-
-
-
-static Eina_Bool _lockd_sensor_idelr_cb(void *data)
-{
-       LOCKD_DBG("%s, %d", __func__, __LINE__);
-
-       int val = -1;
-       if (vconf_get_int(VCONFKEY_PM_STATE, &val) < 0) {
-               LOCKD_ERR("Cannot get VCONFKEY_PM_STATE");
-               return ECORE_CALLBACK_CANCEL;
-       }
-
-       if ((val == VCONFKEY_PM_STATE_LCDOFF) || (val == VCONFKEY_PM_STATE_SLEEP)) {
-               LOCKD_DBG("LCD OFF ==> sensor start");
-
-               int ret = 0;
-               int calls = 0;
-               int messages = 0;
-
-               ret = vconf_get_int(VCONFKEY_STARTER_MISSED_CALL, &calls);
-               if(ret != 0)
-                       calls = 0;
-
-               ret = vconf_get_int(VCONFKEY_STARTER_UNREAD_MESSAGE, &messages);
-               if(ret != 0)
-                       messages = 0;
-
-               if(calls > 0 || messages > 0) {
-                       if(lockd_start_sensor(data) == EINA_FALSE) {
-                               LOCKD_ERR("smart_alert sensor start is failed");
-                       }
-               } else {
-                       LOCKD_ERR("[ sensor ] sensor is not started calls = %d messages = %d", calls, messages);
-               }
-       } else {
-               LOCKD_DBG("Not LCD OFF ==> cancel sensor start");
-       }
-       return ECORE_CALLBACK_CANCEL;
-}
-
-static Eina_Bool _lockd_alarm_idelr_cb(void *data)
-{
-       LOCKD_DBG("%s, %d", __func__, __LINE__);
-       struct lockd_data *lockd = (struct lockd_data *)data;
-       _lockd_unset_alarms_lite();
-       lockd->alarm_id = -1;
-       return ECORE_CALLBACK_CANCEL;
-}
-
-static Eina_Bool _lockd_launch_idelr_cb(void *data)
-{
-       LOCKD_DBG("%s, %d", __func__, __LINE__);
-       struct lockd_data *lockd = (struct lockd_data *)data;
-       _lockd_lauch_other_lockscreen(-1, lockd);
-       return ECORE_CALLBACK_CANCEL;
-}
-
-static void _lockd_notify_pm_state_cb_lite(keynode_t * node, void *data)
-{
-       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");
-               return;
-       }
-
-       LOCKD_DBG("[ == %s == ] pm_state(%d)", __func__, val);
-
-       if (val == VCONFKEY_PM_STATE_NORMAL) {
-               LOCKD_DBG("LCD ON");
-               /* delete all alarm registering */
-               LOCKD_DBG("%d", lockd->alarm_id);
-
-               _lockd_unset_alarms_lite();
-               lockd->alarm_id = -1;
-
-               if(lockd->lock_type == SETTING_SCREEN_LOCK_TYPE_NONE) {
-                       LOCKD_DBG("Lockscreen type is none, unlock");
-               }
-       }
-}
-
-static int _show_lock_bg(void)
-{
-       bundle *b;
-       int r = 0;
-       LOCKD_DBG("%s, %d", __func__, __LINE__);
-
-       if (menu_daemon_get_volume_pid() <0) {
-               LOCKD_DBG("volume is not running");
-               return -1;
-       }
-
-       b = bundle_create();
-
-       bundle_add(b, SHOW_LOCK, ISTRUE);
-       r = aul_launch_app(VOLUME_PKG_NAME, b);
-       if(b) {
-               bundle_free(b);
-       }
-
-       return r;
-}
-
-static void _lockd_notify_pm_lcdoff_cb_lite(keynode_t * node, void *data)
-{
-       struct lockd_data *lockd = (struct lockd_data *)data;
-       int val = -1;
-       int lcdoff_source = vconf_keynode_get_int(node);
-       int accessbility_lock_time = 0;
-       int idle_lock_state = VCONFKEY_IDLE_UNLOCK;
-
-       if (lockd == NULL) {
-               LOCKD_ERR("lockd is NULL");
-               return;
-       }
-
-       if (lcdoff_source < 0) {
-               LOCKD_ERR("Cannot get VCONFKEY, error (%d)", lcdoff_source);
-               return;
-       }
-
-       LOCKD_DBG("[ %s ] LCD OFF by lcd off source(%d)", __func__, lcdoff_source);
-
-       idle_lock_state = lockd_get_lock_state();
-
-       if(lcdoff_source == VCONFKEY_PM_LCDOFF_BY_POWERKEY) {
-               LOCKD_DBG("lcd off by powerkey");
-#if (!_FEATURE_LCD_OFF_DBUS) // move to dbus signal handler.
-               if (idle_lock_state == VCONFKEY_IDLE_UNLOCK) {
-                       if (lockd->lock_type == SETTING_SCREEN_LOCK_TYPE_SIMPLE_PASSWORD || lockd->lock_type == SETTING_SCREEN_LOCK_TYPE_PASSWORD || lockd->lock_type == SETTING_SCREEN_LOCK_TYPE_SWIPE) {
-                               display_lock_state(LCD_OFF, STAY_CUR_STATE, 0);
-                               _lockd_request_PmQos(REQUEST_PMQOS_DURATION);
-                       }
-               }
-               lockd_launch_app_other_lockscreen(lockd);
-#endif
-       } else if (lcdoff_source == 3) {
-               LOCKD_DBG("lcd off by proximity sensor..");
-               return;
-       } else {
-               LOCKD_DBG("lcd off by timeout");
-
-               if(idle_lock_state == VCONFKEY_IDLE_LOCK) {
-                       LOCKD_DBG("VCONFKEY is set(not need to set alarm)");
-                       return;
-               }
-
-               if(lockd->alarm_id != -1) {
-                       LOCKD_ERR("Alarm is set yet (alarm_id = %d) : do nothing", lockd->alarm_id);
-                       return;
-               }
-
-               if(vconf_get_int(VCONFKEY_SETAPPL_ACCESSIBILITY_LOCK_TIME_INT, &accessbility_lock_time) < 0) {
-                       LOCKD_ERR("Cannot get VCONFKEY");
-                       accessbility_lock_time = 0;
-               }
-
-               if(accessbility_lock_time == 0) {
-                       LOCKD_ERR("accessbility_lock_time is 0");
-                       _lockd_lauch_other_lockscreen(-1, lockd);
-                       return;
-               } else {
-                       if(lockd->is_alarm) {
-                               LOCKD_DBG("set alarm %d sec", accessbility_lock_time);
-                               if(_lockd_set_alarm(accessbility_lock_time, lockd) != EINA_TRUE) {
-                                       LOCKD_ERR("_lockd_set_alarm() failed");
-                                       _lockd_lauch_other_lockscreen(-1, lockd);
-                               }
-                       }
-                       else {
-                               LOCKD_ERR("is_alarm is EINA_FALSE");
-                               _lockd_lauch_other_lockscreen(-1, lockd);
-                       }
-               }
-       }
-}
-
-static void _lockd_notify_time_changed_cb(keynode_t * node, void *data)
-{
-       int festival_wallpaper = 0;
-       LOCKD_DBG("system time chanded!!");
-
-       if(vconf_get_bool(VCONFKEY_LOCKSCREEN_FESTIVAL_WALLPAPER_DISPLAYING, &festival_wallpaper) < 0) {
-               LOCKD_ERR("Cannot get VCONFKEY");
-               festival_wallpaper = 0;
-       }
-       LOCKD_DBG("festival wallpaper : %d", festival_wallpaper);
-       if(festival_wallpaper){
-               bundle *b;
-               b = bundle_create();
-               if(b == NULL){
-                       LOCKD_ERR("bundle create failed.\n");
-                       return;
-               }
-               bundle_add(b, "popup_type", "festival");
-               bundle_add(b, "festival_type", "festival_create");
-               aul_launch_app(WALLPAPER_UI_SERVICE_PKG_NAME, b);
-               bundle_free(b);
-       }
-}
-
-static void _lockd_notify_factory_mode_cb(keynode_t * node, void *data)
-{
-       int factory_mode = -1;
-       LOCKD_DBG("Factory mode Notification!!");
-
-       vconf_get_int(VCONFKEY_TELEPHONY_SIM_FACTORY_MODE, &factory_mode);
-       if (factory_mode == VCONFKEY_TELEPHONY_SIM_FACTORYMODE_ON) {
-               LOCKD_DBG("Factory mode ON, lock screen can't be launched..!!");
-               _lockd_set_lock_state(VCONFKEY_IDLE_UNLOCK);
-       }
-}
-
-static void
-_lockd_notify_pwlock_state_changed_cb(keynode_t * node, void *data)
-{
-       LOCKD_DBG("pwlock state changed!!");
-
-       struct lockd_data *lockd = (struct lockd_data *)data;
-       int val = -1;
-       int pwlock_state = -1;
-
-       if (lockd == NULL) {
-               LOCKD_ERR("lockd is NULL");
-               return;
-       }
-
-       pwlock_state = vconf_keynode_get_int(node);
-
-       if(pwlock_state == VCONFKEY_PWLOCK_BOOTING_UNLOCK){
-               if(checkfd){
-                       LOCKD_WARN("remove the progress file.");
-                       _lockd_check_ongoing(EINA_FALSE);
-               }
-               if (vconf_ignore_key_changed
-                       (VCONFKEY_PWLOCK_STATE, _lockd_notify_pwlock_state_changed_cb) != 0) {
-                       LOCKD_ERR("Fail vconf_ignore_key_changed : VCONFKEY_PWLOCK_STATE");
-               }
-       }
-}
-
-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;
-       int pwlock_state = -1;
-
-       if (lockd == NULL) {
-               LOCKD_ERR("lockd is NULL");
-               return;
-       }
-
-       val = lockd_get_lock_state();
-       vconf_get_int(VCONFKEY_PWLOCK_STATE, &pwlock_state);
-
-       if (val == VCONFKEY_IDLE_UNLOCK) {
-               LOCKD_DBG("unlocked..!!");
-
-               if(lockd->lock_type == SETTING_SCREEN_LOCK_TYPE_SIMPLE_PASSWORD || lockd->lock_type == SETTING_SCREEN_LOCK_TYPE_PASSWORD){
-                       if(pwlock_state == VCONFKEY_PWLOCK_BOOTING_UNLOCK){
-                               if(checkfd){
-                                       LOCKD_WARN("remove the progress file.");
-                                       _lockd_check_ongoing(EINA_FALSE);
-                               }
-                       }
-                       else if(pwlock_state == VCONFKEY_PWLOCK_BOOTING_LOCK){
-                               LOCKD_WARN("PWLOCK is not ready yet.");
-                               if (vconf_notify_key_changed
-                                       (VCONFKEY_PWLOCK_STATE, _lockd_notify_pwlock_state_changed_cb, lockd) != 0) {
-                                       LOCKD_ERR("Fail vconf_notify_key_changed : VCONFKEY_SETAPPL_SCREEN_LOCK_TYPE_INT");
-                               }
-                       }
-               }
-
-               if (vconf_set_bool(VCONFKEY_SAT_NORMAL_PRIORITY_AVAILABLE_BOOL, EINA_FALSE) < 0) {
-                       LOCKD_ERR("Cannot set VCONFKEY");
-               }
-
-               if (lockd->lock_app_pid > 0) {
-                       if (lockd->lock_type == SETTING_SCREEN_LOCK_TYPE_OTHER) {
-                               LOCKD_DBG("terminate lock app..!!");
-                               lockd_process_mgr_terminate_lock_app(lockd->lock_app_pid, 1);
-                               lockd->lock_app_pid = 0;
-                       }
-               }
-       }else if (val == VCONFKEY_IDLE_LOCK) {
-               display_unlock_state(LCD_OFF, PM_SLEEP_MARGIN);
-       }
-}
-
-static Eina_Bool lockd_set_lock_state_cb(void *data)
-{
-       LOCKD_DBG("%s, %d", __func__, __LINE__);
-       _lockd_set_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 VCONFKEY");
-               return;
-       }
-
-       if (val == TRUE) {
-               /* password verified */
-               /* lockd_unlock_lockscreen(lockd); */
-               lockd_window_mgr_finish_lock(lockd->lockw);
-               _lockd_set_lock_state(VCONFKEY_IDLE_UNLOCK);
-       }
-}
-
-static int lockd_app_dead_cb_lite(int pid, void *data)
-{
-       LOCKD_DBG("app dead cb call! (pid : %d)", pid);
-
-       struct lockd_data *lockd = (struct lockd_data *)data;
-       int val = 0;
-
-       if(pid == lockd->lock_app_pid || pid == lockd->phone_lock_app_pid){
-               if (vconf_get_int(VCONFKEY_PM_STATE, &val) < 0) {
-                       LOCKD_ERR("Cannot get VCONFKEY");
-               }
-               LOCKD_DBG("lock daemon(%d) is terminated, lock type : %d pm state : %d", pid, lockd->lock_type, val);
-               if(lockd->lock_type == SETTING_SCREEN_LOCK_TYPE_OTHER){
-                       lockd_unlock_other_lockscreen(lockd);
-                       _lockd_play_sound(TRUE);
-               }
-               else{
-                       if(val < VCONFKEY_PM_STATE_LCDOFF){
-                               lockd->start_ready = TRUE;
-                               lockd_launch_app_lockscreen_lite(lockd);
-                       }
-                       else{
-                               lockd_launch_app_lockscreen_lite(lockd);
-                       }
-               }
-       }
-
-       menu_daemon_check_dead_signal(pid);
-
-       return 0;
-}
-
-static Eina_Bool lockd_other_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) {
-               //FIXME sometimes show cb is not called.
-               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_other_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)) {
-               lockd_window_set_scroll_property(lockd->lockw, 0);
-               ecore_idler_add(lockd_set_lock_state_cb, NULL);
-       }
-       return EINA_FALSE;
-}
-
-static Eina_Bool _lockd_play_idelr_cb(void *data)
-{
-       LOCKD_DBG("%s, %d", __func__, __LINE__);
-       _lockd_play_sound(FALSE);
-       return ECORE_CALLBACK_CANCEL;
-}
-
-
-static int lockd_launch_app_lockscreen_lite(struct lockd_data *lockd)
-{
-       LOCKD_DBG("launch app lock screen");
-
-       int call_state = -1, factory_mode = -1, test_mode = -1;
-       int r = 0;
-       int lcdoff_source = 0;
-       int focus_win_pid = 0;
-       int pw_type = 0;
-       int automatic_unlock = 0;
-
-       //PM LOCK - don't go to sleep
-       display_lock_state(LCD_OFF, STAY_CUR_STATE, 0);
-
-       vconf_get_int(VCONFKEY_TELEPHONY_SIM_FACTORY_MODE, &factory_mode);
-       if (factory_mode == VCONFKEY_TELEPHONY_SIM_FACTORYMODE_ON) {
-               LOCKD_ERR("Factory mode ON, lock screen can't be launched..!!");
-               goto launch_out;
-       }
-       vconf_get_int(VCONFKEY_TESTMODE_SCREEN_LOCK, &test_mode);
-       if (test_mode == VCONFKEY_TESTMODE_SCREEN_LOCK_DISABLE) {
-               LOCKD_ERR("Test mode ON, lock screen can't be launched..!!");
-               goto launch_out;
-       }
-
-       if (lockd->is_first_boot == TRUE) {
-               if(vconf_get_int(VCONFKEY_PWLOCK_STATE, &pw_type) < 0)
-               {
-                       LOCKD_ERR("vconf_get_int() failed");
-                       pw_type = VCONFKEY_PWLOCK_RUNNING_UNLOCK;
-               }
-               if(pw_type == VCONFKEY_PWLOCK_BOOTING_LOCK || pw_type == VCONFKEY_PWLOCK_RUNNING_LOCK) {
-                       LOCKD_ERR("First boot & pwlock state[%d], lock screen can't be launched..!!", pw_type);
-                       goto launch_out;
-               }
-       }
-
-       if (lockd->lock_type == SETTING_SCREEN_LOCK_TYPE_NONE) {
-               LOCKD_ERR("Lock screen type is None..!!");
-               goto launch_out;
-       }
-
-       LOCKD_WARN("lock type : %d", lockd->lock_type);
-       switch (lockd->lock_type) {
-
-               case SETTING_SCREEN_LOCK_TYPE_SWIPE:
-                       if(lockd->start_ready == TRUE){
-                               lockd->lock_app_pid =
-                                       lockd_process_mgr_start_ready_lock();
-                               lockd->start_ready = FALSE;
-                       }
-                       else{
-                               lockd->lock_app_pid =
-                                       lockd_process_mgr_start_normal_lock(lockd, lockd_app_dead_cb_lite);
-                               if (lockd->lock_app_pid < 0) {
-                                       goto launch_out;
-                               }
-                       }
-                       break;
-
-               case SETTING_SCREEN_LOCK_TYPE_SIMPLE_PASSWORD:
-               case SETTING_SCREEN_LOCK_TYPE_PASSWORD:
-                       vconf_set_bool(VCONFKEY_LOCKSCREEN_PHONE_LOCK_VERIFICATION, FALSE);
-
-                       /* TO DO : Recovery should be checked by EAS interface later */
-                       /* After getting EAS interface, we should remove lockd->request_recovery */
-                       if (lockd->request_recovery == TRUE) {
-                               lockd->phone_lock_app_pid =
-                                   lockd_process_mgr_start_recovery_lock();
-                               lockd->request_recovery = FALSE;
-                       } else if (lockd->back_to_app == TRUE) {
-                               lockd->phone_lock_app_pid =
-                                   lockd_process_mgr_start_back_to_app_lock();
-                               lockd->back_to_app = FALSE;
-                       } else if (lockd->start_ready == TRUE) {
-                               lockd->phone_lock_app_pid =
-                                   lockd_process_mgr_start_ready_lock();
-                               lockd->start_ready = FALSE;
-                       } else {
-                               lockd->phone_lock_app_pid =
-                                   lockd_process_mgr_start_phone_lock();
-                       }
-                       phone_lock_pid = lockd->phone_lock_app_pid;
-                       LOCKD_WARN("%s, %d, phone_lock_pid = %d", __func__, __LINE__,
-                                 phone_lock_pid);
-                       lockd_window_set_phonelock_pid(lockd->lockw, phone_lock_pid);
-                       if (phone_lock_pid > 0) {
-                               if(starter_dbus_set_oomadj(phone_lock_pid, OOM_ADJ_VALUE_DEFAULT) < 0){
-                                       LOCKD_ERR("failed to send oom dbus signal");
-                               }
-                               if(lockd_process_mgr_check_home(focus_win_pid)) {
-                                       if(vconf_set_bool(VCONFKEY_SAT_NORMAL_PRIORITY_AVAILABLE_BOOL, EINA_TRUE) < 0) {
-                                               LOCKD_ERR("Cannot get VCONFKEY");
-                                       }
-                               }
-                       }
-                       else{
-                               LOCKD_ERR("failed to launch phone lock.");
-                               goto launch_out;
-                       }
-                       lockd_process_mgr_set_lockscreen_priority(phone_lock_pid);
-                       display_unlock_state(LCD_OFF, PM_SLEEP_MARGIN);
-                       return 1;
-                       break;
-
-               default:
-                       goto launch_out;
-       }
-
-
-       if (lockd->lock_app_pid > 0) {
-               if(starter_dbus_set_oomadj(lockd->lock_app_pid, OOM_ADJ_VALUE_DEFAULT) < 0){
-                       LOCKD_ERR("failed to send oom dbus signal");
-               }
-               if(lockd_process_mgr_check_home(focus_win_pid)) {
-                       if(vconf_set_bool(VCONFKEY_SAT_NORMAL_PRIORITY_AVAILABLE_BOOL, EINA_TRUE) < 0) {
-                               LOCKD_ERR("Cannot get VCONFKEY");
-                       }
-               }
-       }
-       else{
-               LOCKD_ERR("failed to launch lock");
-               goto launch_out;
-       }
-       LOCKD_WARN("lock app pid : %d", lockd->lock_app_pid);
-       lockd_process_mgr_set_lockscreen_priority(lockd->lock_app_pid);
-       display_unlock_state(LCD_OFF, PM_SLEEP_MARGIN);
-       return 1;
-
-
-launch_out:
-       display_unlock_state(LCD_OFF, PM_SLEEP_MARGIN);
-       return -1;
-}
-
-
-static int lockd_launch_app_other_lockscreen(struct lockd_data *lockd)
-{
-       LOCKD_DBG("launch app other lock screen");
-
-       int call_state = -1, factory_mode = -1, test_mode = -1;
-       int r = 0;
-       int lcdoff_source = 0;
-       int focus_win_pid = 0;
-       int pw_type = 0;
-       int automatic_unlock = 0;
-
-       //PM LOCK - don't go to sleep
-       display_lock_state(LCD_OFF, STAY_CUR_STATE, 0);
-
-       vconf_get_int(VCONFKEY_TELEPHONY_SIM_FACTORY_MODE, &factory_mode);
-       if (factory_mode == VCONFKEY_TELEPHONY_SIM_FACTORYMODE_ON) {
-               LOCKD_ERR("Factory mode ON, lock screen can't be launched..!!");
-               goto launch_out;
-       }
-       vconf_get_int(VCONFKEY_TESTMODE_SCREEN_LOCK, &test_mode);
-       if (test_mode == VCONFKEY_TESTMODE_SCREEN_LOCK_DISABLE) {
-               LOCKD_ERR("Test mode ON, lock screen can't be launched..!!");
-               goto launch_out;
-       }
-
-       if (lockd->is_first_boot == TRUE) {
-               if(vconf_get_int(VCONFKEY_PWLOCK_STATE, &pw_type) < 0)
-               {
-                       LOCKD_ERR("vconf_get_int() failed");
-                       pw_type = VCONFKEY_PWLOCK_RUNNING_UNLOCK;
-               }
-               if(pw_type == VCONFKEY_PWLOCK_BOOTING_LOCK || pw_type == VCONFKEY_PWLOCK_RUNNING_LOCK) {
-                       LOCKD_ERR("First boot & pwlock state[%d], lock screen can't be launched..!!", pw_type);
-                       goto launch_out;
-               }
-       }
-
-       if (lockd->lock_type == SETTING_SCREEN_LOCK_TYPE_NONE) {
-               LOCKD_ERR("Lock screen type is None..!!");
-               goto launch_out;
-       }
-
-       /* Get Call state */
-       if(vconf_get_int(VCONFKEY_PM_LCDOFF_SOURCE, &lcdoff_source) < 0)
-       {
-               LOCKD_ERR("Cannot get VCONFKEY");
-       }
-       focus_win_pid = lockd_window_mgr_get_focus_win_pid();
-       vconf_get_int(VCONFKEY_CALL_STATE, &call_state);
-       if(lcdoff_source == VCONFKEY_PM_LCDOFF_BY_POWERKEY) {
-               if ((call_state != VCONFKEY_CALL_OFF) && (lockd->lock_type == SETTING_SCREEN_LOCK_TYPE_OTHER)) {
-                       if (focus_win_pid >0) {
-                               if (lockd_process_mgr_check_call(focus_win_pid) == TRUE) {
-                                       LOCKD_ERR("Call is FG => not allow to launch lock screen!!");
-                                       goto launch_out;
-                               } else {
-                                       LOCKD_DBG("Call is BG => allow to launch lock screen!!");
-                               }
-                       }
-               }
-       } else {
-               if ((call_state != VCONFKEY_CALL_OFF) && (lockd->back_to_app == FALSE)) {
-                       LOCKD_ERR("Current call state(%d) does not allow to launch lock screen.",
-                            call_state);
-                       goto launch_out;
-               }
-       }
-
-       if (lockd->lock_type == SETTING_SCREEN_LOCK_TYPE_OTHER) {
-               if (lockd_process_mgr_check_lock(lockd->lock_app_pid) == TRUE) {
-                       LOCKD_WARN("Lock Screen App is already running.");
-                       display_unlock_state(LCD_OFF, PM_SLEEP_MARGIN);
-                       return 1;
-               }
-
-               if (lockd->lock_app_pid > 0) {
-                       LOCKD_ERR("Lock Screen App is remained, pid[%d].", lockd->lock_app_pid);
-                       lockd_process_mgr_kill_lock_app(lockd->lock_app_pid);
-                       lockd->lock_app_pid = 0;
-               }
-               if(lcdoff_source == VCONFKEY_PM_LCDOFF_BY_POWERKEY)
-                       ecore_idler_add(_lockd_play_idelr_cb, NULL);
-
-               lockd->lock_app_pid =
-                   lockd_process_mgr_start_lock(lockd, lockd_app_dead_cb_lite,
-                                                lockd->lock_type);
-               if (lockd->lock_app_pid < 0) {
-                       LOCKD_ERR("launch 3rd party lockscreen failed.");
-                       goto launch_out;
-               }
-               /* reset window mgr before start win mgr  */
-               lockd_window_mgr_finish_lock(lockd->lockw);
-               lockd_window_mgr_ready_lock(lockd, lockd->lockw, lockd_other_app_create_cb,
-                                           lockd_other_app_show_cb);
-       }
-
-       if (lockd->lock_app_pid > 0) {
-               if(starter_dbus_set_oomadj(lockd->lock_app_pid, OOM_ADJ_VALUE_DEFAULT) < 0){
-                       LOCKD_ERR("failed to send oom dbus signal");
-               }
-               if(lockd_process_mgr_check_home(focus_win_pid)) {
-                       if(vconf_set_bool(VCONFKEY_SAT_NORMAL_PRIORITY_AVAILABLE_BOOL, EINA_TRUE) < 0) {
-                               LOCKD_ERR("Cannot get VCONFKEY");
-                       }
-               }
-       }
-       LOCKD_WARN("lock app pid : %d", lockd->lock_app_pid);
-       display_unlock_state(LCD_OFF, PM_SLEEP_MARGIN);
-       return 1;
-
-
- launch_out:
-       _lockd_set_lock_state(VCONFKEY_IDLE_UNLOCK);
-       display_unlock_state(LCD_OFF, PM_SLEEP_MARGIN);
-       return -1;
-}
-
-static void lockd_unlock_other_lockscreen(struct lockd_data *lockd)
-{
-       LOCKD_DBG("unlock other lock screen");
-       lockd->lock_app_pid = 0;
-
-       _lockd_set_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 };  /* 1.2 sec */
-
-       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);   /* support above version 2.6.27 */
-       if (fd < 0) {
-               if (errno == EINVAL) {
-                       fd = socket(AF_UNIX, SOCK_STREAM, 0);
-                       if (fd < 0) {
-                               LOCKD_ERR
-                                   ("second chance - socket create error");
-                               return -1;
-                       }
-               } else {
-                       LOCKD_ERR("socket error");
-                       return -1;
-               }
-       }
-
-       bzero(&saddr, sizeof(saddr));
-       saddr.sun_family = AF_UNIX;
-
-       strncpy(saddr.sun_path, PHLOCK_SOCK_PREFIX, sizeof(saddr.sun_path)-1);
-       saddr.sun_path[strlen(PHLOCK_SOCK_PREFIX)] = 0;
-
-       unlink(saddr.sun_path);
-
-       if (bind(fd, (struct sockaddr *)&saddr, sizeof(saddr)) < 0) {
-               LOCKD_ERR("bind error");
-               close(fd);
-               return -1;
-       }
-
-       if (chmod(saddr.sun_path, (S_IRWXU | S_IRWXG | S_IRWXO)) < 0) {
-               /* Flawfinder: ignore */
-               LOCKD_ERR("failed to change the socket permission");
-               close(fd);
-               return -1;
-       }
-
-       lockd_set_sock_option(fd, 0);
-
-       if (listen(fd, 10) == -1) {
-               LOCKD_ERR("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_ERR("Cannot open cmdline on pid[%d]", pid);
-               return NULL;
-       }
-
-       cmdline = malloc(32);
-       if (cmdline == NULL) {
-               LOCKD_ERR("%s", "Out of memory");
-               fclose(fp);
-               return NULL;
-       }
-
-       bzero(cmdline, memsize);
-       if (fgets(cmdline, 32, fp) == NULL) {
-               LOCKD_ERR("%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_ERR("%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 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_ERR("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_ERR("accept error");
-               return -1;
-       }
-
-       if (getsockopt(clifd, SOL_SOCKET, SO_PEERCRED, &cr, (socklen_t *) & cl)
-           < 0) {
-               LOCKD_ERR("peer information error");
-               close(clifd);
-               return -1;
-       }
-       LOCKD_ERR("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);
-
-       /* receive single packet from socket */
-       len = recv(clifd, cmd, PHLOCK_SOCK_MAXBUFF, 0);
-
-       if (len < 0) {
-               LOCKD_ERR("recv error, read number is less than zero");
-               close(clifd);
-               return -1;
-       }
-
-       cmd[PHLOCK_SOCK_MAXBUFF - 1] = '\0';
-
-       LOCKD_ERR("cmd %s", cmd);
-
-       /* Read command line of the PID from proc fs */
-       cmdline = lockd_read_cmdline_from_proc(cr.pid);
-       if (cmdline == NULL) {
-               /* It's weired. no file in proc file system, */
-               LOCKD_ERR("Error on opening /proc/%d/cmdline", cr.pid);
-               close(clifd);
-               return -1;
-       }
-       LOCKD_SECURE_ERR("/proc/%d/cmdline : %s", cr.pid, cmdline);
-
-       if ((!strncmp(cmd, PHLOCK_UNLOCK_RESET_CMD, strlen(cmd)))
-               && (!strncmp(cmdline, OMA_DRM_AGENT_CMDLINE, strlen(cmdline)))) {
-               LOCKD_SECURE_ERR("%s request %s \n", cmdline, cmd);
-               if(phone_lock_pid > 0) {
-                       LOCKD_SECURE_ERR("pid [%d] %s is verified, unlock..!!\n", cr.pid,
-                                 cmdline);
-                       vconf_set_bool(VCONFKEY_LOCKSCREEN_PHONE_LOCK_VERIFICATION, TRUE);
-                       // reset lockscreen type
-                       if (vconf_set_int(VCONFKEY_SETAPPL_SCREEN_LOCK_TYPE_INT, SETTING_SCREEN_LOCK_TYPE_SWIPE) < 0) {
-                               LOCKD_ERR("%s set to %d is failed. error \n",
-                                       VCONFKEY_SETAPPL_SCREEN_LOCK_TYPE_INT, SETTING_SCREEN_LOCK_TYPE_SWIPE);
-                       }
-               }
-       } else if (!strncmp(cmd, PHLOCK_LAUNCH_CMD, strlen(cmd))) {
-               if (!strncmp(cmdline, MDM_APP_CMDLINE, strlen(cmdline))) {
-                       LOCKD_ERR("%s request %s \n", cmdline, cmd);
-                       if (vconf_get_int(VCONFKEY_EAS_RECOVERY_MODE, &recovery_state) < 0) {
-                               LOCKD_ERR("Cannot get vconfkey", VCONFKEY_EAS_RECOVERY_MODE);
-                               lockd->request_recovery = FALSE;
-                       } else if (recovery_state == 1) {
-                               LOCKD_ERR("recovery mode : %d \n", recovery_state);
-                               lockd->request_recovery = TRUE;
-                       } else {
-                               lockd->request_recovery = FALSE;
-                       }
-               }
-               if (lockd->lock_type == SETTING_SCREEN_LOCK_TYPE_SIMPLE_PASSWORD || lockd->lock_type == SETTING_SCREEN_LOCK_TYPE_PASSWORD) {
-                       lockd_launch_app_lockscreen_lite(lockd);
-               } else {
-                       lockd->request_recovery = FALSE;
-               }
-       } else if (!strncmp(cmd, HOME_RAISE_CMD, strlen(cmd))) {
-               if ((!strncmp(cmdline, VOICE_CALL_APP_CMDLINE, strlen(cmdline)))
-                       || (!strncmp(cmdline, VIDEO_CALL_APP_CMDLINE, strlen(cmdline)))) {
-                       LOCKD_SECURE_ERR("%s request %s \n", cmdline, cmd);
-                       menu_daemon_open_homescreen(NULL);
-               }
-       } else if (!strncmp(cmd, LOCK_SHOW_CMD, strlen(cmd))) {
-               if ((!strncmp(cmdline, VOICE_CALL_APP_CMDLINE, strlen(cmdline)))
-                       || (!strncmp(cmdline, VIDEO_CALL_APP_CMDLINE, strlen(cmdline)))) {
-                       LOCKD_SECURE_ERR("%s request %s \n", cmdline, cmd);
-                       lockd->back_to_app = TRUE;
-               }
-               if (lockd->lock_type == SETTING_SCREEN_LOCK_TYPE_SIMPLE_PASSWORD || lockd->lock_type == SETTING_SCREEN_LOCK_TYPE_PASSWORD){
-                       lockd_launch_app_lockscreen_lite(lockd);
-               } else {
-                       lockd->back_to_app = FALSE;
-               }
-       } else if (!strncmp(cmd, LOCK_LAUNCH_CMD, strlen(cmd))) {
-               LOCKD_SECURE_ERR("%s request %s \n", cmdline, cmd);
-               if (!strncmp(cmdline, VOICE_CALL_APP_CMDLINE, strlen(cmdline))) {
-                       lockd_launch_app_lockscreen_lite(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_ERR("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_ERR("lock daemon create sock failed..!!");
-       }
-
-       src = g_source_new(&funcs, sizeof(GSource));
-
-       gpollfd = (GPollFD *) g_malloc(sizeof(GPollFD));
-       if (!gpollfd) {
-               LOCKD_ERR("gpollfd is NULL");
-               g_source_unref(src);
-               return -1;
-       }
-       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_notify_bt_device_connected_status_cb(keynode_t * node, void *data)
-{
-       int is_connected = 0;
-       struct lockd_data *lockd = (struct lockd_data *)data;
-
-       vconf_get_bool(VCONFKEY_SETAPPL_AUTO_LOCK_DEVICE_STATUS_BOOL , &is_connected);
-       LOCKD_WARN("BT connect status is changed to [%d]", is_connected);
-
-       if (is_connected) {
-               if (lockd_start_bt_monitor() < 0) {
-                       LOCKD_ERR("Fail starter BT monitor");
-               }
-       } else {
-               lockd_stop_bt_monitor();
-               lockd_change_security_auto_lock(is_connected);
-       }
-}
-
-
-static void _lockd_notify_lock_type_changed_cb(keynode_t * node, void *data)
-{
-       int lock_type = -1;
-       struct lockd_data *lockd = (struct lockd_data *)data;
-       LOCKD_DBG("lock type is changed..!!");
-
-       lock_type = vconf_keynode_get_int(node);
-       lockd->lock_type = lock_type;
-
-       if(lock_type == SETTING_SCREEN_LOCK_TYPE_OTHER){
-               LOCKD_DBG("lock type is 3rd party lock");
-               lockd_init_vconf(lockd);
-               if(lockd->lock_app_pid > 0){
-                       lockd_process_mgr_terminate_lock_app(lockd->lock_app_pid, 1);
-                       lockd->lock_app_pid = 0;
-               }
-               if(lockd->phone_lock_app_pid > 0){
-                       lockd_process_mgr_terminate_lock_app(lockd->phone_lock_app_pid, 1);
-                       lockd->phone_lock_app_pid = 0;
-               }
-       }
-       else{
-               LOCKD_DBG("lock type is not 3rd party lock");
-               lockd_fini_vconf(lockd);
-               lockd->start_ready = TRUE;
-               lockd_launch_app_lockscreen_lite(lockd);
-       }
-}
-
-
-static void lockd_fini_vconf(struct lockd_data *lockd)
-{
-       int val = -1;
-
-       if (vconf_ignore_key_changed
-           (VCONFKEY_PM_STATE, _lockd_notify_pm_state_cb_lite) != 0) {
-               LOCKD_ERR("Fail vconf_ignore_key_changed : VCONFKEY_PM_STATE");
-       }
-
-       if (vconf_ignore_key_changed
-           (VCONFKEY_PM_LCDOFF_SOURCE, _lockd_notify_pm_lcdoff_cb_lite) != 0) {
-               LOCKD_ERR("Fail vconf_ignore_key_changed : VCONFKEY_PM_LCDOFF_SOURCE");
-       }
-
-       if (vconf_ignore_key_changed
-           (VCONFKEY_TELEPHONY_SIM_FACTORY_MODE, _lockd_notify_factory_mode_cb) != 0) {
-               LOCKD_ERR("Fail vconf_ignore_key_changed : VCONFKEY_TELEPHONY_SIM_FACTORY_MODE");
-       }
-#if 0
-       if (vconf_ignore_key_changed
-               (VCONFKEY_SYSTEM_TIME_CHANGED, _lockd_notify_time_changed_cb) != 0) {
-               LOCKD_ERR("Fail vconf_ignore_key_changed : VCONFKEY_SYSTEM_TIME_CHANGED");
-       }
-#endif
-       if (vconf_ignore_key_changed
-           (VCONFKEY_LOCKSCREEN_PHONE_LOCK_VERIFICATION, _lockd_notify_phone_lock_verification_cb) != 0) {
-           LOCKD_ERR("Fail vconf_ignore_key_changed : VCONFKEY_LOCKSCREEN_PHONE_LOCK_VERIFICATION");
-       }
-       if (vconf_ignore_key_changed
-               (VCONFKEY_IDLE_LOCK_STATE, _lockd_notify_lock_state_cb) != 0) {
-               LOCKD_ERR("Fail vconf_ignore_key_changed : VCONFKEY_IDLE_LOCK_STATE");
-       }
-}
-
-
-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_lite, lockd) != 0) {
-               LOCKD_ERR("Fail vconf_notify_key_changed : VCONFKEY");
-       }
-
-       if (vconf_notify_key_changed
-           (VCONFKEY_PM_LCDOFF_SOURCE, _lockd_notify_pm_lcdoff_cb_lite, lockd) != 0) {
-               LOCKD_ERR("Fail vconf_notify_key_changed : VCONFKEY");
-       }
-
-       if (vconf_notify_key_changed
-           (VCONFKEY_TELEPHONY_SIM_FACTORY_MODE, _lockd_notify_factory_mode_cb, NULL) != 0) {
-               LOCKD_ERR("Fail vconf_notify_key_changed : VCONFKEY");
-       }
-#if 0
-       if (vconf_notify_key_changed
-               (VCONFKEY_SYSTEM_TIME_CHANGED, _lockd_notify_time_changed_cb, NULL) != 0) {
-               LOCKD_ERR("Fail vconf_notify_key_changed : VCONFKEY");
-       }
-#endif
-       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 VCONFKEY");
-                       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 " );
-                       }
-               } else {
-                       LOCKD_ERR
-                           ("Fail vconf_notify_key_changed " );
-               }
-       }
-
-       if (vconf_notify_key_changed
-               (VCONFKEY_IDLE_LOCK_STATE,
-                _lockd_notify_lock_state_cb,
-                lockd) != 0) {
-               LOCKD_ERR
-                       ("[Error] vconf notify : lock state");
-       }
-}
-
-
-static Eina_Bool lockd_init_alarm(void *data)
-{
-       struct lockd_data *lockd = (struct lockd_data *)data;
-
-       if(!lockd) {
-               LOCKD_ERR("parameter is NULL");
-               return EINA_FALSE;
-       }
-
-       LOCKD_DBG("%s, %d", __func__, __LINE__);
-
-       int ret_val = 0;
-       /* alarm id initialize */
-       lockd->alarm_id = -1;
-
-       g_type_init();
-       ret_val = alarmmgr_init(PACKAGE_NAME);
-       if(ret_val != ALARMMGR_RESULT_SUCCESS) {
-               LOCKD_ERR("alarmmgr_init() failed(%d)", ret_val);
-               return EINA_FALSE;
-       }
-       ret_val = alarmmgr_set_cb((alarm_cb_t)_lockd_lauch_other_lockscreen, lockd);
-       if(ret_val != ALARMMGR_RESULT_SUCCESS) {
-               LOCKD_ERR("alarmmgr_init() failed");
-               return EINA_FALSE;
-       }
-
-       LOCKD_DBG("alarm init success");
-       return EINA_TRUE;
-}
-
-static int lockd_init_hall_signal(void *data)
-{
-       E_DBus_Connection *conn;
-       E_DBus_Signal_Handler *handler;
-
-       struct lockd_data *lockd = (struct lockd_data *)data;
-       if(!lockd) {
-               LOCKD_ERR("parameter is NULL");
-               return EINA_FALSE;
-       }
-
-       conn = e_dbus_bus_get(DBUS_BUS_SYSTEM);
-       if (conn == NULL) {
-               LOCKD_ERR("e_dbus_bus_get error");
-               return -1;
-       }
-       lockd->hall_conn = conn;
-
-#if 0
-       int r;
-       r = e_dbus_request_name(conn, BUS_NAME, 0, NULL, NULL);
-       if (!r) {
-               LOCKD_ERR("e_dbus_request_name erro");
-               return -1;
-       }
-#endif
-
-       handler = e_dbus_signal_handler_add(conn, NULL, DEVICED_PATH_HALL,
-                                                               DEVICED_INTERFACE_HALL, SIGNAL_HALL_STATE,
-                                                               _lockd_on_changed_receive, lockd);
-       if (handler == NULL) {
-               LOCKD_ERR("e_dbus_signal_handler_add error");
-               return -1;
-       }
-       lockd->hall_handler = handler;
-       /* S-Cover Lock : Signal <!-- END --> */
-}
-
-
-
-static Eina_Bool _lockd_launch_lockscreen_by_pwr_key(void *data)
-{
-       LOCKD_DBG("%s, %d", __func__, __LINE__);
-
-       int idle_lock_state = VCONFKEY_IDLE_UNLOCK;
-       struct lockd_data *lockd = (struct lockd_data *)data;
-
-       LOCKD_DBG("lcd off by powerkey");
-
-       if (idle_lock_state == VCONFKEY_IDLE_UNLOCK) {
-               if (lockd->lock_type == SETTING_SCREEN_LOCK_TYPE_SIMPLE_PASSWORD || lockd->lock_type == SETTING_SCREEN_LOCK_TYPE_PASSWORD || lockd->lock_type == SETTING_SCREEN_LOCK_TYPE_SWIPE) {
-                       display_lock_state(LCD_OFF, STAY_CUR_STATE, 0);
-                       _lockd_request_PmQos(REQUEST_PMQOS_DURATION);
-               }
-       }
-       lockd_launch_app_lockscreen_lite(lockd);
-       return ECORE_CALLBACK_CANCEL;
-}
-
-
-static void _lockd_receive_lcd_off(void *data, DBusMessage *msg)
-{
-       DBusError err;
-       int r;
-       int idle_lock_state = VCONFKEY_IDLE_UNLOCK;
-
-       struct lockd_data *lockd = (struct lockd_data *)data;
-
-       if (lockd == NULL) {
-               LOCKD_ERR("lockd is NULL");
-               return;
-       }
-
-       LOCKD_DBG("lcd off signal is received");
-
-       r = dbus_message_is_signal(msg, DEVICED_INTERFACE_LCD_OFF, METHOD_LCD_OFF_NAME);
-       if (!r) {
-               LOCKD_ERR("dbus_message_is_signal error");
-               return;
-       }
-
-       LOCKD_DBG("%s - %s", DEVICED_INTERFACE_LCD_OFF, METHOD_LCD_OFF_NAME);
-
-#if 0 //need to check if lockscreen is displayed before lcd off.
-       idle_lock_state = lockd_get_lock_state();
-
-       LOCKD_DBG("lcd off by powerkey");
-
-       if (idle_lock_state == VCONFKEY_IDLE_UNLOCK) {
-               if (lockd->lock_type == LOCK_TYPE_SECURITY || lockd->lock_type == LOCK_TYPE_NORMAL) {
-                       _lockd_request_PmQos(REQUEST_PMQOS_DURATION);
-                       display_lock_state(LCD_OFF, STAY_CUR_STATE, 0);
-               }
-       }
-       lockd_launch_app_lockscreen_lite(lockd);
-#else
-       ecore_idler_add(_lockd_launch_lockscreen_by_pwr_key, lockd);
-#endif
-}
-
-
-static int lockd_init_lcd_off_signal(void *data)
-{
-       E_DBus_Connection *conn;
-       E_DBus_Signal_Handler *handler;
-
-       struct lockd_data *lockd = (struct lockd_data *)data;
-       if(!lockd) {
-               LOCKD_ERR("parameter is NULL");
-               return EINA_FALSE;
-       }
-
-       conn = e_dbus_bus_get(DBUS_BUS_SYSTEM);
-       if (conn == NULL) {
-               LOCKD_ERR("e_dbus_bus_get error");
-               return -1;
-       }
-       lockd->display_conn = conn;
-
-       handler = e_dbus_signal_handler_add(conn, NULL, DEVICED_PATH_LCD_OFF,
-                                                               DEVICED_INTERFACE_LCD_OFF, METHOD_LCD_OFF_NAME,
-                                                               _lockd_receive_lcd_off, lockd);
-       if (handler == NULL) {
-               LOCKD_ERR("e_dbus_signal_handler_add error");
-               return -1;
-       }
-       lockd->display_handler = handler;
-}
-
-void lockd_check_vconf_festival_wallpaper(void *data){
-       struct lockd_data *lockd = (struct lockd_data *)data;
-
-       if (lockd == NULL) {
-               LOCKD_ERR("lockd is NULL");
-               return;
-       }
-       int festival_wallpaper = 0;
-
-       if(vconf_get_bool(VCONFKEY_LOCKSCREEN_FESTIVAL_WALLPAPER_DISPLAYING, &festival_wallpaper) < 0) {
-               LOCKD_ERR("Cannot get VCONFKEY");
-               festival_wallpaper = 0;
-       }
-       LOCKD_DBG("festival wallpaper : %d", festival_wallpaper);
-       if(festival_wallpaper){
-               bundle *b;
-               b = bundle_create();
-               if(b == NULL){
-                       LOCKD_ERR("bundle create failed.\n");
-                       return;
-               }
-               bundle_add(b, "popup_type", "festival");
-               bundle_add(b, "festival_type", "festival_create");
-               aul_launch_app(WALLPAPER_UI_SERVICE_PKG_NAME, b);
-               bundle_free(b);
-       }
-
-}
-
-static void _lockd_check_ongoing(bool ongoing)
-{
-       if (ongoing) {
-               /* check previous process */
-               if (checkfd) {
-                       LOCKD_ERR("checkfd fail\n");
-                       return;
-               }
-
-               /* make tmp file */
-               FILE *fp = fopen(PASSWORD_LOCK_PROGRESS, "w+");
-               if (!fp) {
-                       LOCKD_ERR("Failed to open file : %s", PASSWORD_LOCK_PROGRESS);
-                       checkfd = 0;
-                       return;
-               }
-               LOCKD_WARN("make %s file\n", PASSWORD_LOCK_PROGRESS);
-               checkfd = 1;
-               fclose(fp);
-       } else {
-               if (!checkfd) return;
-               if (unlink(PASSWORD_LOCK_PROGRESS) < 0)
-                       LOCKD_ERR("fail to remove %s file\n", PASSWORD_LOCK_PROGRESS);
-               close(checkfd);
-               checkfd = 0;
-               LOCKD_WARN("delete %s file\n", PASSWORD_LOCK_PROGRESS);
-       }
-}
-
-static void lockd_start_lock_daemon_lite(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_process_mgr_init();
-
-       /* init alarm manager */
-//     lockd_check_vconf_festival_wallpaper(lockd);
-
-       lockd->is_alarm = lockd_init_alarm(lockd);
-
-
-       /* Initialize socket */
-       r = lockd_init_sock(lockd);
-       if (r < 0) {
-               LOCKD_ERR("lockd init socket failed: %d", r);
-       }
-
-       /* Create internal 1x1 window */
-       lockd->lockw = lockd_window_init();
-
-       aul_listen_app_dead_signal(lockd_app_dead_cb_lite, data);
-}
-
-static Eina_Bool _lockd_check_wallpaper_service(void *data)
-{
-       LOCKD_DBG("%s, %d", __func__, __LINE__);
-       struct lockd_data *lockd = (struct lockd_data *)data;
-       lockd_check_vconf_festival_wallpaper(lockd);
-       return ECORE_CALLBACK_CANCEL;
-}
-
-
-int start_lock_daemon_lite(int launch_lock, int is_first_boot)
-{
-       struct lockd_data *lockd = NULL;
-       int recovery_state = -1;
-       int lock_type = 0;
-       int first_boot = 0;
-       int ret = 0;
-
-       LOCKD_DBG("%s, %d", __func__, __LINE__);
-
-       lockd = (struct lockd_data *)malloc(sizeof(struct lockd_data));
-       retv_if(!lockd, 0);
-       memset(lockd, 0x0, sizeof(struct lockd_data));
-       lockd_start_lock_daemon_lite(lockd);
-
-       vconf_get_int(VCONFKEY_SETAPPL_SCREEN_LOCK_TYPE_INT, &lock_type);
-       lockd->lock_type = lock_type;
-       if(lockd->lock_type == SETTING_SCREEN_LOCK_TYPE_SIMPLE_PASSWORD || lockd->lock_type == SETTING_SCREEN_LOCK_TYPE_PASSWORD){
-               if(checkfd){
-                       _lockd_check_ongoing(EINA_FALSE);
-               }
-               else{
-                       _lockd_check_ongoing(EINA_TRUE);
-               }
-       }
-
-       if (vconf_notify_key_changed
-               (VCONFKEY_SETAPPL_SCREEN_LOCK_TYPE_INT, _lockd_notify_lock_type_changed_cb, lockd) != 0) {
-               LOCKD_ERR("Fail vconf_notify_key_changed : VCONFKEY_SETAPPL_SCREEN_LOCK_TYPE_INT");
-       }
-
-       if (vconf_notify_key_changed
-               (VCONFKEY_SYSTEM_TIME_CHANGED, _lockd_notify_time_changed_cb, NULL) != 0) {
-               LOCKD_ERR("Fail vconf_notify_key_changed : VCONFKEY");
-       }
-
-       if (vconf_notify_key_changed
-               (VCONFKEY_IDLE_LOCK_STATE,
-                _lockd_notify_lock_state_cb,
-                lockd) != 0) {
-               LOCKD_ERR
-                       ("[Error] vconf notify : lock state");
-       }
-
-       lockd->back_to_app = FALSE;
-
-       if (lockd->lock_type == SETTING_SCREEN_LOCK_TYPE_NONE)
-               return -1;
-       if ((lockd->lock_type == SETTING_SCREEN_LOCK_TYPE_SIMPLE_PASSWORD) || (lockd->lock_type == SETTING_SCREEN_LOCK_TYPE_PASSWORD)) {
-               if (vconf_get_int(VCONFKEY_EAS_RECOVERY_MODE, &recovery_state) < 0) {
-                       LOCKD_ERR("Cannot get vconfkey" );
-                       lockd->request_recovery = FALSE;
-               } else if (recovery_state == 1) {
-                       LOCKD_DBG("recovery mode : %d \n", recovery_state);
-                       lockd->request_recovery = TRUE;
-               } else {
-                       lockd->request_recovery = FALSE;
-               }
-       } else {
-               lockd->request_recovery = FALSE;
-       }
-
-       vconf_set_bool(VCONFKEY_SAT_NORMAL_PRIORITY_AVAILABLE_BOOL, EINA_TRUE);
-
-       if (launch_lock == FALSE) {
-               LOCKD_ERR("Don't launch lockscreen..");
-               ecore_idler_add(_lockd_check_wallpaper_service, lockd);
-               return 0;
-       }
-
-       lockd->is_first_boot = is_first_boot;
-       if (lockd->is_first_boot == TRUE){
-               LOCKD_ERR("first_boot : %d \n", lockd->is_first_boot);
-               lockd->start_ready = TRUE;
-               ret = lockd_launch_app_lockscreen_lite(lockd);
-               if(ret < 0){
-                       LOCKD_ERR("launch lockscreen failed. retry one more time.");
-                       ret = lockd_launch_app_lockscreen_lite(lockd);
-                       if(ret < 0){
-                               LOCKD_ERR("failed to launch lockscreen.");
-                       }
-               }
-               ecore_idler_add(_lockd_check_wallpaper_service, lockd);
-               return 0;
-       }
-
-       if (lockd->lock_type == SETTING_SCREEN_LOCK_TYPE_OTHER) {
-               lockd_init_vconf(lockd);
-               ret = lockd_launch_app_other_lockscreen(lockd);
-               if(ret < 0){
-                       LOCKD_ERR("launch 3rd party lockscreen failed. retry one more time.");
-                       ret = lockd_launch_app_other_lockscreen(lockd);
-                       if(ret < 0){
-                               LOCKD_ERR("failed to launch 3rd party lockscreen.");
-                       }
-               }
-       } else {        
-               ret = lockd_launch_app_lockscreen_lite(lockd);
-               if(ret < 0){
-                       LOCKD_ERR("launch lockscreen failed. retry one more time.");
-                       ret = lockd_launch_app_lockscreen_lite(lockd);
-                       if(ret < 0){
-                               LOCKD_ERR("failed to launch lockscreen.");
-                       }
-               }
-       }
-       ecore_idler_add(_lockd_check_wallpaper_service, lockd);
-
-       if(feedback_initialize() != FEEDBACK_ERROR_NONE) {
-               LOCKD_ERR("[CAUTION][ERROR] feedback_initialize() is failed..!!");
-       }
-
-       return ret;
-}
-
-
diff --git a/src/lock-daemon.c b/src/lock-daemon.c
deleted file mode 100755 (executable)
index 5e79517..0000000
+++ /dev/null
@@ -1,2125 +0,0 @@
-/*
- * 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 <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 <sensors.h>
-#include <feedback.h>
-#include <alarm.h>
-#include <time.h>
-#include <dd-deviced.h>
-#include <dd-display.h>
-#include <E_DBus.h>
-#include <aul.h>
-
-#ifndef FEATURE_LITE
-#include <context_manager.h>
-#endif
-
-#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"
-#include "hw_key.h"
-#include "lockd-bt.h"
-#include "dbus-util.h"
-
-static int phone_lock_pid;
-static int auto_lock_pid;
-static bool lock_state_available = TRUE;
-
-struct lockd_data {
-       int lock_app_pid;
-       int phone_lock_app_pid;
-       int lock_type;  /* -1: None, 0:Normal, 1:Security,  2:Other */
-       Eina_Bool is_sensor;    /* EINA_TRUE : can use sensor EINA_FALSE : cannot use */
-       Eina_Bool request_recovery;
-       Eina_Bool back_to_app;
-       lockw_data *lockw;
-       GPollFD *gpollfd;
-       Eina_Bool is_alarm;     /* EINA_TRUE : can use alarm EINA_FALSE : cannot use */
-       alarm_id_t alarm_id;    /* -1 : None, others : set alarm */
-       Eina_Bool is_first_boot;        /* EINA_TRUE : first boot  */
-       int hall_status;        /* 0: cover is closed, 1:cover is opened */
-       E_DBus_Connection *hall_conn;
-       E_DBus_Signal_Handler *hall_handler;
-       E_DBus_Connection *display_conn;
-       E_DBus_Signal_Handler *display_handler;
-
-};
-
-
-
-/* Local features*/
-#define _FEATURE_LCD_OFF_DBUS  0 //Check to apply lcd off dbus by PM part
-#define _FEATURE_SCOVER                        0 //Scover view
-
-
-
-
-#define PHLOCK_SOCK_PREFIX "/tmp/phlock"
-#define PHLOCK_SOCK_MAXBUFF 65535
-
-#define VOLUNE_APP_CMDLINE "/usr/apps/com.samsung.volume/bin/volume"            // LOCK_EXIT_CMD
-#define PHLOCK_APP_CMDLINE "/usr/apps/org.tizen.lockscreen/bin/lockscreen" //PHLOCK_UNLOCK_CMD
-#define MDM_APP_CMDLINE "/usr/bin/mdm-server" //PHLOCK_LAUNCH_CMD
-#define VOICE_CALL_APP_CMDLINE "/usr/apps/com.samsung.call/bin/calls" //HOME_RAISE_CMD, LOCK_SHOW_CMD
-#define VIDEO_CALL_APP_CMDLINE "/usr/apps/com.samsung.vtmain/bin/vtmain" //HOME_RAISE_CMD, LOCK_SHOW_CMD
-#define OMA_DRM_AGENT_CMDLINE "/usr/bin/oma-dm-agent" //PHLOCK_UNLOCK_RESET_CMD
-
-#define PHLOCK_UNLOCK_CMD "unlock"
-#define PHLOCK_LAUNCH_CMD "launch_phone_lock"
-#define PHLOCK_UNLOCK_RESET_CMD "unlock_reset"
-#define HOME_RAISE_CMD "raise_homescreen"
-#define LOCK_SHOW_CMD "show_lockscreen"
-#define LOCK_LAUNCH_CMD "launch_lockscreen"
-#define LOCK_EXIT_CMD "exit_lockscreen"
-
-#define LAUNCH_INTERVAL 100*1000
-
-#define HALL_COVERED_STATUS            0
-#define BUS_NAME       "org.tizen.system.deviced"
-#define OBJECT_PATH    "/Org/Tizen/System/DeviceD"
-#define INTERFACE_NAME BUS_NAME
-#define DEVICED_PATH_HALL              OBJECT_PATH"/Hall"
-#define DEVICED_INTERFACE_HALL INTERFACE_NAME".hall"
-#define SIGNAL_HALL_STATE      "ChangeState"
-#define METHOD_GET_STATUS      "getstatus"
-#define DBUS_REPLY_TIMEOUT (120 * 1000)
-#define DEVICED_PATH_PMQOS             OBJECT_PATH"/PmQos"
-#define DEVICED_INTERFACE_PMQOS        INTERFACE_NAME".PmQos"
-#define METHOD_PMQOS_NAME      "LockScreen"
-#define REQUEST_PMQOS_DURATION (2 * 1000)
-
-#define DEVICED_PATH_LCD_OFF   OBJECT_PATH"/Display"
-#define DEVICED_INTERFACE_LCD_OFF      INTERFACE_NAME".display"
-#define METHOD_LCD_OFF_NAME    "LCDOffByPowerkey"
-
-#define VOLUME_PKG_NAME "org.tizen.volume"
-#define WALLPAPER_UI_SERVICE_PKG_NAME "com.samsung.wallpaper-ui-service"
-#define SHOW_LOCK "show_lock"
-#define ISTRUE "TRUE"
-#define SMART_ALERT_INTERVAL 0.5
-
-enum {
-       LOCK_TYPE_NONE = -1,
-       LOCK_TYPE_NORMAL = 0,
-       LOCK_TYPE_SECURITY,
-       LOCK_TYPE_AUTO_LOCK,
-       LOCK_TYPE_OTHER,
-       LOCK_TYPE_MAX
-};
-
-static int lockd_launch_app_lockscreen(struct lockd_data *lockd);
-static void lockd_unlock_lockscreen(struct lockd_data *lockd);
-#if 0
-static Eina_Bool lockd_start_sensor(void *data);
-static void lockd_stop_sensor(void *data);
-#endif
-
-static void _lockd_set_lock_state(int lock_state)
-{
-       LOCKD_DBG("%s, %d, %d", __func__, __LINE__, lock_state);
-       if(lock_state < VCONFKEY_IDLE_UNLOCK || lock_state > VCONFKEY_IDLE_LAUNCHING_LOCK) {
-               LOCKD_ERR("Can't set lock_state : %d out of range", lock_state);
-       } else {
-               vconf_set_int(VCONFKEY_IDLE_LOCK_STATE, lock_state);
-       }
-}
-
-static void _lockd_play_sound(bool unlock)
-{
-       int ret = -1, val = 0;
-       ret = vconf_get_bool(VCONFKEY_SETAPPL_SOUND_LOCK_BOOL, &val);
-
-       if(ret == 0 && val == 1) {
-               feedback_initialize();
-               feedback_play_type(FEEDBACK_TYPE_SOUND, unlock ? FEEDBACK_PATTERN_UNLOCK : FEEDBACK_PATTERN_LOCK);
-       }
-}
-
-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_NONE) {
-               ret = LOCK_TYPE_NONE;
-       } else if (lock_type == SETTING_SCREEN_LOCK_TYPE_PASSWORD ||
-               lock_type == SETTING_SCREEN_LOCK_TYPE_SIMPLE_PASSWORD ||
-               lock_type == SETTING_SCREEN_LOCK_TYPE_FINGERPRINT ||
-               lock_type == SETTING_SCREEN_LOCK_TYPE_FACE_AND_VOICE) {
-               ret = LOCK_TYPE_SECURITY;
-       } else if (lock_type == SETTING_SCREEN_LOCK_TYPE_SWIPE ||
-               lock_type == SETTING_SCREEN_LOCK_TYPE_MOTION) {
-               ret = LOCK_TYPE_NORMAL;
-       } else if (lock_type == SETTING_SCREEN_LOCK_TYPE_AUTO_LOCK) {
-               ret = LOCK_TYPE_AUTO_LOCK;
-       } else {
-               ret = LOCK_TYPE_OTHER;
-       }
-
-       LOCKD_DBG("lockd_get_lock_type ret(%d), lock_type (%d)", ret, lock_type);
-
-       return ret;
-}
-
-static int _lockd_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;
-}
-
-DBusMessage *_lockd_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;
-       DBusMessage *reply;
-       DBusError err;
-       int r;
-
-       conn = dbus_bus_get(DBUS_BUS_SYSTEM, NULL);
-       if (!conn) {
-               LOCKD_ERR("dbus_bus_get error");
-               return NULL;
-       }
-
-       msg = dbus_message_new_method_call(dest, path, interface, method);
-       if (!msg) {
-               LOCKD_ERR("dbus_message_new_method_call(%s:%s-%s)", path, interface, method);
-               return NULL;
-       }
-
-       dbus_message_iter_init_append(msg, &iter);
-       r = _lockd_append_variant(&iter, sig, param);
-       if (r < 0) {
-               LOCKD_ERR("append_variant error(%d)", r);
-               return NULL;
-       }
-
-       r = dbus_connection_send(conn, msg, NULL);
-       dbus_message_unref(msg);
-       if (r != TRUE) {
-               LOCKD_ERR("dbus_connection_send error(%s:%s:%s-%s)", dest, path, interface, method);
-               return -ECOMM;
-       }
-       LOCKD_DBG("dbus_connection_send, ret=%d", r);
-       return NULL;
-}
-
-DBusMessage *_lockd_invoke_dbus_method_sync(const char *dest, const char *path,
-               const char *interface, const char *method,
-               const char *sig, char *param[])
-{
-       DBusConnection *conn;
-       DBusMessage *msg;
-       DBusMessageIter iter;
-       DBusMessage *reply;
-       DBusError err;
-       int r;
-
-       conn = dbus_bus_get(DBUS_BUS_SYSTEM, NULL);
-       if (!conn) {
-               LOCKD_ERR("dbus_bus_get error");
-               return NULL;
-       }
-
-       msg = dbus_message_new_method_call(dest, path, interface, method);
-       if (!msg) {
-               LOCKD_ERR("dbus_message_new_method_call(%s:%s-%s)", path, interface, method);
-               return NULL;
-       }
-
-       dbus_message_iter_init_append(msg, &iter);
-       r = _lockd_append_variant(&iter, sig, param);
-       if (r < 0) {
-               LOCKD_ERR("append_variant error(%d)", r);
-               return NULL;
-       }
-
-       dbus_error_init(&err);
-
-       reply = dbus_connection_send_with_reply_and_block(conn, msg, DBUS_REPLY_TIMEOUT, &err);
-       if (!reply) {
-               LOCKD_ERR("dbus_connection_send error(No reply)");
-       }
-
-       if (dbus_error_is_set(&err)) {
-               LOCKD_ERR("dbus_connection_send error(%s:%s)", err.name, err.message);
-               reply = NULL;
-       }
-
-       dbus_message_unref(msg);
-       dbus_error_free(&err);
-
-       return reply;
-}
-
-int lockd_get_hall_status(void)
-{
-       DBusError err;
-       DBusMessage *msg;
-       int ret, ret_val;
-
-       LOCKD_DBG("[ == %s == ]", __func__);
-       msg = _lockd_invoke_dbus_method_sync(BUS_NAME, DEVICED_PATH_HALL, DEVICED_INTERFACE_HALL,
-                       METHOD_GET_STATUS, NULL, NULL);
-       if (!msg)
-               return -EBADMSG;
-
-       dbus_error_init(&err);
-
-       ret = dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &ret_val, DBUS_TYPE_INVALID);
-       if (!ret) {
-               LOCKD_ERR("no message : [%s:%s]", err.name, err.message);
-               ret_val = -EBADMSG;
-       }
-
-       dbus_message_unref(msg);
-       dbus_error_free(&err);
-
-       LOCKD_DBG("%s-%s : %d", DEVICED_INTERFACE_HALL, METHOD_GET_STATUS, ret_val);
-       return ret_val;
-}
-
-int lockd_get_lock_state(void)
-{
-       int idle_lock_state = VCONFKEY_IDLE_UNLOCK;
-
-       if (vconf_get_int(VCONFKEY_IDLE_LOCK_STATE, &idle_lock_state) < 0) {
-               LOCKD_ERR("Cannot get VCONFKEY");
-               idle_lock_state = VCONFKEY_IDLE_UNLOCK;
-       }
-       LOCKD_DBG("Get lock state : %d", idle_lock_state);
-       return idle_lock_state;
-}
-
-static void _lockd_on_changed_receive(void *data, DBusMessage *msg)
-{
-       DBusError err;
-       char *str;
-       int response;
-       int r;
-       int automatic_unlock = 0;
-
-       struct lockd_data *lockd = (struct lockd_data *)data;
-
-       if (lockd == NULL) {
-               LOCKD_ERR("lockd is NULL");
-               return;
-       }
-
-       LOCKD_DBG("hall signal is received");
-
-       r = dbus_message_is_signal(msg, DEVICED_INTERFACE_HALL, SIGNAL_HALL_STATE);
-       if (!r) {
-               LOCKD_ERR("dbus_message_is_signal error");
-               return;
-       }
-
-       LOCKD_DBG("%s - %s", DEVICED_INTERFACE_HALL, SIGNAL_HALL_STATE);
-
-       dbus_error_init(&err);
-       r = dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &response, DBUS_TYPE_INVALID);
-       if (!r) {
-               LOCKD_ERR("dbus_message_get_args error");
-               return;
-       }
-
-       LOCKD_DBG("receive data : %d", response);
-       lockd->hall_status = response;
-
-}
-
-static int _lockd_request_PmQos(int duration)
-{
-       DBusError err;
-       DBusMessage *msg;
-       int ret, ret_val;
-       char *arr[1];
-       char val[32];
-
-       snprintf(val, sizeof(val), "%d", duration);
-       arr[0] = val;
-
-       //msg = _lockd_invoke_dbus_method_sync(BUS_NAME, DEVICED_PATH_PMQOS, DEVICED_INTERFACE_PMQOS,
-       //              METHOD_PMQOS_NAME, "i", arr);
-       msg = _lockd_invoke_dbus_method_async(BUS_NAME, DEVICED_PATH_PMQOS, DEVICED_INTERFACE_PMQOS,
-                       METHOD_PMQOS_NAME, "i", arr);
-
-       if (!msg)
-               return -EBADMSG;
-
-       dbus_error_init(&err);
-
-       ret = dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &ret_val, DBUS_TYPE_INVALID);
-       if (!ret) {
-               LOCKD_ERR("no message : [%s:%s]", err.name, err.message);
-               ret_val = -EBADMSG;
-       }
-
-       dbus_message_unref(msg);
-       dbus_error_free(&err);
-
-       LOCKD_DBG("%s-%s : %d", DEVICED_INTERFACE_PMQOS, METHOD_PMQOS_NAME, ret_val);
-       return ret_val;
-}
-
-static void _lockd_delete_alarm(alarm_id_t id, void * user_param)
-{
-       int ret_val = ALARMMGR_RESULT_SUCCESS;
-       LOCKD_DBG("Del alarm_id(%d)", id);
-       ret_val = alarmmgr_remove_alarm(id);
-       if(ret_val != ALARMMGR_RESULT_SUCCESS) {
-               LOCKD_ERR("alarmmgr_enum_alarm_ids() failed");
-       }
-}
-
-static void _lockd_unset_alarms(void)
-{
-       LOCKD_DBG("[ == %s == ]", __func__);
-       int ret_val = ALARMMGR_RESULT_SUCCESS;
-       ret_val = alarmmgr_enum_alarm_ids(_lockd_delete_alarm, NULL);
-       if(ret_val != ALARMMGR_RESULT_SUCCESS) {
-               LOCKD_ERR("alarmmgr_enum_alarm_ids() failed");
-       }
-}
-
-static void _lockd_lauch_lockscreen(alarm_id_t alarm_id, void *data)
-{
-       struct lockd_data *lockd = (struct lockd_data *)data;
-       if (lockd == NULL) {
-               LOCKD_ERR("lockd is NULL");
-               return;
-       }
-
-       int ret_val = ALARMMGR_RESULT_SUCCESS;
-
-       LOCKD_DBG("[ == %s == ], alarm_id(%d)", __func__, alarm_id);
-
-       display_lock_state(LCD_OFF, STAY_CUR_STATE, 0);
-       lockd_launch_app_lockscreen(lockd);
-
-       if(alarm_id != -1) {
-               if(alarm_id != lockd->alarm_id) {
-                       LOCKD_ERR("alarm ids are different callback->id(%d), lockd->alarm_id(%d)", alarm_id, lockd->alarm_id);
-                       /* delete all registering alarm*/
-                       _lockd_unset_alarms();
-                       lockd->alarm_id = -1;
-               } else {
-                       ret_val = alarmmgr_remove_alarm(alarm_id);
-                       if(ret_val != ALARMMGR_RESULT_SUCCESS) {
-                               LOCKD_ERR("alarmmgr_remove_alarm() failed");
-                               /* delete all registering alarm*/
-                               _lockd_unset_alarms();
-                       }
-                       lockd->alarm_id = -1;
-               }
-       }
-}
-
-static Eina_Bool _lockd_set_alarm(int sec, void *data)
-{
-       struct lockd_data *lockd = (struct lockd_data *)data;
-       if (lockd == NULL) {
-               LOCKD_ERR("lockd is NULL");
-               return EINA_FALSE;
-       }
-
-       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_val = ALARMMGR_RESULT_SUCCESS;
-
-       /* delete before registering alarm ids */
-       if(lockd->alarm_id != -1){
-               LOCKD_ERR("ad->alarm_id(%d) deleted", lockd->alarm_id);
-               ret_val = alarmmgr_remove_alarm(lockd->alarm_id);
-               if(ret_val != ALARMMGR_RESULT_SUCCESS) {
-                       LOCKD_ERR("alarmmgr_remove_alarm(%d) failed", lockd->alarm_id);
-                       _lockd_unset_alarms();
-               }
-               lockd->alarm_id = -1;
-       }
-
-       /* set alarm after sec */
-       time(&current_time);
-
-       localtime_r(&current_time, &current_tm);
-
-       alarm_info = alarmmgr_create_alarm();
-       if(alarm_info == NULL) {
-               LOCKD_ERR("alarmmgr_create_alarm() is failed\n");
-               return 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_val = alarmmgr_add_alarm_with_localtime(alarm_info, NULL, &alarm_id);
-       if(ret_val != ALARMMGR_RESULT_SUCCESS) {
-               LOCKD_ERR("alarmmgr_add_alarm_with_localtime() failed");
-               alarmmgr_free_alarm(alarm_info) ;
-               return EINA_FALSE;
-       }
-
-       LOCKD_DBG("alarm id(%d) is set", alarm_id);
-       lockd->alarm_id = alarm_id;
-       alarmmgr_free_alarm(alarm_info) ;
-
-       return EINA_TRUE;
-}
-
-
-#ifndef FEATURE_LITE
-static Eina_Bool _lockd_play_smart_alert_cb(void *data)
-{
-       LOCKD_DBG("%s, %d", __func__, __LINE__);
-       struct lockd_data *lockd = (struct lockd_data *)data;
-
-       feedback_initialize();
-       feedback_play_type(FEEDBACK_TYPE_VIBRATION, FEEDBACK_PATTERN_REACTIVE_ALERT);
-       //feedback_deinitialize();
-       //lockd_stop_sensor(lockd);
-
-       return ECORE_CALLBACK_CANCEL;
-}
-
-void _lockd_context_update_cb(int error, context_item_e context, char* context_data, void* user_data, int req_id)
-{
-       LOCKD_DBG("%s, %d", __func__, __LINE__);
-
-       struct lockd_data *lockd = (struct lockd_data *)user_data;
-
-       if (error == CONTEXT_ERROR_NONE && context == CONTEXT_ITEM_MOVEMENT) {
-               int action = -1;
-               int ret = 0;
-               int calls = 0;
-               int messages = 0;
-
-               context_context_data_get_int(context_data, CONTEXT_MOTION_ACTION, &action);
-
-               switch (action) {
-               case CONTEXT_MOVEMENT_ACTION:
-                       ret = vconf_get_int(VCONFKEY_STARTER_MISSED_CALL, &calls);
-                       if(ret != 0)
-                               calls = 0;
-
-                       ret = vconf_get_int(VCONFKEY_STARTER_UNREAD_MESSAGE, &messages);
-                       if(ret != 0)
-                               messages = 0;
-
-                       if(calls > 0 || messages > 0) {
-                               LOCKD_WARN("[ sensor ] SMART ALERT calls = %d messages = %d", calls, messages);
-                               ecore_timer_add(SMART_ALERT_INTERVAL, _lockd_play_smart_alert_cb, user_data);
-                       }
-                       break;
-               case CONTEXT_MOVEMENT_NONE:
-                       break;
-               default:
-                       break;
-               }
-               context_unset_changed_callback(CONTEXT_ITEM_MOVEMENT);
-               free(context_data);
-       }
-}
-
-static Eina_Bool _lockd_smart_alert_idelr_cb(void *data)
-{
-       LOCKD_DBG("%s, %d", __func__, __LINE__);
-
-       int val = -1;
-       struct lockd_data *lockd = (struct lockd_data *)data;
-       if (vconf_get_int(VCONFKEY_PM_STATE, &val) < 0) {
-               LOCKD_ERR("Cannot get VCONFKEY_PM_STATE");
-               return ECORE_CALLBACK_CANCEL;
-       }
-
-       if ((val == VCONFKEY_PM_STATE_LCDOFF) || (val == VCONFKEY_PM_STATE_SLEEP)) {
-               LOCKD_DBG("LCD OFF ==> smart alert start");
-
-               int ret = 0;
-               int is_motion = 0;
-               int is_pickup = 0;
-
-               ret = vconf_get_bool(VCONFKEY_SETAPPL_MOTION_ACTIVATION, &is_motion);
-               LOCKD_DBG("[ sensor ] ret = %d is_motion = %d", ret, is_motion);
-               if(ret == 0 && is_motion == 1) {
-                       ret = vconf_get_bool(VCONFKEY_SETAPPL_USE_PICK_UP, &is_pickup);
-                       LOCKD_DBG("[ sensor ] ret = %d is_pickup = %d", ret, is_pickup);
-                       if(ret == 0 && is_pickup == 1) {
-                               int ret = 0;
-                               int calls = 0;
-                               int messages = 0;
-                               int req_id, r;
-
-                               ret = vconf_get_int(VCONFKEY_STARTER_MISSED_CALL, &calls);
-                               if(ret != 0)
-                                       calls = 0;
-
-                               ret = vconf_get_int(VCONFKEY_STARTER_UNREAD_MESSAGE, &messages);
-                               if(ret != 0)
-                                       messages = 0;
-
-                               if(calls > 0 || messages > 0) {
-                                       r = context_set_changed_callback(CONTEXT_ITEM_MOVEMENT, NULL, _lockd_context_update_cb, lockd, &req_id);
-                                       if (r != CONTEXT_ERROR_NONE) {
-                                               LOCKD_ERR("[ sensor ] context_set_changed_callback fail");
-                                       }
-                                       LOCKD_WARN("[ sensor ] context_set_changed_callback, r=[%d]", r);
-                               }
-                       }
-               }
-       } else {
-               LOCKD_DBG("Not LCD OFF ==> cancel smart alert");
-       }
-       return ECORE_CALLBACK_CANCEL;
-}
-#endif
-
-
-
-static Eina_Bool _lockd_sensor_idelr_cb(void *data)
-{
-       LOCKD_DBG("%s, %d", __func__, __LINE__);
-
-       int val = -1;
-       if (vconf_get_int(VCONFKEY_PM_STATE, &val) < 0) {
-               LOCKD_ERR("Cannot get VCONFKEY_PM_STATE");
-               return ECORE_CALLBACK_CANCEL;
-       }
-
-       if ((val == VCONFKEY_PM_STATE_LCDOFF) || (val == VCONFKEY_PM_STATE_SLEEP)) {
-               LOCKD_DBG("LCD OFF ==> sensor start");
-
-               int ret = 0;
-               int calls = 0;
-               int messages = 0;
-
-               ret = vconf_get_int(VCONFKEY_STARTER_MISSED_CALL, &calls);
-               if(ret != 0)
-                       calls = 0;
-
-               ret = vconf_get_int(VCONFKEY_STARTER_UNREAD_MESSAGE, &messages);
-               if(ret != 0)
-                       messages = 0;
-
-               if(calls > 0 || messages > 0) {
-                       if(lockd_start_sensor(data) == EINA_FALSE) {
-                               LOCKD_ERR("smart_alert sensor start is failed");
-                       }
-               } else {
-                       LOCKD_ERR("[ sensor ] sensor is not started calls = %d messages = %d", calls, messages);
-               }
-       } else {
-               LOCKD_DBG("Not LCD OFF ==> cancel sensor start");
-       }
-       return ECORE_CALLBACK_CANCEL;
-}
-
-static Eina_Bool _lockd_alarm_idelr_cb(void *data)
-{
-       LOCKD_DBG("%s, %d", __func__, __LINE__);
-       struct lockd_data *lockd = (struct lockd_data *)data;
-       _lockd_unset_alarms();
-       lockd->alarm_id = -1;
-       return ECORE_CALLBACK_CANCEL;
-}
-
-static Eina_Bool _lockd_launch_idelr_cb(void *data)
-{
-       LOCKD_DBG("%s, %d", __func__, __LINE__);
-       struct lockd_data *lockd = (struct lockd_data *)data;
-       _lockd_lauch_lockscreen(-1, lockd);
-       return ECORE_CALLBACK_CANCEL;
-}
-
-static void _lockd_notify_pm_state_cb(keynode_t * node, void *data)
-{
-       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");
-               return;
-       }
-
-       LOCKD_DBG("[ == %s == ] pm_state(%d)", __func__, val);
-
-       if (val == VCONFKEY_PM_STATE_NORMAL) {
-               LOCKD_DBG("LCD ON");
-               /* delete all alarm registering */
-               LOCKD_DBG("%d", lockd->alarm_id);
-
-               _lockd_unset_alarms();
-               lockd->alarm_id = -1;
-
-               if(lockd->lock_type == LOCK_TYPE_NONE) {
-                       LOCKD_DBG("Lockscreen type is none, unlock");
-               }
-#ifndef FEATURE_LITE
-               context_unset_changed_callback(CONTEXT_ITEM_MOVEMENT);
-       } else if (val == VCONFKEY_PM_STATE_LCDOFF) {
-               ecore_idler_add(_lockd_smart_alert_idelr_cb, lockd);
-#endif
-       }
-}
-
-static int _show_lock_bg(void)
-{
-       bundle *b;
-       int r = 0;
-       LOCKD_DBG("%s, %d", __func__, __LINE__);
-
-       if (menu_daemon_get_volume_pid() <0) {
-               LOCKD_DBG("volume is not running");
-               return -1;
-       }
-
-       b = bundle_create();
-
-       bundle_add(b, SHOW_LOCK, ISTRUE);
-       r = aul_launch_app(VOLUME_PKG_NAME, b);
-       if(b) {
-               bundle_free(b);
-       }
-
-       return r;
-}
-
-static void _lockd_notify_pm_lcdoff_cb(keynode_t * node, void *data)
-{
-       struct lockd_data *lockd = (struct lockd_data *)data;
-       int val = -1;
-       int lcdoff_source = vconf_keynode_get_int(node);
-       int accessbility_lock_time = 0;
-       int idle_lock_state = VCONFKEY_IDLE_UNLOCK;
-
-       if (lockd == NULL) {
-               LOCKD_ERR("lockd is NULL");
-               return;
-       }
-
-       if (lcdoff_source < 0) {
-               LOCKD_ERR("Cannot get VCONFKEY, error (%d)", lcdoff_source);
-               return;
-       }
-
-       LOCKD_DBG("[ %s ] LCD OFF by lcd off source(%d)", __func__, lcdoff_source);
-
-       idle_lock_state = lockd_get_lock_state();
-
-       if(lcdoff_source == VCONFKEY_PM_LCDOFF_BY_POWERKEY) {
-               LOCKD_DBG("lcd off by powerkey");
-#if (!_FEATURE_LCD_OFF_DBUS) // move to dbus signal handler.
-               if (idle_lock_state == VCONFKEY_IDLE_UNLOCK) {
-                       if (lockd->lock_type == LOCK_TYPE_SECURITY || lockd->lock_type == LOCK_TYPE_NORMAL) {
-                               display_lock_state(LCD_OFF, STAY_CUR_STATE, 0);
-                               _lockd_request_PmQos(REQUEST_PMQOS_DURATION);
-                       }
-               }
-               lockd_launch_app_lockscreen(lockd);
-#endif
-       } else if (lcdoff_source == 3) {
-               LOCKD_DBG("lcd off by proximity sensor..");
-               return;
-       } else {
-               LOCKD_DBG("lcd off by timeout");
-
-               if(idle_lock_state == VCONFKEY_IDLE_LOCK) {
-                       LOCKD_DBG("VCONFKEY is set(not need to set alarm)");
-                       return;
-               }
-
-               if(lockd->alarm_id != -1) {
-                       LOCKD_ERR("Alarm is set yet (alarm_id = %d) : do nothing", lockd->alarm_id);
-                       return;
-               }
-
-               if(vconf_get_int(VCONFKEY_SETAPPL_ACCESSIBILITY_LOCK_TIME_INT, &accessbility_lock_time) < 0) {
-                       LOCKD_ERR("Cannot get VCONFKEY");
-                       accessbility_lock_time = 0;
-               }
-
-               if(accessbility_lock_time == 0) {
-                       LOCKD_ERR("accessbility_lock_time is 0");
-                       _lockd_lauch_lockscreen(-1, lockd);
-                       return;
-               } else {
-                       if(lockd->is_alarm) {
-                               LOCKD_DBG("set alarm %d sec", accessbility_lock_time);
-                               if(_lockd_set_alarm(accessbility_lock_time, lockd) != EINA_TRUE) {
-                                       LOCKD_ERR("_lockd_set_alarm() failed");
-                                       _lockd_lauch_lockscreen(-1, lockd);
-                               }
-                       }
-                       else {
-                               LOCKD_ERR("is_alarm is EINA_FALSE");
-                               _lockd_lauch_lockscreen(-1, lockd);
-                       }
-               }
-       }
-}
-
-static void _lockd_notify_time_changed_cb(keynode_t * node, void *data)
-{
-       int festival_wallpaper = 0;
-       LOCKD_DBG("system time chanded!!");
-
-       if(vconf_get_bool(VCONFKEY_LOCKSCREEN_FESTIVAL_WALLPAPER, &festival_wallpaper) < 0) {
-               LOCKD_ERR("Cannot get VCONFKEY");
-               festival_wallpaper = 0;
-       }
-       LOCKD_DBG("festival wallpaper : %d", festival_wallpaper);
-       if(festival_wallpaper){
-               bundle *b;
-               b = bundle_create();
-               if(b == NULL){
-                       LOCKD_ERR("bundle create failed.\n");
-                       return;
-               }
-               bundle_add(b, "popup_type", "festival");
-               bundle_add(b, "festival_type", "festival_create");
-               aul_launch_app(WALLPAPER_UI_SERVICE_PKG_NAME, b);
-               bundle_free(b);
-       }
-}
-
-static void _lockd_notify_factory_mode_cb(keynode_t * node, void *data)
-{
-       int factory_mode = -1;
-       LOCKD_DBG("Factory mode Notification!!");
-
-       vconf_get_int(VCONFKEY_TELEPHONY_SIM_FACTORY_MODE, &factory_mode);
-       if (factory_mode == VCONFKEY_TELEPHONY_SIM_FACTORYMODE_ON) {
-               LOCKD_DBG("Factory mode ON, lock screen can't be launched..!!");
-               _lockd_set_lock_state(VCONFKEY_IDLE_UNLOCK);
-       }
-}
-
-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;
-       int pm_state = -1;
-       int is_sync = -1;
-
-       if (lockd == NULL) {
-               LOCKD_ERR("lockd is NULL");
-               return;
-       }
-
-       val = lockd_get_lock_state();
-
-       if (val == VCONFKEY_IDLE_UNLOCK) {
-               LOCKD_DBG("unlocked..!!");
-
-               /*Phone lock can't be terminated..!! */
-               if (phone_lock_pid != 0) {
-                       LOCKD_ERR("Security lock[pid = %d] is unlocked why???", phone_lock_pid);
-                       _lockd_set_lock_state(VCONFKEY_IDLE_LOCK);
-                       return;
-               }
-
-               if (vconf_set_bool(VCONFKEY_SAT_NORMAL_PRIORITY_AVAILABLE_BOOL, EINA_FALSE) < 0) {
-                       LOCKD_ERR("Cannot set VCONFKEY");
-               }
-
-               if (lockd->lock_type == LOCK_TYPE_AUTO_LOCK) {
-                       if (!lockd_get_auto_lock_security()) {
-                               LOCKD_ERR("Auto lock security is set... why???");
-                       }
-                       lockd->lock_app_pid = auto_lock_pid;
-                       auto_lock_pid = 0;
-               }
-
-               if (lockd->lock_app_pid > 0) {
-
-                       if (vconf_get_int(VCONFKEY_PM_STATE, &pm_state) < 0) {
-                               LOCKD_ERR("Cannot get VCONFKEY");
-                               pm_state = VCONFKEY_PM_STATE_NORMAL;
-                       }
-                       LOCKD_DBG("pm_state : [%d]..", pm_state);
-                       if (pm_state == VCONFKEY_PM_STATE_NORMAL) {
-                               LOCKD_DBG("terminate lock app..!!");
-                               lockd_process_mgr_terminate_lock_app(lockd->lock_app_pid, 1);
-                               if (lockd->lock_type != LOCK_TYPE_NORMAL) {
-                                       _lockd_play_sound(TRUE);
-                               }
-                               lockd->lock_app_pid = 0;
-                       } else {
-                               vconf_get_int(VCONFKEY_POPSYNC_ACTIVATED_KEY, &is_sync);
-                               if (is_sync == 1) {
-                                       LOCKD_ERR("POP sync is connected");
-                                       LOCKD_DBG("terminate lock app..!!");
-                                       lockd_process_mgr_terminate_lock_app(lockd->lock_app_pid, 1);
-                                       if (lockd->lock_type != LOCK_TYPE_NORMAL) {
-                                               _lockd_play_sound(TRUE);
-                                       }
-                                       lockd->lock_app_pid = 0;
-                               } else if (lock_state_available) {
-                                       LOCKD_ERR("can't unlock because of lcd off");
-                                       _lockd_set_lock_state(VCONFKEY_IDLE_LOCK);
-                               } else {
-                                       LOCKD_ERR("Unlock by exit");
-                                       //we should not re-set lock state because of exit cmd
-                                       lockd_process_mgr_terminate_lock_app(lockd->lock_app_pid, 1);
-                                       lock_state_available = TRUE;
-                               }
-                       }
-               }
-       }else if (val == VCONFKEY_IDLE_LOCK) {
-               display_unlock_state(LCD_OFF, PM_SLEEP_MARGIN);
-       }
-}
-
-static Eina_Bool lockd_set_lock_state_cb(void *data)
-{
-       LOCKD_DBG("%s, %d", __func__, __LINE__);
-       _lockd_set_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 VCONFKEY");
-               return;
-       }
-
-       if (val == TRUE) {
-               /* password verified */
-               /* lockd_unlock_lockscreen(lockd); */
-               lockd_window_mgr_finish_lock(lockd->lockw);
-               _lockd_set_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->lock_type == LOCK_TYPE_OTHER) {
-               LOCKD_DBG("lock app(pid:%d) is destroyed.", pid);
-               lockd_unlock_lockscreen(lockd);
-       }
-#ifdef FEATURE_LITE
-       /* set unlock vconf temporarily in Kiran */
-       else if(pid == lockd->lock_app_pid){
-               int idle_lock_state = 0;
-               LOCKD_DBG("lock app(pid:%d) is destroyed.", pid);
-               idle_lock_state = lockd_get_lock_state();
-               if(idle_lock_state != VCONFKEY_IDLE_UNLOCK){
-                       LOCKD_ERR("lock app terminated unexpectedly, and lock state is not unlock");
-                       lockd_unlock_lockscreen(lockd);
-               }
-
-               display_unlock_state(LCD_OFF, PM_SLEEP_MARGIN);
-       }
-#endif
-       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) {
-               //FIXME sometimes show cb is not called.
-               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)) {
-               lockd_window_set_scroll_property(lockd->lockw, lockd->lock_type);
-               if (lockd->lock_type > LOCK_TYPE_SECURITY) {
-                       ecore_idler_add(lockd_set_lock_state_cb, NULL);
-               }
-       }
-       return EINA_FALSE;
-}
-
-static Eina_Bool _lockd_play_idelr_cb(void *data)
-{
-       LOCKD_DBG("%s, %d", __func__, __LINE__);
-       _lockd_play_sound(FALSE);
-       return ECORE_CALLBACK_CANCEL;
-}
-
-static int lockd_launch_app_lockscreen(struct lockd_data *lockd)
-{
-       LOCKD_DBG("launch app lock screen");
-
-       int call_state = -1, factory_mode = -1, test_mode = -1;
-       int r = 0;
-       int lcdoff_source = 0;
-       int focus_win_pid = 0;
-       int pw_type = 0;
-       int automatic_unlock = 0;
-
-       //PM LOCK - don't go to sleep
-       display_lock_state(LCD_OFF, STAY_CUR_STATE, 0);
-
-       vconf_get_int(VCONFKEY_TELEPHONY_SIM_FACTORY_MODE, &factory_mode);
-       if (factory_mode == VCONFKEY_TELEPHONY_SIM_FACTORYMODE_ON) {
-               LOCKD_DBG("Factory mode ON, lock screen can't be launched..!!");
-               goto launch_out;
-       }
-       vconf_get_int(VCONFKEY_TESTMODE_SCREEN_LOCK, &test_mode);
-       if (test_mode == VCONFKEY_TESTMODE_SCREEN_LOCK_DISABLE) {
-               LOCKD_DBG("Test mode ON, lock screen can't be launched..!!");
-               goto launch_out;
-       }
-
-       if (lockd->is_first_boot == TRUE) {
-               if(vconf_get_int(VCONFKEY_PWLOCK_STATE, &pw_type) < 0)
-               {
-                       LOCKD_ERR("vconf_get_int() failed");
-                       pw_type = VCONFKEY_PWLOCK_RUNNING_UNLOCK;
-               }
-               if(pw_type == VCONFKEY_PWLOCK_BOOTING_LOCK || pw_type == VCONFKEY_PWLOCK_RUNNING_LOCK) {
-                       LOCKD_ERR("First boot & pwlock state[%d], lock screen can't be launched..!!", pw_type);
-                       goto launch_out;
-               }
-       }
-
-       if (lockd->lock_type == LOCK_TYPE_NONE) {
-               LOCKD_DBG("Lock screen type is None..!!");
-               goto launch_out;
-       }
-
-       /* Get Call state */
-       if(vconf_get_int(VCONFKEY_PM_LCDOFF_SOURCE, &lcdoff_source) < 0)
-       {
-               LOCKD_ERR("Cannot get VCONFKEY");
-       }
-       focus_win_pid = lockd_window_mgr_get_focus_win_pid();
-       vconf_get_int(VCONFKEY_CALL_STATE, &call_state);
-       if(lcdoff_source == VCONFKEY_PM_LCDOFF_BY_POWERKEY) {
-               if ((call_state != VCONFKEY_CALL_OFF) && (lockd->lock_type != LOCK_TYPE_SECURITY)) {
-                       if (focus_win_pid >0) {
-                               if (lockd_process_mgr_check_call(focus_win_pid) == TRUE) {
-                                       LOCKD_DBG("Call is FG => not allow to launch lock screen!!");
-                                       goto launch_out;
-                               } else {
-                                       LOCKD_DBG("Call is BG => allow to launch lock screen!!");
-                               }
-                       }
-               }
-       } else {
-               if ((call_state != VCONFKEY_CALL_OFF) && (lockd->back_to_app == FALSE)) {
-                       LOCKD_DBG("Current call state(%d) does not allow to launch lock screen.",
-                            call_state);
-                       goto launch_out;
-               }
-       }
-
-       if ((lockd->lock_type == LOCK_TYPE_NORMAL) || (lockd->lock_type == LOCK_TYPE_OTHER)) {
-               if (lockd_process_mgr_check_lock(lockd->lock_app_pid) == TRUE) {
-                       LOCKD_DBG("Lock Screen App is already running.");
-                       display_unlock_state(LCD_OFF, PM_SLEEP_MARGIN);
-                       return 1;
-               }
-
-#if _FEATURE_SCOVER
-               if (lockd->hall_status == HALL_COVERED_STATUS) {
-                       vconf_get_bool(VCONFKEY_SETAPPL_ACCESSORY_AUTOMATIC_UNLOCK, &automatic_unlock);
-                       LOCKD_DBG("hall status : %d, lockd->hall_status : %d, automatic_unlock : %d", HALL_COVERED_STATUS, lockd->hall_status, automatic_unlock);
-                       if (automatic_unlock == 1) {
-                               LOCKD_DBG("Don't lauch lockscreen because of non security with scover");
-                               display_unlock_state(LCD_OFF, PM_SLEEP_MARGIN);
-                               return 1;
-                       }
-               }
-#endif
-       }
-
-       switch (lockd->lock_type) {
-
-               case LOCK_TYPE_NORMAL:
-                       _lockd_set_lock_state(VCONFKEY_IDLE_LAUNCHING_LOCK);
-
-                       if (lockd->lock_app_pid > 0) {
-                               LOCKD_ERR("Lock Screen App is remained, pid[%d].", lockd->lock_app_pid);
-                               lockd_process_mgr_kill_lock_app(lockd->lock_app_pid);
-                               lockd->lock_app_pid = 0;
-                       }
-
-                       lockd->lock_app_pid =
-                           lockd_process_mgr_start_normal_lock(lockd, lockd_app_dead_cb);
-                       if (lockd->lock_app_pid < 0) {
-                               goto launch_out;
-                       }
-                       break;
-
-               case LOCK_TYPE_SECURITY:
-                       vconf_set_bool(VCONFKEY_LOCKSCREEN_PHONE_LOCK_VERIFICATION, FALSE);
-
-                       if (phone_lock_pid > 0) {
-                               LOCKD_DBG("phone lock App is already running.");
-                               if ((lockd->request_recovery == FALSE) && (lockd->back_to_app == FALSE)) {
-                                       display_unlock_state(LCD_OFF, PM_SLEEP_MARGIN);
-                                       return 1;
-                               }
-                       }
-                       _lockd_set_lock_state(VCONFKEY_IDLE_LAUNCHING_LOCK);
-
-                       /* TO DO : Recovery should be checked by EAS interface later */
-                       /* After getting EAS interface, we should remove lockd->request_recovery */
-                       if (lockd->request_recovery == TRUE) {
-                               lockd->phone_lock_app_pid =
-                                   lockd_process_mgr_start_recovery_lock();
-                               lockd->request_recovery = FALSE;
-                       } else if (lockd->back_to_app == TRUE) {
-                               lockd->phone_lock_app_pid =
-                                   lockd_process_mgr_start_back_to_app_lock();
-                               lockd->back_to_app = FALSE;
-                       } else {
-                               lockd->phone_lock_app_pid =
-                                   lockd_process_mgr_start_phone_lock();
-                       }
-                       phone_lock_pid = lockd->phone_lock_app_pid;
-                       LOCKD_DBG("%s, %d, phone_lock_pid = %d", __func__, __LINE__,
-                                 phone_lock_pid);
-                       lockd_window_set_phonelock_pid(lockd->lockw, phone_lock_pid);
-                       if (phone_lock_pid > 0) {
-                               if(starter_dbus_set_oomadj(phone_lock_pid, OOM_ADJ_VALUE_DEFAULT) < 0){
-                                       LOCKD_ERR("failed to send oom dbus signal");
-                               }
-                               if(lockd_process_mgr_check_home(focus_win_pid)) {
-                                       if(vconf_set_bool(VCONFKEY_SAT_NORMAL_PRIORITY_AVAILABLE_BOOL, EINA_TRUE) < 0) {
-                                               LOCKD_ERR("Cannot get VCONFKEY");
-                                       }
-                               }
-                       }
-                       return 1;
-                       break;
-
-               case LOCK_TYPE_AUTO_LOCK:
-                       vconf_set_bool(VCONFKEY_LOCKSCREEN_PHONE_LOCK_VERIFICATION, FALSE);
-
-                       if (auto_lock_pid > 0) {
-                               LOCKD_DBG("Auto lock App is already running.");
-                               if (lockd->back_to_app == FALSE) {
-                                       display_unlock_state(LCD_OFF, PM_SLEEP_MARGIN);
-                                       return 1;
-                               }
-                       }
-                       _lockd_set_lock_state(VCONFKEY_IDLE_LAUNCHING_LOCK);
-
-                       if (lockd->back_to_app == TRUE) {
-                               auto_lock_pid = lockd_process_mgr_start_back_to_app_lock();
-                               lockd->back_to_app = FALSE;
-                       } else {
-                               auto_lock_pid = lockd_process_mgr_start_phone_lock();
-                       }
-                       LOCKD_DBG("%s, %d, Auto_lock_pid = %d", __func__, __LINE__, auto_lock_pid);
-
-                       if (auto_lock_pid > 0) {
-                               if(starter_dbus_set_oomadj(auto_lock_pid, OOM_ADJ_VALUE_DEFAULT) < 0){
-                                       LOCKD_ERR("failed to send oom dbus signal");
-                               }
-                               if(lockd_process_mgr_check_home(focus_win_pid)) {
-                                       if(vconf_set_bool(VCONFKEY_SAT_NORMAL_PRIORITY_AVAILABLE_BOOL, EINA_TRUE) < 0) {
-                                               LOCKD_ERR("Cannot get VCONFKEY");
-                                       }
-                               }
-                       }
-                       return 1;
-                       break;
-
-               default:
-                       if (lockd->lock_app_pid > 0) {
-                               LOCKD_ERR("Lock Screen App is remained, pid[%d].", lockd->lock_app_pid);
-                               lockd_process_mgr_kill_lock_app(lockd->lock_app_pid);
-                               lockd->lock_app_pid = 0;
-                       }
-                       if(lcdoff_source == VCONFKEY_PM_LCDOFF_BY_POWERKEY)
-                               ecore_idler_add(_lockd_play_idelr_cb, NULL);
-
-                       lockd->lock_app_pid =
-                           lockd_process_mgr_start_lock(lockd, lockd_app_dead_cb,
-                                                        lockd->lock_type);
-                       if (lockd->lock_app_pid < 0) {
-                               goto launch_out;
-                       }
-                       /* reset window mgr before start win mgr  */
-                       lockd_window_mgr_finish_lock(lockd->lockw);
-                       lockd_window_mgr_ready_lock(lockd, lockd->lockw, lockd_app_create_cb,
-                                                   lockd_app_show_cb);
-                       break;
-       }
-
-
-       if (lockd->lock_app_pid > 0) {
-               if(starter_dbus_set_oomadj(lockd->lock_app_pid, OOM_ADJ_VALUE_DEFAULT) < 0){
-                       LOCKD_ERR("failed to send oom dbus signal");
-               }
-               if(lockd_process_mgr_check_home(focus_win_pid)) {
-                       if(vconf_set_bool(VCONFKEY_SAT_NORMAL_PRIORITY_AVAILABLE_BOOL, EINA_TRUE) < 0) {
-                               LOCKD_ERR("Cannot get VCONFKEY");
-                       }
-               }
-       }
-       return 1;
-
-
- launch_out:
-       _lockd_set_lock_state(VCONFKEY_IDLE_UNLOCK);
-       display_unlock_state(LCD_OFF, PM_SLEEP_MARGIN);
-       return 0;
-}
-
-static void lockd_unlock_lockscreen(struct lockd_data *lockd)
-{
-       LOCKD_DBG("unlock lock screen");
-       lockd->lock_app_pid = 0;
-
-       _lockd_set_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 };  /* 1.2 sec */
-
-       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);   /* support above version 2.6.27 */
-       if (fd < 0) {
-               if (errno == EINVAL) {
-                       fd = socket(AF_UNIX, SOCK_STREAM, 0);
-                       if (fd < 0) {
-                               LOCKD_ERR
-                                   ("second chance - socket create error");
-                               return -1;
-                       }
-               } else {
-                       LOCKD_ERR("socket error");
-                       return -1;
-               }
-       }
-
-       bzero(&saddr, sizeof(saddr));
-       saddr.sun_family = AF_UNIX;
-
-       strncpy(saddr.sun_path, PHLOCK_SOCK_PREFIX, sizeof(saddr.sun_path)-1);
-       saddr.sun_path[strlen(PHLOCK_SOCK_PREFIX)] = 0;
-
-       unlink(saddr.sun_path);
-
-       if (bind(fd, (struct sockaddr *)&saddr, sizeof(saddr)) < 0) {
-               LOCKD_ERR("bind error");
-               close(fd);
-               return -1;
-       }
-
-       if (chmod(saddr.sun_path, (S_IRWXU | S_IRWXG | S_IRWXO)) < 0) {
-               /* Flawfinder: ignore */
-               LOCKD_ERR("failed to change the socket permission");
-               close(fd);
-               return -1;
-       }
-
-       lockd_set_sock_option(fd, 0);
-
-       if (listen(fd, 10) == -1) {
-               LOCKD_ERR("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_ERR("Cannot open cmdline on pid[%d]", pid);
-               return NULL;
-       }
-
-       cmdline = malloc(32);
-       if (cmdline == NULL) {
-               LOCKD_ERR("%s", "Out of memory");
-               fclose(fp);
-               return NULL;
-       }
-
-       bzero(cmdline, memsize);
-       if (fgets(cmdline, 32, fp) == NULL) {
-               LOCKD_ERR("%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_ERR("%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 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_ERR("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_ERR("accept error");
-               return -1;
-       }
-
-       if (getsockopt(clifd, SOL_SOCKET, SO_PEERCRED, &cr, (socklen_t *) & cl)
-           < 0) {
-               LOCKD_ERR("peer information error");
-               close(clifd);
-               return -1;
-       }
-       LOCKD_ERR("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);
-
-       /* receive single packet from socket */
-       len = recv(clifd, cmd, PHLOCK_SOCK_MAXBUFF, 0);
-
-       if (len < 0) {
-               LOCKD_ERR("recv error, read number is less than zero");
-               close(clifd);
-               return -1;
-       }
-
-       cmd[PHLOCK_SOCK_MAXBUFF - 1] = '\0';
-
-       LOCKD_ERR("cmd %s", cmd);
-
-       /* Read command line of the PID from proc fs */
-       cmdline = lockd_read_cmdline_from_proc(cr.pid);
-       if (cmdline == NULL) {
-               /* It's weired. no file in proc file system, */
-               LOCKD_ERR("Error on opening /proc/%d/cmdline", cr.pid);
-               close(clifd);
-               return -1;
-       }
-       LOCKD_SECURE_ERR("/proc/%d/cmdline : %s", cr.pid, cmdline);
-
-       if (!strncmp(cmd, PHLOCK_UNLOCK_CMD, strlen(cmd))) {
-           if (!strncmp(cmdline, PHLOCK_APP_CMDLINE, strlen(cmdline))) {
-                       if (lockd->lock_type == LOCK_TYPE_SECURITY) {
-                               LOCKD_ERR("phone_lock_pid : %d vs cr.pid : %d", phone_lock_pid, cr.pid);
-                               if (phone_lock_pid == cr.pid) {
-                                       LOCKD_SECURE_ERR("pid [%d] %s is verified, unlock..!!\n", cr.pid,
-                                                 cmdline);
-                                       lockd_process_mgr_terminate_phone_lock(phone_lock_pid);
-                                       phone_lock_pid = 0;
-                                       _lockd_play_sound(TRUE);
-                                       vconf_set_bool(VCONFKEY_LOCKSCREEN_PHONE_LOCK_VERIFICATION, TRUE);
-                               }
-                       } else if (lockd->lock_type == LOCK_TYPE_AUTO_LOCK) {
-                               LOCKD_ERR("auto_lock_pid : %d vs cr.pid : %d", auto_lock_pid, cr.pid);
-                               if (auto_lock_pid == cr.pid) {
-                                       LOCKD_SECURE_ERR("pid [%d] %s is verified, unlock..!!\n", cr.pid,
-                                                 cmdline);
-                                       lockd_process_mgr_terminate_phone_lock(auto_lock_pid);
-                                       auto_lock_pid = 0;
-                                       _lockd_play_sound(TRUE);
-                                       lockd_window_mgr_finish_lock(lockd->lockw);
-                                       _lockd_set_lock_state(VCONFKEY_IDLE_UNLOCK);
-                               }
-                       }
-           }
-#if 0
-               else if (!strncmp(cmd, LOCK_EXIT_CMD, strlen(cmd))) {
-                   LOCKD_ERR("[%s] for exit", LOCK_EXIT_CMD);
-                       //we should not re-set lock state because of exit cmd for scover view.
-                       lock_state_available = FALSE;
-                       _lockd_set_lock_state(VCONFKEY_IDLE_UNLOCK);
-           }
-#endif
-       } else if (!strncmp(cmd, LOCK_EXIT_CMD, strlen(cmd))) {
-                       if ((!strncmp(cmdline, PHLOCK_APP_CMDLINE, strlen(cmdline))) ||
-                               (!strncmp(cmdline, VOLUNE_APP_CMDLINE, strlen(cmdline)))) {
-                               //we should not re-set lock state because of exit cmd for scover view.
-                           LOCKD_ERR("[%s] for exit", LOCK_EXIT_CMD);
-                               lock_state_available = FALSE;
-                               _lockd_set_lock_state(VCONFKEY_IDLE_UNLOCK);
-                       }
-    } else if ((!strncmp(cmd, PHLOCK_UNLOCK_RESET_CMD, strlen(cmd)))
-               && (!strncmp(cmdline, OMA_DRM_AGENT_CMDLINE, strlen(cmdline)))) {
-               LOCKD_SECURE_ERR("%s request %s \n", cmdline, cmd);
-               if(phone_lock_pid > 0) {
-                       LOCKD_SECURE_ERR("pid [%d] %s is verified, unlock..!!\n", cr.pid,
-                                 cmdline);
-                       lockd_process_mgr_terminate_phone_lock(phone_lock_pid);
-                       phone_lock_pid = 0;
-                       _lockd_play_sound(TRUE);
-                       vconf_set_bool(VCONFKEY_LOCKSCREEN_PHONE_LOCK_VERIFICATION, TRUE);
-                       // reset lockscreen type
-                       if (vconf_set_int(VCONFKEY_SETAPPL_SCREEN_LOCK_TYPE_INT, SETTING_SCREEN_LOCK_TYPE_SWIPE) < 0) {
-                               LOCKD_ERR("%s set to %d is failed. error \n",
-                                       VCONFKEY_SETAPPL_SCREEN_LOCK_TYPE_INT, SETTING_SCREEN_LOCK_TYPE_SWIPE);
-                       }
-               }
-       } else if (!strncmp(cmd, PHLOCK_LAUNCH_CMD, strlen(cmd))) {
-               if (!strncmp(cmdline, MDM_APP_CMDLINE, strlen(cmdline))) {
-                       LOCKD_ERR("%s request %s \n", cmdline, cmd);
-                       if (vconf_get_int(VCONFKEY_EAS_RECOVERY_MODE, &recovery_state) < 0) {
-                               LOCKD_ERR("Cannot get vconfkey", VCONFKEY_EAS_RECOVERY_MODE);
-                               lockd->request_recovery = FALSE;
-                       } else if (recovery_state == 1) {
-                               LOCKD_ERR("recovery mode : %d \n", recovery_state);
-                               lockd->request_recovery = TRUE;
-                       } else {
-                               lockd->request_recovery = FALSE;
-                       }
-               }
-               if (lockd->lock_type == LOCK_TYPE_SECURITY) {
-                       lockd_launch_app_lockscreen(lockd);
-               } else {
-                       lockd->request_recovery = FALSE;
-               }
-       } else if (!strncmp(cmd, HOME_RAISE_CMD, strlen(cmd))) {
-               if ((!strncmp(cmdline, VOICE_CALL_APP_CMDLINE, strlen(cmdline)))
-                       || (!strncmp(cmdline, VIDEO_CALL_APP_CMDLINE, strlen(cmdline)))) {
-                       LOCKD_SECURE_ERR("%s request %s \n", cmdline, cmd);
-                       menu_daemon_open_homescreen(NULL);
-               }
-       } else if (!strncmp(cmd, LOCK_SHOW_CMD, strlen(cmd))) {
-               if ((!strncmp(cmdline, VOICE_CALL_APP_CMDLINE, strlen(cmdline)))
-                       || (!strncmp(cmdline, VIDEO_CALL_APP_CMDLINE, strlen(cmdline)))) {
-                       LOCKD_SECURE_ERR("%s request %s \n", cmdline, cmd);
-                       lockd->back_to_app = TRUE;
-               }
-               if ((lockd->lock_type == LOCK_TYPE_SECURITY)
-                       || ((lockd->lock_type == LOCK_TYPE_AUTO_LOCK) && (lockd_get_auto_lock_security()))){
-                       lockd_launch_app_lockscreen(lockd);
-               } else {
-                       lockd->back_to_app = FALSE;
-               }
-       } else if (!strncmp(cmd, LOCK_LAUNCH_CMD, strlen(cmd))) {
-               LOCKD_SECURE_ERR("%s request %s \n", cmdline, cmd);
-               if (!strncmp(cmdline, VOICE_CALL_APP_CMDLINE, strlen(cmdline))) {
-                       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_ERR("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_ERR("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_notify_bt_device_connected_status_cb(keynode_t * node, void *data)
-{
-       int is_connected = 0;
-       struct lockd_data *lockd = (struct lockd_data *)data;
-
-       vconf_get_bool(VCONFKEY_SETAPPL_AUTO_LOCK_DEVICE_STATUS_BOOL , &is_connected);
-       LOCKD_WARN("BT connect status is changed to [%d]", is_connected);
-
-       if (is_connected) {
-               if (lockd_start_bt_monitor() < 0) {
-                       LOCKD_ERR("Fail starter BT monitor");
-               }
-       } else {
-               lockd_stop_bt_monitor();
-               lockd_change_security_auto_lock(is_connected);
-       }
-}
-
-
-static void _lockd_notify_lock_type_cb(keynode_t * node, void *data)
-{
-       int lock_type = -1;
-       struct lockd_data *lockd = (struct lockd_data *)data;
-       LOCKD_DBG("lock type is changed..!!");
-
-       lock_type = lockd_get_lock_type();
-
-       if ((lockd->lock_type != LOCK_TYPE_AUTO_LOCK) && (lock_type == LOCK_TYPE_AUTO_LOCK)) {
-
-               int is_connected = 0;
-
-               LOCKD_WARN("Auto Lock is set ON..!!");
-
-               vconf_get_bool(VCONFKEY_SETAPPL_AUTO_LOCK_DEVICE_STATUS_BOOL , &is_connected);
-               LOCKD_WARN("BT connect status is [%d]", is_connected);
-
-               if (is_connected) {
-                       if (lockd_start_bt_monitor() < 0) {
-                               LOCKD_ERR("Fail starter BT monitor");
-                       }
-               } else {
-                       lockd_change_security_auto_lock(is_connected);
-               }
-
-               if (vconf_notify_key_changed
-                       (VCONFKEY_SETAPPL_AUTO_LOCK_DEVICE_STATUS_BOOL, _lockd_notify_bt_device_connected_status_cb, lockd) != 0) {
-                       LOCKD_ERR("Fail vconf_notify_key_changed : VCONFKEY");
-               }
-       } else if ((lockd->lock_type == LOCK_TYPE_AUTO_LOCK) && (lock_type != LOCK_TYPE_AUTO_LOCK)) {
-
-               LOCKD_WARN("Auto Lock is set OFF..!!");
-
-               lockd_stop_bt_monitor();
-
-               if (vconf_ignore_key_changed
-                   (VCONFKEY_SETAPPL_AUTO_LOCK_DEVICE_STATUS_BOOL, _lockd_notify_bt_device_connected_status_cb) != 0) {
-                       LOCKD_ERR("Fail to unregister");
-               }
-       }
-       lockd->lock_type = lock_type;
-}
-
-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");
-       }
-
-       if (vconf_notify_key_changed
-           (VCONFKEY_PM_LCDOFF_SOURCE, _lockd_notify_pm_lcdoff_cb, lockd) != 0) {
-               LOCKD_ERR("Fail vconf_notify_key_changed : VCONFKEY");
-       }
-
-       if (vconf_notify_key_changed
-           (VCONFKEY_TELEPHONY_SIM_FACTORY_MODE, _lockd_notify_factory_mode_cb, NULL) != 0) {
-               LOCKD_ERR("Fail vconf_notify_key_changed : VCONFKEY");
-       }
-#if 0
-       if (vconf_notify_key_changed
-               (VCONFKEY_SYSTEM_TIME_CHANGED, _lockd_notify_time_changed_cb, NULL) != 0) {
-               LOCKD_ERR("Fail vconf_notify_key_changed : VCONFKEY");
-       }
-#endif
-       if (vconf_notify_key_changed
-           (VCONFKEY_SETAPPL_SCREEN_LOCK_TYPE_INT, _lockd_notify_lock_type_cb, lockd) != 0) {
-               LOCKD_ERR("Fail vconf_notify_key_changed : VCONFKEY");
-       }
-
-       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 VCONFKEY");
-                       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 " );
-                       }
-               } else {
-                       LOCKD_ERR
-                           ("Fail vconf_notify_key_changed " );
-               }
-       }
-
-       if (vconf_notify_key_changed
-           (VCONFKEY_IDLE_LOCK_STATE,
-            _lockd_notify_lock_state_cb,
-            lockd) != 0) {
-               LOCKD_ERR
-                   ("[Error] vconf notify : lock state");
-       }
-}
-
-
-static Eina_Bool lockd_init_alarm(void *data)
-{
-       struct lockd_data *lockd = (struct lockd_data *)data;
-
-       if(!lockd) {
-               LOCKD_ERR("parameter is NULL");
-               return EINA_FALSE;
-       }
-
-       LOCKD_DBG("%s, %d", __func__, __LINE__);
-
-       int ret_val = 0;
-       /* alarm id initialize */
-       lockd->alarm_id = -1;
-
-       g_type_init();
-       ret_val = alarmmgr_init(PACKAGE_NAME);
-       if(ret_val != ALARMMGR_RESULT_SUCCESS) {
-               LOCKD_ERR("alarmmgr_init() failed(%d)", ret_val);
-               return EINA_FALSE;
-       }
-       ret_val = alarmmgr_set_cb((alarm_cb_t)_lockd_lauch_lockscreen, lockd);
-       if(ret_val != ALARMMGR_RESULT_SUCCESS) {
-               LOCKD_ERR("alarmmgr_init() failed");
-               return EINA_FALSE;
-       }
-
-       LOCKD_DBG("alarm init success");
-       return EINA_TRUE;
-}
-
-static int lockd_init_hall_signal(void *data)
-{
-       E_DBus_Connection *conn;
-       E_DBus_Signal_Handler *handler;
-
-       struct lockd_data *lockd = (struct lockd_data *)data;
-       if(!lockd) {
-               LOCKD_ERR("parameter is NULL");
-               return EINA_FALSE;
-       }
-
-       conn = e_dbus_bus_get(DBUS_BUS_SYSTEM);
-       if (conn == NULL) {
-               LOCKD_ERR("e_dbus_bus_get error");
-               return -1;
-       }
-       lockd->hall_conn = conn;
-
-#if 0
-       int r;
-       r = e_dbus_request_name(conn, BUS_NAME, 0, NULL, NULL);
-       if (!r) {
-               LOCKD_ERR("e_dbus_request_name erro");
-               return -1;
-       }
-#endif
-
-       handler = e_dbus_signal_handler_add(conn, NULL, DEVICED_PATH_HALL,
-                                                               DEVICED_INTERFACE_HALL, SIGNAL_HALL_STATE,
-                                                               _lockd_on_changed_receive, lockd);
-       if (handler == NULL) {
-               LOCKD_ERR("e_dbus_signal_handler_add error");
-               return -1;
-       }
-       lockd->hall_handler = handler;
-       /* S-Cover Lock : Signal <!-- END --> */
-}
-
-
-
-static Eina_Bool _lockd_launch_lockscreen_by_pwr_key(void *data)
-{
-       LOCKD_DBG("%s, %d", __func__, __LINE__);
-
-       int idle_lock_state = VCONFKEY_IDLE_UNLOCK;
-       struct lockd_data *lockd = (struct lockd_data *)data;
-
-       LOCKD_DBG("lcd off by powerkey");
-
-       if (idle_lock_state == VCONFKEY_IDLE_UNLOCK) {
-               if (lockd->lock_type == LOCK_TYPE_SECURITY || lockd->lock_type == LOCK_TYPE_NORMAL) {
-                       display_lock_state(LCD_OFF, STAY_CUR_STATE, 0);
-                       _lockd_request_PmQos(REQUEST_PMQOS_DURATION);
-               }
-       }
-       lockd_launch_app_lockscreen(lockd);
-       return ECORE_CALLBACK_CANCEL;
-}
-
-
-static void _lockd_receive_lcd_off(void *data, DBusMessage *msg)
-{
-       DBusError err;
-       int r;
-       int idle_lock_state = VCONFKEY_IDLE_UNLOCK;
-
-       struct lockd_data *lockd = (struct lockd_data *)data;
-
-       if (lockd == NULL) {
-               LOCKD_ERR("lockd is NULL");
-               return;
-       }
-
-       LOCKD_DBG("lcd off signal is received");
-
-       r = dbus_message_is_signal(msg, DEVICED_INTERFACE_LCD_OFF, METHOD_LCD_OFF_NAME);
-       if (!r) {
-               LOCKD_ERR("dbus_message_is_signal error");
-               return;
-       }
-
-       LOCKD_DBG("%s - %s", DEVICED_INTERFACE_LCD_OFF, METHOD_LCD_OFF_NAME);
-
-#if 0 //need to check if lockscreen is displayed before lcd off.
-       idle_lock_state = lockd_get_lock_state();
-
-       LOCKD_DBG("lcd off by powerkey");
-
-       if (idle_lock_state == VCONFKEY_IDLE_UNLOCK) {
-               if (lockd->lock_type == LOCK_TYPE_SECURITY || lockd->lock_type == LOCK_TYPE_NORMAL) {
-                       _lockd_request_PmQos(REQUEST_PMQOS_DURATION);
-                       display_lock_state(LCD_OFF, STAY_CUR_STATE, 0);
-               }
-       }
-       lockd_launch_app_lockscreen(lockd);
-#else
-       ecore_idler_add(_lockd_launch_lockscreen_by_pwr_key, lockd);
-#endif
-}
-
-
-static int lockd_init_lcd_off_signal(void *data)
-{
-       E_DBus_Connection *conn;
-       E_DBus_Signal_Handler *handler;
-
-       struct lockd_data *lockd = (struct lockd_data *)data;
-       if(!lockd) {
-               LOCKD_ERR("parameter is NULL");
-               return EINA_FALSE;
-       }
-
-       conn = e_dbus_bus_get(DBUS_BUS_SYSTEM);
-       if (conn == NULL) {
-               LOCKD_ERR("e_dbus_bus_get error");
-               return -1;
-       }
-       lockd->display_conn = conn;
-
-       handler = e_dbus_signal_handler_add(conn, NULL, DEVICED_PATH_LCD_OFF,
-                                                               DEVICED_INTERFACE_LCD_OFF, METHOD_LCD_OFF_NAME,
-                                                               _lockd_receive_lcd_off, lockd);
-       if (handler == NULL) {
-               LOCKD_ERR("e_dbus_signal_handler_add error");
-               return -1;
-       }
-       lockd->display_handler = handler;
-}
-
-void lockd_check_vconf_festival_wallpaper(void *data){
-       struct lockd_data *lockd = (struct lockd_data *)data;
-
-       if (lockd == NULL) {
-               LOCKD_ERR("lockd is NULL");
-               return;
-       }
-       int festival_wallpaper = 0;
-
-       if(vconf_get_bool(VCONFKEY_LOCKSCREEN_FESTIVAL_WALLPAPER, &festival_wallpaper) < 0) {
-               LOCKD_ERR("Cannot get VCONFKEY");
-               festival_wallpaper = 0;
-       }
-       LOCKD_DBG("festival wallpaper : %d", festival_wallpaper);
-       if(festival_wallpaper){
-               bundle *b;
-               b = bundle_create();
-               if(b == NULL){
-                       LOCKD_ERR("bundle create failed.\n");
-                       return;
-               }
-               bundle_add(b, "popup_type", "festival");
-               bundle_add(b, "festival_type", "festival_create");
-               aul_launch_app(WALLPAPER_UI_SERVICE_PKG_NAME, b);
-               bundle_free(b);
-       }
-
-}
-
-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__);
-
-       /*init and check hall status*/
-       e_dbus_init();
-
-
-#if _FEATURE_SCOVER
-       lockd->hall_status = -1;
-
-       lockd->hall_status = lockd_get_hall_status();
-       LOCKD_DBG(" >>> hall_status : %d", lockd->hall_status);
-
-       if (lockd_init_hall_signal(lockd) < 0) {
-               LOCKD_ERR("Hall signal can't be used.");
-               lockd->hall_status = -1;
-       }
-#endif
-
-#if _FEATURE_LCD_OFF_DBUS
-       if (lockd_init_lcd_off_signal(lockd) < 0) {
-               LOCKD_ERR("LCD off signal can't be used.");
-               lockd->hall_status = -1;
-       }
-#endif
-
-       /*init sensor for smart alert*/
-       //lockd->is_sensor = lockd_init_sensor(lockd);
-
-       /* register vconf notification */
-       lockd_init_vconf(lockd);
-       lockd_process_mgr_init();
-       /* init alarm manager */
-       lockd_check_vconf_festival_wallpaper(lockd);
-
-       lockd->is_alarm = lockd_init_alarm(lockd);
-
-//     lockd_set_festival_wallpaper_alarm(lockd);
-
-       /* Initialize socket */
-       r = lockd_init_sock(lockd);
-       if (r < 0) {
-               LOCKD_ERR("lockd init socket failed: %d", r);
-       }
-
-       /* Create internal 1x1 window */
-       lockd->lockw = lockd_window_init();
-
-       aul_listen_app_dead_signal(lockd_app_dead_cb, data);
-
-#if 0 // for booting time
-       if(feedback_initialize() != FEEDBACK_ERROR_NONE) {
-               LOCKD_ERR("[CAUTION][ERROR] feedback_initialize() is failed..!!");
-       }
-#endif
-}
-
-int start_lock_daemon(int launch_lock, int is_first_boot)
-{
-       struct lockd_data *lockd = NULL;
-       int recovery_state = -1;
-       int first_boot = 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);
-
-       lockd->lock_type = lockd_get_lock_type();
-       lockd->back_to_app = FALSE;
-
-       if (lockd->lock_type == LOCK_TYPE_NONE)
-               return -1;
-       if (lockd->lock_type == LOCK_TYPE_SECURITY) {
-               if (vconf_get_int(VCONFKEY_EAS_RECOVERY_MODE, &recovery_state) < 0) {
-                       LOCKD_ERR("Cannot get vconfkey" );
-                       lockd->request_recovery = FALSE;
-               } else if (recovery_state == 1) {
-                       LOCKD_DBG("recovery mode : %d \n", recovery_state);
-                       lockd->request_recovery = TRUE;
-               } else {
-                       lockd->request_recovery = FALSE;
-               }
-       } else {
-               lockd->request_recovery = FALSE;
-       }
-       if (lockd->lock_type == LOCK_TYPE_AUTO_LOCK) {
-               int is_connected = 0;
-
-               vconf_get_bool(VCONFKEY_SETAPPL_AUTO_LOCK_DEVICE_STATUS_BOOL , &is_connected);
-               LOCKD_WARN("BT connect status is [%d]", is_connected);
-
-               if (is_connected) {
-                       if (lockd_start_bt_monitor() < 0) {
-                               LOCKD_ERR("Fail starter BT monitor");
-                       }
-               } else {
-                       lockd_change_security_auto_lock(is_connected);
-               }
-
-               if (vconf_notify_key_changed
-                       (VCONFKEY_SETAPPL_AUTO_LOCK_DEVICE_STATUS_BOOL, _lockd_notify_bt_device_connected_status_cb, lockd) != 0) {
-                       LOCKD_ERR("Fail vconf_notify_key_changed : VCONFKEY");
-               }
-       }
-
-       vconf_set_bool(VCONFKEY_SAT_NORMAL_PRIORITY_AVAILABLE_BOOL, EINA_TRUE);
-
-       if (launch_lock == FALSE) {
-               LOCKD_ERR("Don't launch lockscreen..");
-               return 0;
-       }
-
-       lockd->is_first_boot = is_first_boot;
-       if (lockd->is_first_boot == TRUE){
-               LOCKD_ERR("first_boot : %d \n", lockd->is_first_boot);
-               return 0;
-       }
-
-       ret = lockd_launch_app_lockscreen(lockd);
-
-       if(feedback_initialize() != FEEDBACK_ERROR_NONE) {
-               LOCKD_ERR("[CAUTION][ERROR] feedback_initialize() is failed..!!");
-       }
-
-       return ret;
-}
diff --git a/src/lockd-bt.c b/src/lockd-bt.c
deleted file mode 100755 (executable)
index f817923..0000000
+++ /dev/null
@@ -1,227 +0,0 @@
-/*
- * 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 <bluetooth.h>
-
-#include "lockd-debug.h"
-#include "lockd-bt.h"
-
-
-#define OUT_OF_RANGE_THRESHOLD         -70
-#define IN_RANGE_THRESHOLD                     -60
-
-/*For test*/
-//#define OUT_OF_RANGE_THRESHOLD               -45
-//#define IN_RANGE_THRESHOLD                   -40
-
-
-
-#define VCONFKEY_BT_OUT        "file/private/lockscreen/bt_out"
-#define VCONFKEY_BT_IN         "file/private/lockscreen/bt_in"
-
-#define OUT_OF_RANGE_ALERT                     2
-#define IN_RANGE_ALERT                         1
-
-static int g_is_security = 1;
-
-static int out_of_range_threshold = -70;
-static int in_range_threshold = -60;
-
-
-
-#if 0
-static void _lockd_bt_enabled_cb(const char *address,
-               bt_device_connection_link_type_e link_type,
-               int rssi_enabled, void *user_data)
-{
-       LOCKD_WARN("RSSI Enabled: %s %d %d", address, link_type, rssi_enabled);
-}
-
-
-static void _lockd_bt_rssi_alert_cb(char *bt_address,
-               bt_device_connection_link_type_e link_type,
-               int rssi_alert_type, int rssi_alert_dbm, void *user_data)
-{
-       int is_security = TRUE;
-       LOCKD_WARN("RSSI Alert: [Address:%s LinkType:%d][RSSI Alert Type:%d dBm:%d]",
-                       bt_address, link_type, rssi_alert_type, rssi_alert_dbm);
-
-#if 0
-       if (rssi_alert_dbm < OUT_OF_RANGE_THRESHOLD) {
-               g_is_security = TRUE;
-               vconf_set_int(VCONFKEY_LOCKSCREEN_SECURITY_AUTO_LOCK, TRUE);
-       }
-
-       if (rssi_alert_dbm > IN_RANGE_THRESHOLD) {
-               g_is_security = FALSE;
-               vconf_set_int(VCONFKEY_LOCKSCREEN_SECURITY_AUTO_LOCK, FALSE);
-       }
-#else
-       if (rssi_alert_type == OUT_OF_RANGE_ALERT) {
-               g_is_security = TRUE;
-               vconf_set_int(VCONFKEY_LOCKSCREEN_SECURITY_AUTO_LOCK, g_is_security);
-       }
-
-       if (rssi_alert_type == IN_RANGE_ALERT) {
-               g_is_security = FALSE;
-               vconf_set_int(VCONFKEY_LOCKSCREEN_SECURITY_AUTO_LOCK, g_is_security);
-       }
-#endif
-}
-
-
-static void _lockd_notify_security_auto_lock_cb(keynode_t * node, void *data)
-{
-       int is_security = TRUE;
-
-       vconf_get_int(VCONFKEY_LOCKSCREEN_SECURITY_AUTO_LOCK, &is_security);
-       LOCKD_WARN("security auto lock is changed to [%d]", is_security);
-       if (is_security != g_is_security) {
-               LOCKD_ERR("Who changes auto lock security..!!, change value from [%d] to [%d]", is_security, g_is_security);
-               vconf_set_int(VCONFKEY_LOCKSCREEN_SECURITY_AUTO_LOCK, g_is_security);
-       }
-}
-
-
-int lockd_start_bt_monitor(void)
-{
-       int r = 0;
-       char *device_name = NULL;
-
-       bt_device_connection_link_type_e link_type = BT_DEVICE_CONNECTION_LINK_BREDR;
-
-       LOCKD_DBG("%s, %d", __func__, __LINE__);
-
-       r = bt_initialize();
-       if (r < 0) {
-               LOCKD_ERR("bt_initialize is failed, r=%d", r);
-               return -1;
-       }
-
-       device_name = vconf_get_str(VCONFKEY_SETAPPL_AUTO_LOCK_DEVICE_NAME_STR);
-       if (!device_name) {
-               LOCKD_ERR("cant't get BT device name");
-               return -1;
-       }
-
-       vconf_get_int(VCONFKEY_BT_OUT, &out_of_range_threshold);
-       vconf_get_int(VCONFKEY_BT_IN, &in_range_threshold);
-
-       if ((out_of_range_threshold > 0) || (in_range_threshold > 0) || (out_of_range_threshold > in_range_threshold)) {
-               out_of_range_threshold = OUT_OF_RANGE_THRESHOLD;
-               in_range_threshold = IN_RANGE_THRESHOLD;
-       }
-
-
-       LOCKD_WARN("OUT Range[%d] IN Range [%d] BT device address : [%s]", out_of_range_threshold, in_range_threshold, device_name);
-       r = bt_device_enable_rssi_monitor(device_name, link_type,
-               out_of_range_threshold, in_range_threshold,
-               _lockd_bt_enabled_cb, NULL,
-               _lockd_bt_rssi_alert_cb, NULL);
-       if (r < 0) {
-               LOCKD_ERR("bt_device_enable_rssi_monitor is failed, r=%d", r);
-               return -1;
-       }
-
-       /* BT will be near when auto lock is set */
-       g_is_security = FALSE;
-       vconf_set_int(VCONFKEY_LOCKSCREEN_SECURITY_AUTO_LOCK, FALSE);
-       if (vconf_notify_key_changed
-           (VCONFKEY_LOCKSCREEN_SECURITY_AUTO_LOCK, _lockd_notify_security_auto_lock_cb, NULL) != 0) {
-               LOCKD_ERR("Fail vconf_notify_key_changed : VCONFKEY");
-       }
-
-       return 0;
-}
-
-
-void lockd_stop_bt_monitor(void)
-{
-       int r = 0;
-       char *device_name = NULL;
-       bt_device_connection_link_type_e link_type = BT_DEVICE_CONNECTION_LINK_BREDR;
-
-       LOCKD_DBG("%s, %d", __func__, __LINE__);
-
-       device_name = vconf_get_str(VCONFKEY_SETAPPL_AUTO_LOCK_DEVICE_NAME_STR);
-       if (!device_name) {
-               LOCKD_ERR("cant't get BT device name");
-       }
-       r = bt_device_disable_rssi_monitor(device_name, link_type,
-               _lockd_bt_enabled_cb, NULL);
-       if (r < 0) {
-               LOCKD_ERR("bt_device_disable_rssi_monitor is failed, r=%d", r);
-       }
-
-       /* BT will be far when auto lock is unset  */
-       if (vconf_ignore_key_changed
-           (VCONFKEY_LOCKSCREEN_SECURITY_AUTO_LOCK, _lockd_notify_security_auto_lock_cb) != 0) {
-               LOCKD_ERR("Fail to unregister");
-       }
-       g_is_security = TRUE;
-
-       r = bt_deinitialize();
-       if (r < 0) {
-               LOCKD_ERR("bt_deinitialize is failed, r=%d", r);
-       }
-}
-
-
-
-static void _lockd_bt_rssi_stregth_cb(char *bt_address,
-                       bt_device_connection_link_type_e link_type,
-                       int rssi_dbm, void *user_data)
-{
-       LOCKD_WARN("RSSI Strength: [Address %s][Link Type %d][RSSI dBm %d], current auto lock pw security is [%d]",
-               bt_address, link_type, rssi_dbm, g_is_security);
-
-       if ((g_is_security) && (rssi_dbm > in_range_threshold)) {
-               g_is_security = FALSE;
-               vconf_set_int(VCONFKEY_LOCKSCREEN_SECURITY_AUTO_LOCK, g_is_security);
-       } 
-}
-
-void lockd_change_security_auto_lock(int is_connected)
-{
-       LOCKD_WARN("BT connect is changed to [%d], security status is [%d]", is_connected, g_is_security);
-
-       if ((!is_connected) && (!g_is_security)) {
-               g_is_security = TRUE;
-               vconf_set_int(VCONFKEY_LOCKSCREEN_SECURITY_AUTO_LOCK, g_is_security);
-       } else if (is_connected){
-               int r = 0;
-               char *device_name = NULL;
-               bt_device_connection_link_type_e link_type = BT_DEVICE_CONNECTION_LINK_BREDR;
-
-               device_name = vconf_get_str(VCONFKEY_SETAPPL_AUTO_LOCK_DEVICE_NAME_STR);
-               if (!device_name) {
-                       LOCKD_ERR("cant't get BT device name");
-               }
-
-               r = bt_device_get_rssi_strength(device_name, link_type,
-                       _lockd_bt_rssi_stregth_cb, NULL);
-       }
-}
-
-int lockd_get_auto_lock_security(void)
-{
-       LOCKD_DBG("BT auto lock has security : %d", g_is_security);
-       return g_is_security;
-}
-#endif
diff --git a/src/lockd-debug.c b/src/lockd-debug.c
deleted file mode 100755 (executable)
index 934450e..0000000
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * 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 <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 /* 32000 */
-#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);
-       /* local_t = gmtime(&current_time); */
-       gmtime_r(&current_time, &local_t);      /* for prevent 53555 */
-       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) {
-               /* TODO:ERROR handling */
-               return;
-       } else {
-               debugString[len] = '\n';
-       }
-       /* FIXME this is for permission.. later we should fix and remove this... */
-       /* system("chmod 666 "LOGFILE); */
-       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);
-                       }
-                       /* system("rm -rf "LOGFILE);  */
-               } 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);
-                               }
-                               /* system("rm -rf "LOGFILE); */
-                       } else
-                               fclose(fd);
-               }
-       }
-}
diff --git a/src/lockd-process-mgr.c b/src/lockd-process-mgr.c
deleted file mode 100755 (executable)
index d3d0e77..0000000
+++ /dev/null
@@ -1,414 +0,0 @@
-/*
- * 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 <aul.h>
-#include <pkgmgr-info.h>
-#include <sys/time.h>
-#include <sys/resource.h>
-#include <sys/types.h>
-#include <Ecore.h>
-#include <unistd.h>
-
-#include "lockd-debug.h"
-#include "lockd-process-mgr.h"
-#include "starter-vconf.h"
-
-#define LOCKD_DEFAULT_PKG_NAME "org.tizen.lockscreen"
-#define LOCKD_DRAG_LOCKSCREEN "com.samsung.draglock"
-#define LOCKD_PHONE_LOCK_PKG_NAME LOCKD_DEFAULT_PKG_NAME
-#define RETRY_MAXCOUNT 30
-#define RELAUNCH_INTERVAL 100*1000
-
-#define LOCKD_VOICE_CALL_PKG_NAME "com.samsung.call"
-#define LOCKD_VIDEO_CALL_PKG_NAME "com.samsung.vtmain"
-
-#define NICE_VALUE_PWLOCK -5
-#define NICE_VALUE_LOCKSCREEN -20
-
-static char *default_lockscreen_pkg = NULL;
-
-static bool _lockd_exist_package(char *pkgid)
-{
-       int ret = 0;
-       pkgmgrinfo_appinfo_h handle = NULL;
-
-       ret = pkgmgrinfo_appinfo_get_appinfo(pkgid, &handle);
-       if (PMINFO_R_OK != ret || NULL == handle) {
-               LOCKD_SECURE_DBG("%s doesn't exist in this binary", pkgid);
-               return false;
-       }
-
-       pkgmgrinfo_appinfo_destroy_appinfo(handle);
-
-       return true;
-}
-
-void lockd_process_mgr_init(void)
-{
-       default_lockscreen_pkg = vconf_get_str(VCONF_PRIVATE_LOCKSCREEN_DEFAULT_PKGNAME);
-       LOCKD_SECURE_DBG("default lock screen pkg name is %s", default_lockscreen_pkg);
-       if (default_lockscreen_pkg == NULL) {
-               default_lockscreen_pkg = LOCKD_DEFAULT_PKG_NAME;
-       }
-       if (!_lockd_exist_package(default_lockscreen_pkg)) {
-               LOCKD_SECURE_ERR("%s is not exist, default lock screen pkg name is set to %s", default_lockscreen_pkg, LOCKD_DRAG_LOCKSCREEN);
-               default_lockscreen_pkg = LOCKD_DRAG_LOCKSCREEN;
-               if (vconf_set_str(VCONFKEY_SETAPPL_3RD_LOCK_PKG_NAME_STR, default_lockscreen_pkg) != 0) {
-                       LOCKD_SECURE_ERR("vconf key [%s] set [%s] is failed", VCONFKEY_SETAPPL_3RD_LOCK_PKG_NAME_STR, default_lockscreen_pkg);
-               }
-       }
-}
-
-static char *_lockd_process_mgr_get_pkgname(int lock_type)
-{
-       char *pkgname = NULL;
-
-       if (lock_type > 1) {
-               pkgname = vconf_get_str(VCONFKEY_SETAPPL_3RD_LOCK_PKG_NAME_STR);
-               LOCKD_SECURE_DBG("pkg name is %s", pkgname);
-               if (pkgname == NULL) {
-                       pkgname = default_lockscreen_pkg;
-               } else if (_lockd_exist_package(pkgname) == FALSE) {
-                       pkgname = default_lockscreen_pkg;
-               }
-       } else {
-               pkgname = default_lockscreen_pkg;
-       }
-       return pkgname;
-}
-
-int lockd_process_mgr_restart_lock(int lock_type)
-{
-       char *lock_app_path = NULL;
-       int pid;
-       int i;
-
-       LOCKD_DBG("%s, %d", __func__, __LINE__);
-       lock_app_path = _lockd_process_mgr_get_pkgname(lock_type);
-
-       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_ETIMEOUT) {
-                       LOCKD_DBG("Relaunch lock application [%d]times", i);
-                       usleep(RELAUNCH_INTERVAL);
-               } else {
-                       return pid;
-               }
-       }
-
-       LOCKD_SECURE_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 lock_type)
-{
-       char *lock_app_path = NULL;
-       int pid;
-       int i;
-
-       LOCKD_DBG("%s, %d", __func__, __LINE__);
-       lock_app_path = _lockd_process_mgr_get_pkgname(lock_type);
-
-       for (i=0; i<RETRY_MAXCOUNT; i++)
-       {
-               pid = aul_launch_app(lock_app_path, NULL);
-
-               LOCKD_SECURE_DBG("aul_launch_app(%s), pid = %d", lock_app_path, pid);
-
-               if ((pid == AUL_R_ECOMM) || (pid == AUL_R_ETERMINATING)) {
-                       LOCKD_DBG("Relaunch lock application [%d]times", i);
-                       usleep(RELAUNCH_INTERVAL);
-               } else if (pid == AUL_R_ERROR) {
-                       LOCKD_SECURE_ERR("launch[%s] is failed, launch default lock screen", lock_app_path);
-                       pid = aul_launch_app(default_lockscreen_pkg, NULL);
-                       if (pid == AUL_R_ERROR) {
-                               LOCKD_SECURE_ERR("launch[%s] is failed, launch drag lock screen", default_lockscreen_pkg);
-                               pid = aul_launch_app(LOCKD_DRAG_LOCKSCREEN, NULL);
-                               if (pid >0) {
-                                       if (vconf_set_str(VCONFKEY_SETAPPL_3RD_LOCK_PKG_NAME_STR, LOCKD_DRAG_LOCKSCREEN) != 0) {
-                                               LOCKD_SECURE_ERR("vconf key [%s] set [%s] is failed", VCONFKEY_SETAPPL_3RD_LOCK_PKG_NAME_STR, LOCKD_DRAG_LOCKSCREEN);
-                                       }
-                                       return pid;
-                               }
-                       } else {
-                               return pid;
-                       }
-               } else {
-                       return pid;
-               }
-       }
-       LOCKD_ERR("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(default_lockscreen_pkg, NULL);
-
-               LOCKD_SECURE_DBG("aul_launch_app(%s), pid = %d", default_lockscreen_pkg, pid);
-
-               if ((pid == AUL_R_ECOMM) || (pid == AUL_R_ETERMINATING)) {
-                       LOCKD_DBG("Relaunch lock application [%d]times", i);
-                       usleep(RELAUNCH_INTERVAL);
-               } else if (pid == AUL_R_ERROR) {
-                       LOCKD_SECURE_DBG("launch[%s] is failed, launch default lock screen", default_lockscreen_pkg);
-               } else {
-                       return pid;
-               }
-       }
-       LOCKD_ERR("Relaunch lock application failed..!!");
-       return pid;
-}
-
-static Eina_Bool _set_priority_lockscreen_process_cb(void *data)
-{
-       int prio;
-       char buf[1024] = { 0, };
-
-       prio = getpriority(PRIO_PROCESS, (pid_t)data);
-       if (prio == NICE_VALUE_LOCKSCREEN) {
-               LOCKD_DBG("%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 ) {
-               LOCKD_DBG("%s\n", strerror_r(errno, buf, sizeof(buf)));
-               return ECORE_CALLBACK_CANCEL;
-       }
-
-       return ECORE_CALLBACK_RENEW;
-}
-
-static Eina_Bool _set_priority_pwlock_process_cb(void *data)
-{
-       int prio;
-       char buf[104] = { 0, };
-
-       prio = getpriority(PRIO_PROCESS, (pid_t)data);
-       if (prio == NICE_VALUE_PWLOCK) {
-               LOCKD_DBG("%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 ) {
-               LOCKD_DBG("%s\n", strerror_r(errno, buf, sizeof(buf)));
-               return ECORE_CALLBACK_CANCEL;
-       }
-
-       return ECORE_CALLBACK_RENEW;
-}
-
-int lockd_process_mgr_start_phone_lock(void)
-{
-       int pid = 0;
-       bundle *b = NULL;
-       int i;
-
-       LOCKD_DBG("%s, %d", __func__, __LINE__);
-       b = bundle_create();
-
-       bundle_add(b, "lock_type", "phone_lock");
-
-       for (i=0; i<RETRY_MAXCOUNT; i++)
-       {
-               pid = aul_launch_app(LOCKD_PHONE_LOCK_PKG_NAME, b);
-
-               LOCKD_SECURE_DBG("aul_launch_app(%s), pid = %d", LOCKD_PHONE_LOCK_PKG_NAME, pid);
-
-               if ((pid == AUL_R_ECOMM) || (pid == AUL_R_ETERMINATING)) {
-                       LOCKD_DBG("Relaunch lock application [%d]times", i);
-                       usleep(RELAUNCH_INTERVAL);
-               } else {
-                       if (b)
-                               bundle_free(b);
-
-                       return pid;
-               }
-       }
-
-       if (b)
-               bundle_free(b);
-
-       return pid;
-}
-
-int lockd_process_mgr_set_lockscreen_priority(int pid)
-{
-       return !ecore_timer_add(1.0f, _set_priority_lockscreen_process_cb, (void *)pid);
-}
-
-int lockd_process_mgr_set_pwlock_priority(int pid)
-{
-       return !ecore_timer_add(1.0f, _set_priority_pwlock_process_cb, (void *)pid);
-}
-
-
-int lockd_process_mgr_start_recovery_lock(void)
-{
-       int pid = 0;
-       bundle *b = NULL;
-
-       LOCKD_DBG("%s, %d", __func__, __LINE__);
-       b = bundle_create();
-
-       bundle_add(b, "lock_type", "recovery_lock");
-
-       pid = aul_launch_app(LOCKD_PHONE_LOCK_PKG_NAME, b);
-       LOCKD_SECURE_DBG("aul_launch_app(%s, b), pid = %d", LOCKD_PHONE_LOCK_PKG_NAME,
-                 pid);
-       if (b)
-               bundle_free(b);
-
-       return pid;
-}
-
-int lockd_process_mgr_start_back_to_app_lock(void)
-{
-       int pid = 0;
-       bundle *b = NULL;
-
-       LOCKD_DBG("%s, %d", __func__, __LINE__);
-       b = bundle_create();
-
-       bundle_add(b, "lock_type", "back_to_call");
-
-       pid = aul_launch_app(LOCKD_PHONE_LOCK_PKG_NAME, b);
-       LOCKD_SECURE_DBG("aul_launch_app(%s, b), pid = %d", LOCKD_PHONE_LOCK_PKG_NAME,
-                 pid);
-       if (b)
-               bundle_free(b);
-
-       return pid;
-}
-
-int lockd_process_mgr_start_ready_lock(void)
-{
-       int pid = 0;
-       bundle *b = NULL;
-
-       LOCKD_DBG("%s, %d", __func__, __LINE__);
-       b = bundle_create();
-
-       bundle_add(b, "lock_op", "start_ready");
-
-       pid = aul_launch_app(LOCKD_PHONE_LOCK_PKG_NAME, b);
-       LOCKD_SECURE_DBG("aul_launch_app(%s, b), pid = %d", LOCKD_PHONE_LOCK_PKG_NAME,
-                 pid);
-       if (b)
-               bundle_free(b);
-
-       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);
-}
-
-void lockd_process_mgr_kill_lock_app(int lock_app_pid)
-{
-       LOCKD_DBG ("lockd_process_mgr_kill_lock_app [pid:%d]..", lock_app_pid);
-       aul_kill_pid(lock_app_pid);
-}
-
-int lockd_process_mgr_check_lock(int pid)
-{
-       char buf[128];
-       LOCKD_DBG("%s, %d", __func__, __LINE__);
-       /* Check pid is invalid. */
-       if (aul_app_get_pkgname_bypid(pid, buf, sizeof(buf)) < 0) {
-               LOCKD_DBG("no such pkg by pid %d\n", pid);
-       } else {
-               LOCKD_SECURE_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_SECURE_DBG("[pid = %d] is exist but %s is not running\n",
-                                 pid, buf);
-               }
-       }
-       return FALSE;
-}
-
-int lockd_process_mgr_check_call(int pid)
-{
-       char buf[128];
-       LOCKD_DBG("%s, %d", __func__, __LINE__);
-
-       /* Check pid is invalid. */
-       if (aul_app_get_pkgname_bypid(pid, buf, sizeof(buf)) < 0) {
-               LOCKD_DBG("no such pkg by pid %d", pid);
-       } else {
-               LOCKD_SECURE_DBG("app pkgname = %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;
-}
-
-int lockd_process_mgr_check_home(int pid)
-{
-       char buf[128];
-       char *pkgname = NULL;
-
-       LOCKD_DBG("%s, %d", __func__, __LINE__);
-       /* Check pid is invalid. */
-       if (aul_app_get_pkgname_bypid(pid, buf, sizeof(buf)) < 0) {
-               LOCKD_DBG("no such pkg by pid %d", pid);
-       } else {
-               LOCKD_SECURE_DBG("app pkgname = %s, pid = %d", buf, pid);
-
-               pkgname = vconf_get_str(VCONFKEY_SETAPPL_SELECTED_PACKAGE_NAME);
-
-               if ((pkgname != NULL) &&
-                       (!strncmp(buf, pkgname, strlen(buf)))) {
-                       LOCKD_SECURE_DBG("home pkgname = %s", pkgname);
-                   return TRUE;
-               }
-       }
-       return FALSE;
-}
diff --git a/src/lockd-window-mgr.c b/src/lockd-window-mgr.c
deleted file mode 100755 (executable)
index bbe3fcc..0000000
+++ /dev/null
@@ -1,807 +0,0 @@
-/*
- * 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 "lockd-debug.h"
-#include "lockd-window-mgr.h"
-#include "util.h"
-
-#define PACKAGE                        "starter"
-#define SOS_KEY_COUNT          3
-#define SOS_KEY_INTERVAL       0.5
-
-#define _MAKE_ATOM(a, s)                              \
-   do {                                               \
-        a = ecore_x_atom_get(s);                      \
-        if (!a)                                       \
-          fprintf(stderr,                             \
-                  "##s creation failed.\n"); \
-   } while(0)
-
-#define STR_ATOM_PANEL_SCROLLABLE_STATE         "_E_MOVE_PANEL_SCROLLABLE_STATE"
-
-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;
-
-#if 0
-       Ecore_Timer *pTimerId; /* volume key timer */
-       int volume_key_cnt;
-#endif
-
-       int phone_lock_state;   /* 0 : disable, 1 : enable */
-       int phone_lock_app_pid;
-};
-
-#if 0
-Eina_Bool volume_key_expire_cb(void *pData)
-{
-       int api_ret = 0;
-       int vconf_val = 0;
-       lockw_data *lockw = (lockw_data *) pData;
-
-       _DBG("volume_key_expire_cb..!!");
-
-       lockw->volume_key_cnt = 0;
-
-       return ECORE_CALLBACK_CANCEL;
-}
-
-static Eina_Bool _lockd_window_key_down_cb(void *data, int type, void *event)
-{
-       Ecore_Event_Key *ev = event;
-       lockw_data *lockw = (lockw_data *) data;
-       int vconf_val = 0;
-       int ret = 0;
-
-       LOCKD_DBG("Key Down CB : %s", ev->keyname);
-
-       ret = vconf_get_int(VCONFKEY_MESSAGE_SOS_STATE, &vconf_val);
-
-       if(ret != 0)
-       {
-               LOCKD_ERR("_lockd_window_key_down_cb:VCONFKEY_MESSAGE_SOS_STATE FAILED");
-               return ECORE_CALLBACK_CANCEL;
-       }
-
-       if (!strcmp(ev->keyname, KEY_VOLUMEUP) || !strcmp(ev->keyname, KEY_VOLUMEDOWN)) {
-               if (vconf_val == VCONFKEY_MESSAGE_SOS_IDLE) {
-                       if (lockw->volume_key_cnt == 0) {
-                               lockw->volume_key_cnt++;
-                               LOCKD_DBG("Volume key is pressed %d times", lockw->volume_key_cnt);
-                               lockw->pTimerId = ecore_timer_add(SOS_KEY_INTERVAL, volume_key_expire_cb, lockw);
-                       } else if (lockw->volume_key_cnt == SOS_KEY_COUNT) {
-                               LOCKD_DBG("SOS msg invoked");
-                               if (lockw->pTimerId != NULL) {
-                                       ecore_timer_del(lockw->pTimerId);
-                                       lockw->pTimerId = NULL;
-                                       lockw->volume_key_cnt =0;
-                                       vconf_set_int(VCONFKEY_MESSAGE_SOS_STATE, VCONFKEY_MESSAGE_SOS_INVOKED);
-                                       ecore_x_pointer_grab(lockw->lock_x_window);
-                               }
-                       } else {
-                               if (lockw->pTimerId != NULL) {
-                                       ecore_timer_del(lockw->pTimerId);
-                                       lockw->pTimerId = NULL;
-                                       lockw->volume_key_cnt++;
-                                       LOCKD_DBG("Volume key is pressed %d times", lockw->volume_key_cnt);
-                                       lockw->pTimerId = ecore_timer_add(SOS_KEY_INTERVAL, volume_key_expire_cb, lockw);
-                               }
-                       }
-               }
-       } else if (!strcmp(ev->keyname, KEY_HOME)) {
-               if (vconf_val != VCONFKEY_MESSAGE_SOS_IDLE) {
-                       LOCKD_DBG("Home key is pressed set to idle", lockw->volume_key_cnt);
-                       vconf_set_int(VCONFKEY_MESSAGE_SOS_STATE, VCONFKEY_MESSAGE_SOS_IDLE);
-                       ecore_x_pointer_ungrab();
-               }
-       }
-
-       return ECORE_CALLBACK_PASS_ON;
-}
-#endif
-
-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;
-       unsigned int root_w = 0;
-       unsigned int root_h = 0;
-
-       Eina_Bool ret = FALSE;
-
-       root = ecore_x_window_root_first_get();
-       XGetGeometry(dpy, root, &root, &rel_x, &rel_y, &root_w, &root_h, &border, &depth);
-       LOCKD_DBG("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, &root, &rel_x, &rel_y, &width, &height, &border,
-            &depth)) {
-               if (XTranslateCoordinates
-                   (dpy, window, root, 0, 0, &abs_x, &abs_y, &child)) {
-                   LOCKD_DBG("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 Evas_Object *lockd_create_main_window(const char *pkgname)
-{
-       Evas_Object *eo = NULL;
-       int w, h;
-       LOCKD_DBG("%s, %d", __func__, __LINE__);
-
-       eo = elm_win_add(NULL, pkgname, ELM_WIN_BASIC);
-       if (eo) {
-               elm_win_title_set(eo, pkgname);
-               elm_win_borderless_set(eo, EINA_TRUE);
-               ecore_x_window_size_get(ecore_x_window_root_first_get(),
-                                       &w, &h);
-               LOCKD_DBG("%s, %d, w = %d, h = %d", __func__, __LINE__, w, h);
-               evas_object_resize(eo, w, h);
-       }
-       return eo;
-}
-
-static Evas_Object *lockd_create_main_layout(Evas_Object * parent)
-{
-       Evas_Object *ly = NULL;
-       LOCKD_DBG("%s, %d", __func__, __LINE__);
-
-       ly = elm_layout_add(parent);
-       if (!ly) {
-               LOCKD_ERR("UI layout add error");
-               return NULL;
-       }
-
-       elm_layout_theme_set(ly, "layout", "application", "default");
-       evas_object_size_hint_weight_set(ly, EVAS_HINT_EXPAND,
-                                        EVAS_HINT_EXPAND);
-       evas_object_show(ly);
-
-       elm_win_indicator_mode_set(parent, ELM_WIN_INDICATOR_SHOW);
-
-       return ly;
-}
-
-static void _lockd_phone_lock_alpha_ug_layout_cb(ui_gadget_h ug,
-                                                enum ug_mode mode, void *priv)
-{
-       lockw_data *lockw = (lockw_data *) priv;;
-       Evas_Object *base = NULL;
-       LOCKD_DBG("%s, %d", __func__, __LINE__);
-
-       if (!ug || !lockw)
-               return;
-
-       base = ug_get_layout(ug);
-       if (!base)
-               return;
-
-       switch (mode) {
-       case UG_MODE_FULLVIEW:
-               evas_object_size_hint_weight_set(base, EVAS_HINT_EXPAND,
-                                                EVAS_HINT_EXPAND);
-               ug_disable_effect(ug);  /* not use effect when destroy phone lock UG  */
-               evas_object_show(base);
-               break;
-       case UG_MODE_FRAMEVIEW:
-               /* elm_layout_content_set(lockw->main_layout, "content", base); *//* not used */
-               break;
-       default:
-               break;
-       }
-}
-
-static void _lockd_phone_lock_alpha_ug_result_cb(ui_gadget_h ug,
-                                                app_control_h app_control, void *priv)
-{
-       int alpha;
-       const char *val1 = NULL, *val2 = NULL;
-       lockw_data *lockw = (lockw_data *) priv;;
-       LOCKD_DBG("%s, %d", __func__, __LINE__);
-
-       if (!ug || !lockw)
-               return;
-
-       app_control_get_extra_data(app_control, "name", &val1);
-
-       if (val1 == NULL)
-               return;
-
-       LOCKD_DBG("val1 = %s", val1);
-
-       app_control_get_extra_data(app_control, "result", &val2);
-
-       if (val2 == NULL){
-               if(val1 != NULL)
-                       free(val1);
-               return;
-       }
-
-       LOCKD_DBG("val2 = %s", val2);
-
-
-       if (!strcmp(val1, "phonelock-ug")) {
-               if (!strcmp(val2, "success")) {
-                       LOCKD_DBG("password verified. Unlock!\n");
-               }
-       } else if (!strcmp(val1, "phonelock-ug-alpha")) {
-               alpha = atoi(val2);
-       }
-
-       if(val1 != NULL)
-               free(val1);
-
-       if(val2 != NULL)
-               free(val2);
-}
-
-static void _lockd_phone_lock_alpha_ug_destroy_cb(ui_gadget_h ug,
-                                                 void *priv)
-{
-       lockw_data *lockw = (lockw_data *) priv;;
-       LOCKD_DBG("%s, %d", __func__, __LINE__);
-
-       if (!ug || !lockw)
-               return;
-
-       ug_destroy(ug);
-       ug = NULL;
-       lockd_destroy_ug_window(lockw);
-       vconf_set_bool(VCONFKEY_LOCKSCREEN_PHONE_LOCK_VERIFICATION, TRUE);
-}
-
-static void _lockd_ug_window_set_win_prop(void *data, int type)
-{
-       Ecore_X_Window w;
-       Evas_Object *win = NULL;
-       lockw_data *lockw = (lockw_data *) data;;
-       LOCKD_DBG("%s, %d", __func__, __LINE__);
-
-       if (!lockw)
-               return;
-
-       win = lockw->main_win;
-
-       w = elm_win_xwindow_get(win);
-
-       if (type == ECORE_X_WINDOW_TYPE_NORMAL) {
-               ecore_x_netwm_window_type_set(w, ECORE_X_WINDOW_TYPE_NORMAL);
-       } else if (type == ECORE_X_WINDOW_TYPE_NOTIFICATION) {
-               ecore_x_netwm_window_type_set(w,
-                                             ECORE_X_WINDOW_TYPE_NOTIFICATION);
-               utilx_set_system_notification_level(ecore_x_display_get(), w,
-                                                   UTILX_NOTIFICATION_LEVEL_NORMAL);
-       }
-}
-
-static void _lockd_ug_window_set_key_grab(void *data)
-{
-       Ecore_X_Window w;
-       int ret = 0;
-       Evas_Object *win = NULL;
-       lockw_data *lockw = (lockw_data *) data;;
-       LOCKD_DBG("%s, %d", __func__, __LINE__);
-
-       if (!lockw)
-               return;
-
-       win = lockw->main_win;
-       w = elm_win_xwindow_get(win);
-       ret = utilx_grab_key(ecore_x_display_get(), w, KEY_HOME, EXCLUSIVE_GRAB);
-       if(ret)
-       {
-               LOCKD_ERR("Key grab error : KEY_HOME");
-       }
-       ret = utilx_grab_key(ecore_x_display_get(), w, KEY_CONFIG, TOP_POSITION_GRAB);
-       if(ret)
-       {
-               LOCKD_ERR("Key grab error : KEY_CONFIG");
-       }
-}
-
-static void _lockd_ug_window_set_key_ungrab(void *data)
-{
-       Ecore_X_Window xwin;
-       Ecore_X_Display *disp = NULL;
-       lockw_data *lockw = (lockw_data *) data;;
-
-       if (!lockw)
-               return;
-
-       LOCKD_DBG("%s, %d", __func__, __LINE__);
-       disp = ecore_x_display_get();
-       xwin = elm_win_xwindow_get(lockw->main_win);
-
-       utilx_ungrab_key(disp, xwin, KEY_HOME);
-       utilx_ungrab_key(disp, xwin, KEY_CONFIG);
-}
-
-static void _lockd_ug_window_vconf_call_state_changed_cb(keynode_t * node,
-                                                        void *data)
-{
-       int api_ret = 0;
-       int vconf_val = 0;
-       lockw_data *lockw = (lockw_data *) data;
-
-       if (!lockw)
-               return;
-
-       LOCKD_DBG("%s, %d", __func__, __LINE__);
-       api_ret = vconf_get_int(VCONFKEY_CALL_STATE, &vconf_val);
-       if (api_ret != 0) {
-               LOCKD_DBG("fail to get vconf key value"
-                         );
-       } else {
-               if (vconf_val == VCONFKEY_CALL_OFF) {
-                       LOCKD_DBG("call off state..");
-                       _lockd_ug_window_set_win_prop(lockw,
-                                                     ECORE_X_WINDOW_TYPE_NOTIFICATION);
-               } else {
-                       LOCKD_DBG("call on state..");
-                       _lockd_ug_window_set_win_prop(lockw,
-                                                     ECORE_X_WINDOW_TYPE_NORMAL);
-               }
-       }
-       return;
-}
-
-static void _lockd_ug_window_register_vconf_changed(void *data)
-{
-       LOCKD_DBG("%s, %d", __func__, __LINE__);
-       if (vconf_notify_key_changed
-           (VCONFKEY_CALL_STATE, _lockd_ug_window_vconf_call_state_changed_cb,
-            data) != 0) {
-               LOCKD_DBG("Fail to register");
-       }
-}
-
-static void _lockd_ug_window_unregister_vconf_changed(void *data)
-{
-       LOCKD_DBG("%s, %d", __func__, __LINE__);
-
-       if (vconf_ignore_key_changed
-           (VCONFKEY_CALL_STATE,
-            _lockd_ug_window_vconf_call_state_changed_cb) != 0) {
-               LOCKD_DBG("Fail to unregister");
-       }
-
-}
-
-void _lockd_window_transient_for_set(void *data)
-{
-       lockw_data *lockw = (lockw_data *) data;
-       Ecore_X_Window xwin_ug;
-       Ecore_X_Window xwin_lock;
-
-       if (!lockw)
-               return;
-
-       LOCKD_DBG("%s, %d", __func__, __LINE__);
-       xwin_ug = elm_win_xwindow_get(lockw->main_win);
-       xwin_lock = lockw->lock_x_window;
-
-       LOCKD_DBG("ug win id : %x, and lock win id is :%x", xwin_ug, xwin_lock);
-       ecore_x_icccm_transient_for_set(xwin_ug, xwin_lock);
-}
-
-Eina_Bool _lockd_window_set_window_property_timer_cb(void *data)
-{
-       Ecore_X_Window win = (Ecore_X_Window) data;
-       LOCKD_DBG
-           ("[MINSU] win id(%x) set lock screen window property to notification and level low\n",
-            win);
-
-       /*  Set notification type */
-       ecore_x_netwm_window_type_set(win, ECORE_X_WINDOW_TYPE_NOTIFICATION);
-
-       /*  Set notification's priority */
-       utilx_set_system_notification_level(ecore_x_display_get(), win,
-                                           UTILX_NOTIFICATION_LEVEL_LOW);
-
-       return EINA_FALSE;
-}
-
-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
-lockd_window_mgr_get_focus_win_pid(void)
-{
-       Ecore_X_Window x_win_focused = 0;
-       int pid = 0;
-       int ret = -1;
-
-       LOCKD_DBG("%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) {
-               LOCKD_ERR("Can't get pid for focus x window (%x)\n", x_win_focused);
-               return -1;
-       }
-       LOCKD_DBG("PID(%d) for focus x window (%x)\n", pid, x_win_focused);
-
-       return pid;
-}
-
-Eina_Bool
-lockd_window_set_window_property(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;
-
-       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);
-
-                       /* window effect : fade in /out */
-                       ecore_x_icccm_name_class_set(user_window, "LOCK_SCREEN",
-                                                    "LOCK_SCREEN");
-
-                       /* Set notification type */
-                       ecore_x_netwm_window_type_set(user_window,
-                                                     ECORE_X_WINDOW_TYPE_NOTIFICATION);
-
-                       /* Set notification's priority */
-                       utilx_set_system_notification_level(ecore_x_display_get
-                                                           (), user_window,
-                                                           UTILX_NOTIFICATION_LEVEL_NORMAL);
-                       /* Set opaque state */
-                       utilx_set_window_opaque_state(ecore_x_display_get(),
-                                                     user_window,
-                                                     UTILX_OPAQUE_STATE_ON);
-                       return EINA_TRUE;
-               }
-       }
-       return EINA_FALSE;
-}
-
-Eina_Bool
-lockd_window_set_window_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;
-
-       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);
-
-                       /*utilx_set_window_effect_state(ecore_x_display_get(),
-                                                     user_window, 0);*/
-
-                       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 {
-                               LOCKD_ERR("ecore_x_atom_get() failed");
-                       }
-                       return EINA_TRUE;
-               }
-       }
-       return EINA_FALSE;
-}
-
-void
-lockd_window_set_scroll_property(lockw_data * data, int lock_type)
-{
-       lockw_data *lockw = (lockw_data *) data;
-       Ecore_X_Atom ATOM_PANEL_SCROLLABLE_STATE = 0;
-       unsigned int val[3];
-
-       if (!lockw) {
-               return;
-       }
-       LOCKD_DBG("%s, %d", __func__, __LINE__);
-
-
-       // init atoms
-    _MAKE_ATOM(ATOM_PANEL_SCROLLABLE_STATE, STR_ATOM_PANEL_SCROLLABLE_STATE );
-
-       if (lock_type == 1) {
-               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 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 *))
-{
-       Ecore_X_Window root_window;
-       LOCKD_DBG("%s, %d", __func__, __LINE__);
-
-       if (lockw == NULL) {
-               LOCKD_ERR("lockw is NULL.");
-               return;
-       }
-
-       /* For getting window x event */
-       root_window = ecore_x_window_root_first_get();
-       ecore_x_window_client_sniff(root_window);
-
-       /* Register window create CB */
-       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);
-
-#if 0
-       lockw->volume_key_cnt = 0;
-
-       /* Register keydown event handler */
-       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)
-{
-       Ecore_X_Window root_window;
-       LOCKD_DBG("%s, %d", __func__, __LINE__);
-
-       if (lockw == NULL) {
-               LOCKD_ERR("lockw is NULL.");
-               return;
-       }
-
-       /* 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 != 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();
-
-       /* delete keydown event handler */
-       if (lockw->h_keydown != NULL) {
-               ecore_event_handler_del(lockw->h_keydown);
-               lockw->h_keydown = NULL;
-       }
-}
-
-lockw_data *lockd_window_init(void)
-{
-       lockw_data *lockw = NULL;
-       long pid;
-
-       /* Create lockd window data */
-       lockw = (lockw_data *) malloc(sizeof(lockw_data));
-       memset(lockw, 0x0, sizeof(lockw_data));
-       retv_if(!lockw, NULL);
-
-       pid = getpid();
-
-       return lockw;
-}
-
-void lockd_create_ug_window(void *data)
-{
-       lockw_data *lockw = NULL;
-       LOCKD_DBG("%s, %d", __func__, __LINE__);
-
-       lockw = (lockw_data *) data;
-       if (!lockw) {
-               return;
-       }
-
-       lockd_destroy_ug_window(lockw);
-
-       /* create main window */
-       lockw->main_win = lockd_create_main_window(PACKAGE);
-
-       /* create main layout */
-       /* remove indicator in running time */
-       /* lockw->main_layout = lockd_create_main_layout(lockw->main_win); */
-       appcore_set_i18n(PACKAGE, NULL);
-       _lockd_ug_window_set_key_grab(lockw);
-       _lockd_ug_window_register_vconf_changed(lockw);
-       lockw->phone_lock_state = 1;
-}
-
-void lockd_destroy_ug_window(void *data)
-{
-       lockw_data *lockw = NULL;
-       LOCKD_DBG("%s, %d", __func__, __LINE__);
-
-       lockw = (lockw_data *) data;
-       if (!lockw) {
-               return;
-       }
-
-       _lockd_ug_window_set_key_ungrab(lockw);
-       _lockd_ug_window_unregister_vconf_changed(lockw);
-
-       if (lockw->main_win) {
-               evas_object_del(lockw->main_win);
-               lockw->main_win = NULL;
-       }
-       lockw->phone_lock_state = 0;
-}
-
-void lockd_show_phonelock_alpha_ug(void *data)
-{
-       lockw_data *lockw = NULL;
-       app_control_h app_control;
-       struct ug_cbs cbs = { 0, };
-       LOCKD_DBG("%s, %d", __func__, __LINE__);
-
-       lockw = (lockw_data *) data;
-       if (!lockw) {
-               return;
-       }
-
-       cbs.layout_cb = _lockd_phone_lock_alpha_ug_layout_cb;
-       cbs.result_cb = _lockd_phone_lock_alpha_ug_result_cb;
-       cbs.destroy_cb = _lockd_phone_lock_alpha_ug_destroy_cb;
-       cbs.priv = (void *)data;
-
-       app_control_create(&app_control);
-
-       app_control_add_extra_data(app_control, "phone-lock-type", "phone-lock");
-       app_control_add_extra_data(app_control, "window-type", "alpha");
-
-       elm_win_alpha_set(lockw->main_win, TRUE);
-       evas_object_color_set(lockw->main_win, 0, 0, 0, 0);
-
-       /* window effect : fade in /out */
-       ecore_x_icccm_name_class_set(elm_win_xwindow_get(lockw->main_win),
-                                    "LOCK_SCREEN", "LOCK_SCREEN");
-
-       UG_INIT_EFL(lockw->main_win, UG_OPT_INDICATOR_ENABLE);
-       ug_create(NULL, "phone-lock-efl", UG_MODE_FULLVIEW, app_control, &cbs);
-       LOCKD_DBG("%s, %d", __func__, __LINE__);
-
-       app_control_destroy(app_control);
-
-       LOCKD_DBG("%s, %d", __func__, __LINE__);
-
-       evas_object_show(lockw->main_win);
-       _lockd_ug_window_set_win_prop(lockw, ECORE_X_WINDOW_TYPE_NOTIFICATION);
-}
diff --git a/src/menu_daemon.c b/src/menu_daemon.c
deleted file mode 100755 (executable)
index be0cc94..0000000
+++ /dev/null
@@ -1,813 +0,0 @@
-/*
- * 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 <ail.h>
-#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 <syspopup_caller.h>
-#include <sys/types.h>
-#include <sys/wait.h>
-#include <unistd.h>
-#include <vconf.h>
-//#include <bincfg.h>
-
-#include "hw_key.h"
-#include "util.h"
-//#include "xmonitor.h"
-#include "dbus-util.h"
-
-int errno;
-
-
-#define QUERY_UPDATE_NAME "UPDATE app_info SET name='%s' where package='%s';"
-#define RELAUNCH_INTERVAL 100*1000
-#define RETRY_MAXCOUNT 30
-#if !defined(VCONFKEY_SVOICE_PACKAGE_NAME)
-#define VCONFKEY_SVOICE_PACKAGE_NAME "db/svoice/package_name"
-#endif
-#define HOME_TERMINATED "home_terminated"
-#define ISTRUE "TRUE"
-
-#define RELAUNCH_TASKMGR 0
-
-// Define prototype of the "hidden API of AUL"
-//extern int aul_listen_app_dead_signal(int (*func)(int signal, void *data), void *data);
-
-
-
-static struct info {
-       pid_t home_pid;
-       pid_t tray_pid;
-       pid_t taskmgr_pid;
-       pid_t volume_pid;
-       int safe_mode;
-       int cradle_status;
-       int pm_key_ignore;
-       int power_off;
-       char *svoice_pkg_name;
-       char *taskmgr_pkg_name;
-} s_info = {
-       .home_pid = (pid_t)-1,
-       .tray_pid = (pid_t)-1,
-       .taskmgr_pid = (pid_t)-1,
-       .volume_pid = (pid_t)-1,
-       .safe_mode = -1,
-       .cradle_status = -1,
-       .pm_key_ignore = -1,
-       .power_off = 0,
-       .svoice_pkg_name = NULL,
-       .taskmgr_pkg_name = NULL,
-};
-
-
-
-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;
-}
-
-char *menu_daemon_get_taskmgr_pkgname(void)
-{
-       return s_info.taskmgr_pkg_name;
-}
-
-
-#define VCONFKEY_IDLE_SCREEN_SAFEMODE "memory/idle-screen/safemode"
-int menu_daemon_is_safe_mode(void)
-{
-       if (-1 == s_info.safe_mode) {
-               if (vconf_get_int(VCONFKEY_IDLE_SCREEN_SAFEMODE, &s_info.safe_mode) < 0) {
-                       _E("Failed to get safemode info");
-                       s_info.safe_mode = 0;
-               }
-       }
-
-       return s_info.safe_mode;
-}
-
-
-
-#define VCONFKEY_SYSMAN_CRADLE_STATUS "memory/sysman/cradle_status"
-int menu_daemon_get_cradle_status(void)
-{
-       if (-1 == s_info.cradle_status) {
-               if (vconf_get_int(VCONFKEY_SYSMAN_CRADLE_STATUS, &s_info.cradle_status) < 0) {
-                       _E("Failed to get cradle status");
-                       s_info.cradle_status = 0;
-               }
-       }
-
-       return s_info.cradle_status;
-}
-
-
-
-#define RETRY_COUNT 5
-int menu_daemon_open_app(const char *pkgname)
-{
-       register int i;
-       int r = AUL_R_OK;
-       for (i = 0; i < RETRY_COUNT; i ++) {
-               _D("pkgname: %s", pkgname);
-               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_OK;
-       pkgmgrinfo_appinfo_filter_h handle = NULL;
-       bool enabled = false;
-
-       if (PMINFO_R_OK != pkgmgrinfo_appinfo_get_appinfo(pkgname, &handle)) {
-               _E("Cannot get the pkginfo");
-               return -77;
-       }
-       if (PMINFO_R_OK != pkgmgrinfo_appinfo_is_enabled(handle, &enabled)) {
-               _E("Cannot get if app is enabled or not");
-               pkgmgrinfo_appinfo_destroy_appinfo(handle);
-               return -77;
-       }
-
-       if (enabled) {
-               for (i = 0; i < RETRY_COUNT; i ++) {
-                       r = aul_launch_app(pkgname, b);
-                       if (0 <= r){
-                               pkgmgrinfo_appinfo_destroy_appinfo(handle);
-                               return r;
-                       }
-                       else {
-                               _D("aul_launch_app error(%d)", r);
-                               _F("cannot launch an app(%s) by %d", pkgname, r);
-                       }
-                       usleep(500000);
-               }
-       }
-       else {
-               _SECURE_E("%s is disabled, so can't launch this", pkgname);
-               r = -77;
-       }
-
-       pkgmgrinfo_appinfo_destroy_appinfo(handle);
-       return r;
-}
-
-
-
-void menu_daemon_launch_app_tray(void)
-{
-       bundle *kb = NULL;
-       char *pkgname = NULL;
-
-       _D("launch App-tray");
-
-       pkgname = menu_daemon_get_selected_pkgname();
-       if (!pkgname)
-               return;
-       _SECURE_D("home pkg_name : %s", pkgname);
-
-       //Check preloaded Homescreen
-       if (!strncmp(pkgname, EASY_HOME_PKG_NAME, strlen(pkgname))) {
-               pkgname = EASY_APPS_PKG_NAME;
-       } else if (!strncmp(pkgname, HOMESCREEN_PKG_NAME, strlen(pkgname))) {
-               pkgname = HOMESCREEN_PKG_NAME;
-       }
-       _SECURE_D("apps pkg_name : %s", pkgname);
-
-
-       kb = bundle_create();
-       bundle_add(kb, "HIDE_LAUNCH", "0");
-       bundle_add(kb, "SHOW_APPS", "TRUE");
-
-       s_info.tray_pid = menu_daemon_launch_app(pkgname, kb);
-       if (s_info.tray_pid < 0) {
-               _SECURE_E("Failed to reset %s", pkgname);
-       } else if (s_info.tray_pid > 0) {
-               if(starter_dbus_set_oomadj(s_info.tray_pid, OOM_ADJ_VALUE_HOMESCREEN) < 0){
-                       _E("failed to send oom dbus signal");
-               }
-       }
-
-       bundle_free(kb);
-}
-
-
-
-bool menu_daemon_is_homescreen(pid_t pid)
-{
-       if (s_info.home_pid == pid) return true;
-       return false;
-}
-
-
-
-
-static inline void _hide_launch_task_mgr(void)
-{
-       bundle *kb = NULL;
-
-       _D("Hide to launch Taskmgr");
-       kb = bundle_create();
-       bundle_add(kb, "HIDE_LAUNCH", "1");
-
-       s_info.taskmgr_pid = menu_daemon_launch_app(menu_daemon_get_taskmgr_pkgname(), kb);
-       if (s_info.taskmgr_pid < 0) {
-               _SECURE_E("Failed to reset %s", APP_TRAY_PKG_NAME);
-       } else if (s_info.taskmgr_pid > 0) {
-               if(starter_dbus_set_oomadj(s_info.taskmgr_pid, OOM_ADJ_VALUE_DEFAULT) < 0){
-                       _E("failed to send oom dbus signal");
-               }
-       }
-
-       bundle_free(kb);
-}
-
-
-
-static bool _exist_package(char *pkgid)
-{
-       int ret = 0;
-       pkgmgrinfo_appinfo_h handle = NULL;
-
-       ret = pkgmgrinfo_appinfo_get_appinfo(pkgid, &handle);
-       if (PMINFO_R_OK != ret || NULL == handle) {
-               _SECURE_D("%s doesn't exist in this binary", pkgid);
-               return false;
-       }
-
-       pkgmgrinfo_appinfo_destroy_appinfo(handle);
-
-       return true;
-}
-
-
-
-static void _check_home_screen_package(void)
-{
-       char *pkgname = NULL;
-       pkgname = menu_daemon_get_selected_pkgname();
-       if (pkgname) {
-               _SECURE_D("Selected Home-screen : %s", pkgname);
-               bool is_existed = _exist_package(pkgname);
-               free(pkgname);
-               if (true == is_existed) {
-                       return;
-               }
-       }
-
-#if 0 /* Homescreen pkg is changed */
-       if (_exist_package(CLUSTER_HOME_PKG_NAME)) {
-               if (0 != vconf_set_str(VCONFKEY_SETAPPL_SELECTED_PACKAGE_NAME, CLUSTER_HOME_PKG_NAME)) {
-                       _SECURE_E("Cannot set value(%s) into key(%s)", VCONFKEY_SETAPPL_SELECTED_PACKAGE_NAME, CLUSTER_HOME_PKG_NAME);
-               } else return;
-       }
-#else
-       if (_exist_package(HOMESCREEN_PKG_NAME)) {
-               if (0 != vconf_set_str(VCONFKEY_SETAPPL_SELECTED_PACKAGE_NAME, HOMESCREEN_PKG_NAME)) {
-                       _SECURE_E("Cannot set value(%s) into key(%s)", VCONFKEY_SETAPPL_SELECTED_PACKAGE_NAME, HOMESCREEN_PKG_NAME);
-               } else return;
-       }
-#endif
-
-       if (_exist_package(MENU_SCREEN_PKG_NAME)) {
-               if (0 != vconf_set_str(VCONFKEY_SETAPPL_SELECTED_PACKAGE_NAME, MENU_SCREEN_PKG_NAME)) {
-                       _SECURE_E("Cannot set value(%s) into key(%s)", VCONFKEY_SETAPPL_SELECTED_PACKAGE_NAME, MENU_SCREEN_PKG_NAME);
-               } else return;
-       }
-       _E("Invalid Homescreen..!!");
-}
-
-
-
-#define SERVICE_OPERATION_MAIN_KEY "__APP_SVC_OP_TYPE__"
-#define SERVICE_OPERATION_MAIN_VALUE "http://tizen.org/appcontrol/operation/main"
-inline int menu_daemon_open_homescreen(const char *pkgname)
-{
-       char *homescreen = NULL;
-       char *tmp = NULL;
-
-//     if (bincfg_is_factory_binary() != 1) {
-               if (menu_daemon_is_safe_mode()) {
-                       homescreen = HOMESCREEN_PKG_NAME;
-               } else {
-                       homescreen = (char *) pkgname;
-               }
-/*     } else {
-               homescreen = (char *) pkgname;
-       }
-*/
-       if (!pkgname) {
-               tmp = menu_daemon_get_selected_pkgname();
-               retv_if(NULL == tmp, -1);
-               homescreen = tmp;
-       }
-
-       int ret = -1;
-
-       //Check preloaded Homescreen
-       if (!strncmp(homescreen, HOMESCREEN_PKG_NAME, strlen(homescreen))) {
-               _SECURE_D("Launch %s", homescreen);
-               bundle *b = NULL;
-               b = bundle_create();
-               if (!b) {
-                       _E("Failed to create bundle");
-                       ret = menu_daemon_open_app(homescreen);
-                       while (0 > ret) {
-                               _E("Failed to open a default home, %s", homescreen);
-                               ret = menu_daemon_open_app(homescreen);
-                       }
-               } else {
-                       bundle_add(b, SERVICE_OPERATION_MAIN_KEY, SERVICE_OPERATION_MAIN_VALUE);
-                       ret = menu_daemon_launch_app(homescreen, b);
-                       while (0 > ret) {
-                               _E("Failed to launch a default home, %s", homescreen);
-                               ret = menu_daemon_launch_app(homescreen, b);
-                       }
-                       bundle_free(b);
-               }
-       } else {
-               ret = menu_daemon_open_app(homescreen);
-               while (0 > ret) {
-                       _E("Failed to open a default home, %s", homescreen);
-                       ret = menu_daemon_open_app(homescreen);
-               }
-       }
-#if RELAUNCH_TASKMGR
-       if (s_info.taskmgr_pid < 0) {
-               _hide_launch_task_mgr();
-       }
-#endif
-       s_info.home_pid = ret;
-       if (ret > 0) {
-               if(starter_dbus_set_oomadj(ret, OOM_ADJ_VALUE_HOMESCREEN) < 0){
-                       _E("failed to send oom dbus signal");
-               }
-       }
-
-       if (tmp) free(tmp);
-       return ret;
-}
-
-
-#if 0
-inline int menu_daemon_get_pm_key_ignore(int ignore_key)
-{
-       return s_info.pm_key_ignore & ignore_key;
-}
-
-
-inline void menu_daemon_set_pm_key_ignore(int ignore_key, int value)
-{
-       if (value) {
-               s_info.pm_key_ignore |= ignore_key;
-       } else {
-               s_info.pm_key_ignore &= ~ignore_key;
-       }
-
-       if (vconf_set_int(VCONFKEY_PM_KEY_IGNORE, s_info.pm_key_ignore) < 0) {
-               _E("Can't set %s", VCONFKEY_PM_KEY_IGNORE);
-       }
-}
-#endif
-
-
-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; /* to freeze the dead_cb */
-                               if (aul_terminate_pid(pid) != AUL_R_OK)
-                                       _E("Failed to terminate %d", s_info.home_pid);
-
-                               _D("pid[%d] is terminated.", s_info.taskmgr_pid);
-                               pid = s_info.taskmgr_pid;
-                               s_info.taskmgr_pid = -1; /* to freeze the dead_cb */
-                               if (pid > 0 && aul_terminate_pid(pid) != AUL_R_OK)
-                                       _E("Failed to terminate %d", s_info.taskmgr_pid);
-                       }
-                       break;
-               case 1:
-                       menu_daemon_open_homescreen(NULL);
-                       break;
-               default:
-                       _E("False sequence [%d]", seq);
-                       break;
-       }
-
-       return;
-}
-
-
-
-static void _font_cb(keynode_t* node, void *data)
-{
-       _D("Font is changed");
-
-       if (AUL_R_OK != aul_terminate_pid(s_info.taskmgr_pid))
-               _E("Cannot terminate Taskmgr");
-}
-
-
-
-static void _cradle_status_cb(keynode_t* node, void *data)
-{
-       if (vconf_get_int(VCONFKEY_SYSMAN_CRADLE_STATUS, &s_info.cradle_status) < 0) {
-               _E("Failed to get cradle status");
-               s_info.cradle_status = 0;
-       }
-
-       _D("Cradle status is changed to [%d]", s_info.cradle_status);
-}
-
-
-#if 0
-static void _pm_key_ignore_cb(keynode_t* node, void *data)
-{
-       if (vconf_get_int(VCONFKEY_PM_KEY_IGNORE, &s_info.pm_key_ignore) < 0) {
-               _E("Failed to get pm key ignore");
-               s_info.pm_key_ignore= -1;
-       }
-
-       _D("pm key ignore is changed to [%d]", s_info.pm_key_ignore);
-}
-#endif
-
-
-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");
-
-       _check_home_screen_package();
-
-       pkgname = menu_daemon_get_selected_pkgname();
-       if (!pkgname)
-               return;
-
-       _SECURE_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);
-       } else {
-               /* If there is no running home */
-               menu_daemon_open_homescreen(pkgname);
-       }
-
-       /* NOTE: Dead callback will catch the termination of a current menuscreen 
-        * 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;
-                       if(starter_dbus_set_oomadj(s_info.volume_pid, OOM_ADJ_VALUE_DEFAULT) < 0){
-                               _E("failed to send oom dbus signal");
-                       }
-                       return;
-               }
-       }
-}
-
-
-static void _menu_daemon_launch_homescreen(const char *pkgname)
-{
-       char *homescreen = NULL;
-       char *tmp = NULL;
-       bundle *b;
-
-//     if (bincfg_is_factory_binary() != 1) {
-               if (menu_daemon_is_safe_mode()) {
-                       homescreen = HOMESCREEN_PKG_NAME;
-               } else {
-                       homescreen = (char *) pkgname;
-               }
-/*     } else {
-               homescreen = (char *) pkgname;
-       }
-*/
-       if (!pkgname) {
-               tmp = menu_daemon_get_selected_pkgname();
-               ret_if(NULL == tmp);
-               homescreen = tmp;
-       }
-
-       int ret = -1;
-       b = bundle_create();
-       bundle_add(b, HOME_TERMINATED, ISTRUE);
-       ret = aul_launch_app(homescreen, b);
-       while (0 > ret) {
-               _E("Failed to open a default home, %s", homescreen);
-               ret = aul_launch_app(homescreen, b);
-       }
-
-       if(b) {
-               bundle_free(b);
-       }
-#if RELAUNCH_TASKMGR
-       if (s_info.taskmgr_pid < 0) {
-               _hide_launch_task_mgr();
-       }
-#endif
-       s_info.home_pid = ret;
-       if (ret > 0) {
-               if(starter_dbus_set_oomadj(ret, OOM_ADJ_VALUE_HOMESCREEN) < 0){
-                       _E("failed to send oom dbus signal");
-               }
-       }
-
-       if (tmp) free(tmp);
-}
-
-
-int menu_daemon_check_dead_signal(int pid)
-{
-       char *pkgname;
-
-       _D("Process %d is termianted", pid);
-
-       if (pid < 0) return 0;
-       if (s_info.power_off) return 0;
-
-       pkgname = menu_daemon_get_selected_pkgname();
-       if (!pkgname)
-               return 0;
-
-       if (pid == s_info.home_pid) {
-               /* Relaunch */
-               _SECURE_D("pkg_name : %s", pkgname);
-               //menu_daemon_open_homescreen(pkgname);
-               _menu_daemon_launch_homescreen(pkgname);
-       }
-#if RELAUNCH_TASKMGR
-       else if (pid == s_info.taskmgr_pid) {
-               _hide_launch_task_mgr();
-       }
-#endif
-       else if (pid == s_info.volume_pid) {
-               /* Relaunch */
-               _launch_volume();
-       } else {
-               _D("Unknown process, ignore it (dead pid %d, home pid %d, taskmgr pid %d)",
-                               pid, s_info.home_pid, s_info.taskmgr_pid);
-       }
-
-       free(pkgname);
-
-       return 0;
-}
-
-
-int menu_daemon_get_volume_pid(void)
-{
-       return s_info.volume_pid;
-}
-
-
-static void _svoice_pkg_cb(keynode_t* node, void *data)
-{
-       if (s_info.svoice_pkg_name) free(s_info.svoice_pkg_name);
-
-       s_info.svoice_pkg_name = vconf_get_str(VCONFKEY_SVOICE_PACKAGE_NAME);
-       ret_if(NULL == s_info.svoice_pkg_name);
-
-       _SECURE_D("svoice pkg name is changed to [%s]", s_info.svoice_pkg_name);
-}
-
-
-#define SERVICE_OPERATION_POPUP_SEARCH "http://samsung.com/appcontrol/operation/search"
-#define SEARCH_PKG_NAME "com.samsung.sfinder"
-int menu_daemon_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;
-}
-
-
-const char *menu_daemon_get_svoice_pkg_name(void)
-{
-       return s_info.svoice_pkg_name;
-}
-
-
-
-static void _power_off_cb(keynode_t* node, void *data)
-{
-       int val = VCONFKEY_SYSMAN_POWER_OFF_NONE;
-       ret_if(vconf_get_int(VCONFKEY_SYSMAN_POWER_OFF_STATUS, &val) != 0);
-
-       if (val == VCONFKEY_SYSMAN_POWER_OFF_DIRECT || val == VCONFKEY_SYSMAN_POWER_OFF_RESTART) {
-               s_info.power_off = 1;
-       } else s_info.power_off = 0;
-
-       _D("power off status : %d", s_info.power_off);
-}
-
-static Eina_Bool _launch_volume_idler_cb(void *data)
-{
-       _D("%s, %d", __func__, __LINE__);
-       _launch_volume();
-
-       return ECORE_CALLBACK_CANCEL;
-}
-
-void menu_daemon_init(void *data)
-{
-       bool is_exist = false;
-       _D( "[MENU_DAEMON]menu_daemon_init is invoked");
-
-       aul_launch_init(NULL,NULL);
-
-       _check_home_screen_package();
-
-       create_key_window();
-       //if (xmonitor_init() < 0) _E("cannot init xmonitor");
-
-//     _launch_volume();
-
-       is_exist = _exist_package(TASKMGR_PKG_NAME);
-       if(is_exist){
-               s_info.taskmgr_pkg_name = TASKMGR_PKG_NAME;
-       }
-       else{
-               s_info.taskmgr_pkg_name = DEFAULT_TASKMGR_PKG_NAME; /* rsa task manager */
-       }
-
-       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");
-
-       if (vconf_notify_key_changed("db/setting/accessibility/font_name", _font_cb, NULL) < 0)
-               _E("Failed to add the callback for font event");
-
-       if (vconf_notify_key_changed(VCONFKEY_SYSMAN_CRADLE_STATUS, _cradle_status_cb, NULL) < 0)
-               _E("Failed to add the callback for cradle status");
-
-       _D("Cradle status : %d", menu_daemon_get_cradle_status());
-
-#if 0
-       if (vconf_notify_key_changed(VCONFKEY_PM_KEY_IGNORE, _pm_key_ignore_cb, NULL) < 0)
-               _E("Failed to add the callback for pm key ignore");
-       _pm_key_ignore_cb(NULL, NULL);
-#endif
-
-       _pkg_changed(NULL, NULL);
-
-       ecore_idler_add(_launch_volume_idler_cb, NULL);
-
-       if (vconf_notify_key_changed(VCONFKEY_SVOICE_PACKAGE_NAME, _svoice_pkg_cb, NULL) < 0)
-               _E("Failed to add the callback for svoice pkg");
-
-       _svoice_pkg_cb(NULL, NULL);
-
-       if (vconf_notify_key_changed(VCONFKEY_SYSMAN_POWER_OFF_STATUS, _power_off_cb, NULL) < 0)
-               _E("Failed to add the callback for power-off");
-
-       // THIS ROUTINE IS FOR SAT.
-       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");
-
-       if (vconf_ignore_key_changed("db/setting/accessibility/font_name", _font_cb) < 0)
-               _E("Failed to ignore the callback for font event");
-
-       if (vconf_ignore_key_changed(VCONFKEY_SYSMAN_CRADLE_STATUS, _cradle_status_cb) < 0)
-               _E("Failed to ignore the callback for cradle status");
-
-#if 0
-       if (vconf_ignore_key_changed(VCONFKEY_PM_KEY_IGNORE, _pm_key_ignore_cb) < 0)
-               _E("Failed to ignore the callback for pm key ignore");
-#endif
-
-       if (vconf_ignore_key_changed(VCONFKEY_SVOICE_PACKAGE_NAME, _svoice_pkg_cb) < 0)
-               _E("Failed to ignore the callback for svoice pkg");
-       if (s_info.svoice_pkg_name) free(s_info.svoice_pkg_name);
-
-       if (vconf_ignore_key_changed(VCONFKEY_SYSMAN_POWER_OFF_STATUS, _power_off_cb) < 0)
-               _E("Failed to ignore the callback for power-off");
-
-       //xmonitor_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..10bc6ed
--- /dev/null
@@ -0,0 +1,418 @@
+/*
+ * 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
+
+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,
+};
+
+
+int home_mgr_get_home_pid(void)
+{
+       return s_home_mgr.home_pid;
+}
+
+
+
+int home_mgr_get_volume_pid(void)
+{
+       return s_home_mgr.volume_pid;
+}
+
+
+
+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 (!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, SERVICE_OPERATION_MAIN_KEY, SERVICE_OPERATION_MAIN_VALUE, _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;
+
+       _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) {
+                       if (vconf_set_int(VCONFKEY_STARTER_IS_FALLBACK, 0)) {
+                               _E("Failed to set vconfkey : %s", VCONFKEY_STARTER_IS_FALLBACK);
+                       }
+
+                       if (!strcmp(status_active_get()->setappl_selected_package_name, MENU_SCREEN_PKG_NAME)) {
+                               char *fallback_pkg;
+
+                               fallback_pkg = vconf_get_str(VCONFKEY_STARTER_FALLBACK_PKG);
+                               _D("fallback pkg : %s", fallback_pkg);
+                               if (fallback_pkg) {
+                                       int status;
+
+                                       status = vconf_set_str(VCONFKEY_SETAPPL_SELECTED_PACKAGE_NAME, fallback_pkg);
+                                       free(fallback_pkg);
+                                       if (status == 0) {
+                                               break;
+                                       }
+                                       _E("Failed to set vconfkey : %s (%d)", VCONFKEY_SETAPPL_SELECTED_PACKAGE_NAME, status);
+                               } else {
+                                       _E("Failed to get vconfkey : %s", VCONFKEY_STARTER_FALLBACK_PKG);
+                               }
+                       }
+               }
+
+               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 (!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");
+
+               /* 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);
+               }
+
+               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);
+                       }
+               }
+
+               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;
+               }
+       }
+
+       s_home_mgr.dead_timer = NULL;
+       s_home_mgr.dead_count = 0;
+
+       return ECORE_CALLBACK_CANCEL;
+}
+
+
+
+void home_mgr_relaunch_homescreen(void)
+{
+       char *appid = NULL;
+
+       if (s_home_mgr.power_off) {
+               _E("power off");
+               return;
+       }
+
+       appid = status_active_get()->setappl_selected_package_name;
+       if (!appid) {
+               _E("appid is NULL");
+               return;
+       }
+
+       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);
+}
+
+
+
+void home_mgr_relaunch_volume(void)
+{
+       process_mgr_must_syspopup_launch(SYSPOPUPID_VOLUME, NULL, NULL, NULL, _after_launch_volume);
+}
+
+
+
+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);
+}
+
+
+
+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..eb74987
--- /dev/null
@@ -0,0 +1,489 @@
+/*
+ * 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 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;
+       }
+}
+
+
+
+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;
+}
+
+
+
+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;
+}
+
+
+
+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;
+       }
+}
+
+
+
+void hw_key_create_window(void)
+{
+       int ret;
+       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);
+}
+
+
+
+void hw_key_destroy_window(void)
+{
+       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();
+}
+
+
+
+// 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..e77ef5d
--- /dev/null
@@ -0,0 +1,622 @@
+/*
+ * 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 <unistd.h>
+#include <feedback.h>
+#include <time.h>
+#include <dd-deviced.h>
+#include <dd-display.h>
+#include <aul.h>
+#include <system_settings.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;
+       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_pid = -1,
+       .lcd_state = -1,
+
+       .lockw = NULL,
+};
+
+
+
+int lock_mgr_lcd_state_get(void)
+{
+       return s_lock_mgr.lcd_state;
+}
+
+
+
+int lock_mgr_get_lock_pid(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 */
+       if (!lock_mgr_lockscreen_launch()) {
+               _E("Failed to launch lockscreen");
+       }
+
+       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("after %d SEC.s alarm set", 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_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 || lock_state > VCONFKEY_IDLE_LAUNCHING_LOCK) {
+               _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)
+{
+       _D("%s", __func__);
+
+       return 0;
+}
+
+
+
+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;
+}
+
+
+
+void lock_mgr_unlock(void)
+{
+       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);
+}
+
+
+
+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;
+       } 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");
+                       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();
+                               }
+
+                               if (!lock_mgr_lockscreen_launch()) {
+                                       _E("Failed to launch lockscreen");
+                               }
+
+                               lock_pwd_util_view_init();
+                       }
+               } else {
+                       _D("Password lock is OFF");
+                       if(!strncmp(lcd_off_source, "timeout", strlen(lcd_off_source))) {
+                               _D("LCD off by timeout");
+                               _lcd_off_by_timeout();
+                       } else {
+                               _D("LCD off by %s", lcd_off_source);
+                               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();
+                                       }
+
+                                       if (!lock_mgr_lockscreen_launch()) {
+                                               _E("Failed to launch lockscreen");
+                                       }
+                               }
+                       }
+               }
+
+               free(lcd_off_source);
+       } else {
+               _E("%s dbus_message_is_signal error", DEVICED_INTERFACE_DISPLAY);
+       }
+}
+
+
+
+Eina_Bool lock_mgr_lockscreen_launch(void)
+{
+       const char *lock_appid = NULL;
+       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_appid = status_passive_get()->setappl_3rd_lock_pkg_name_str;
+       if (!lock_appid) {
+               _E("set default lockscreen");
+               lock_appid = STATUS_DEFAULT_LOCK_PKG_NAME;
+       }
+
+       _D("lockscreen appid : %s", lock_appid);
+
+       switch (lock_type) {
+       case SETTING_SCREEN_LOCK_TYPE_NONE:
+       case SETTING_SCREEN_LOCK_TYPE_OTHER:
+               if (!strcmp(lock_appid, STATUS_DEFAULT_LOCK_PKG_NAME)) {
+                       _D("ignore launching lockscreen");
+               } else {
+                       process_mgr_must_launch(lock_appid, NULL, NULL, _lock_changed_cb, _after_launch_lock);
+                       //@TODO: need to check(add error popup)
+               }
+               break;
+       case SETTING_SCREEN_LOCK_TYPE_SWIPE:
+               process_mgr_must_launch(lock_appid, 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_appid, 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;
+       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 _lock_daemon_init(void)
+{
+       _SECURE_D("default lock screen pkg name is %s", status_passive_get()->setappl_3rd_lock_pkg_name_str);
+
+       /* 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_destroy();
+       }
+
+       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);
+
+       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.lockw) {
+               free(s_lock_mgr.lockw);
+       }
+}
diff --git a/src/mobile/popup.c b/src/mobile/popup.c
new file mode 100644 (file)
index 0000000..c52c055
--- /dev/null
@@ -0,0 +1,125 @@
+/*
+ * 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 <efl_extension.h>
+
+#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);
+}
+
+
+
+static void _popup_del_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       ret_if(!obj);
+
+       _popup_destroy(obj);
+}
+
+
+
+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);
+       eext_object_event_callback_add(popup, EEXT_CALLBACK_BACK, _popup_del_cb, NULL);
+       evas_object_smart_callback_add(popup, "block,clicked", _popup_del_cb, NULL);
+
+       /* 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..e0d09e9
--- /dev/null
@@ -0,0 +1,280 @@
+/*
+ * 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 "lock_pwd_util.h"
+#include "lock_pwd_control_panel.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"
+
+#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;
+}
+
+
+
+static void _language_changed_cb(keynode_t *node, void *data)
+{
+       char *lang = NULL;
+
+       ret_if(!node);
+
+       lang = vconf_keynode_get_str(node);
+       ret_if(!lang);
+
+       _D("language is changed : %s", lang);
+
+       elm_language_set(lang);
+
+       lock_pwd_util_view_init();
+}
+
+
+
+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");
+       }
+
+       if (vconf_notify_key_changed(VCONFKEY_LANGSET, _language_changed_cb, NULL) < 0) {
+               _E("Failed to register changed cb : %s", VCONFKEY_LANGSET);
+       }
+
+       return 0;
+}
+
+
+
+static int _check_dead_signal(int pid, void *data)
+{
+       int home_pid = 0;
+       int volume_pid = 0;
+       int lock_pid = 0;
+
+       _D("Process %d is termianted", pid);
+
+       if (pid < 0) {
+               _E("pid : %d", pid);
+               return 0;
+       }
+
+       home_pid = home_mgr_get_home_pid();
+       volume_pid = home_mgr_get_volume_pid();
+       lock_pid = lock_mgr_get_lock_pid();
+
+       if (pid == home_pid) {
+               _D("Homescreen is dead");
+               home_mgr_relaunch_homescreen();
+       } else if (pid == volume_pid) {
+               _D("volume is dead");
+               home_mgr_relaunch_volume();
+       } else if (pid == lock_pid) {
+               _D("lockscreen is dead");
+               lock_mgr_unlock();
+       } else {
+               _D("Unknown process, ignore it");
+       }
+
+       return 0;
+}
+
+
+
+static void _init(struct appdata *ad)
+{
+       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));
+       }
+
+       _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);
+
+       lock_mgr_daemon_start();
+       hw_key_create_window();
+       home_mgr_init(NULL);
+
+       aul_listen_app_dead_signal(_check_dead_signal, 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();
+
+       if (vconf_ignore_key_changed(VCONFKEY_LANGSET, _language_changed_cb) < 0) {
+               _E("Failed to unregister changed cb : %s", VCONFKEY_LANGSET);
+       }
+}
+
+
+
+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..7822e96
--- /dev/null
@@ -0,0 +1,451 @@
+/*
+ * 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 <efl_util.h>
+
+#include "window_mgr.h"
+#include "util.h"
+#include "lock_pwd_util.h"
+
+#define STR_ATOM_PANEL_SCROLLABLE_STATE         "_E_MOVE_PANEL_SCROLLABLE_STATE"
+#define ROUND_DOUBLE(x) (round(x*10)/10)
+
+
+
+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 *))
+{
+       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->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);
+}
+
+
+
+static void _update_scale(void)
+{
+       int target_width, target_height, target_width_mm, target_height_mm;
+       double target_inch, scale, profile_factor;
+       int dpi;
+       char *profile;
+
+       target_width = 0;
+       target_height = 0;
+       target_width_mm = 0;
+       target_height_mm = 0;
+       profile_factor = 1.0;
+       scale = 1.0;
+
+       ecore_x_randr_screen_current_size_get(ecore_x_window_root_first_get(), &target_width, &target_height, &target_width_mm, &target_height_mm);
+       target_inch = ROUND_DOUBLE(sqrt(target_width_mm * target_width_mm + target_height_mm * target_height_mm) / 25.4);
+       dpi = (int)(((sqrt(target_width * target_width + target_height * target_height) / target_inch) * 10 + 5) / 10);
+
+       profile = elm_config_profile_get();
+       _D("profile : %s", profile);
+
+       if (!strcmp(profile, "wearable")) {
+               profile_factor = 0.4;
+       } else if (!strcmp(profile, "mobile") ||
+                       !strcmp(profile, "default")) {
+               if (target_inch <= 4.0) {
+                       profile_factor = 0.7;
+               } else {
+                       profile_factor = 0.8;
+               }
+       } else if (!strcmp(profile, "desktop")) {
+               profile_factor = 1.0;
+       }
+
+       scale = ROUND_DOUBLE(dpi / 90.0 * profile_factor);
+       _D("scale : %f", scale);
+
+       elm_config_scale_set(scale);
+}
+
+
+
+Evas_Object *window_mgr_pwd_lock_win_create(void)
+{
+       Evas_Object *win = NULL;
+
+       /* Set scale value */
+       _update_scale();
+
+       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_conformant_set(win, EINA_TRUE);
+       elm_win_indicator_mode_set(win, ELM_WIN_INDICATOR_SHOW);
+
+       efl_util_set_notification_window_level(win, EFL_UTIL_NOTIFICATION_LEVEL_MEDIUM);
+
+       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_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 0a64238..0000000
+++ /dev/null
@@ -1,310 +0,0 @@
-/*
- * 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 <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;
-       }
-
-       memset(buf, 0, read_size);
-
-       len = read(fd, buf, read_size);
-       if (len < 0) {
-               free(buf);
-               // Stop monitoring about this invalid file descriptor
-               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;
-
-               // 1. check the extension of a file
-               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) {
-                       _SECURE_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';
-               _SECURE_D("Package : %s", package);
-
-               // add & update
-               if (event->mask & IN_CLOSE_WRITE || event->mask & IN_MOVED_TO) { // for moving
-                       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) {
-                                               _SECURE_D("Failed to add a new package (%s)", event->name);
-                                       }
-                               } else if (AIL_ERROR_OK == ret) {
-                                       if (ail_desktop_update(package) < 0) {
-                                               _SECURE_D("Failed to add a new package (%s)", event->name);
-                                       }
-                               }
-                       } else {
-                               _E("Failed to get appinfo");
-                       }
-               } else if (event->mask & IN_DELETE) { // for deleting
-                       if (ail_desktop_remove(package) < 0)
-                               _SECURE_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;
-       char buf[1024] = { 0, };
-
-       s_desktop_notifier.ifd = inotify_init();
-       if (s_desktop_notifier.ifd == -1) {
-               _E("inotify_init error: %s", strerror_r(errno, buf, sizeof(buf)));
-               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_r(errno, buf, sizeof(buf)));
-                       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) {
-               // TODO: Handles me.. EXCEPTION!!
-               _E("cannot add handler for inotify");
-       }
-}
-
-
-
-void pkg_event_fini(void)
-{
-       register int i;
-       char buf[1024] = { 0 , };
-
-       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_r(errno, buf, sizeof(buf)));
-                       }
-                       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;
-       }
-}
-
-
-// End of a file
diff --git a/src/process_mgr.c b/src/process_mgr.c
new file mode 100644 (file)
index 0000000..4a8ef69
--- /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 <bundle_internal.h>
+
+#include "process_mgr.h"
+#include "util.h"
+#include "dbus_util.h"
+
+#define LOCKD_VOICE_CALL_PKG_NAME "org.tizen.call-ui"
+#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_ENOAPP) {
+               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_ENOAPP) {
+               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_ENOAPP) {
+               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("error : %d", 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("error : %d", 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 061c3cb..0000000
+++ /dev/null
@@ -1,594 +0,0 @@
-/*
- * 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 <aul.h>
-#include <vconf.h>
-#include <signal.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 "com.samsung.starter"
-#endif
-
-#define DEFAULT_THEME "tizen"
-#define PWLOCK_PATH "/usr/apps/com.samsung.pwlock/bin/pwlock"
-#define PWLOCK_PKG_NAME "com.samsung.pwlock"
-#define PWLOCK_LITE_PKG_NAME "com.samsung.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"
-
-#ifdef FEATURE_LITE
-#define _FIRST_HOME 1
-#else
-#define _FIRST_HOME 1
-#endif
-
-static int _check_encrypt_sdcard()
-{
-       const char *crypt_file = SD_CRYPT_META_FILE;
-       char *meta_data_file = NULL;
-       int ret = -1;
-       int length = 0;
-
-       length = strlen(MMC_MOUNT_POINT) + strlen(crypt_file) + 2;
-
-       meta_data_file = malloc(length);
-       if (!meta_data_file) {
-               _DBG("malloc error");
-               return -1;
-       }
-
-       snprintf(meta_data_file, length, "%s/%s", MMC_MOUNT_POINT, crypt_file);
-       if (access(meta_data_file, F_OK) == 0) {
-               ret = 0;
-       }
-       free(meta_data_file);
-
-       _DBG("Check sd card ecryption : %d", ret);
-
-       return ret;
-}
-
-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);
-}
-
-#if 0
-static void _set_elm_entry(void)
-{
-       int v;
-       int r;
-
-       r = vconf_get_bool(VCONFKEY_SETAPPL_AUTOCAPITAL_ALLOW_BOOL, &v);
-       if (!r) {
-               prop_int_set("ENLIGHTENMENT_AUTOCAPITAL_ALLOW", v);
-               _DBG("vconf autocatipal[%d]", v);
-       }
-
-       r = vconf_get_bool(VCONFKEY_SETAPPL_AUTOPERIOD_ALLOW_BOOL, &v);
-       if (!r) {
-               prop_int_set("ENLIGHTENMENT_AUTOPERIOD_ALLOW", v);
-               _DBG("vconf autoperiod[%d]", v);
-       }
-}
-#endif
-
-static int _launch_pwlock(void)
-{
-       int r;
-       //int i = 0;
-
-       _DBG("%s", __func__);
-
-#ifdef FEATURE_LITE
-       r = aul_launch_app(PWLOCK_LITE_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-lite");
-                       r = aul_launch_app(PWLOCK_LITE_PKG_NAME, NULL);
-                       if (r < 0) {
-                               _ERR("2'nd PWLock launch error: error(%d)", r);
-                               return -1;
-                       } else {
-                               _DBG("Launch pwlock-lite");
-                               return r;
-                       }
-               } else {
-                       return -1;
-               }
-       } else {
-               _DBG("Launch pwlock-lite");
-               return r;
-       }
-#else
-       r = aul_launch_app(PWLOCK_LITE_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_LITE_PKG_NAME, NULL);
-                       if (r < 0) {
-                               _ERR("2'nd PWLock launch error: error(%d)", r);
-                               return -1;
-                       } else {
-                               _DBG("Launch pwlock");
-                               return r;
-                       }
-               } else {
-                       return -1;
-               }
-       } else {
-               _DBG("Launch pwlock");
-               return r;
-       }
-#endif
-#if 0
- retry_con:
-       r = aul_launch_app("com.samsung.pwlock", NULL);
-       if (r < 0) {
-               _ERR("PWLock launch error: error(%d)", r);
-               if (r == AUL_R_ETIMEOUT) {
-                       i++;
-                       _DBG("Launching pwlock is failed [%d]times for AUL_R_ETIMEOUT ", i);
-                       goto retry_con;
-               } else {
-                       return -1;
-               }
-       } else {
-               _DBG("Launch pwlock");
-               return 0;
-       }
-#endif
-}
-
-static void _signal_handler(int signum, siginfo_t *info, void *unused)
-{
-    _DBG("_signal_handler : Terminated...");
-    elm_exit();
-}
-
-#if 0
-static void _heynoti_event_power_off(void *data)
-{
-    _DBG("_heynoti_event_power_off : Terminated...");
-    elm_exit();
-}
-#endif
-
-static void _poweroff_control_cb(keynode_t *in_key, void *data)
-{
-       int val;
-       if (vconf_get_int(VCONFKEY_SYSMAN_POWER_OFF_STATUS, &val) == 0 &&
-               (val == VCONFKEY_SYSMAN_POWER_OFF_DIRECT || val == VCONFKEY_SYSMAN_POWER_OFF_RESTART)) {
-           _DBG("_poweroff_control_cb : Terminated...");
-           elm_exit();
-       }
-}
-
-#define APP_ID_SPLIT_LAUNCHER "com.samsung.split-launcher"
-static Eina_Bool _fini_boot(void *data)
-{
-       _DBG("%s %d\n", __func__, __LINE__);
-
-       int multiwindow_enabled = 0;
-       int val = 0;
-
-       if (vconf_set_int(VCONFKEY_BOOT_ANIMATION_FINISHED, 1) != 0) {
-               _ERR("Failed to set boot animation finished set");
-       }
-
-       if (vconf_get_bool(VCONFKEY_QUICKSETTING_MULTIWINDOW_ENABLED, &multiwindow_enabled) < 0) {
-               _ERR("Cannot get VCONFKEY");
-               multiwindow_enabled = 0;
-       }
-
-       if (vconf_get_bool(VCONFKEY_SETAPPL_ACCESSIBILITY_TTS, &val) < 0) {
-               _DBG("Cannot get VCONFKEY");
-               val = 0;
-       }
-
-       if ((val == 1) || (multiwindow_enabled == 0)) {
-               _DBG("TTS : %d, Multiwindow enabled : %d", val, multiwindow_enabled);
-               return ECORE_CALLBACK_CANCEL;
-       }
-
-       _DBG("Launch the split-launcher");
-
-       int ret = aul_launch_app(APP_ID_SPLIT_LAUNCHER, NULL);
-       if (0 > ret) _ERR("cannot launch the split-launcher (%d)", ret);
-
-       return ECORE_CALLBACK_CANCEL;
-}
-
-
-static Eina_Bool _init_idle(void *data)
-{
-       _DBG("%s %d\n", __func__, __LINE__);
-       int pwlock_pid = 0;
-       if ((pwlock_pid = _launch_pwlock()) < 0) {
-               _ERR("launch pwlock error");
-       }
-       else{
-               lockd_process_mgr_set_pwlock_priority(pwlock_pid);
-       }
-       _fini_boot(NULL);
-       return ECORE_CALLBACK_CANCEL;
-}
-
-static void _lock_state_cb(keynode_t * node, void *data)
-{
-       _DBG("%s %d\n", __func__, __LINE__);
-#if 0
-       if (_launch_pwlock() < 0) {
-               _ERR("launch pwlock error");
-       }
-       menu_daemon_init(NULL);
-#else
-       _fini_boot(NULL);
-#endif
-       if (vconf_ignore_key_changed(VCONFKEY_IDLE_LOCK_STATE,
-            _lock_state_cb) != 0) {
-               LOCKD_DBG("Fail to unregister");
-       }
-}
-
-static Eina_Bool _init_lock_lite(void *data)
-{
-       char *file = NULL;
-       int pwlock_pid = 0;
-
-       _DBG("%s %d\n", __func__, __LINE__);
-
-       /* Check SD card encription */
-       file = vconf_get_str(VCONFKEY_SDE_CRYPTO_STATE);
-       if (file && !strncmp(SD_DATA_ENCRYPTED, file, strlen(file)) && _check_encrypt_sdcard() == 0) {
-               _ERR("SD card is encripted");
-               if (start_lock_daemon_lite(FALSE, FALSE) == 1) {
-                       if ((pwlock_pid = _launch_pwlock()) < 0) {
-                               _ERR("launch pwlock error");
-                       }
-                       else{
-                               lockd_process_mgr_set_pwlock_priority(pwlock_pid);
-                       }
-                       ecore_timer_add(0.5, _fini_boot, NULL);
-               } else {
-                       _init_idle(NULL);
-               }
-       } else {
-               if (start_lock_daemon_lite(TRUE, FALSE) == 1) {
-                       if ((pwlock_pid = _launch_pwlock()) < 0) {
-                               _ERR("launch pwlock error");
-                       }
-                       else{
-                               lockd_process_mgr_set_pwlock_priority(pwlock_pid);
-                       }
-                       if (vconf_notify_key_changed(VCONFKEY_IDLE_LOCK_STATE,
-                                               _lock_state_cb, NULL) != 0) {
-                               _ERR("[Error] vconf notify : lock state");
-                               ecore_timer_add(0.5, _fini_boot, NULL);
-                       }
-               } else {
-                       _init_idle(NULL);
-               }
-       }
-       free(file);
-       return ECORE_CALLBACK_CANCEL;
-}
-
-static Eina_Bool _init_lock(void *data)
-{
-       char *file = NULL;
-
-       _DBG("%s %d\n", __func__, __LINE__);
-
-       /* Check SD card encription */
-       file = vconf_get_str(VCONFKEY_SDE_CRYPTO_STATE);
-       if (file && !strncmp(SD_DATA_ENCRYPTED, file, strlen(file)) && _check_encrypt_sdcard() == 0) {
-               _ERR("SD card is encripted");
-               if (start_lock_daemon(FALSE, FALSE) == 1) {
-                       if (_launch_pwlock() < 0) {
-                               _ERR("launch pwlock error");
-                       }
-                       ecore_timer_add(0.5, _fini_boot, NULL);
-               } else {
-                       _init_idle(NULL);
-               }
-       } else {
-               if (start_lock_daemon(TRUE, FALSE) == 1) {
-                       if (_launch_pwlock() < 0) {
-                               _ERR("launch pwlock error");
-                       }
-                       if (vconf_notify_key_changed(VCONFKEY_IDLE_LOCK_STATE,
-                                               _lock_state_cb, NULL) != 0) {
-                               _ERR("[Error] vconf notify : lock state");
-                               ecore_timer_add(0.5, _fini_boot, NULL);
-                       }
-               } else {
-                       _init_idle(NULL);
-               }
-       }
-       free(file);
-       return ECORE_CALLBACK_CANCEL;
-}
-
-static void _data_encryption_cb(keynode_t * node, void *data)
-{
-       char *file = NULL;
-
-       _DBG("%s %d\n", __func__, __LINE__);
-
-       file = vconf_get_str(VCONFKEY_ODE_CRYPTO_STATE);
-       if (file != NULL) {
-               _DBG("get VCONFKEY : %s\n",  file);
-               if (!strcmp(file, DATA_MOUNTED)) {
-#ifdef FEATURE_LITE
-                       start_lock_daemon_lite(FALSE, FALSE);
-#else
-                       start_lock_daemon(FALSE, FALSE);
-#endif
-                       menu_daemon_init(NULL);
-               }
-               free(file);
-       }
-}
-
-static Eina_Bool _start_sequence_cb(void *data)
-{
-       _DBG("%s, %d", __func__, __LINE__);
-
-       unlock_menu_screen();
-
-       return ECORE_CALLBACK_CANCEL;
-}
-
-static void _init(struct appdata *ad)
-{
-       int r;
-       struct sigaction act;
-       char *file = NULL;
-       int first = -1;
-       int pwlock_pid = 0;
-
-       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);
-
-/*     if (bincfg_is_factory_binary() == 1) {
-               _DBG("Factory binary..!!");
-               _set_elm_theme();
-               unlock_menu_screen();
-               menu_daemon_init(NULL);
-       } else {
-*/             _DBG("%s %d\n", __func__, __LINE__);
-               lock_menu_screen();
-               _set_elm_theme();
-
-               /* Check data encrption */
-               file = vconf_get_str(VCONFKEY_ODE_CRYPTO_STATE);
-               if (file != NULL) {
-                       _DBG("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) {
-                                       _ERR("[Error] vconf notify changed is failed: %s", VCONFKEY_ODE_CRYPTO_STATE);
-                               } else {
-                                       _DBG("waiting mount..!!");
-                                       if ((pwlock_pid = _launch_pwlock()) < 0) {
-                                               _ERR("launch pwlock error");
-                                       }
-                                       else{
-                                               lockd_process_mgr_set_pwlock_priority(pwlock_pid);
-                                       }
-                                       free(file);
-                                       return;
-                               }
-                       }
-                       free(file);
-               }
-
-#if 0
-               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);
-               }
-#else
-
-               r = vconf_get_bool(VCONFKEY_PWLOCK_FIRST_BOOT, &first);
-               _ERR("vconf get First boot result:%d, get_value:%d", r, first);
-               if (r == 0 && first == 0){
-                       _DBG("Not first booting time");
-
-#if (!_FIRST_HOME)
-                       _DBG("Not First home");
-                       unlock_menu_screen();
-                       menu_daemon_init(NULL);
-#ifdef FEATURE_LITE
-                       _init_lock_lite(NULL);
-#else
-                       _init_lock(NULL);
-#endif
-#else //_FIRST_HOME
-                       _DBG("First home");
-#ifdef FEATURE_LITE
-                       _init_lock_lite(NULL);
-#else
-                       _init_lock(NULL);
-#endif
-                       menu_daemon_init(NULL);
-                       ecore_idler_add(_start_sequence_cb, NULL);
-#endif
-               } else {
-                       _ERR("First booting time");
-                       menu_daemon_init(NULL);
-#ifdef FEATURE_LITE
-                       r = start_lock_daemon_lite(TRUE, TRUE);
-#else
-                       r = start_lock_daemon(TRUE, TRUE);
-#endif
-                       _DBG("start_lock_daemon ret:%d", r);
-                       if ((pwlock_pid = _launch_pwlock()) < 0) {
-                               _ERR("launch pwlock error");
-                               if (vconf_set_int(VCONFKEY_BOOT_ANIMATION_FINISHED, 1) != 0) {
-                                       _ERR("Failed to set boot animation finished set");
-                               }
-                               unlock_menu_screen();
-                       } else {
-                               lockd_process_mgr_set_pwlock_priority(pwlock_pid);
-                               ecore_timer_add(1, _fini_boot, NULL);
-                       }
-               }
-#endif
-//     }
-}
-
-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;
-
-       _DBG("starter is launched..!!");
-#if 0
-       set_window_scale();     /* not in loop */
-#endif
-
-#if 0
-    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);
-       }
-#else
-       if (vconf_notify_key_changed(VCONFKEY_SYSMAN_POWER_OFF_STATUS, (void *)_poweroff_control_cb, NULL) < 0) {
-               _ERR("Vconf notify key chaneged failed: VCONFKEY_SYSMAN_POWER_OFF_STATUS");
-       }
-#endif
-
-       elm_init(argc, argv);
-
-       _init(&ad);
-
-       elm_run();
-
-       _fini(&ad);
-
-       elm_shutdown();
-
-       return 0;
-}
diff --git a/src/starter_w.c b/src/starter_w.c
deleted file mode 100755 (executable)
index 3b0d4fd..0000000
+++ /dev/null
@@ -1,668 +0,0 @@
-/*
- * 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 <glib.h>
-
-#include <vconf.h>
-#include <signal.h>
-
-#include <dd-deviced.h>
-
-#include "starter_w.h"
-#include "starter-util.h"
-#include "x11.h"
-#include "lockd-debug.h"
-#include "hw_key_w.h"
-#include "util.h"
-
-int errno;
-
-#ifndef PACKAGE_NAME
-#define PACKAGE_NAME "com.samsung.starter"
-#endif
-
-#define DEFAULT_THEME                          "tizen"
-
-#define W_LOCKSCREEN_PKGNAME           "com.samsung.w-lockscreen"
-#define REMOTE_LOCK_PKGNAME                    "com.samsung.wfmw-remote-lock"
-
-#ifdef FEATURE_TIZENW2
-#define SETUP_WIZARD_PKGNAME           "com.samsung.b2-setup-wizard"
-#else
-#define SETUP_WIZARD_PKGNAME           "com.samsung.b2-setup-wizard"
-#endif
-#define PWLOCK_PKGNAME                                 "com.samsung.b2-pwlock"
-
-#define NOTIFICATION_APP_PKGNAME       "com.samsung.idle-noti-drawer"
-
-#define FACTORY_TDF_NOTIFIER_PATH                      "/csa/factory/cblkftdf"
-
-#define VCONFKEY_BT_CONNECTED          "memory/private/sap/conn_type"
-
-#define VCONFKEY_REMOTE_LOCK_ISLOCKED          "db/private/com.samsung.wfmw/is_locked"
-
-static struct appdata *g_app_data = NULL;
-
-void *starter_get_app_data(void){
-       return g_app_data;
-}
-
-
-static void _signal_handler(int signum, siginfo_t *info, void *unused)
-{
-    _DBG("_signal_handler : Terminated...");
-    elm_exit();
-}
-
-int w_open_app(char *pkgname)
-{
-       int r = AUL_R_OK;
-
-       _SECURE_D("w_open_app:[%s]", pkgname);
-
-       r = aul_open_app(pkgname);
-
-       if (r < 0) {
-               _ERR("open app failed [%s] ret=[%d]", pkgname, r);
-       }
-
-       return r;
-}
-
-int w_launch_app(char *pkgname, bundle *b)
-{
-       int r = AUL_R_OK;
-
-       _SECURE_D("w_launch_app:[%s]", pkgname);
-
-       r = aul_launch_app(pkgname, b);
-
-       if (r < 0) {
-               _ERR("launch failed [%s] ret=[%d]", pkgname, r);
-       }
-
-       return r;
-}
-
-#define RETRY_CNT 5
-static Eina_Bool _w_retry_idler_cb(void *data)
-{
-       struct appdata *ad = (struct appdata *)data;
-
-       _DBG("%s, %d", __func__, __LINE__);
-
-       ad->retry_cnt++;
-       ad->launcher_pid = w_launch_app(ad->home_pkgname, NULL);
-
-       if (ad->launcher_pid > 0) {
-               if (-1 == deviced_conf_set_mempolicy_bypid(ad->launcher_pid, OOM_IGNORE)) {
-                       _ERR("Cannot set the memory policy for Homescreen(%d)", ad->launcher_pid);
-               } else {
-                       _ERR("Set the memory policy for Homescreen(%d)", ad->launcher_pid);
-               }
-       }
-       else{
-               if(ad->retry_cnt >= RETRY_CNT){
-                       ad->retry_cnt = 0;
-                       return ECORE_CALLBACK_CANCEL;
-               }
-               else{
-                       return ECORE_CALLBACK_RENEW;
-               }
-       }
-       ad->retry_cnt = 0;
-       return ECORE_CALLBACK_CANCEL;
-}
-
-static Eina_Bool _w_retry_idler_first_launch_cb(void *data)
-{
-       struct appdata *ad = (struct appdata *)data;
-       bundle *b;
-       b = bundle_create();
-       if (!b) {
-               _E("Cannot create bundle");
-               return ECORE_CALLBACK_CANCEL;
-       }
-
-       _DBG("%s, %d", __func__, __LINE__);
-
-       bundle_add(b, "home_op", "first_boot");
-
-       ad->retry_cnt++;
-       ad->launcher_pid = w_launch_app(ad->home_pkgname, b);
-
-       if (ad->launcher_pid > 0) {
-               if (-1 == deviced_conf_set_mempolicy_bypid(ad->launcher_pid, OOM_IGNORE)) {
-                       _ERR("Cannot set the memory policy for Homescreen(%d)", ad->launcher_pid);
-               } else {
-                       _ERR("Set the memory policy for Homescreen(%d)", ad->launcher_pid);
-               }
-       }
-       else{
-               if(ad->retry_cnt >= RETRY_CNT){
-                       ad->retry_cnt = 0;
-                       bundle_free(b);
-                       return ECORE_CALLBACK_CANCEL;
-               }
-               else{
-                       bundle_free(b);
-                       return ECORE_CALLBACK_RENEW;
-               }
-       }
-       ad->retry_cnt = 0;
-       bundle_free(b);
-       return ECORE_CALLBACK_CANCEL;
-}
-
-static int _w_app_dead_cb(int pid, void *data)
-{
-       _DBG("app dead cb call! (pid : %d)", pid);
-
-       struct appdata *ad = (struct appdata *)data;
-
-       if (pid == ad->launcher_pid) {
-               _ERR("w-launcher-app (pid:%d) is destroyed.", pid);
-               ad->launcher_pid = w_launch_app(ad->home_pkgname, NULL);
-               if (ad->launcher_pid > 0) {
-                       if (-1 == deviced_conf_set_mempolicy_bypid(ad->launcher_pid, OOM_IGNORE)) {
-                               _ERR("Cannot set the memory policy for Homescreen(%d)", ad->launcher_pid);
-                       } else {
-                               _ERR("Set the memory policy for Homescreen(%d)", ad->launcher_pid);
-                       }
-               }
-               else{
-                       _ERR("Launch Home failed.");
-                       ecore_idler_add(_w_retry_idler_cb, ad);
-               }
-       } else if (pid == ad->pid_clock_viewer) {
-               _ERR("w-clock-viewer (pid:%d) is destroyed.", pid);
-               int ambient_mode = 0;
-               if (vconf_get_bool(VCONFKEY_SETAPPL_AMBIENT_MODE_BOOL, &ambient_mode) < 0) {
-                       _E("Failed to get vconfkey : %s", VCONFKEY_SETAPPL_AMBIENT_MODE_BOOL);
-                       ambient_mode = 0;
-               }
-
-               if (ambient_mode) {
-                       ad->pid_clock_viewer = w_launch_app(W_CLOCK_VIEWER_PKGNAME, NULL);
-               }
-       }
-
-       return 0;
-}
-
-static int _w_check_first_boot(void)
-{
-       int is_first = 0;
-       int ret = 0;
-
-#if 1 // NOT YET define vconfkey from setting  "VCONFKEY_SETUP_WIZARD_FIRST_BOOT"
-       ret = vconf_get_bool(VCONFKEY_SETUP_WIZARD_FIRST_BOOT, &is_first);
-       if (ret < 0){
-               _ERR("can't get vconfkey value of [%s], ret=[%d]", VCONFKEY_SETUP_WIZARD_FIRST_BOOT, ret);
-               is_first = 0;
-       } else if (is_first == 1) {
-               _ERR("[%s] value is [%d], first booting..!!", VCONFKEY_SETUP_WIZARD_FIRST_BOOT, is_first);
-       }
-#endif
-
-       return is_first;
-}
-
-static Eina_Bool _w_starter_idler_cb(void *data)
-{
-       struct appdata *ad = (struct appdata *)data;
-
-       _DBG("%s, %d", __func__, __LINE__);
-
-       ad->launcher_pid = w_launch_app(ad->home_pkgname, NULL);
-
-       if (ad->launcher_pid > 0) {
-               if (-1 == deviced_conf_set_mempolicy_bypid(ad->launcher_pid, OOM_IGNORE)) {
-                       _ERR("Cannot set the memory policy for Homescreen(%d)", ad->launcher_pid);
-               } else {
-                       _ERR("Set the memory policy for Homescreen(%d)", ad->launcher_pid);
-               }
-       }
-       else{
-               _ERR("Launch Home failed.");
-               ecore_idler_add(_w_retry_idler_cb, ad);
-       }
-
-       return ECORE_CALLBACK_CANCEL;
-}
-
-
-static Eina_Bool _w_starter_lockscreen_idler_cb(void *data)
-{
-       struct appdata *ad = (struct appdata *)data;
-
-       _DBG("%s, %d", __func__, __LINE__);
-
-       w_launch_app(W_LOCKSCREEN_PKGNAME, NULL);
-
-       if (ad->first_boot == FALSE)
-               ecore_idler_add(_w_starter_idler_cb, ad);
-
-       return ECORE_CALLBACK_CANCEL;
-}
-
-
-#define TEMP_VCONFKEY_LOCK_TYPE "db/setting/lock_type"
-static void _w_BT_changed_cb(keynode_t* node, void *data)
-{
-       int bt_state = -1;
-       int lock_type = -1;
-       int test_mode = -1;
-       struct appdata *ad = (struct appdata *)data;
-
-       _DBG("%s, %d", __func__, __LINE__);
-
-       if (node) {
-               bt_state = vconf_keynode_get_int(node);
-       } else {
-               if (vconf_get_int(VCONFKEY_BT_CONNECTED, &bt_state) < 0) {
-                       _ERR("Failed to get %s", VCONFKEY_BT_CONNECTED);
-                       return;
-               }
-       }
-       _DBG("WMS key value:[%d], previous state:[%d]", bt_state, ad->bt_connected);
-
-       vconf_get_int(TEMP_VCONFKEY_LOCK_TYPE, &lock_type);
-       vconf_get_int(VCONFKEY_TESTMODE_SCREEN_LOCK, &test_mode);
-
-       if ((lock_type != 1) || (test_mode == VCONFKEY_TESTMODE_SCREEN_LOCK_DISABLE)) {
-               ad->bt_connected = bt_state;
-               return;
-       }
-
-       if (bt_state == FALSE) {
-               if (ad->bt_connected == TRUE) {
-                       _ERR("BT connect state is changed from [%d] to [%d]", ad->bt_connected, bt_state);
-                       w_launch_app(W_LOCKSCREEN_PKGNAME, NULL);
-               }
-       }
-       ad->bt_connected = bt_state;
-
-       return;
-}
-
-static void _w_power_off_cb(keynode_t* node, void *data)
-{
-       int val = VCONFKEY_SYSMAN_POWER_OFF_NONE;
-
-       vconf_get_int(VCONFKEY_SYSMAN_POWER_OFF_STATUS, &val);
-
-       if (val > VCONFKEY_SYSMAN_POWER_OFF_POPUP) {
-               _ERR("power off status : %d", val);
-               if (vconf_ignore_key_changed(VCONFKEY_BT_CONNECTED, _w_BT_changed_cb) < 0)
-                       _ERR("Failed to ignore the callback for [%s]", VCONFKEY_BT_CONNECTED);
-               exit(0);
-       }
-}
-
-static void _w_lang_changed_cb(keynode_t* node, void *data)
-{
-       char *locale = NULL;
-       _DBG("%s, %d", __func__, __LINE__);
-
-       locale = vconf_get_str(VCONFKEY_LANGSET);
-
-       if (locale != NULL) {
-               elm_language_set(locale);
-       }
-}
-
-
-static void _launch_home_cb(keynode_t* node, void *data)
-{
-       int seq;
-       struct appdata *ad = (struct appdata *)data;
-       bundle *b = NULL;
-
-       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;
-               }
-       }
-
-       b = bundle_create();
-       if (!b) {
-               _E("Cannot create bundle");
-               return;
-       }
-       bundle_add(b, "home_op", "first_boot");
-
-       _DBG("_launch_home_cb, seq=%d", seq);
-       if (seq == 1) {
-               ad->launcher_pid = w_launch_app(ad->home_pkgname, b);
-               if (ad->launcher_pid > 0) {
-                       if (-1 == deviced_conf_set_mempolicy_bypid(ad->launcher_pid, OOM_IGNORE)) {
-                               _ERR("Cannot set the memory policy for Homescreen(%d)", ad->launcher_pid);
-                       } else {
-                               _ERR("Set the memory policy for Homescreen(%d)", ad->launcher_pid);
-                       }
-               } else{
-                       _ERR("Launch Home failed.");
-                       ecore_idler_add(_w_retry_idler_first_launch_cb, ad);
-               }
-       }
-
-       create_key_window(ad->home_pkgname, ad);
-       bundle_free(b);
-}
-
-static void _ambient_mode_event_add(void *data)
-{
-       _DBG("%s", __func__);
-
-       int ambient_mode = 0;
-       struct appdata *ad = (struct appdata *)data;
-       ret_if(!ad);
-
-       if (vconf_get_bool(VCONFKEY_SETAPPL_AMBIENT_MODE_BOOL, &ambient_mode) < 0) {
-               _E("Failed to get vconfkey : %s", VCONFKEY_SETAPPL_AMBIENT_MODE_BOOL);
-               ambient_mode = 0;
-       }
-
-       if (ambient_mode) {
-               ad->pid_clock_viewer = w_launch_app(W_CLOCK_VIEWER_PKGNAME, NULL);
-       }
-}
-
-static void _init(struct appdata *ad)
-{
-       int r;
-       struct sigaction act;
-       char *file = NULL;
-       int first = -1;
-       int lock_type = -1;
-       int bt_state = -1;
-       int test_mode = -1;
-       int remote_lock = 0;
-
-       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));
-       g_app_data = &*ad;
-
-       ad->retry_cnt = 0;
-       ad->nike_running_status = 0;
-       ad->lcd_status = 0;
-
-       gettimeofday(&ad->tv_start, NULL);
-       aul_launch_init(NULL,NULL);
-
-       aul_listen_app_dead_signal(_w_app_dead_cb, ad);
-
-       if (vconf_notify_key_changed(VCONFKEY_LANGSET, _w_lang_changed_cb, NULL) < 0)
-               _ERR("Failed to add the callback for [%s]", VCONFKEY_LANGSET);
-
-       ad->home_pkgname = vconf_get_str("file/private/homescreen/pkgname");
-       if (!ad->home_pkgname) {
-               ad->home_pkgname = W_HOME_PKGNAME;
-       }
-       _ERR("Home pkg name is [%s]", ad->home_pkgname);
-
-#ifdef TARGET
-       if (bincfg_is_factory_binary() == BIN_TYPE_FACTORY) {
-               gchar *contents;
-               gsize length;
-               GError *error = NULL;
-               gboolean result = FALSE;
-
-               _ERR("Factory binary..!!");
-
-               if (g_file_get_contents(FACTORY_TDF_NOTIFIER_PATH, &contents, &length, &error)) {
-                       gchar *found = NULL;
-                       _ERR("Read %d bytes from filesystem", length);
-                       if ((found = g_strstr_len(contents, strlen(contents), "ON"))) {
-                               // Launch TDF Notifier
-                               char *argv[3];
-                               argv[0] = "/usr/bin/testmode";
-                               argv[1] = "*#833#";
-                               argv[2] = NULL;
-
-                               execv("/usr/bin/testmode", argv);
-
-                               g_free(contents);
-                               return;
-                       }
-                       g_free(contents);
-               } else {
-                       _ERR("read failed [%d]: [%s]", error->code, error->message);
-                       g_error_free(error);
-                       error = NULL;
-               }
-               ad->launcher_pid = w_launch_app(ad->home_pkgname, NULL);
-               if(ad->launcher_pid < 0){
-                       _ERR("Launch Home failed.");
-                       ecore_idler_add(_w_retry_idler_cb, ad);
-               }
-               create_key_window_factory_mode(ad->home_pkgname, ad);
-       } else {
-#endif
-               if (vconf_notify_key_changed(VCONFKEY_BT_CONNECTED, _w_BT_changed_cb, ad) < 0) {
-                       _ERR("Failed to add the callback for %s changed", VCONFKEY_BT_CONNECTED);
-               }
-               if (vconf_get_int(VCONFKEY_BT_CONNECTED, &bt_state) < 0) {
-                       _ERR("Failed to get [%s]", VCONFKEY_BT_CONNECTED);
-               } else {
-                       ad->bt_connected = bt_state;
-                       _DBG("ad->bt_connected : [%d]", ad->bt_connected);
-               }
-
-#ifdef TELEPHONY_DISABLE //B2
-               if (_w_check_first_boot() == TRUE) {
-                       w_launch_app(SETUP_WIZARD_PKGNAME, NULL);
-                       ecore_idler_add(_w_starter_idler_cb, ad);
-               } else {
-                       _DBG("Not first booting, launch [%s]..!!", ad->home_pkgname);
-
-                       vconf_get_int(VCONFKEY_TESTMODE_SCREEN_LOCK, &test_mode);
-                       vconf_get_int(TEMP_VCONFKEY_LOCK_TYPE, &lock_type);
-
-                       if ((bt_state == FALSE) && (lock_type == 1) && (test_mode != VCONFKEY_TESTMODE_SCREEN_LOCK_DISABLE))  {
-                               _ERR("BT disconneted and privacy lock is set");
-                               w_launch_app(W_LOCKSCREEN_PKGNAME, NULL);
-                               ecore_idler_add(_w_starter_idler_cb, ad);
-                       } else {
-                               ad->launcher_pid = w_launch_app(ad->home_pkgname, NULL);
-                               if (ad->launcher_pid > 0) {
-                                       if (-1 == deviced_conf_set_mempolicy_bypid(ad->launcher_pid, OOM_IGNORE)) {
-                                               _ERR("Cannot set the memory policy for Homescreen(%d)", ad->launcher_pid);
-                                       } else {
-                                               _ERR("Set the memory policy for Homescreen(%d)", ad->launcher_pid);
-                                       }
-                               }
-                       }
-               }
-#else //B2-3G //TELEPHONY_DISABLE 
-
-#if 0 // To do not display home before setupwizard
-
-               w_launch_app(PWLOCK_PKGNAME, NULL);
-               vconf_get_int(VCONFKEY_TESTMODE_SCREEN_LOCK, &test_mode);
-               vconf_get_int(TEMP_VCONFKEY_LOCK_TYPE, &lock_type);
-
-               if ((wms_state == FALSE) && (lock_type == 1) && (test_mode != VCONFKEY_TESTMODE_SCREEN_LOCK_DISABLE))  {
-                       _ERR("BT disconneted and privacy lock is set");
-                       ecore_idler_add(_w_starter_lockscreen_idler_cb, ad);
-               } else {
-                       ad->launcher_pid = w_launch_app(ad->home_pkgname, NULL);
-                       if (ad->launcher_pid > 0) {
-                               if (-1 == deviced_conf_set_mempolicy_bypid(ad->launcher_pid, OOM_IGNORE)) {
-                                       _ERR("Cannot set the memory policy for Homescreen(%d)", ad->launcher_pid);
-                               } else {
-                                       _ERR("Set the memory policy for Homescreen(%d)", ad->launcher_pid);
-                               }
-                       }
-               }
-
-#else //B3
-
-               vconf_get_int(VCONFKEY_TESTMODE_SCREEN_LOCK, &test_mode);
-               vconf_get_int(TEMP_VCONFKEY_LOCK_TYPE, &lock_type);
-
-               if (_w_check_first_boot() == TRUE) {
-
-                       //First boot : launch pwlock > set seq > home
-                       ad->first_boot = TRUE;
-
-                       vconf_set_int(VCONFKEY_STARTER_SEQUENCE, 0);
-
-                       if (vconf_notify_key_changed(VCONFKEY_STARTER_SEQUENCE, _launch_home_cb, ad) < 0)
-                               _ERR("Failed to add the callback for show event");
-#ifdef MODEM_ALWAYS_OFF
-                       w_launch_app(SETUP_WIZARD_PKGNAME, NULL);
-#else
-                       w_launch_app(PWLOCK_PKGNAME, NULL);
-#endif
-                       if ((bt_state == FALSE) && (lock_type == 1) && (test_mode != VCONFKEY_TESTMODE_SCREEN_LOCK_DISABLE))  {
-                               _ERR("BT disconneted and privacy lock is set");
-                               ecore_idler_add(_w_starter_lockscreen_idler_cb, ad);
-                       }
-               }else {
-
-                       // Not first boot : launch home > pwlock
-                       ad->first_boot = FALSE;
-
-                       if ((bt_state == FALSE) && (lock_type == 1) && (test_mode != VCONFKEY_TESTMODE_SCREEN_LOCK_DISABLE))  {
-                               _ERR("BT disconneted and privacy lock is set");
-                               ecore_idler_add(_w_starter_lockscreen_idler_cb, ad);
-                       } else {
-                               ad->launcher_pid = w_launch_app(ad->home_pkgname, NULL);
-                               if (ad->launcher_pid > 0) {
-                                       if (-1 == deviced_conf_set_mempolicy_bypid(ad->launcher_pid, OOM_IGNORE)) {
-                                               _ERR("Cannot set the memory policy for Homescreen(%d)", ad->launcher_pid);
-                                       } else {
-                                               _ERR("Set the memory policy for Homescreen(%d)", ad->launcher_pid);
-                                       }
-                               }
-                               else{
-                                       _ERR("Launch Home failed.");
-                                       ecore_idler_add(_w_retry_idler_cb, ad);
-                               }
-                       }
-                       create_key_window(ad->home_pkgname, ad);
-#ifndef MODEM_ALWAYS_OFF
-                       w_launch_app(PWLOCK_PKGNAME, NULL);
-#endif
-               }
-#endif
-
-#endif //TELEPHONY_DISABLE
-#ifdef TARGET
-       }
-#endif
-
-       /* add ambient mode event */
-       _ambient_mode_event_add(ad);
-
-       /* Check remote-lock state */
-       if(vconf_get_bool(VCONFKEY_REMOTE_LOCK_ISLOCKED, &remote_lock) < 0){
-               _E("failed to get %s", VCONFKEY_REMOTE_LOCK_ISLOCKED);
-       }
-
-       if(remote_lock == true){
-               w_launch_app(REMOTE_LOCK_PKGNAME, NULL);
-       }
-
-//     create_key_window(ad->home_pkgname, ad);
-       init_hourly_alert(ad);
-       get_dbus_cool_down_mode(ad);
-       init_dbus_COOL_DOWN_MODE_signal(ad);
-       starter_dbus_connection_get();
-       init_dbus_lcd_on_off_signal(ad);
-       init_clock_mgr(ad);
-
-       // THIS ROUTINE IS FOR SAT.
-       vconf_set_int(VCONFKEY_IDLE_SCREEN_LAUNCHED, VCONFKEY_IDLE_SCREEN_LAUNCHED_TRUE);
-
-       if (vconf_notify_key_changed(VCONFKEY_SYSMAN_POWER_OFF_STATUS, _w_power_off_cb, NULL) < 0)
-               _ERR("Failed to add the callback for [%s]", VCONFKEY_SYSMAN_POWER_OFF_STATUS);
-
-       return;
-}
-
-static void _fini(struct appdata *ad)
-{
-       struct timeval tv, res;
-
-       if (ad == NULL) {
-               fprintf(stderr, "Invalid argument: appdata is NULL\n");
-               return;
-       }
-
-       destroy_key_window();
-       fini_hourly_alert(ad);
-       fini_clock_mgr();
-
-       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");
-       _DBG("starter is launched..!!");
-#if 0
-       set_window_scale();     /* not in loop */
-#endif
-
-       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..1762234
--- /dev/null
@@ -0,0 +1,567 @@
+/*
+ * 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 <errno.h>
+
+#include "status.h"
+#include "util.h"
+
+int errno;
+
+#define VCONFKEY_REMOTE_LOCK_ISLOCKED "db/private/org.tizen.wfmw/is_locked"
+
+
+
+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 = {
+       .wms_wakeup_by_gesture_setting = -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,
+       .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);
+               char *a_tmp;
+
+               if (tmp) {
+                       a_tmp = strdup(tmp);
+               } else {
+                       a_tmp = strdup(HOMESCREEN_PKG_NAME);
+               }
+
+               if (a_tmp) {
+                       free(s_status_active.setappl_selected_package_name);
+                       s_status_active.setappl_selected_package_name = a_tmp;
+               } else {
+                       if (!s_status_active.setappl_selected_package_name) {
+                               _E("Package name is NULL, strdup failed");
+                       } else {
+                               _E("Keep old package. because of strdup\n");
+                       }
+               }
+
+               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_WMS_WAKEUP_BY_GESTURE_SETTING)) {
+               s_status_passive.wms_wakeup_by_gesture_setting = 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_BOOT_ANIMATION_FINISHED)) {
+               s_status_passive.boot_animation_finished = vconf_keynode_get_int(node);
+       } else if (!strcmp(key_name, VCONFKEY_SETAPPL_AMBIENT_MODE_BOOL)) {
+               s_status_passive.setappl_ambient_mode_bool = vconf_keynode_get_int(node);
+       } else if (!strcmp(key_name, VCONFKEY_SETAPPL_3RD_LOCK_PKG_NAME_STR)) {
+               char *tmp = vconf_keynode_get_str(node);
+               char *a_tmp;
+
+               if (tmp) {
+                       a_tmp = strdup(tmp);
+               } else {
+                       a_tmp = strdup(STATUS_DEFAULT_LOCK_PKG_NAME);
+               }
+
+               if (a_tmp) {
+                       free(s_status_passive.setappl_3rd_lock_pkg_name_str);
+                       s_status_passive.setappl_3rd_lock_pkg_name_str = a_tmp;
+               } else {
+                       if (!s_status_passive.setappl_3rd_lock_pkg_name_str) {
+                               _E("Package name is NULL, strdup failed");
+                       } else {
+                               _E("Keep old package. because of strdup\n");
+                       }
+               }
+
+#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);
+       }
+       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);
+               s_status_active.setappl_selected_package_name = strdup(HOMESCREEN_PKG_NAME);
+               if (!s_status_active.setappl_selected_package_name) {
+                       _E("Failed to duplicate string");
+               }
+       }
+
+       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_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;
+       }
+#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 (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;
+       }
+
+       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 (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.setappl_ambient_mode_bool = -1;
+       }
+
+       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);
+       }
+
+       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);
+               s_status_passive.setappl_3rd_lock_pkg_name_str = strdup(STATUS_DEFAULT_LOCK_PKG_NAME);
+               if (!s_status_passive.setappl_3rd_lock_pkg_name_str) {
+                       _E("Failed to allocate string for 3rd lock %d\n", errno);
+               }
+       }
+
+#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_WMS_WAKEUP_BY_GESTURE_SETTING, _status_passive_change_cb) < 0) {
+               _E("Failed to unregister the callback for %s", VCONFKEY_WMS_WAKEUP_BY_GESTURE_SETTING);
+       }
+#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 (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);
+       }
+
+       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 (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);
+       }
+
+       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);
+       }
+       free(s_status_passive.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..5485fdd
--- /dev/null
@@ -0,0 +1,161 @@
+/*
+ * 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 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(_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)
+{
+}
+
+
+
old mode 100755 (executable)
new mode 100644 (file)
similarity index 56%
rename from src/hourly_alert.c
rename to src/wearable/hourly_alert.c
index 8fe4daa..3c2c00a
 #include <alarm.h>
 #include <feedback.h>
 
-#include "starter_w.h"
-#include "starter-util.h"
-#include "lockd-debug.h"
-
 #include "util.h"
 
-static int __alarm_delete_cb(alarm_id_t id, void * user_param)
+
+
+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) {
-               _ERR("alarmmgr_enum_alarm_ids() failed");
+               _E("alarmmgr_enum_alarm_ids() failed");
        }
 
        return 0;
 }
 
+
+
 static void _alarm_unset(void *data)
 {
        int ret = ALARMMGR_RESULT_SUCCESS;
 
-       struct appdata *ad = data;
-       ret_if(ad == NULL);
-
-       if(ad->alarm_id != -1){
-               _DBG("try to delete alarm_id(%d)", ad->alarm_id);
-               ret = alarmmgr_remove_alarm(ad->alarm_id);
+       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);
+                       ret = alarmmgr_enum_alarm_ids(_alarm_delete_cb, NULL);
                        if(ret != ALARMMGR_RESULT_SUCCESS) {
-                               _ERR("alarmmgr_enum_alarm_ids() failed");
+                               _E("alarmmgr_enum_alarm_ids() failed");
                        }
                }
-               ad->alarm_id = -1;
+               s_hourly_alert.alarm_id = -1;
        }
 }
 
+
+
 static int _alarm_set(void *data)
 {
        int ret = ALARMMGR_RESULT_SUCCESS;
@@ -78,11 +85,9 @@ static int _alarm_set(void *data)
        alarm_entry_t *alarm_info = NULL;
        alarm_id_t alarm_id;
        alarm_date_t alarm_time;
-       struct appdata *ad = data;
-       retv_if(ad == NULL, -1);
 
        /* delete before registering alarm ids */
-       _alarm_unset(ad);
+       _alarm_unset(NULL);
 
        time(&current_time);
 
@@ -93,7 +98,7 @@ static int _alarm_set(void *data)
 
        alarm_info = alarmmgr_create_alarm();
        if(alarm_info == NULL) {
-               _ERR("alarmmgr_create_alarm() is failed\n");
+               _E("alarmmgr_create_alarm() is failed\n");
                return -1;
        }
 
@@ -107,7 +112,7 @@ static int _alarm_set(void *data)
        //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) {
-               _ERR("alarmmgr_set_repeat_mode() failed");
+               _E("alarmmgr_set_repeat_mode() failed");
                alarmmgr_free_alarm(alarm_info) ;
                return -1;
        }
@@ -116,158 +121,151 @@ static int _alarm_set(void *data)
 
        ret = alarmmgr_add_alarm_with_localtime(alarm_info, NULL, &alarm_id);
        if(ret != ALARMMGR_RESULT_SUCCESS) {
-               _ERR("alarmmgr_add_alarm_with_localtime() failed");
+               _E("alarmmgr_add_alarm_with_localtime() failed");
                alarmmgr_free_alarm(alarm_info) ;
                return -1;
        }
 
-       ad->alarm_id = alarm_id;
+       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)
+
+
+static int _alarm_cb(alarm_id_t alarm_id, void *data)
 {
-       _DBG("hourly_alert alarm callback called");
+       _D("hourly_alert alarm callback called");
 
        feedback_initialize();
-       feedback_play(FEEDBACK_PATTERN_HOURLY_ALERT);
+       feedback_play(FEEDBACK_PATTERN_NONE);
        feedback_deinitialize();
 
        return 0;
 }
 
+
+
 static int _alarm_init(void *data)
 {
        int ret = 0;
 
-       struct appdata *ad = data;
-       retv_if(ad == NULL, -1);
-
-       g_type_init();
        ret = alarmmgr_init("starter");
        retv_if(ret<0, -1);
 
-       ret = alarmmgr_set_cb(__alarm_cb, data);
+       ret = alarmmgr_set_cb(_alarm_cb, NULL);
        retv_if(ret<0, -1);
 
-       ad->alarm_id = -1;
+       s_hourly_alert.alarm_id = -1;
 
        return 0;
 }
 
 static void _alarm_fini(void *data)
 {
-       _alarm_unset(data);
+       _alarm_unset(NULL);
        alarmmgr_fini();
 }
 
-static Eina_Bool _register_hourly_alert_alarm(struct appdata *ad)
-{
-       int ret = 0;
 
-       if(!ad) {
-               _ERR("parameter is NULL");
-               return EINA_FALSE;
-       }
 
-       //alarmmgr_fini();
+static Eina_Bool _register_hourly_alert_alarm(void)
+{
+       int ret = 0;
 
-       ret = _alarm_init(ad);
-       if(ret<0) {
-               _ERR("_alarm_init() failed");
-               return EINA_FALSE;
-       }
+       ret = _alarm_init(NULL);
+       retv_if(ret < 0, EINA_FALSE);
 
-       _alarm_set(ad);
+       _alarm_set(NULL);
 
        return EINA_TRUE;
 
 }
 
-static int _unregister_hourly_alert_alarm(struct appdata *ad)
-{
-       _alarm_fini(ad);
 
+
+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;
-       struct appdata *ad = (struct appdata *)data;
 
-       _DBG("%s, %d", __func__, __LINE__);
+       _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) {
-                       _ERR("Failed to get %s", VCONFKEY_SETAPPL_HOURLY_ALERT_BOOL);
+                       _E("Failed to get %s", VCONFKEY_SETAPPL_HOURLY_ALERT_BOOL);
                        return;
                }
        }
 
        if (hourly_alert == TRUE) {
-               _ERR("hourly_alert is set");
-               _register_hourly_alert_alarm(ad);
+               _E("hourly_alert is set");
+               _register_hourly_alert_alarm();
        } else {
-               _ERR("hourly_alert is unset");
-               _unregister_hourly_alert_alarm(ad);
+               _E("hourly_alert is unset");
+               _unregister_hourly_alert_alarm();
        }
 
 }
 
+
+
 static void _hourly_system_time_changed_cb(keynode_t *node, void *data)
 {
-       struct appdata *ad = data;
-       ret_if(ad == NULL);
+       _alarm_set(NULL);
+}
 
-       _DBG("%s, %d", __func__, __LINE__);
 
-       /* unset existing alarms and set new alarm */
-       _alarm_set(ad);
-}
 
-void init_hourly_alert(void *data)
+void hourly_alert_init(void)
 {
-       struct appdata *ad = (struct appdata *)data;
        int hourly_alert = -1;
        int ret = 0;
 
        ret = vconf_get_bool(VCONFKEY_SETAPPL_HOURLY_ALERT_BOOL, &hourly_alert);
        if (ret < 0){
-               _ERR("can't get vconfkey value of [%s], ret=[%d]", VCONFKEY_SETAPPL_HOURLY_ALERT_BOOL, ret);
+               _E("can't get vconfkey value of [%s], ret=[%d]", VCONFKEY_SETAPPL_HOURLY_ALERT_BOOL, ret);
                hourly_alert = FALSE;
        } else if (hourly_alert == TRUE) {
-               _DBG("[%s] value is [%d], hourly_alert is set..!!", VCONFKEY_SETAPPL_HOURLY_ALERT_BOOL, hourly_alert);
-               if (_register_hourly_alert_alarm(ad) == EINA_FALSE) {
-                       _ERR("_register_hourly_alert_alarm is failed..!!");
+               _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, ad) < 0) {
-               _ERR("Failed to add the callback for %s changed", VCONFKEY_SETAPPL_HOURLY_ALERT_BOOL);
+       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, ad) < 0) {
-               _ERR("Failed to add the callback for %s changed", VCONFKEY_SYSTEM_TIME_CHANGED);
+       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 fini_hourly_alert(void *data)
+
+
+void hourly_alert_fini(void)
 {
-       int ret = 0;
-       struct appdata *ad = data;
-       ret_if(ad == NULL);
+       _unregister_hourly_alert_alarm();
 
-       //_unregister_hourly_alert_alarm(data);
+       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);
+       }
 
-       ret = vconf_ignore_key_changed(VCONFKEY_SETAPPL_HOURLY_ALERT_BOOL, _hourly_alert_changed_cb);
-       if(ret != 0) {
-               _E("vconf_ignore failed");
+       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..ef4b756
--- /dev/null
@@ -0,0 +1,380 @@
+/*
+ * 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_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;
+}
+
+
+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;
+}
+
+
+
+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;
+}
+
+
+
+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;
+}
+
+
+
+void hw_key_create_window(void)
+{
+       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");
+       }
+}
+
+
+
+void hw_key_destroy_window(void)
+{
+       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;
+}
+
+
+
+// End of a file
diff --git a/src/wearable/starter.c b/src/wearable/starter.c
new file mode 100644 (file)
index 0000000..39151f1
--- /dev/null
@@ -0,0 +1,191 @@
+/*
+ * 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);
+
+       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 100755 (executable)
index 5b94df6..0000000
--- a/src/x11.c
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- * 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 <string.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-#include <X11/Xlib.h>
-#include <X11/Xatom.h>
-#include <X11/Xutil.h>
-
-#define DEFAULT_WINDOW_H 1280
-
-void prop_string_set(const char *name, const char *value)
-{
-       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);
-}
-
-void prop_int_set(const char *name, unsigned int val)
-{
-       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);
-}
-
-void set_window_scale(void)
-{
-       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);
-}
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..c543093
--- /dev/null
@@ -0,0 +1,50 @@
+root starter rw---- ------
+_default_ starter rw---- ------
+starter e17::notification rw---- ------
+starter bt-service::gap rwx-t- ------
+starter tts-server rwx--- ------
+starter aul r----l ------
+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::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 rwx--l ------
+starter stt-server r----- ------
+starter xorg rwx--- ------
+starter pkgmgr::db r----l ------
+starter syspopup::db rw---l ------
+starter dbus rwx--- ------
+starter security-server::api-password-check -w---- ------
+starter org.tizen.wallpaper-ui-service r----- ------
+starter tizen::vconf::public::r r----l ------
+starter tizen::vconf::public::r::platform::rw rwx--l ------
+starter tizen::vconf::public::rw r----l ------
+starter tizen::vconf::public::admin r----l ------
+starter tizen::vconf::platform::r r----l ------
+starter tizen::vconf::platform::rw rw---l ------
+starter tizen::vconf::display r----l ------
+starter tizen::vconf::setting r----l ------
+starter tizen::vconf::setting::admin rwx--l ------
+starter tizen::vconf::camcorder r----l ------
+starter sound_server rwx--- ------
+starter notification --x--- ------
+starter callmgr::api_call r----l ------
+starter callmgr::signal rw---l ------
+starter org.tizen.indicator rwx--l ------
+starter org.tizen.indicator_shm r----l ------
+starter org.tizen.lockscreen -w---- ------
+dbus starter rwx--- ------
+xorg starter rwx--- ------
old mode 100755 (executable)
new mode 100644 (file)
index d93ffad..daec647
@@ -4,9 +4,6 @@
        <request>
                <smack request="sys-assert::core" type="rwxat"/>
                <smack request="system::homedir" type="rwxat"/>
-               <smack request="system::vconf" type="rwxat"/>
-               <smack request="system::vconf_setting" 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"/>
@@ -20,9 +17,6 @@
                <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"/>
diff --git a/test/get_entry.c b/test/get_entry.c
deleted file mode 100755 (executable)
index 6a69348..0000000
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- *  starter
- *
- * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Contact: Seungtaek Chung <seungtaek.chung@samsung.com>, Mi-Ju Lee <miju52.lee@samsung.com>, Xi Zhichan <zhichan.xi@samsung.com>
- *
- * 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 <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 afc4947..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- *  starter
- *
- * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Contact: Seungtaek Chung <seungtaek.chung@samsung.com>, Mi-Ju Lee <miju52.lee@samsung.com>, Xi Zhichan <zhichan.xi@samsung.com>
- *
- * 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 <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 3d45966..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- *  starter
- *
- * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Contact: Seungtaek Chung <seungtaek.chung@samsung.com>, Mi-Ju Lee <miju52.lee@samsung.com>, Xi Zhichan <zhichan.xi@samsung.com>
- *
- * 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 <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;
-}