Remove safemode
[apps/native/starter.git] / src / status.c
1 /*
2  * Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd. All rights reserved.
3  *
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
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
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.
15  */
16
17 #include <vconf.h>
18 #include <stdlib.h>
19 #include <string.h>
20 #include <errno.h>
21
22 #include "status.h"
23 #include "util.h"
24
25 int errno;
26
27 #define VCONFKEY_REMOTE_LOCK_ISLOCKED "db/private/org.tizen.wfmw/is_locked"
28
29
30
31 typedef struct cb_info {
32         status_active_cb func;
33         void *data;
34 } cb_info_s;
35
36
37
38 static struct status_active_s s_status_active = {
39         .list = {NULL, },
40         .setappl_selected_package_name = NULL,
41         .setappl_screen_lock_type_int = -1,
42         .langset = NULL,
43         .pm_state = -1,
44         .starter_sequence = -1,
45         .sysman_power_off_status = -1,
46 };
47
48
49
50 static struct status_passive_s s_status_passive = {
51         .wms_wakeup_by_gesture_setting = -1,
52         .setappl_ambient_mode_bool = -1,
53
54         .pm_key_ignore = -1,
55         .call_state = -1,
56         .idle_lock_state = -1,
57         .setappl_password_attempts_left_int = -1,
58         .remote_lock_islocked = -1,
59         .setappl_psmode = -1,
60         .starter_reserved_apps_status = -1,
61         .setappl_sound_lock_bool = -1,
62         .setappl_motion_activation = -1,
63         .setappl_use_pick_up = -1,
64         .boot_animation_finished = -1,
65
66         .setappl_3rd_lock_pkg_name_str = NULL,
67 };
68
69
70
71 status_active_h status_active_get(void)
72 {
73         return &s_status_active;
74 }
75
76
77
78 status_passive_h status_passive_get(void)
79 {
80         return &s_status_passive;
81 }
82
83
84
85 int status_active_register_cb(status_active_key_e key, status_active_cb func, void *data)
86 {
87         cb_info_s *info = NULL;
88
89         retv_if(key <= STATUS_ACTIVE_KEY_INVALID, -1);
90         retv_if(key >= STATUS_ACTIVE_KEY_MAX, -1);
91         retv_if(!func, -1);
92
93         info = calloc(1, sizeof(cb_info_s));
94         retv_if(!info, -1);
95
96         info->func = func;
97         info->data = data;
98
99         s_status_active.list[key] = eina_list_append(s_status_active.list[key], info);
100
101         return 0;
102 }
103
104
105
106 int status_active_unregister_cb(status_active_key_e key, status_active_cb func)
107 {
108         const Eina_List *l = NULL;
109         const Eina_List *ln = NULL;
110         cb_info_s *info = NULL;
111
112         retv_if(key <= STATUS_ACTIVE_KEY_INVALID, -1);
113         retv_if(key >= STATUS_ACTIVE_KEY_MAX, -1);
114         retv_if(!func, -1);
115
116         EINA_LIST_FOREACH_SAFE(s_status_active.list[key], l, ln, info) {
117                 if (func == info->func) {
118                         s_status_active.list[key] = eina_list_remove(s_status_active.list[key], info);
119                         free(info);
120                         return 0;
121                 }
122         }
123
124         _W("We cannot unregister the func. Because the list doesn't have it.");
125
126         return 0;
127 }
128
129
130
131 static void _status_active_change_cb(keynode_t* node, void *data)
132 {
133         const char *key_name = NULL;
134         const Eina_List *l = NULL;
135         cb_info_s *info = NULL;
136
137         ret_if(!node);
138
139         key_name = vconf_keynode_get_name(node);
140         ret_if(!key_name);
141
142         if (!strcmp(key_name, VCONFKEY_PM_STATE)) {
143                 s_status_active.pm_state = vconf_keynode_get_int(node);
144                 EINA_LIST_FOREACH(s_status_active.list[STATUS_ACTIVE_KEY_PM_STATE], l, info) {
145                         continue_if(!info->func);
146                         if (0 == info->func(STATUS_ACTIVE_KEY_PM_STATE, info->data)) break;
147                 }
148         } else if (!strcmp(key_name, VCONFKEY_SETAPPL_SELECTED_PACKAGE_NAME)) {
149                 char *tmp = vconf_keynode_get_str(node);
150                 char *a_tmp;
151
152                 if (tmp) {
153                         a_tmp = strdup(tmp);
154                 } else {
155                         a_tmp = strdup(HOMESCREEN_PKG_NAME);
156                 }
157
158                 if (a_tmp) {
159                         free(s_status_active.setappl_selected_package_name);
160                         s_status_active.setappl_selected_package_name = a_tmp;
161                 } else {
162                         if (!s_status_active.setappl_selected_package_name) {
163                                 _E("Package name is NULL, strdup failed");
164                         } else {
165                                 _E("Keep old package. because of strdup\n");
166                         }
167                 }
168
169                 EINA_LIST_FOREACH(s_status_active.list[STATUS_ACTIVE_KEY_SETAPPL_SELECTED_PACKAGE_NAME], l, info) {
170                         continue_if(!info->func);
171                         if (0 == info->func(STATUS_ACTIVE_KEY_SETAPPL_SELECTED_PACKAGE_NAME, info->data)) break;
172                 }
173         } else if (!strcmp(key_name, VCONFKEY_SETAPPL_SCREEN_LOCK_TYPE_INT)) {
174                 s_status_active.setappl_screen_lock_type_int = vconf_keynode_get_int(node);
175                 EINA_LIST_FOREACH(s_status_active.list[STATUS_ACTIVE_KEY_SETAPPL_SCREEN_LOCK_TYPE_INT], l, info) {
176                         continue_if(!info->func);
177                         if (0 == info->func(STATUS_ACTIVE_KEY_SETAPPL_SCREEN_LOCK_TYPE_INT, info->data)) break;
178                 }
179         } else if (!strcmp(key_name, VCONFKEY_STARTER_SEQUENCE)) {
180                 s_status_active.starter_sequence = vconf_keynode_get_int(node);
181                 EINA_LIST_FOREACH(s_status_active.list[STATUS_ACTIVE_KEY_STARTER_SEQUENCE], l, info) {
182                         continue_if(!info->func);
183                         if (0 == info->func(STATUS_ACTIVE_KEY_STARTER_SEQUENCE, info->data)) break;
184                 }
185         } else if (!strcmp(key_name, VCONFKEY_SYSMAN_POWER_OFF_STATUS)) {
186                 s_status_active.sysman_power_off_status = vconf_keynode_get_int(node);
187                 EINA_LIST_FOREACH(s_status_active.list[STATUS_ACTIVE_KEY_SYSMAN_POWER_OFF_STATUS], l, info) {
188                         continue_if(!info->func);
189                         if (0 == info->func(STATUS_ACTIVE_KEY_SYSMAN_POWER_OFF_STATUS, info->data)) break;
190                 }
191         } else if (!strcmp(key_name, VCONFKEY_LANGSET)) {
192                 char *tmp = vconf_keynode_get_str(node);
193                 free(s_status_active.langset);
194                 if (tmp) s_status_active.langset = strdup(tmp);
195                 else s_status_active.langset = NULL;
196                 EINA_LIST_FOREACH(s_status_active.list[STATUS_ACTIVE_KEY_LANGSET], l, info) {
197                         continue_if(!info->func);
198                         if (0 == info->func(STATUS_ACTIVE_KEY_LANGSET, info->data)) break;
199                 }
200 #if 0
201         } else if (!strcmp(key_name, )) {
202                 s_status_active. = vconf_keynode_get_int(node);
203                 EINA_LIST_FOREACH(s_status_active.list[STATUS_ACTIVE_KEY_], l, info) {
204                         continue_if(!info->func);
205                         if (0 == info->func(STATUS_ACTIVE_KEY_, info->data)) break;
206                 }
207 #endif
208         }
209 }
210
211
212
213 static void _status_passive_change_cb(keynode_t* node, void *data)
214 {
215         char *key_name = NULL;
216
217         ret_if(!node);
218
219         key_name = vconf_keynode_get_name(node);
220         ret_if(!key_name);
221
222 #ifdef TIZEN_PROFILE_WEARABLE
223         if (!strcmp(key_name, VCONFKEY_WMS_WAKEUP_BY_GESTURE_SETTING)) {
224                 s_status_passive.wms_wakeup_by_gesture_setting = vconf_keynode_get_int(node);
225         } else if (!strcmp(key_name, VCONFKEY_SETAPPL_AMBIENT_MODE_BOOL)) {
226                 s_status_passive.setappl_ambient_mode_bool = vconf_keynode_get_int(node);
227         } else
228 #endif
229         if (!strcmp(key_name, VCONFKEY_PM_KEY_IGNORE)) {
230                 s_status_passive.pm_key_ignore = vconf_keynode_get_int(node);
231         } else if (!strcmp(key_name, VCONFKEY_CALL_STATE)) {
232                 s_status_passive.call_state = vconf_keynode_get_int(node);
233         } else if (!strcmp(key_name, VCONFKEY_IDLE_LOCK_STATE)) {
234                 s_status_passive.idle_lock_state = vconf_keynode_get_int(node);
235         } else if (!strcmp(key_name, VCONFKEY_SETAPPL_PASSWORD_ATTEMPTS_LEFT_INT)) {
236                 s_status_passive.setappl_password_attempts_left_int = vconf_keynode_get_int(node);
237         } else if (!strcmp(key_name, VCONFKEY_REMOTE_LOCK_ISLOCKED)) {
238                 s_status_passive.remote_lock_islocked = vconf_keynode_get_bool(node);
239         } else if (!strcmp(key_name, VCONFKEY_SETAPPL_PSMODE)) {
240                 s_status_passive.setappl_psmode = vconf_keynode_get_int(node);
241         } else if (!strcmp(key_name, VCONFKEY_STARTER_RESERVED_APPS_STATUS)) {
242                 s_status_passive.starter_reserved_apps_status = vconf_keynode_get_int(node);
243         } else if (!strcmp(key_name, VCONFKEY_BOOT_ANIMATION_FINISHED)) {
244                 s_status_passive.boot_animation_finished = vconf_keynode_get_int(node);
245         } else if (!strcmp(key_name, VCONFKEY_SETAPPL_3RD_LOCK_PKG_NAME_STR)) {
246                 char *tmp = vconf_keynode_get_str(node);
247                 char *a_tmp;
248
249                 if (tmp) {
250                         a_tmp = strdup(tmp);
251                 } else {
252                         a_tmp = strdup(STATUS_DEFAULT_LOCK_PKG_NAME);
253                 }
254
255                 if (a_tmp) {
256                         free(s_status_passive.setappl_3rd_lock_pkg_name_str);
257                         s_status_passive.setappl_3rd_lock_pkg_name_str = a_tmp;
258                 } else {
259                         if (!s_status_passive.setappl_3rd_lock_pkg_name_str) {
260                                 _E("Package name is NULL, strdup failed");
261                         } else {
262                                 _E("Keep old package. because of strdup\n");
263                         }
264                 }
265
266 #if 0
267         } else if (!strcmp(key_name, )) {
268                 s_status_passive. = vconf_keynode_get_int(node);
269 #endif
270         }
271 }
272
273
274
275 int status_register(void)
276 {
277         _W("Register every events for Starter");
278
279         /* Active events */
280         if (vconf_notify_key_changed(VCONFKEY_PM_STATE, _status_active_change_cb, NULL) < 0) {
281                 _E("Failed to register add the callback for %s", VCONFKEY_PM_STATE);
282         } else if (vconf_get_int(VCONFKEY_PM_STATE, &s_status_active.pm_state) < 0) {
283                 _E("Failed to get vconfkey[%s]", VCONFKEY_PM_STATE);
284                 s_status_active.pm_state = -1;
285         }
286
287         if (vconf_notify_key_changed(VCONFKEY_SETAPPL_SELECTED_PACKAGE_NAME, _status_active_change_cb, NULL) < 0) {
288                 _E("Failed to register add the callback for %s", VCONFKEY_SETAPPL_SELECTED_PACKAGE_NAME);
289         }
290         if (!(s_status_active.setappl_selected_package_name = vconf_get_str(VCONFKEY_SETAPPL_SELECTED_PACKAGE_NAME))) {
291                 _E("Failed to get vconfkey[%s]", VCONFKEY_SETAPPL_SELECTED_PACKAGE_NAME);
292                 s_status_active.setappl_selected_package_name = strdup(HOMESCREEN_PKG_NAME);
293                 if (!s_status_active.setappl_selected_package_name) {
294                         _E("Failed to duplicate string");
295                 }
296         }
297
298         if (vconf_notify_key_changed(VCONFKEY_SETAPPL_SCREEN_LOCK_TYPE_INT, _status_active_change_cb, NULL) < 0) {
299                 _E("Failed to register add the callback for %s", VCONFKEY_SETAPPL_SCREEN_LOCK_TYPE_INT);
300         } else if (vconf_get_int(VCONFKEY_SETAPPL_SCREEN_LOCK_TYPE_INT, &s_status_active.setappl_screen_lock_type_int) < 0) {
301                 _E("Failed to get vconfkey[%s]", VCONFKEY_SETAPPL_SCREEN_LOCK_TYPE_INT);
302                 s_status_active.setappl_screen_lock_type_int = -1;
303         }
304
305         if (vconf_notify_key_changed(VCONFKEY_STARTER_SEQUENCE, _status_active_change_cb, NULL) < 0) {
306                 _E("Failed to register add the callback for %s", VCONFKEY_STARTER_SEQUENCE);
307         } else if (vconf_get_int(VCONFKEY_STARTER_SEQUENCE, &s_status_active.starter_sequence) < 0) {
308                 _E("Failed to get vconfkey[%s]", VCONFKEY_STARTER_SEQUENCE);
309                 s_status_active.starter_sequence = -1;
310         }
311
312         if (vconf_notify_key_changed(VCONFKEY_SYSMAN_POWER_OFF_STATUS, _status_active_change_cb, NULL) < 0) {
313                 _E("Failed to register add the callback for %s", VCONFKEY_SYSMAN_POWER_OFF_STATUS);
314         } else if (vconf_get_int(VCONFKEY_SYSMAN_POWER_OFF_STATUS, &s_status_active.sysman_power_off_status ) < 0) {
315                 _E("Failed to get vconfkey[%s]", VCONFKEY_SYSMAN_POWER_OFF_STATUS);
316                 s_status_active.sysman_power_off_status  = -1;
317         }
318
319         if (vconf_notify_key_changed(VCONFKEY_LANGSET, _status_active_change_cb, NULL) < 0) {
320                 _E("Failed to register add the callback for %s", VCONFKEY_LANGSET);
321         } else if (!(s_status_active.langset = vconf_get_str(VCONFKEY_LANGSET))) {
322                 _E("Failed to get vconfkey[%s]", VCONFKEY_LANGSET);
323         }
324
325 #if 0
326         if (vconf_notify_key_changed(, _status_active_change_cb, NULL) < 0) {
327                 _E("Failed to register add the callback for %s", );
328         } else if (vconf_get_int(, &s_status_active.) < 0) {
329                 _E("Failed to get vconfkey[%s]", );
330                 s_status_active. = -1;
331         }
332 #endif
333
334         /* Passive events */
335 #ifdef TIZEN_PROFILE_WEARABLE
336         if (vconf_notify_key_changed(VCONFKEY_WMS_WAKEUP_BY_GESTURE_SETTING, _status_passive_change_cb, NULL) < 0) {
337                 _E("Failed to register add the callback for %s", VCONFKEY_WMS_WAKEUP_BY_GESTURE_SETTING);
338         } else if (vconf_get_int(VCONFKEY_WMS_WAKEUP_BY_GESTURE_SETTING, &s_status_passive.wms_wakeup_by_gesture_setting) < 0) {
339                 _E("Failed to get vconfkey[%s]", VCONFKEY_WMS_WAKEUP_BY_GESTURE_SETTING);
340                 s_status_passive.wms_wakeup_by_gesture_setting = -1;
341         }
342
343         if (vconf_notify_key_changed(VCONFKEY_SETAPPL_AMBIENT_MODE_BOOL, _status_passive_change_cb, NULL) < 0) {
344                 _E("Failed to register add the callback for %s", VCONFKEY_SETAPPL_AMBIENT_MODE_BOOL);
345         } else if (vconf_get_int(VCONFKEY_SETAPPL_AMBIENT_MODE_BOOL, &s_status_passive.setappl_ambient_mode_bool) < 0) {
346                 _E("Failed to get vconfkey[%s]", VCONFKEY_SETAPPL_AMBIENT_MODE_BOOL);
347                 s_status_passive.setappl_ambient_mode_bool = -1;
348         }
349
350 #endif
351
352         if (vconf_notify_key_changed(VCONFKEY_PM_KEY_IGNORE, _status_passive_change_cb, NULL) < 0) {
353                 _E("Failed to register add the callback for %s", VCONFKEY_PM_KEY_IGNORE);
354         } else if (vconf_get_int(VCONFKEY_PM_KEY_IGNORE, &s_status_passive.pm_key_ignore) < 0) {
355                 _E("Failed to get vconfkey[%s]", VCONFKEY_PM_KEY_IGNORE);
356                 s_status_passive.pm_key_ignore = -1;
357         }
358
359         if (vconf_notify_key_changed(VCONFKEY_CALL_STATE, _status_passive_change_cb, NULL) < 0) {
360                 _E("Failed to register add the callback for %s", VCONFKEY_CALL_STATE);
361         } else if (vconf_get_int(VCONFKEY_CALL_STATE, &s_status_passive.call_state) < 0) {
362                 _E("Failed to get vconfkey[%s]", VCONFKEY_CALL_STATE);
363                 s_status_passive.call_state = -1;
364         }
365
366         if (vconf_notify_key_changed(VCONFKEY_IDLE_LOCK_STATE, _status_passive_change_cb, NULL) < 0) {
367                 _E("Failed to regsiter add the callback for %s", VCONFKEY_IDLE_LOCK_STATE);
368         } else if (vconf_get_int(VCONFKEY_IDLE_LOCK_STATE, &s_status_passive.idle_lock_state) < 0) {
369                 _E("Failed to get vconfkey[%s]", VCONFKEY_IDLE_LOCK_STATE);
370                 s_status_passive.idle_lock_state = -1;
371         }
372
373         if (vconf_notify_key_changed(VCONFKEY_SETAPPL_PASSWORD_ATTEMPTS_LEFT_INT, _status_passive_change_cb, NULL) < 0) {
374                 _E("Failed to register add the callback for %s", VCONFKEY_SETAPPL_PASSWORD_ATTEMPTS_LEFT_INT);
375         } else if (vconf_get_int(VCONFKEY_SETAPPL_PASSWORD_ATTEMPTS_LEFT_INT, &s_status_passive.setappl_password_attempts_left_int) < 0) {
376                 _E("Failed to get vconfkey[%s]", VCONFKEY_SETAPPL_PASSWORD_ATTEMPTS_LEFT_INT);
377                 s_status_passive.setappl_password_attempts_left_int = -1;
378         }
379
380         if (vconf_notify_key_changed(VCONFKEY_REMOTE_LOCK_ISLOCKED, _status_passive_change_cb, NULL) < 0) {
381                 _E("Failed to register add the callback for %s", VCONFKEY_REMOTE_LOCK_ISLOCKED);
382         } else if (vconf_get_bool(VCONFKEY_REMOTE_LOCK_ISLOCKED, &s_status_passive.remote_lock_islocked) < 0) {
383                 _E("Failed to get vconfkey[%s]", VCONFKEY_REMOTE_LOCK_ISLOCKED);
384                 s_status_passive.remote_lock_islocked = -1;
385         }
386
387         if (vconf_notify_key_changed(VCONFKEY_SETAPPL_PSMODE, _status_passive_change_cb, NULL) < 0) {
388                 _E("Failed to register add the callback for %s", VCONFKEY_SETAPPL_PSMODE);
389         } else if (vconf_get_int(VCONFKEY_SETAPPL_PSMODE, &s_status_passive.setappl_psmode) < 0) {
390                 _E("Failed to get vconfkey[%s]", VCONFKEY_SETAPPL_PSMODE);
391                 s_status_passive.setappl_psmode = -1;
392         }
393
394         if (vconf_notify_key_changed(VCONFKEY_STARTER_RESERVED_APPS_STATUS, _status_passive_change_cb, NULL) < 0) {
395                 _E("Failed to register add the callback for %s", VCONFKEY_STARTER_RESERVED_APPS_STATUS);
396         } else if (vconf_get_int(VCONFKEY_STARTER_RESERVED_APPS_STATUS, &s_status_passive.starter_reserved_apps_status) < 0) {
397                 _E("Failed to get vconfkey[%s]", VCONFKEY_STARTER_RESERVED_APPS_STATUS);
398                 s_status_passive.starter_reserved_apps_status = -1;
399         }
400
401         if (vconf_notify_key_changed(VCONFKEY_SETAPPL_SOUND_LOCK_BOOL, _status_passive_change_cb, NULL) < 0) {
402                 _E("Failed to register add the callback for %s", VCONFKEY_SETAPPL_SOUND_LOCK_BOOL);
403         } else if (vconf_get_bool(VCONFKEY_SETAPPL_SOUND_LOCK_BOOL, &s_status_passive.setappl_sound_lock_bool) < 0) {
404                 _E("Failed to get vconfkey[%s]", VCONFKEY_SETAPPL_SOUND_LOCK_BOOL);
405                 s_status_passive.setappl_sound_lock_bool = -1;
406         }
407
408         if (vconf_notify_key_changed(VCONFKEY_SETAPPL_MOTION_ACTIVATION, _status_passive_change_cb, NULL) < 0) {
409                 _E("Failed to regitster add the callback for %s", VCONFKEY_SETAPPL_MOTION_ACTIVATION);
410         } else if (vconf_get_bool(VCONFKEY_SETAPPL_MOTION_ACTIVATION, &s_status_passive.setappl_motion_activation) < 0) {
411                 _E("Failed to get vconfkey[%s]", VCONFKEY_SETAPPL_MOTION_ACTIVATION);
412                 s_status_passive.setappl_motion_activation = -1;
413         }
414
415         if (vconf_notify_key_changed(VCONFKEY_SETAPPL_USE_PICK_UP, _status_passive_change_cb, NULL) < 0) {
416                 _E("Failed to regitster add the callback for %s", VCONFKEY_SETAPPL_USE_PICK_UP);
417         } else if (vconf_get_bool(VCONFKEY_SETAPPL_USE_PICK_UP, &s_status_passive.setappl_use_pick_up) < 0) {
418                 _E("Failed to get vconfkey[%s]", VCONFKEY_SETAPPL_USE_PICK_UP);
419                 s_status_passive.setappl_use_pick_up = -1;
420         }
421
422         if (vconf_notify_key_changed(VCONFKEY_BOOT_ANIMATION_FINISHED, _status_passive_change_cb, NULL) < 0) {
423                 _E("Failed to register add the callback for %s", VCONFKEY_BOOT_ANIMATION_FINISHED);
424         } else if (vconf_get_int(VCONFKEY_BOOT_ANIMATION_FINISHED, &s_status_passive.boot_animation_finished) < 0) {
425                 _E("Failed to get vconfkey[%s]", VCONFKEY_BOOT_ANIMATION_FINISHED);
426                 s_status_passive.boot_animation_finished = -1;
427         }
428
429         if (vconf_notify_key_changed(VCONFKEY_SETAPPL_3RD_LOCK_PKG_NAME_STR, _status_passive_change_cb, NULL) < 0) {
430                 _E("Failed to register add the callback for %s", VCONFKEY_SETAPPL_3RD_LOCK_PKG_NAME_STR);
431         }
432
433         if (!(s_status_passive.setappl_3rd_lock_pkg_name_str = vconf_get_str(VCONFKEY_SETAPPL_3RD_LOCK_PKG_NAME_STR))) {
434                 _E("Failed to get vconfkey[%s]", VCONFKEY_SETAPPL_3RD_LOCK_PKG_NAME_STR);
435                 s_status_passive.setappl_3rd_lock_pkg_name_str = strdup(STATUS_DEFAULT_LOCK_PKG_NAME);
436                 if (!s_status_passive.setappl_3rd_lock_pkg_name_str) {
437                         _E("Failed to allocate string for 3rd lock %d\n", errno);
438                 }
439         }
440
441 #if 0
442         if (vconf_notify_key_changed(, _status_passive_change_cb, NULL) < 0) {
443                 _E("Failed to register add the callback for %s", );
444         } else if (vconf_get_int(, &s_status_passive.) < 0) {
445                 _E("Failed to get vconfkey[%s]", );
446                 s_status_passive. = -1;
447         }
448 #endif
449
450         return 0;
451 }
452
453
454
455 void status_unregister(void)
456 {
457         /* Active events */
458         if (vconf_ignore_key_changed(VCONFKEY_PM_STATE, _status_active_change_cb) < 0) {
459                 _E("Failed to unregister the callback for %s", VCONFKEY_PM_STATE);
460         }
461
462         if (vconf_ignore_key_changed(VCONFKEY_SETAPPL_SELECTED_PACKAGE_NAME, _status_active_change_cb) < 0) {
463                 _E("Failed to unregister the callback for %s", VCONFKEY_SETAPPL_SELECTED_PACKAGE_NAME);
464         }
465         free(s_status_active.setappl_selected_package_name);
466
467         if (vconf_ignore_key_changed(VCONFKEY_SETAPPL_SCREEN_LOCK_TYPE_INT, _status_active_change_cb) < 0) {
468                 _E("Failed to unregister the callback for %s", VCONFKEY_SETAPPL_SCREEN_LOCK_TYPE_INT);
469         }
470
471         if (vconf_ignore_key_changed(VCONFKEY_STARTER_SEQUENCE, _status_active_change_cb) < 0) {
472                 _E("Failed to unregister the callback for %s", VCONFKEY_STARTER_SEQUENCE);
473         }
474
475         if (vconf_ignore_key_changed(VCONFKEY_SYSMAN_POWER_OFF_STATUS, _status_active_change_cb) < 0) {
476                 _E("Failed to unregister the callback for %s", VCONFKEY_SYSMAN_POWER_OFF_STATUS);
477         }
478
479         if (vconf_ignore_key_changed(VCONFKEY_LANGSET, _status_active_change_cb) < 0) {
480                 _E("Failed to unregister the callback for %s", VCONFKEY_LANGSET);
481         }
482         free(s_status_active.langset);
483
484 #if 0
485         if (vconf_ignore_key_changed(, _status_active_change_cb) < 0) {
486                 _E("Failed to unregister the callback for %s", );
487         }
488 #endif
489
490         /* Passive events */
491 #ifdef TIZEN_PROFILE_WEARABLE
492         if (vconf_ignore_key_changed(VCONFKEY_WMS_WAKEUP_BY_GESTURE_SETTING, _status_passive_change_cb) < 0) {
493                 _E("Failed to unregister the callback for %s", VCONFKEY_WMS_WAKEUP_BY_GESTURE_SETTING);
494         }
495
496         if (vconf_ignore_key_changed(VCONFKEY_SETAPPL_AMBIENT_MODE_BOOL, _status_passive_change_cb) < 0) {
497                 _E("Failed to unregister the callback for %s", VCONFKEY_SETAPPL_AMBIENT_MODE_BOOL);
498         }
499
500 #endif
501
502         if (vconf_ignore_key_changed(VCONFKEY_PM_KEY_IGNORE, _status_passive_change_cb) < 0) {
503                 _E("Failed to unregister the callback for %s", VCONFKEY_PM_KEY_IGNORE);
504         }
505
506         if (vconf_ignore_key_changed(VCONFKEY_CALL_STATE, _status_passive_change_cb) < 0) {
507                 _E("Failed to unregister the callback for %s", VCONFKEY_CALL_STATE);
508         }
509
510         if (vconf_ignore_key_changed(VCONFKEY_IDLE_LOCK_STATE, _status_passive_change_cb) < 0) {
511                 _E("Faield to unregister the callback for %s", VCONFKEY_IDLE_LOCK_STATE);
512         }
513
514         if (vconf_ignore_key_changed(VCONFKEY_SETAPPL_PASSWORD_ATTEMPTS_LEFT_INT, _status_passive_change_cb) < 0) {
515                 _E("Failed to unregister the callback for %s", VCONFKEY_SETAPPL_PASSWORD_ATTEMPTS_LEFT_INT);
516         }
517
518         if (vconf_ignore_key_changed(VCONFKEY_REMOTE_LOCK_ISLOCKED, _status_passive_change_cb) < 0) {
519                 _E("Failed to unregister the callback for %s", VCONFKEY_REMOTE_LOCK_ISLOCKED);
520         }
521
522         if (vconf_ignore_key_changed(VCONFKEY_SETAPPL_PSMODE, _status_passive_change_cb) < 0) {
523                 _E("Failed to unregister the callback for %s", VCONFKEY_SETAPPL_PSMODE);
524         }
525
526         if (vconf_ignore_key_changed(VCONFKEY_STARTER_RESERVED_APPS_STATUS, _status_passive_change_cb) < 0) {
527                 _E("Failed to unregister the callback for %s", VCONFKEY_STARTER_RESERVED_APPS_STATUS);
528         }
529
530         if (vconf_ignore_key_changed(VCONFKEY_SETAPPL_SOUND_LOCK_BOOL, _status_passive_change_cb) < 0) {
531                 _E("Failed to unregister the callback for %s", VCONFKEY_SETAPPL_SOUND_LOCK_BOOL);
532         }
533
534         if (vconf_ignore_key_changed(VCONFKEY_SETAPPL_MOTION_ACTIVATION, _status_passive_change_cb) < 0) {
535                 _E("Failed to unregister the callback for %s", VCONFKEY_SETAPPL_MOTION_ACTIVATION);
536         }
537
538         if (vconf_ignore_key_changed(VCONFKEY_SETAPPL_USE_PICK_UP, _status_passive_change_cb) < 0) {
539                 _E("Failed to unregister the callback for %s", VCONFKEY_SETAPPL_USE_PICK_UP);
540         }
541
542         if (vconf_ignore_key_changed(VCONFKEY_BOOT_ANIMATION_FINISHED, _status_passive_change_cb) < 0) {
543                 _E("Failed to unregister the callback for %s", VCONFKEY_BOOT_ANIMATION_FINISHED);
544         }
545
546         if (vconf_ignore_key_changed(VCONFKEY_SETAPPL_3RD_LOCK_PKG_NAME_STR, _status_passive_change_cb) < 0) {
547                 _E("Failed to unregister ther callback for %s", VCONFKEY_SETAPPL_3RD_LOCK_PKG_NAME_STR);
548         }
549         free(s_status_passive.setappl_3rd_lock_pkg_name_str);
550
551 #if 0
552         if (vconf_ignore_key_changed(, _status_passive_change_cb) < 0) {
553                 _E("Failed to unregister the callback for %s", );
554         }
555 #endif
556 }
557