Launch lockscreen after boot animation is finished
[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         .boot_animation_finished = -1,
47 };
48
49
50
51 static struct status_passive_s s_status_passive = {
52         .wms_wakeup_by_gesture_setting = -1,
53         .setappl_ambient_mode_bool = -1,
54
55         .pm_key_ignore = -1,
56         .call_state = -1,
57         .idle_lock_state = -1,
58         .setappl_password_attempts_left_int = -1,
59         .remote_lock_islocked = -1,
60         .setappl_psmode = -1,
61         .starter_reserved_apps_status = -1,
62         .setappl_sound_lock_bool = -1,
63         .setappl_motion_activation = -1,
64         .setappl_use_pick_up = -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         } else if (!strcmp(key_name, VCONFKEY_BOOT_ANIMATION_FINISHED)) {
201                 s_status_active.boot_animation_finished = vconf_keynode_get_int(node);
202                 EINA_LIST_FOREACH(s_status_active.list[STATUS_ACTIVE_KEY_BOOT_ANIMATION_FINISHED], l, info) {
203                         continue_if(!info->func);
204                         if (0 == info->func(STATUS_ACTIVE_KEY_BOOT_ANIMATION_FINISHED, info->data)) break;
205                 }
206 #if 0
207         } else if (!strcmp(key_name, )) {
208                 s_status_active. = vconf_keynode_get_int(node);
209                 EINA_LIST_FOREACH(s_status_active.list[STATUS_ACTIVE_KEY_], l, info) {
210                         continue_if(!info->func);
211                         if (0 == info->func(STATUS_ACTIVE_KEY_, info->data)) break;
212                 }
213 #endif
214         }
215 }
216
217
218
219 static void _status_passive_change_cb(keynode_t* node, void *data)
220 {
221         char *key_name = NULL;
222
223         ret_if(!node);
224
225         key_name = vconf_keynode_get_name(node);
226         ret_if(!key_name);
227
228 #ifdef TIZEN_PROFILE_WEARABLE
229         if (!strcmp(key_name, VCONFKEY_WMS_WAKEUP_BY_GESTURE_SETTING)) {
230                 s_status_passive.wms_wakeup_by_gesture_setting = vconf_keynode_get_int(node);
231         } else if (!strcmp(key_name, VCONFKEY_SETAPPL_AMBIENT_MODE_BOOL)) {
232                 s_status_passive.setappl_ambient_mode_bool = vconf_keynode_get_int(node);
233         } else
234 #endif
235         if (!strcmp(key_name, VCONFKEY_PM_KEY_IGNORE)) {
236                 s_status_passive.pm_key_ignore = vconf_keynode_get_int(node);
237         } else if (!strcmp(key_name, VCONFKEY_CALL_STATE)) {
238                 s_status_passive.call_state = vconf_keynode_get_int(node);
239         } else if (!strcmp(key_name, VCONFKEY_IDLE_LOCK_STATE)) {
240                 s_status_passive.idle_lock_state = vconf_keynode_get_int(node);
241         } else if (!strcmp(key_name, VCONFKEY_SETAPPL_PASSWORD_ATTEMPTS_LEFT_INT)) {
242                 s_status_passive.setappl_password_attempts_left_int = vconf_keynode_get_int(node);
243         } else if (!strcmp(key_name, VCONFKEY_REMOTE_LOCK_ISLOCKED)) {
244                 s_status_passive.remote_lock_islocked = vconf_keynode_get_bool(node);
245         } else if (!strcmp(key_name, VCONFKEY_SETAPPL_PSMODE)) {
246                 s_status_passive.setappl_psmode = vconf_keynode_get_int(node);
247         } else if (!strcmp(key_name, VCONFKEY_STARTER_RESERVED_APPS_STATUS)) {
248                 s_status_passive.starter_reserved_apps_status = vconf_keynode_get_int(node);
249         } else if (!strcmp(key_name, VCONFKEY_SETAPPL_3RD_LOCK_PKG_NAME_STR)) {
250                 char *tmp = vconf_keynode_get_str(node);
251                 char *a_tmp;
252
253                 if (tmp) {
254                         a_tmp = strdup(tmp);
255                 } else {
256                         a_tmp = strdup(STATUS_DEFAULT_LOCK_PKG_NAME);
257                 }
258
259                 if (a_tmp) {
260                         free(s_status_passive.setappl_3rd_lock_pkg_name_str);
261                         s_status_passive.setappl_3rd_lock_pkg_name_str = a_tmp;
262                 } else {
263                         if (!s_status_passive.setappl_3rd_lock_pkg_name_str) {
264                                 _E("Package name is NULL, strdup failed");
265                         } else {
266                                 _E("Keep old package. because of strdup\n");
267                         }
268                 }
269
270 #if 0
271         } else if (!strcmp(key_name, )) {
272                 s_status_passive. = vconf_keynode_get_int(node);
273 #endif
274         }
275 }
276
277
278
279 int status_register(void)
280 {
281         _W("Register every events for Starter");
282
283         /* Active events */
284         if (vconf_notify_key_changed(VCONFKEY_PM_STATE, _status_active_change_cb, NULL) < 0) {
285                 _E("Failed to register add the callback for %s", VCONFKEY_PM_STATE);
286         } else if (vconf_get_int(VCONFKEY_PM_STATE, &s_status_active.pm_state) < 0) {
287                 _E("Failed to get vconfkey[%s]", VCONFKEY_PM_STATE);
288                 s_status_active.pm_state = -1;
289         }
290
291         if (vconf_notify_key_changed(VCONFKEY_SETAPPL_SELECTED_PACKAGE_NAME, _status_active_change_cb, NULL) < 0) {
292                 _E("Failed to register add the callback for %s", VCONFKEY_SETAPPL_SELECTED_PACKAGE_NAME);
293         }
294         if (!(s_status_active.setappl_selected_package_name = vconf_get_str(VCONFKEY_SETAPPL_SELECTED_PACKAGE_NAME))) {
295                 _E("Failed to get vconfkey[%s]", VCONFKEY_SETAPPL_SELECTED_PACKAGE_NAME);
296                 s_status_active.setappl_selected_package_name = strdup(HOMESCREEN_PKG_NAME);
297                 if (!s_status_active.setappl_selected_package_name) {
298                         _E("Failed to duplicate string");
299                 }
300         }
301
302         if (vconf_notify_key_changed(VCONFKEY_SETAPPL_SCREEN_LOCK_TYPE_INT, _status_active_change_cb, NULL) < 0) {
303                 _E("Failed to register add the callback for %s", VCONFKEY_SETAPPL_SCREEN_LOCK_TYPE_INT);
304         } else if (vconf_get_int(VCONFKEY_SETAPPL_SCREEN_LOCK_TYPE_INT, &s_status_active.setappl_screen_lock_type_int) < 0) {
305                 _E("Failed to get vconfkey[%s]", VCONFKEY_SETAPPL_SCREEN_LOCK_TYPE_INT);
306                 s_status_active.setappl_screen_lock_type_int = -1;
307         }
308
309         if (vconf_notify_key_changed(VCONFKEY_STARTER_SEQUENCE, _status_active_change_cb, NULL) < 0) {
310                 _E("Failed to register add the callback for %s", VCONFKEY_STARTER_SEQUENCE);
311         } else if (vconf_get_int(VCONFKEY_STARTER_SEQUENCE, &s_status_active.starter_sequence) < 0) {
312                 _E("Failed to get vconfkey[%s]", VCONFKEY_STARTER_SEQUENCE);
313                 s_status_active.starter_sequence = -1;
314         }
315
316         if (vconf_notify_key_changed(VCONFKEY_SYSMAN_POWER_OFF_STATUS, _status_active_change_cb, NULL) < 0) {
317                 _E("Failed to register add the callback for %s", VCONFKEY_SYSMAN_POWER_OFF_STATUS);
318         } else if (vconf_get_int(VCONFKEY_SYSMAN_POWER_OFF_STATUS, &s_status_active.sysman_power_off_status ) < 0) {
319                 _E("Failed to get vconfkey[%s]", VCONFKEY_SYSMAN_POWER_OFF_STATUS);
320                 s_status_active.sysman_power_off_status  = -1;
321         }
322
323         if (vconf_notify_key_changed(VCONFKEY_LANGSET, _status_active_change_cb, NULL) < 0) {
324                 _E("Failed to register add the callback for %s", VCONFKEY_LANGSET);
325         } else if (!(s_status_active.langset = vconf_get_str(VCONFKEY_LANGSET))) {
326                 _E("Failed to get vconfkey[%s]", VCONFKEY_LANGSET);
327         }
328
329         if (vconf_notify_key_changed(VCONFKEY_BOOT_ANIMATION_FINISHED, _status_active_change_cb, NULL) < 0) {
330                 _E("Failed to register add the callback for %s", VCONFKEY_BOOT_ANIMATION_FINISHED);
331         } else if (vconf_get_int(VCONFKEY_BOOT_ANIMATION_FINISHED, &s_status_active.boot_animation_finished) < 0) {
332                 _E("Failed to get vconfkey[%s]", VCONFKEY_BOOT_ANIMATION_FINISHED);
333                 s_status_active.boot_animation_finished = -1;
334         }
335
336 #if 0
337         if (vconf_notify_key_changed(, _status_active_change_cb, NULL) < 0) {
338                 _E("Failed to register add the callback for %s", );
339         } else if (vconf_get_int(, &s_status_active.) < 0) {
340                 _E("Failed to get vconfkey[%s]", );
341                 s_status_active. = -1;
342         }
343 #endif
344
345         /* Passive events */
346 #ifdef TIZEN_PROFILE_WEARABLE
347         if (vconf_notify_key_changed(VCONFKEY_WMS_WAKEUP_BY_GESTURE_SETTING, _status_passive_change_cb, NULL) < 0) {
348                 _E("Failed to register add the callback for %s", VCONFKEY_WMS_WAKEUP_BY_GESTURE_SETTING);
349         } else if (vconf_get_int(VCONFKEY_WMS_WAKEUP_BY_GESTURE_SETTING, &s_status_passive.wms_wakeup_by_gesture_setting) < 0) {
350                 _E("Failed to get vconfkey[%s]", VCONFKEY_WMS_WAKEUP_BY_GESTURE_SETTING);
351                 s_status_passive.wms_wakeup_by_gesture_setting = -1;
352         }
353
354         if (vconf_notify_key_changed(VCONFKEY_SETAPPL_AMBIENT_MODE_BOOL, _status_passive_change_cb, NULL) < 0) {
355                 _E("Failed to register add the callback for %s", VCONFKEY_SETAPPL_AMBIENT_MODE_BOOL);
356         } else if (vconf_get_int(VCONFKEY_SETAPPL_AMBIENT_MODE_BOOL, &s_status_passive.setappl_ambient_mode_bool) < 0) {
357                 _E("Failed to get vconfkey[%s]", VCONFKEY_SETAPPL_AMBIENT_MODE_BOOL);
358                 s_status_passive.setappl_ambient_mode_bool = -1;
359         }
360
361 #endif
362
363         if (vconf_notify_key_changed(VCONFKEY_PM_KEY_IGNORE, _status_passive_change_cb, NULL) < 0) {
364                 _E("Failed to register add the callback for %s", VCONFKEY_PM_KEY_IGNORE);
365         } else if (vconf_get_int(VCONFKEY_PM_KEY_IGNORE, &s_status_passive.pm_key_ignore) < 0) {
366                 _E("Failed to get vconfkey[%s]", VCONFKEY_PM_KEY_IGNORE);
367                 s_status_passive.pm_key_ignore = -1;
368         }
369
370         if (vconf_notify_key_changed(VCONFKEY_CALL_STATE, _status_passive_change_cb, NULL) < 0) {
371                 _E("Failed to register add the callback for %s", VCONFKEY_CALL_STATE);
372         } else if (vconf_get_int(VCONFKEY_CALL_STATE, &s_status_passive.call_state) < 0) {
373                 _E("Failed to get vconfkey[%s]", VCONFKEY_CALL_STATE);
374                 s_status_passive.call_state = -1;
375         }
376
377         if (vconf_notify_key_changed(VCONFKEY_IDLE_LOCK_STATE, _status_passive_change_cb, NULL) < 0) {
378                 _E("Failed to regsiter add the callback for %s", VCONFKEY_IDLE_LOCK_STATE);
379         } else if (vconf_get_int(VCONFKEY_IDLE_LOCK_STATE, &s_status_passive.idle_lock_state) < 0) {
380                 _E("Failed to get vconfkey[%s]", VCONFKEY_IDLE_LOCK_STATE);
381                 s_status_passive.idle_lock_state = -1;
382         }
383
384         if (vconf_notify_key_changed(VCONFKEY_SETAPPL_PASSWORD_ATTEMPTS_LEFT_INT, _status_passive_change_cb, NULL) < 0) {
385                 _E("Failed to register add the callback for %s", VCONFKEY_SETAPPL_PASSWORD_ATTEMPTS_LEFT_INT);
386         } else if (vconf_get_int(VCONFKEY_SETAPPL_PASSWORD_ATTEMPTS_LEFT_INT, &s_status_passive.setappl_password_attempts_left_int) < 0) {
387                 _E("Failed to get vconfkey[%s]", VCONFKEY_SETAPPL_PASSWORD_ATTEMPTS_LEFT_INT);
388                 s_status_passive.setappl_password_attempts_left_int = -1;
389         }
390
391         if (vconf_notify_key_changed(VCONFKEY_REMOTE_LOCK_ISLOCKED, _status_passive_change_cb, NULL) < 0) {
392                 _E("Failed to register add the callback for %s", VCONFKEY_REMOTE_LOCK_ISLOCKED);
393         } else if (vconf_get_bool(VCONFKEY_REMOTE_LOCK_ISLOCKED, &s_status_passive.remote_lock_islocked) < 0) {
394                 _E("Failed to get vconfkey[%s]", VCONFKEY_REMOTE_LOCK_ISLOCKED);
395                 s_status_passive.remote_lock_islocked = -1;
396         }
397
398         if (vconf_notify_key_changed(VCONFKEY_SETAPPL_PSMODE, _status_passive_change_cb, NULL) < 0) {
399                 _E("Failed to register add the callback for %s", VCONFKEY_SETAPPL_PSMODE);
400         } else if (vconf_get_int(VCONFKEY_SETAPPL_PSMODE, &s_status_passive.setappl_psmode) < 0) {
401                 _E("Failed to get vconfkey[%s]", VCONFKEY_SETAPPL_PSMODE);
402                 s_status_passive.setappl_psmode = -1;
403         }
404
405         if (vconf_notify_key_changed(VCONFKEY_STARTER_RESERVED_APPS_STATUS, _status_passive_change_cb, NULL) < 0) {
406                 _E("Failed to register add the callback for %s", VCONFKEY_STARTER_RESERVED_APPS_STATUS);
407         } else if (vconf_get_int(VCONFKEY_STARTER_RESERVED_APPS_STATUS, &s_status_passive.starter_reserved_apps_status) < 0) {
408                 _E("Failed to get vconfkey[%s]", VCONFKEY_STARTER_RESERVED_APPS_STATUS);
409                 s_status_passive.starter_reserved_apps_status = -1;
410         }
411
412         if (vconf_notify_key_changed(VCONFKEY_SETAPPL_SOUND_LOCK_BOOL, _status_passive_change_cb, NULL) < 0) {
413                 _E("Failed to register add the callback for %s", VCONFKEY_SETAPPL_SOUND_LOCK_BOOL);
414         } else if (vconf_get_bool(VCONFKEY_SETAPPL_SOUND_LOCK_BOOL, &s_status_passive.setappl_sound_lock_bool) < 0) {
415                 _E("Failed to get vconfkey[%s]", VCONFKEY_SETAPPL_SOUND_LOCK_BOOL);
416                 s_status_passive.setappl_sound_lock_bool = -1;
417         }
418
419         if (vconf_notify_key_changed(VCONFKEY_SETAPPL_MOTION_ACTIVATION, _status_passive_change_cb, NULL) < 0) {
420                 _E("Failed to regitster add the callback for %s", VCONFKEY_SETAPPL_MOTION_ACTIVATION);
421         } else if (vconf_get_bool(VCONFKEY_SETAPPL_MOTION_ACTIVATION, &s_status_passive.setappl_motion_activation) < 0) {
422                 _E("Failed to get vconfkey[%s]", VCONFKEY_SETAPPL_MOTION_ACTIVATION);
423                 s_status_passive.setappl_motion_activation = -1;
424         }
425
426         if (vconf_notify_key_changed(VCONFKEY_SETAPPL_USE_PICK_UP, _status_passive_change_cb, NULL) < 0) {
427                 _E("Failed to regitster add the callback for %s", VCONFKEY_SETAPPL_USE_PICK_UP);
428         } else if (vconf_get_bool(VCONFKEY_SETAPPL_USE_PICK_UP, &s_status_passive.setappl_use_pick_up) < 0) {
429                 _E("Failed to get vconfkey[%s]", VCONFKEY_SETAPPL_USE_PICK_UP);
430                 s_status_passive.setappl_use_pick_up = -1;
431         }
432
433         if (vconf_notify_key_changed(VCONFKEY_SETAPPL_3RD_LOCK_PKG_NAME_STR, _status_passive_change_cb, NULL) < 0) {
434                 _E("Failed to register add the callback for %s", VCONFKEY_SETAPPL_3RD_LOCK_PKG_NAME_STR);
435         }
436
437         if (!(s_status_passive.setappl_3rd_lock_pkg_name_str = vconf_get_str(VCONFKEY_SETAPPL_3RD_LOCK_PKG_NAME_STR))) {
438                 _E("Failed to get vconfkey[%s]", VCONFKEY_SETAPPL_3RD_LOCK_PKG_NAME_STR);
439                 s_status_passive.setappl_3rd_lock_pkg_name_str = strdup(STATUS_DEFAULT_LOCK_PKG_NAME);
440                 if (!s_status_passive.setappl_3rd_lock_pkg_name_str) {
441                         _E("Failed to allocate string for 3rd lock %d\n", errno);
442                 }
443         }
444
445 #if 0
446         if (vconf_notify_key_changed(, _status_passive_change_cb, NULL) < 0) {
447                 _E("Failed to register add the callback for %s", );
448         } else if (vconf_get_int(, &s_status_passive.) < 0) {
449                 _E("Failed to get vconfkey[%s]", );
450                 s_status_passive. = -1;
451         }
452 #endif
453
454         return 0;
455 }
456
457
458
459 void status_unregister(void)
460 {
461         /* Active events */
462         if (vconf_ignore_key_changed(VCONFKEY_PM_STATE, _status_active_change_cb) < 0) {
463                 _E("Failed to unregister the callback for %s", VCONFKEY_PM_STATE);
464         }
465
466         if (vconf_ignore_key_changed(VCONFKEY_SETAPPL_SELECTED_PACKAGE_NAME, _status_active_change_cb) < 0) {
467                 _E("Failed to unregister the callback for %s", VCONFKEY_SETAPPL_SELECTED_PACKAGE_NAME);
468         }
469         free(s_status_active.setappl_selected_package_name);
470
471         if (vconf_ignore_key_changed(VCONFKEY_SETAPPL_SCREEN_LOCK_TYPE_INT, _status_active_change_cb) < 0) {
472                 _E("Failed to unregister the callback for %s", VCONFKEY_SETAPPL_SCREEN_LOCK_TYPE_INT);
473         }
474
475         if (vconf_ignore_key_changed(VCONFKEY_STARTER_SEQUENCE, _status_active_change_cb) < 0) {
476                 _E("Failed to unregister the callback for %s", VCONFKEY_STARTER_SEQUENCE);
477         }
478
479         if (vconf_ignore_key_changed(VCONFKEY_SYSMAN_POWER_OFF_STATUS, _status_active_change_cb) < 0) {
480                 _E("Failed to unregister the callback for %s", VCONFKEY_SYSMAN_POWER_OFF_STATUS);
481         }
482
483         if (vconf_ignore_key_changed(VCONFKEY_LANGSET, _status_active_change_cb) < 0) {
484                 _E("Failed to unregister the callback for %s", VCONFKEY_LANGSET);
485         }
486         free(s_status_active.langset);
487
488         if (vconf_ignore_key_changed(VCONFKEY_BOOT_ANIMATION_FINISHED, _status_active_change_cb) < 0) {
489                 _E("Failed to unregister the callback for %s", VCONFKEY_BOOT_ANIMATION_FINISHED);
490         }
491
492 #if 0
493         if (vconf_ignore_key_changed(, _status_active_change_cb) < 0) {
494                 _E("Failed to unregister the callback for %s", );
495         }
496 #endif
497
498         /* Passive events */
499 #ifdef TIZEN_PROFILE_WEARABLE
500         if (vconf_ignore_key_changed(VCONFKEY_WMS_WAKEUP_BY_GESTURE_SETTING, _status_passive_change_cb) < 0) {
501                 _E("Failed to unregister the callback for %s", VCONFKEY_WMS_WAKEUP_BY_GESTURE_SETTING);
502         }
503
504         if (vconf_ignore_key_changed(VCONFKEY_SETAPPL_AMBIENT_MODE_BOOL, _status_passive_change_cb) < 0) {
505                 _E("Failed to unregister the callback for %s", VCONFKEY_SETAPPL_AMBIENT_MODE_BOOL);
506         }
507
508 #endif
509
510         if (vconf_ignore_key_changed(VCONFKEY_PM_KEY_IGNORE, _status_passive_change_cb) < 0) {
511                 _E("Failed to unregister the callback for %s", VCONFKEY_PM_KEY_IGNORE);
512         }
513
514         if (vconf_ignore_key_changed(VCONFKEY_CALL_STATE, _status_passive_change_cb) < 0) {
515                 _E("Failed to unregister the callback for %s", VCONFKEY_CALL_STATE);
516         }
517
518         if (vconf_ignore_key_changed(VCONFKEY_IDLE_LOCK_STATE, _status_passive_change_cb) < 0) {
519                 _E("Faield to unregister the callback for %s", VCONFKEY_IDLE_LOCK_STATE);
520         }
521
522         if (vconf_ignore_key_changed(VCONFKEY_SETAPPL_PASSWORD_ATTEMPTS_LEFT_INT, _status_passive_change_cb) < 0) {
523                 _E("Failed to unregister the callback for %s", VCONFKEY_SETAPPL_PASSWORD_ATTEMPTS_LEFT_INT);
524         }
525
526         if (vconf_ignore_key_changed(VCONFKEY_REMOTE_LOCK_ISLOCKED, _status_passive_change_cb) < 0) {
527                 _E("Failed to unregister the callback for %s", VCONFKEY_REMOTE_LOCK_ISLOCKED);
528         }
529
530         if (vconf_ignore_key_changed(VCONFKEY_SETAPPL_PSMODE, _status_passive_change_cb) < 0) {
531                 _E("Failed to unregister the callback for %s", VCONFKEY_SETAPPL_PSMODE);
532         }
533
534         if (vconf_ignore_key_changed(VCONFKEY_STARTER_RESERVED_APPS_STATUS, _status_passive_change_cb) < 0) {
535                 _E("Failed to unregister the callback for %s", VCONFKEY_STARTER_RESERVED_APPS_STATUS);
536         }
537
538         if (vconf_ignore_key_changed(VCONFKEY_SETAPPL_SOUND_LOCK_BOOL, _status_passive_change_cb) < 0) {
539                 _E("Failed to unregister the callback for %s", VCONFKEY_SETAPPL_SOUND_LOCK_BOOL);
540         }
541
542         if (vconf_ignore_key_changed(VCONFKEY_SETAPPL_MOTION_ACTIVATION, _status_passive_change_cb) < 0) {
543                 _E("Failed to unregister the callback for %s", VCONFKEY_SETAPPL_MOTION_ACTIVATION);
544         }
545
546         if (vconf_ignore_key_changed(VCONFKEY_SETAPPL_USE_PICK_UP, _status_passive_change_cb) < 0) {
547                 _E("Failed to unregister the callback for %s", VCONFKEY_SETAPPL_USE_PICK_UP);
548         }
549
550         if (vconf_ignore_key_changed(VCONFKEY_SETAPPL_3RD_LOCK_PKG_NAME_STR, _status_passive_change_cb) < 0) {
551                 _E("Failed to unregister ther callback for %s", VCONFKEY_SETAPPL_3RD_LOCK_PKG_NAME_STR);
552         }
553         free(s_status_passive.setappl_3rd_lock_pkg_name_str);
554
555 #if 0
556         if (vconf_ignore_key_changed(, _status_passive_change_cb) < 0) {
557                 _E("Failed to unregister the callback for %s", );
558         }
559 #endif
560 }
561