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