2 * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
19 #include <Elementary.h>
21 #include <Ecore_Input.h>
24 #include <dd-display.h>
25 #if 0 // Disable temporarily for TIZEN 2.3 build
26 #include <message_port.h>
29 #include "starter_w.h"
30 #include "dbus-util_w.h"
34 #define APP_CONTROL_OPERATION_MAIN_KEY "__APP_SVC_OP_TYPE__"
35 #define APP_CONTROL_OPERATION_MAIN_VALUE "http://tizen.org/appcontrol/operation/main"
36 #define APP_CONTROL_OPERATION_DEFAULT_VALUE "http://tizen.org/appcontrol/operation/default"
39 #ifndef VCONFKEY_SHEALTH_VIEW_TYPE_STR
40 #define VCONFKEY_SHEALTH_VIEW_TYPE_STR "memory/shealth/view_type"
43 #ifndef VCONFKEY_HERE_TBT_STATUS_INT
44 #define VCONFKEY_HERE_TBT_STATUS_INT "memory/private/navigation/guidance"
47 #ifndef VCONFKEY_STARTER_RESERVED_APPS_STATUS
48 #define VCONFKEY_STARTER_RESERVED_APPS_STATUS "memory/starter/reserved_apps_status" /* 2 digits for reserved apps & popup
54 #ifndef VCONFKEY_SETTING_SIMPLE_CLOCK_MODE
55 #define VCONFKEY_SETTING_SIMPLE_CLOCK_MODE "db/setting/simpleclock_mode"
60 #define W_LOCKSCREEN_PKGNAME "com.samsung.w-lockscreen"
62 #define W_ALPM_CLOCK_PKGNAME "com.samsung.alpm-clock-manager"
63 #define ALPM_CLOCK_OP "ALPM_CLOCK_OP"
64 #define ALPM_CLOCK_SHOW "alpm_clock_show"
65 #define ALPM_CLOCK_HIDE "alpm_clock_hide"
67 #define HOME_OPERATION_KEY "home_op"
68 #define POWERKEY_VALUE "powerkey"
70 #define PM_UNLOCK_TIMER_SEC 0.3
72 #define RESERVED_DISPLAY_MESSAGE_PORT_ID "Home.Reserved.Display"
73 #define RESERVED_DISPLAY_MESSAGE_KEY_STATE "state"
74 #define RESERVED_DISPLAY_MESSAGE_STATE_SHOW "show"
75 #define RESERVED_DISPLAY_MESSAGE_STATE_HIDE "hide"
76 #define RESERVED_DISPLAY_MESSAGE_STATE_POPUP_SHOW "popup_show"
77 #define RESERVED_DISPLAY_MESSAGE_STATE_POPUP_HIDE "popup_hide"
79 #define SHEALTH_SLEEP_PKGNAME "com.samsung.shealth.sleep"
81 static int _check_reserved_popup_status(void *data)
85 struct appdata *ad = (struct appdata *)data;
91 vconf_get_int(VCONFKEY_STARTER_RESERVED_APPS_STATUS, &val);
93 _W("Current reserved apps status : %x", val);
98 if(aul_app_is_running(ad->reserved_popup_app_id) == 1){
102 _E("%s is not running now.", ad->reserved_popup_app_id);
103 ad->reserved_popup_app_id = NULL;
105 vconf_set_int(VCONFKEY_STARTER_RESERVED_APPS_STATUS, val);
106 _W("now reserved apps status %x", val);
116 static int _check_reserved_apps_status(void *data)
119 struct appdata *ad = (struct appdata *)data;
125 vconf_get_int(VCONFKEY_STARTER_RESERVED_APPS_STATUS, &val);
127 _W("Current reserved apps status : %x", val);
139 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)
141 ret_if(remote_app_id == NULL);
143 struct appdata *ad = starter_get_app_data();
153 vconf_get_int(VCONFKEY_STARTER_RESERVED_APPS_STATUS, &val);
154 _W("current reserved apps status : %x", val);
156 state = bundle_get_val(msg, RESERVED_DISPLAY_MESSAGE_KEY_STATE);
157 _W("appid [%s], msg value[%s]", remote_app_id, state);
158 if (strncmp(state, RESERVED_DISPLAY_MESSAGE_STATE_SHOW, strlen(state)) == 0) {
159 //reserved app is start
160 EINA_LIST_FOREACH(ad->reserved_apps_list, l, data){
161 if(strncmp(data, remote_app_id, strlen(data)) == 0){
162 _W("%s is already in the list", data);
163 ad->reserved_apps_list = eina_list_remove_list(ad->reserved_apps_list, l);
167 appid = strdup(remote_app_id);
168 ad->reserved_apps_list = eina_list_append(ad->reserved_apps_list, appid);
170 vconf_set_int(VCONFKEY_STARTER_RESERVED_APPS_STATUS, val);
171 _W("now reserved apps status %x", val);
173 else if (strncmp(state, RESERVED_DISPLAY_MESSAGE_STATE_HIDE, strlen(state)) == 0){
174 //reserved app is stop
175 EINA_LIST_FOREACH(ad->reserved_apps_list, l, data){
176 if(strncmp(data, remote_app_id, strlen(data)) == 0){
177 ad->reserved_apps_list = eina_list_remove_list(ad->reserved_apps_list, l);
181 count = eina_list_count(ad->reserved_apps_list);
183 _W("there is no reserved app.");
189 vconf_set_int(VCONFKEY_STARTER_RESERVED_APPS_STATUS, tmp);
190 _W("now reserved apps status %x", tmp);
193 else if (strncmp(state, RESERVED_DISPLAY_MESSAGE_STATE_POPUP_SHOW, strlen(state)) == 0){
194 //reserved popup is show
195 ad->reserved_popup_app_id = strdup(remote_app_id);
197 vconf_set_int(VCONFKEY_STARTER_RESERVED_APPS_STATUS, val);
198 _W("now reserved apps status %x", val);
200 else if (strncmp(state, RESERVED_DISPLAY_MESSAGE_STATE_POPUP_HIDE, strlen(state)) == 0){
201 //reserved popup is hide
202 if(ad->reserved_popup_app_id == NULL){
203 _E("there is no reserved popup already");
206 if(strncmp(ad->reserved_popup_app_id, remote_app_id, strlen(ad->reserved_popup_app_id)) == 0){
207 ad->reserved_popup_app_id = NULL;
213 vconf_set_int(VCONFKEY_STARTER_RESERVED_APPS_STATUS, tmp);
214 _W("now reserved apps status %x", tmp);
221 EINA_LIST_REVERSE_FOREACH(ad->reserved_apps_list, l, data){
222 _W("%d. %s", i++, data);
226 static void _shealth_view_type_changed_cb(keynode_t* node, void *data)
229 struct appdata *ad = (struct appdata *)data;
231 _D("%s, %d", __func__, __LINE__);
239 val = vconf_keynode_get_str(node);
241 val = vconf_get_str(VCONFKEY_SHEALTH_VIEW_TYPE_STR);
244 clock_mgr_set_reserved_apps_status(val, STARTER_RESERVED_APPS_SHEALTH, ad);
247 static void _here_navigation_status_changed_cb(keynode_t* node, void *data)
250 struct appdata *ad = (struct appdata *)data;
252 _D("%s, %d", __func__, __LINE__);
260 val = vconf_keynode_get_int(node);
262 vconf_get_int(VCONFKEY_HERE_TBT_STATUS_INT, &val);
265 clock_mgr_set_reserved_apps_status(val, STARTER_RESERVED_APPS_HERE, ad);
268 void clock_mgr_set_reserved_apps_status(void *info, int type, void *data){
269 char *str_info = NULL;
273 struct appdata *ad = (struct appdata *)data;
274 _D("%s, %d", __func__, __LINE__);
280 vconf_get_int(VCONFKEY_STARTER_RESERVED_APPS_STATUS, &val);
281 _W("current reserved apps status : %x", val);
284 case STARTER_RESERVED_APPS_SHEALTH:{
285 str_info = (char *)info;
286 _W("Shealth status is changed (%s)", str_info);
287 if (strncmp(str_info, "exercise", strlen(str_info)) == 0){
292 vconf_set_int(VCONFKEY_STARTER_RESERVED_APPS_STATUS, val);
293 _W("now reserved apps status %x", val);
295 else if (strncmp(str_info, "sleep", strlen(str_info)) == 0){
300 vconf_set_int(VCONFKEY_STARTER_RESERVED_APPS_STATUS, val);
301 _W("now reserved apps status %x", val);
313 vconf_set_int(VCONFKEY_STARTER_RESERVED_APPS_STATUS, tmp);
314 _W("now reserved apps status %x", tmp);
318 case STARTER_RESERVED_APPS_NIKE:{
319 int_info = (int)info;
320 _W("Nike status is changed (%d)", int_info);
323 vconf_set_int(VCONFKEY_STARTER_RESERVED_APPS_STATUS, val);
324 _W("now reserved apps status %x", val);
332 vconf_set_int(VCONFKEY_STARTER_RESERVED_APPS_STATUS, tmp);
333 _W("now reserved apps status %x", tmp);
337 case STARTER_RESERVED_APPS_HERE:{
338 int_info = (int)info;
339 _W("Here status is changed (%d)", int_info);
342 vconf_set_int(VCONFKEY_STARTER_RESERVED_APPS_STATUS, val);
343 _W("now reserved apps status %x", val);
351 vconf_set_int(VCONFKEY_STARTER_RESERVED_APPS_STATUS, tmp);
352 _W("now reserved apps status %x", tmp);
357 _E("Unknown reserved app.");
365 static void _wake_up_setting_changed_cb(keynode_t* node, void *data)
368 struct appdata *ad = (struct appdata *)data;
370 _D("%s, %d", __func__, __LINE__);
377 if(vconf_get_int(VCONFKEY_WMS_WAKEUP_BY_GESTURE_SETTING, &val) < 0) {
378 _E("Failed to get VCONFKEY_WMS_WAKEUP_BY_GESTURE_SETTING");
381 ad->wake_up_setting = val;
382 _W("wake_up_setting is changed to [%d]", ad->wake_up_setting);
385 static void _ambient_mode_setting_changed_cb(keynode_t* node, void *data)
387 int ambient_mode = 0;
388 struct appdata *ad = (struct appdata *)data;
391 ambient_mode = vconf_keynode_get_bool(node);
392 _D("ambient mode : %d", ambient_mode);
395 _D("launch w-clock-viewer");
396 ad->pid_clock_viewer = w_launch_app(W_CLOCK_VIEWER_PKGNAME, NULL);
398 _D("kill w-clock-viewer(%d)", ad->pid_clock_viewer);
399 if (ad->pid_clock_viewer > 0) {
400 aul_kill_pid(ad->pid_clock_viewer);
401 ad->pid_clock_viewer = 0;
405 ad->ambient_mode = ambient_mode;
406 _W("ambient_mode_setting is changed to [%d]", ad->ambient_mode);
410 static Eina_Bool _w_lcdoff_idler_cb(void *data)
412 struct appdata *ad = (struct appdata *)data;
414 _D("%s, %d", __func__, __LINE__);
416 w_open_app(ad->home_pkgname);
418 return ECORE_CALLBACK_CANCEL;
421 static Eina_Bool _w_launch_pm_unlock_idler_cb(void *data)
423 struct appdata *ad = (struct appdata *)data;
425 _D("%s, %d", __func__, __LINE__);
426 display_unlock_state(LCD_OFF, PM_SLEEP_MARGIN);
428 return ECORE_CALLBACK_CANCEL;
431 static Eina_Bool _pm_unlock_timer_cb(void *data){
432 _D("%s, %d", __func__, __LINE__);
433 ecore_idler_add(_w_launch_pm_unlock_idler_cb, data);
434 return ECORE_CALLBACK_CANCEL;
438 static void _notify_pm_lcdoff_cb(keynode_t * node, void *data)
442 int setup_wizard_state = -1;
445 int tutorial_state = -1;
449 int lcdoff_source = vconf_keynode_get_int(node);
450 struct appdata *ad = (struct appdata *)data;
458 if (lcdoff_source < 0) {
459 _E("Cannot get VCONFKEY, error (%d)", lcdoff_source);
463 _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);
466 if(csc_feature_get_bool(CSC_FEATURE_DEF_BOOL_HOME_LAUNCH_LOCK_WHEN_LCD_ON) == CSC_FEATURE_BOOL_TRUE){
468 vconf_get_int(VCONFKEY_SETAPPL_PRIVACY_LOCK_TYPE_INT, &lock_type);
471 //PM LOCK - don't go to sleep
472 display_lock_state(LCD_OFF, STAY_CUR_STATE, 0);
473 _E("CHC bin & lock type is %d", lock_type);
474 r = w_launch_app(W_LOCKSCREEN_PKGNAME, NULL);
476 ecore_timer_add(PM_UNLOCK_TIMER_SEC, _pm_unlock_timer_cb, ad);
481 if (vconf_get_int(VCONFKEY_SETUP_WIZARD_STATE, &setup_wizard_state) < 0) {
482 _E("Failed to get [%s]", VCONFKEY_SETUP_WIZARD_STATE);
484 if (setup_wizard_state == VCONFKEY_SETUP_WIZARD_LOCK) {
485 _E("don't react for lcd off, setup wizard state is [%d]", setup_wizard_state);
493 if (_check_reserved_apps_status(ad)) {
494 _E("_check_running_heath = > don't react for lcd off except ALPM");
495 if (ad->ambient_mode == 1) {
496 //Step1. Launch ALPM clock
499 _E("Failed to create bundle");
502 //bundle_add(b, APP_CONTROL_OPERATION_MAIN_KEY, APP_CONTROL_OPERATION_MAIN_VALUE);
503 bundle_add(b, ALPM_CLOCK_OP, ALPM_CLOCK_SHOW);
505 //PM LOCK - don't go to sleep
506 display_lock_state(LCD_OFF, STAY_CUR_STATE, 0);
508 ad->pid_ALPM_clock = 0;
509 ret = w_launch_app(W_ALPM_CLOCK_PKGNAME, b);
511 ad->pid_ALPM_clock =ret;
512 _SECURE_D("[%s] is launched, pid=[%d]", W_ALPM_CLOCK_PKGNAME, ad->pid_ALPM_clock );
517 //Step2. Do not raise Homescreen
518 ecore_timer_add(PM_UNLOCK_TIMER_SEC, _pm_unlock_timer_cb, ad);
524 if (ad->wake_up_setting == SETTING_WAKE_UP_GESTURE_CLOCK) {
525 //Step1. Launch ALPM clock
528 _E("Failed to create bundle");
531 //bundle_add(b, APP_CONTROL_OPERATION_MAIN_KEY, APP_CONTROL_OPERATION_MAIN_VALUE);
532 bundle_add(b, ALPM_CLOCK_OP, ALPM_CLOCK_SHOW);
534 //PM LOCK - don't go to sleep
535 display_lock_state(LCD_OFF, STAY_CUR_STATE, 0);
537 ad->pid_ALPM_clock = 0;
538 ret = w_launch_app(W_ALPM_CLOCK_PKGNAME, b);
540 ad->pid_ALPM_clock =ret;
541 _SECURE_D("[%s] is launched, pid=[%d]", W_ALPM_CLOCK_PKGNAME, ad->pid_ALPM_clock );
547 if(vconf_get_int("db/private/com.samsung.w-home/tutorial", &tutorial_state) < 0) {
548 _E("Failed to get tutorial status");
551 if(!tutorial_state) {
552 //Step2. Raise Homescreen
553 w_open_app(ad->home_pkgname);
555 ecore_timer_add(PM_UNLOCK_TIMER_SEC, _pm_unlock_timer_cb, ad);
556 } else if (ad->ambient_mode == 1) {
558 //Step1. Launch ALPM clock
561 _E("Failed to create bundle");
564 //bundle_add(b, APP_CONTROL_OPERATION_MAIN_KEY, APP_CONTROL_OPERATION_MAIN_VALUE);
565 bundle_add(b, ALPM_CLOCK_OP, ALPM_CLOCK_SHOW);
567 //PM LOCK - don't go to sleep
568 display_lock_state(LCD_OFF, STAY_CUR_STATE, 0);
570 ad->pid_ALPM_clock = 0;
571 ret = w_launch_app(W_ALPM_CLOCK_PKGNAME, b);
573 ad->pid_ALPM_clock =ret;
574 _SECURE_D("[%s] is launched, pid=[%d]", W_ALPM_CLOCK_PKGNAME, ad->pid_ALPM_clock );
579 //Step2. Do not raise Homescreen
580 ecore_timer_add(PM_UNLOCK_TIMER_SEC, _pm_unlock_timer_cb, ad);
585 if(_check_reserved_popup_status(ad)){
586 _W("reserved popup is on top. do nothing");
587 if((ad->ambient_mode == 1) && (ad->ALPM_clock_state == 0)){
588 starter_dbus_alpm_clock_signal_send(ad);
593 if (_check_reserved_apps_status(ad)) {
594 _W("reserved app is running now. raise it.");
596 EINA_LIST_FOREACH(ad->reserved_apps_list, l, info){
597 if(strncmp(info, SHEALTH_SLEEP_PKGNAME, strlen(info)) == 0){
598 _W("%s is in the list. check running state", info);
599 if(aul_app_is_running(info) == 1){
600 _W("%s is now running. raise it.", info);
601 //PM LOCK - don't go to sleep
602 display_lock_state(LCD_OFF, STAY_CUR_STATE, 0);
604 ecore_timer_add(PM_UNLOCK_TIMER_SEC, _pm_unlock_timer_cb, ad);
608 _W("%s is not running now", info);
609 ad->reserved_apps_list = eina_list_remove_list(ad->reserved_apps_list, l);
615 EINA_LIST_REVERSE_FOREACH(ad->reserved_apps_list, l, info){
616 if(aul_app_is_running(info) == 1){
617 //PM LOCK - don't go to sleep
618 display_lock_state(LCD_OFF, STAY_CUR_STATE, 0);
620 ecore_timer_add(PM_UNLOCK_TIMER_SEC, _pm_unlock_timer_cb, ad);
624 _W("%s is not running now", info);
625 ad->reserved_apps_list = eina_list_remove_list(ad->reserved_apps_list, l);
629 count = eina_list_count(ad->reserved_apps_list);
631 _W("there is no reserved app.");
632 vconf_set_int(VCONFKEY_STARTER_RESERVED_APPS_STATUS, 0);
636 if ((ad->ambient_mode == 1) && (ad->ALPM_clock_state == 0)) {
638 //Step1. Launch ALPM clock
641 _E("Failed to create bundle");
644 //bundle_add(b, APP_CONTROL_OPERATION_MAIN_KEY, APP_CONTROL_OPERATION_MAIN_VALUE);
645 bundle_add(b, ALPM_CLOCK_OP, ALPM_CLOCK_SHOW);
647 //PM LOCK - don't go to sleep
648 display_lock_state(LCD_OFF, STAY_CUR_STATE, 0);
650 ad->pid_ALPM_clock = 0;
651 ret = w_launch_app(W_ALPM_CLOCK_PKGNAME, b);
653 ad->pid_ALPM_clock =ret;
654 _SECURE_D("[%s] is launched, pid=[%d]", W_ALPM_CLOCK_PKGNAME, ad->pid_ALPM_clock );
659 //Step2. Do not raise Homescreen
660 ecore_timer_add(PM_UNLOCK_TIMER_SEC, _pm_unlock_timer_cb, ad);
662 starter_dbus_alpm_clock_signal_send(ad);
665 if(vconf_get_bool(VCONFKEY_SETTING_SIMPLE_CLOCK_MODE, &val) < 0) {
666 _E("Failed to get VCONFKEY_SETTING_SIMPLE_CLOCK_MODE");
670 // Not yet fix the setting concept.
671 //if ((_check_reserved_apps_status(ad) == FALSE) && (val == TRUE) && (ad->wake_up_setting == SETTING_WAKE_UP_GESTURE_CLOCK)) {
672 if ((_check_reserved_apps_status(ad) == FALSE) && (ad->wake_up_setting == SETTING_WAKE_UP_GESTURE_CLOCK) && (ad->ALPM_clock_state == 0)) {
673 //_W("Not reserved apss status AND wake_up_setting is CLOCK AND simple clock setting is [%d] => show simple clock..!!", val);
674 _W("Not reserved apss status AND wake_up_setting is CLOCK => show simple clock..!!");
676 //Step1. Launch ALPM clock
679 _E("Failed to create bundle");
682 //bundle_add(b, APP_CONTROL_OPERATION_MAIN_KEY, APP_CONTROL_OPERATION_MAIN_VALUE);
683 bundle_add(b, ALPM_CLOCK_OP, ALPM_CLOCK_SHOW);
685 //PM LOCK - don't go to sleep
686 display_lock_state(LCD_OFF, STAY_CUR_STATE, 0);
688 ad->pid_ALPM_clock = 0;
689 ret = w_launch_app(W_ALPM_CLOCK_PKGNAME, b);
691 ad->pid_ALPM_clock =ret;
692 _SECURE_D("[%s] is launched, pid=[%d]", W_ALPM_CLOCK_PKGNAME, ad->pid_ALPM_clock );
697 //Step2. Do not raise Homescreen
698 ecore_timer_add(PM_UNLOCK_TIMER_SEC, _pm_unlock_timer_cb, ad);
700 starter_dbus_alpm_clock_signal_send(ad);
707 void init_clock_mgr(void *data)
712 int reserved_apps_msg_port_id = 0;
713 struct appdata *ad = (struct appdata *)data;
715 _W("init_clock_mgr.!!");
717 //register message port for reserved apps
718 if ((reserved_apps_msg_port_id = message_port_register_local_port(RESERVED_DISPLAY_MESSAGE_PORT_ID, reserved_apps_message_received_cb)) <= 0) {
719 _E("Failed to register reserved_apps message port cb");
721 _E("port_id:%d", reserved_apps_msg_port_id);
722 ad->reserved_apps_local_port_id = reserved_apps_msg_port_id;
724 if(init_dbus_ALPM_clock_state_signal(ad) < 0) {
725 _E("Failed to init_dbus_ALPM_clock_state_signal");
728 //register wake up gesture setting changed.
729 if(vconf_get_int(VCONFKEY_WMS_WAKEUP_BY_GESTURE_SETTING, &val) < 0) {
730 _E("Failed to get VCONFKEY_WMS_WAKEUP_BY_GESTURE_SETTING");
733 ad->wake_up_setting = val;
734 _W("wake_up_setting : %d", ad->wake_up_setting);
736 if (vconf_notify_key_changed(VCONFKEY_WMS_WAKEUP_BY_GESTURE_SETTING, _wake_up_setting_changed_cb, ad) < 0) {
737 _E("Failed to add the callback for VCONFKEY_WMS_WAKEUP_BY_GESTURE_SETTING changed");
740 //register ambient mode changed.
741 if(vconf_get_bool(VCONFKEY_SETAPPL_AMBIENT_MODE_BOOL, &val) < 0) {
742 _E("Failed to get VCONFKEY_SETAPPL_AMBIENT_MODE_BOOL");
745 ad->ambient_mode = val;
746 _W("ambient_mode : %d", ad->ambient_mode);
748 if (vconf_notify_key_changed(VCONFKEY_SETAPPL_AMBIENT_MODE_BOOL, _ambient_mode_setting_changed_cb, ad) < 0) {
749 _E("Failed to add the callback for VCONFKEY_SETAPPL_AMBIENT_MODE_BOOL changed");
752 if (vconf_notify_key_changed(VCONFKEY_PM_LCDOFF_SOURCE, _notify_pm_lcdoff_cb, ad) != 0) {
753 _E("Fail vconf_notify_key_changed : VCONFKEY_PM_LCDOFF_SOURCE");
757 if (vconf_notify_key_changed(VCONFKEY_SHEALTH_VIEW_TYPE_STR, _shealth_view_type_changed_cb, ad) < 0) {
758 _E("Failed to add the callback for VCONFKEY_SHEALTH_VIEW_TYPE_STR changed");
761 if (vconf_notify_key_changed(VCONFKEY_HERE_TBT_STATUS_INT, _here_navigation_status_changed_cb, ad) < 0) {
762 _E("Failed to add the callback for VCONFKEY_HERE_TBT_STATUS_INT changed");
769 void fini_clock_mgr(void *data)
771 struct appdata *ad = (struct appdata *)data;
773 if(vconf_ignore_key_changed(VCONFKEY_WMS_WAKEUP_BY_GESTURE_SETTING, _wake_up_setting_changed_cb) < 0) {
774 _E("Failed to ignore the VCONFKEY_WMS_WAKEUP_BY_GESTURE_SETTING");
777 if(vconf_ignore_key_changed(VCONFKEY_PM_LCDOFF_SOURCE, _notify_pm_lcdoff_cb) < 0) {
778 _E("Failed to ignore the VCONFKEY_PM_LCDOFF_SOURCE");
781 if (vconf_ignore_key_changed(VCONFKEY_SETAPPL_AMBIENT_MODE_BOOL, _ambient_mode_setting_changed_cb) < 0) {
782 _E("Failed to ignore the VCONFKEY_SETAPPL_AMBIENT_MODE_BOOL");
786 if(vconf_ignore_key_changed(VCONFKEY_SHEALTH_VIEW_TYPE_STR, _shealth_view_type_changed_cb) < 0) {
787 _E("Failed to ignore the VCONFKEY_SHEALTH_VIEW_TYPE_STR");
790 if(vconf_ignore_key_changed(VCONFKEY_HERE_TBT_STATUS_INT, _here_navigation_status_changed_cb) < 0) {
791 _E("Failed to ignore the VCONFKEY_HERE_TBT_STATUS_INT");
795 #if 0 // Disable temporarily for TIZEN 2.3 build
796 if (ad->reserved_apps_local_port_id >= 0) {
797 if (message_port_unregister_local_port(ad->reserved_apps_local_port_id) != MESSAGE_PORT_ERROR_NONE) {
798 _E("Failed to unregister reserved apps message port cb");