4 * Copyright 2012 Samsung Electronics Co., Ltd
6 * Licensed under the Flora License, Version 1.0 (the "License");
7 * you may not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
10 * http://www.tizenopensource.org/license
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
23 #include <efl_assist.h>
25 #include <appcore-efl.h>
28 #include <pkgmgr-info.h>
29 //#include <package-manager.h>
32 #include <mode-syspopup.h>
33 #include <mode-syspopup-alarmmgr.h>
34 #include <dd-haptic.h>
36 #include <tapi_common.h>
38 #include <ITapiModem.h>
39 #include <TapiUtility.h>
41 #include <sound_manager.h>
42 #include <app_preference.h>
45 static bool is_recovery = false;
46 static int normal_settings[22] = {-1, -1, -1, -1, -1, -1, -1, -3, -1, -1, -1, -1, -1 /*and pws profile*/, -1, -1, -1, -1, -1, -1, -1, 0, 0};
47 static int powerful_settings_def[22] = {0, 0, 0, 20, 0, 15, 0, 0, 0, 1, 1, -1, -1 /*and pws profile*/, -1, -1, -1, -1, -1, -1, -1, 0, 0};
48 static int powerful_settings[22] = {-2, -2, -2, -2, -2, -2, -2, -4, -2, -2, -2, -2, -2 /*and pws profile*/, -1, -1, -1, -1, -1, -1, -1, 0, 0};
49 static int emergency_settings[22] = {0, 0, 0, 20, 0, 15, 0, 0, 1, 1, 1, 1, 1 /*and pws profile*/, 0, 0, 0, 0, 0, 0, 0, 1, 1};
50 //brightness default as 20 changed 20131127
51 //lcd freq default as 1 in setting spec
53 /* default value for power saving
54 * Power saving mode default
56 Apps opening effect : Off
57 Use GPS satellites : Off
58 ----------------------------------------
61 Screen timeout : 15sec
63 Touch key light duration : Always off
65 ----------------------------------------
66 CPU max frequency limit : On
72 static Eina_List *mini_list;
73 static int __mode_reboot_noti_method();
74 static int __mode_syspopup_app_terminate(void *data);
77 /*dbus for CPU freq control*/
78 static int __append_param(DBusMessage *msg, const char *sig, char *param[])
81 DBusMessageIter cont_iter;
86 if (sig == NULL || param == NULL)
89 dbus_message_iter_init_append(msg, &iter);
90 for (ch = (char*)sig, i = 0; *ch != '\0'; ++i, ++ch)
92 _DBG("sig : %c", *ch);
96 int_type = atoi(param[i]);
97 _DBG("param[%2d] : %d", i, int_type);
98 dbus_message_iter_append_basic(&iter, DBUS_TYPE_INT32, &int_type);
102 _DBG("param[%2d] : %s", i, str_type);
103 dbus_message_iter_append_basic(&iter, DBUS_TYPE_STRING, &str_type);
112 static DBusMessage* __invoke_dbus_method(const char *dest, const char *path,
113 const char *interface, const char *method,
114 const char *sig, char *param[])
117 DBusConnection *conn;
122 conn = dbus_bus_get(DBUS_BUS_SYSTEM, NULL);
125 _DBG("dbus_bus_get error");
128 msg = dbus_message_new_method_call(dest, path, interface, method);
131 _DBG("dbus_message_new_method_call error");
134 r = __append_param(msg, sig, param);
137 _DBG("append_param error");
140 dbus_error_init(&err);
141 reply = dbus_connection_send_with_reply_and_block(conn, msg, DBUS_REPLY_TIMEOUT, &err);
142 dbus_message_unref(msg);
143 if (dbus_error_is_set(&err))
145 _DBG("dbus_connection_send_with_reply_and_block error");
146 _DBG("error [%s:%s]", err.name, err.message);
147 dbus_error_free(&err);
153 int __set_LCD_freq_control(int value)
160 char temp1[2] = {0,};
164 dbus_error_init(&err);
166 snprintf(temp1, 2, "%1d", 0); //kernal parsing setting with value 0
168 _DBG("set as [%s]", temp1);
170 snprintf(temp, 3, "%1d", value);
172 _DBG("set as [%s]", temp);
176 msg = __invoke_dbus_method(BUS_NAME, DEVICED_PATH_DISPLAY, DEVICED_INTERFACE_DISPLAY, METHOD_NAME, "ii", arr);
179 if(!dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &state, DBUS_TYPE_INVALID))
181 _DBG("no message : [%s:%s]", err.name, err.message);
182 ret = -1; //RETURN FAIL
186 _DBG("%s-%s : %d", DEVICED_INTERFACE_DISPLAY, METHOD_NAME, state);
188 dbus_message_unref(msg);
192 return ret; //succuess
195 static Eina_Bool _LCD_freq_ctrl(void *data){
196 struct appdata *ad = data;
197 _DBG("_LCD_freq_ctrl");
199 //lcd freq ctrl, it effect flickering while progressing on change home
200 //get master key psmode
202 vconf_get_int(VCONFKEY_SETAPPL_PSMODE, &m_key);
204 _DBG("ad->type: %s, vconfkey : %d", ad->type, m_key);
205 if (!strcmp(ad->type, MODE_SYSTEM_POPUP_EMERGENCY) || !strcmp(ad->type, MODE_SYSTEM_POPUP_EMERGENCY_SETTING))
208 //normal -> emergency
209 _DBG("set LCD FRQ ON, 40");
210 __set_LCD_freq_control(LCD_FRQ_CONTROL_ON);
213 else if(!strcmp(ad->type, MODE_SYSTEM_POPUP_NORMAL) || !strcmp(ad->type, MODE_SYSTEM_POPUP_NORMAL_SETTING))
215 //except powerful -> normal
216 if(!ad->is_lcd_ctrl){
217 //emergency -> normal
218 _DBG("set LCD FRQ OFF, 60");
219 __set_LCD_freq_control(LCD_FRQ_CONTROL_OFF);
225 static Eina_Bool _LCD_freq_ctrl_handler(void *data){
226 struct appdata *ad = data;
227 _DBG("_LCD_freq_ctrl_handler");
231 ad->lcd_freq_timer = NULL;
235 /*mini app term start*/
241 void list_destroy_running_pid(Evas_Object *win)
245 Eina_List *list = evas_object_data_del(win, DATA_KEY_RUNNING_LIST);
246 if (NULL == list) return;
249 EINA_LIST_FREE(list, p) {
250 if (NULL == p) continue;
251 if (p->appid) free(p->appid);
255 eina_list_free(list);
258 static int _running_app_info_cb(const aul_app_info *ainfo, void *data)
260 retv_if(NULL == ainfo, 0);
261 retv_if(NULL == ainfo->pkg_name, 0);
262 retv_if(NULL == data, 0);
264 Evas_Object *win = data;
265 pid_s *p = calloc(1, sizeof(pid_s));
266 retv_if(NULL == p, 0);
268 char *appid = strdup(ainfo->pkg_name);
269 goto_if(NULL == appid, ERROR);
274 Eina_List *rlist = evas_object_data_get(win, DATA_KEY_RUNNING_LIST);
275 rlist = eina_list_append(rlist, p);
276 evas_object_data_set(win, DATA_KEY_RUNNING_LIST, rlist);
285 int list_create_running_pid(Evas_Object *win)
287 _DBG("list_create_running_pid");
288 list_destroy_running_pid(win);
290 if (AUL_R_OK != aul_app_get_running_app_info(_running_app_info_cb, win)) {
292 if (AUL_R_OK != aul_get_running_app_info_from_memory(_running_app_info_cb, win)) {
294 _DBG("Cannot get the running apps' info");
300 int list_get_running_pid(Evas_Object *win, const char* appid)
302 Eina_List *list = NULL;
303 const Eina_List *l = NULL;
304 const Eina_List *ln = NULL;
307 retv_if(NULL == win, -1);
308 retv_if(NULL == appid, -1);
310 list = evas_object_data_get(win, DATA_KEY_RUNNING_LIST);
312 retv_if(0 != list_create_running_pid(win), -1);
313 list = evas_object_data_get(win, DATA_KEY_RUNNING_LIST);
314 /* It's possible to be no running apps */
315 if (NULL == list) return -1;
318 EINA_LIST_FOREACH_SAFE(list, l, ln, p) {
319 if (NULL == p) continue;
320 if (NULL == p->appid) continue;
321 if (!strcmp(p->appid, appid)) return p->pid;
327 #define APPID_PHONE "org.tizen.phone"
328 #define APPID_CONTACTS "org.tizen.contacts" //it is different appid in 'Phone' mini app P140623-06536
329 int _mini_apps_cb(pkgmgrinfo_appinfo_h handle, void *user_data)
331 retv_if(NULL == handle, 0);
334 pkgmgrinfo_appinfo_get_appid(handle, &appid);
335 retv_if(NULL == appid, 0);
337 _DBG("appid[%s]", appid);
338 if (appid && !strcmp(appid, APPID_PHONE)) {
339 mini_list = eina_list_append(mini_list, strdup(APPID_CONTACTS));
342 mini_list = eina_list_append(mini_list, strdup(appid));
347 #define MINIAPP_CATEGORY "http://samsung.com/category/floatingapp"
348 Eina_List *_miniapp_create(void)
350 /* Get info from AIL */
351 pkgmgrinfo_appinfo_filter_h filter = NULL;
355 ret = pkgmgrinfo_appinfo_filter_create(&filter);
358 _DBG("pkgmgrinfo_appinfo_filter_create() failed");
360 ret = pkgmgrinfo_appinfo_filter_add_string(filter, PMINFO_APPINFO_PROP_APP_CATEGORY, MINIAPP_CATEGORY);
361 ret = pkgmgrinfo_appinfo_filter_foreach_appinfo(filter, _mini_apps_cb, NULL);
362 ret = pkgmgrinfo_appinfo_filter_count(filter, &count);
366 pkgmgrinfo_appinfo_filter_destroy(filter);
374 void _mini_terminate(int pid)
376 _DBG("Terminate: (%d)", pid);
378 if (aul_terminate_pid(pid) < 0) {
379 _ERR("aul_terminate_pid fail");
384 void _mini_destroy(void)
386 mini_list = eina_list_free(mini_list);
389 void _terminate_miniapp(void* data)
391 struct appdata *ad = data;
392 mini_list = _miniapp_create(); //list create
393 ret_if(NULL == mini_list);
397 EINA_LIST_FOREACH(mini_list, l, appid) {
398 _DBG("terminate miniapp [%s]", appid);
399 if (!appid) continue;
400 int pid = list_get_running_pid(ad->win, appid);
401 if(pid) _mini_terminate(pid);
404 /*mini app term end*/
406 /* private mode, unmount, PLM P140707-03137*/
407 void _unmount_fs(void)
410 vconf_get_bool(VCONFKEY_SETAPPL_PERSONAL_MODE_STATUS_BOOL, &val);
415 if(pse_unmount() != 0) _DBG("pse unmount fail");
416 if(ode_deinit() != 0) _DBG("ode deint fail");
417 if(vconf_set_bool(VCONFKEY_SETAPPL_PERSONAL_MODE_STATUS_BOOL, FALSE) != 0) _DBG("vconf set fail");
421 _DBG("ode init fail");
430 static void __help_popup_language_change_cb(void *data, Evas_Object * obj, void *source)
432 /*char *string_id = (char *)data;
433 char *message = _(string_id);
434 helpui_set_popup_text(obj, message);*/
437 static void syspop_help_popup_circle_unblock_create(Evas_Object * parent, Evas_Object ** circle,
438 Evas_Object ** popup, char *string_id, int x, int y)
440 /**circle = helpui_add_circle(parent, HELP_CIRCLE_BIG);
441 evas_object_move(*circle, x, y);
442 char *message = _(string_id);
443 *popup = helpui_add_popup(parent, message, HELP_POPUP_WITH_ARROW, NULL, NULL);
444 helpui_set_popup_language_changed_cb(*popup, __help_popup_language_change_cb,
446 evas_object_move(*popup, x, y + 8);*/
449 static void syspop_help_popup_circle_block_create(Evas_Object *win, Evas_Object * parent, Evas_Object ** circle,
450 Evas_Object ** popup, char *string_id, int x, int y, Evas_Coord_Rectangle * rect)
452 /*helpui_set_block_win(win);
453 syspop_help_popup_circle_unblock_create(parent, circle, popup, string_id, x, y);
454 helpui_set_unblock_rect(win, rect);*/
457 int launching_effect_set(Evas_Object *win, int flag)
459 Ecore_X_Window xwin, root;
460 Ecore_X_Atom effect_enable_atom;
461 int is_enable = flag;
462 root = ecore_x_window_root_first_get();
463 effect_enable_atom = ecore_x_atom_get ("_NET_CM_EFFECT_ENABLE");
464 if (!effect_enable_atom) {
465 _DBG("Cannot create _NET_CM_EFFECT_ENABLE atom... \n\n");
469 /* is_enable (0: effect disable, 1: effect enable) */
470 ecore_x_window_prop_card32_set (root, effect_enable_atom, &is_enable, 1);
475 int launching_effect_get(Evas_Object *win, int* flag)
477 Ecore_X_Window xwin, root;
478 Ecore_X_Atom effect_enable_atom;
480 root = ecore_x_window_root_first_get();
481 effect_enable_atom = ecore_x_atom_get ("_NET_CM_EFFECT_ENABLE");
482 if (!effect_enable_atom) {
483 _DBG("Cannot create _NET_CM_EFFECT_ENABLE atom... \n\n");
487 /* is_enable (0: effect disable, 1: effect enable) */
488 (void)ecore_x_window_prop_card32_get (root, effect_enable_atom, &is_enable, 1);
494 static void mode_remove_noti(void *data, char *package)
496 struct appdata *ad = data;
497 notification_error_e ret = NOTIFICATION_ERROR_NONE;
498 ret = notification_delete_all_by_type(package, NOTIFICATION_TYPE_ONGOING); //pkg ex : "setting-blockingmode-efl"
499 if (ret != NOTIFICATION_ERROR_NONE) {
500 _DBG("Fail to notification_delete_all_by_type [%d]", ret);
505 static void mode_create_noti(void *data,const char *key_str,const char *package,const char *title)
507 struct appdata *ad = data;
508 notification_h noti = NULL;
509 notification_error_e ret = NOTIFICATION_ERROR_NONE;
512 mode_remove_noti(ad, package);
514 noti = notification_new(NOTIFICATION_TYPE_ONGOING,
515 NOTIFICATION_GROUP_ID_NONE, NOTIFICATION_PRIV_ID_NONE);
517 _DBG("Fail to notification_new [%d]", ret);
521 ret = notification_set_layout(noti, NOTIFICATION_LY_ONGOING_EVENT);
522 if (ret != NOTIFICATION_ERROR_NONE) {
523 _DBG("Fail to notification_set_layout [%d]", ret);
527 if(!strcmp(PKG_BLOCKING_MODE, package)){
528 ret = notification_set_image(noti, NOTIFICATION_IMAGE_TYPE_ICON, IMG_BlockingMode);
529 if (ret != NOTIFICATION_ERROR_NONE) {
530 _DBG("Fail to notification_set_image [%d]", ret);
533 ret = notification_set_image(noti, NOTIFICATION_IMAGE_TYPE_ICON_FOR_INDICATOR, INDI_IMG_BlockingMode);
534 if (ret != NOTIFICATION_ERROR_NONE) {
535 _DBG("Fail to notification_set_image [%d]", ret);
539 else if(!strcmp(PKG_DRIVING_MODE, package)){
540 ret = notification_set_image(noti, NOTIFICATION_IMAGE_TYPE_ICON, IMG_DrivingMode);
541 if (ret != NOTIFICATION_ERROR_NONE) {
542 _DBG("Fail to notification_set_image [%d]", ret);
545 ret = notification_set_image(noti, NOTIFICATION_IMAGE_TYPE_ICON_FOR_INDICATOR, INDI_IMG_DrivingMode);
546 if (ret != NOTIFICATION_ERROR_NONE) {
547 _DBG("Fail to notification_set_image [%d]", ret);
551 else if(!strcmp("setting-firewall-efl", package)){
552 ret = notification_set_image(noti, NOTIFICATION_IMAGE_TYPE_ICON, IMG_Firewall);
553 if (ret != NOTIFICATION_ERROR_NONE) {
554 _DBG("Fail to notification_set_image [%d]", ret);
557 ret = notification_set_image(noti, NOTIFICATION_IMAGE_TYPE_ICON_FOR_INDICATOR, INDI_IMG_Firewall);
558 if (ret != NOTIFICATION_ERROR_NONE) {
559 _DBG("Fail to notification_set_image [%d]", ret);
564 ret = notification_set_text(noti,
565 NOTIFICATION_TEXT_TYPE_TITLE,
567 title, NOTIFICATION_VARIABLE_TYPE_NONE);
568 if (ret != NOTIFICATION_ERROR_NONE) {
569 _DBG("Fail to notification_set_text [%d]", ret);
573 ret = notification_set_text(noti,
574 NOTIFICATION_TEXT_TYPE_CONTENT,
576 key_str, NOTIFICATION_VARIABLE_TYPE_NONE);
577 if (ret != NOTIFICATION_ERROR_NONE) {
578 _DBG("Fail to notification_set_text [%d]", ret);
582 ret = notification_set_text_domain(noti, SETTING_PACKAGE, SETTING_LOCALEDIR);
583 if (ret != NOTIFICATION_ERROR_NONE) {
584 _DBG("Fail to notification_set_text [%d]", ret);
588 ret = notification_set_pkgname(noti, package); //pkg ex : "setting-blockingmode-efl"
589 if (ret != NOTIFICATION_ERROR_NONE) {
590 _DBG("Fail to notification_set_pkgname [%d]", ret);
594 ret = notification_set_application(noti, package); //pkg ex : "setting-blockingmode-efl"
595 if (ret != NOTIFICATION_ERROR_NONE) {
596 _DBG("Fail to notification_set_application [%d]", ret);
600 ret = notification_insert(noti, &ad->noti_id);
601 if (ret != NOTIFICATION_ERROR_NONE) {
602 _DBG("Fail to notification_insert [%d]", ret);
606 ret = notification_free(noti);
607 if (ret != NOTIFICATION_ERROR_NONE) {
608 _DBG("Fail to notification_free [%d]", ret);
615 ret = notification_free(noti);
616 if (ret != NOTIFICATION_ERROR_NONE) {
617 _DBG("Fail to notification_free [%d]", ret);
622 static void mode_create_noti_with_no_msg(void *data,const char *key_str,const char *package,const char *title)
624 struct appdata *ad = data;
625 notification_h noti = NULL;
626 notification_error_e ret = NOTIFICATION_ERROR_NONE;
629 mode_remove_noti(ad, package);
631 noti = notification_new(NOTIFICATION_TYPE_ONGOING,
632 NOTIFICATION_GROUP_ID_NONE, NOTIFICATION_PRIV_ID_NONE);
634 _DBG("Fail to notification_new [%d]", ret);
638 ret = notification_set_layout(noti, NOTIFICATION_LY_NOTI_THUMBNAIL);
639 if (ret != NOTIFICATION_ERROR_NONE) {
640 _DBG("Fail to notification_set_layout [%d]", ret);
644 if(!strcmp(PKG_BLOCKING_MODE, package)){
645 ret = notification_set_image(noti, NOTIFICATION_IMAGE_TYPE_ICON, IMG_BlockingMode);
646 if (ret != NOTIFICATION_ERROR_NONE) {
647 _DBG("Fail to notification_set_image [%d]", ret);
650 ret = notification_set_image(noti, NOTIFICATION_IMAGE_TYPE_ICON_FOR_INDICATOR, INDI_IMG_BlockingMode);
651 if (ret != NOTIFICATION_ERROR_NONE) {
652 _DBG("Fail to notification_set_image [%d]", ret);
656 else if(!strcmp(PKG_DRIVING_MODE, package)){
657 ret = notification_set_image(noti, NOTIFICATION_IMAGE_TYPE_ICON, IMG_DrivingMode);
658 if (ret != NOTIFICATION_ERROR_NONE) {
659 _DBG("Fail to notification_set_image [%d]", ret);
662 ret = notification_set_image(noti, NOTIFICATION_IMAGE_TYPE_ICON_FOR_INDICATOR, INDI_IMG_DrivingMode);
663 if (ret != NOTIFICATION_ERROR_NONE) {
664 _DBG("Fail to notification_set_image [%d]", ret);
669 ret = notification_set_text(noti,
670 NOTIFICATION_TEXT_TYPE_TITLE,
672 title, NOTIFICATION_VARIABLE_TYPE_NONE);
673 if (ret != NOTIFICATION_ERROR_NONE) {
674 _DBG("Fail to notification_set_text [%d]", ret);
678 ret = notification_set_text(noti,
679 NOTIFICATION_TEXT_TYPE_CONTENT,
681 key_str, NOTIFICATION_VARIABLE_TYPE_NONE);
682 if (ret != NOTIFICATION_ERROR_NONE) {
683 _DBG("Fail to notification_set_text [%d]", ret);
687 ret = notification_set_text_domain(noti, SETTING_PACKAGE, SETTING_LOCALEDIR);
688 if (ret != NOTIFICATION_ERROR_NONE) {
689 _DBG("Fail to notification_set_text [%d]", ret);
693 ret = notification_set_pkgname(noti, package); //pkg ex : "setting-blockingmode-efl"
694 if (ret != NOTIFICATION_ERROR_NONE) {
695 _DBG("Fail to notification_set_pkgname [%d]", ret);
699 ret = notification_set_application(noti, package); //pkg ex : "setting-blockingmode-efl"
700 if (ret != NOTIFICATION_ERROR_NONE) {
701 _DBG("Fail to notification_set_application [%d]", ret);
705 ret = notification_insert(noti, &ad->noti_id);
706 if (ret != NOTIFICATION_ERROR_NONE) {
707 _DBG("Fail to notification_insert [%d]", ret);
711 ret = notification_free(noti);
712 if (ret != NOTIFICATION_ERROR_NONE) {
713 _DBG("Fail to notification_free [%d]", ret);
720 ret = notification_free(noti);
721 if (ret != NOTIFICATION_ERROR_NONE) {
722 _DBG("Fail to notification_free [%d]", ret);
727 static char* _get_time_str_from_vconf(char* keyStr)
731 char time[128] = { 0 };
733 _DBG("keyStr : %s", keyStr); //#1 "IDS_ST_BODY_FROM_M_TIME" , #2 IDS_ST_BODY_TO_M_PERIOD
734 if (!strcmp("IDS_ST_BODY_FROM_M_TIME", keyStr)){
735 ret = vconf_get_int(VCONFKEY_SETAPPL_BM_START_HOUR, &hour);
737 _DBG("get vconf failed");
740 ret = vconf_get_int(VCONFKEY_SETAPPL_BM_START_MIN, &min);
742 _DBG("get vconf failed");
745 ret = vconf_get_int(VCONFKEY_REGIONFORMAT_TIME1224, &value);
747 _DBG("get vconf failed");
748 value = VCONFKEY_TIME_FORMAT_12;
751 if(value == VCONFKEY_TIME_FORMAT_12){
754 snprintf(time, sizeof(time), "%s %02d:%02d",_("IDS_ST_BODY_PM"),hour,min);
757 snprintf(time, sizeof(time), "%s %02d:%02d",_("IDS_ST_BODY_AM"),hour,min);
761 //default and VCONFKEY_TIME_FORMAT_24
762 snprintf(time, sizeof(time), "%02d:%02d",hour,min);
765 return (char *)g_strdup(time);
767 else if(!strcmp("IDS_ST_BODY_TO_M_PERIOD", keyStr)){
768 ret = vconf_get_int(VCONFKEY_SETAPPL_BM_END_HOUR, &hour);
770 _DBG("get vconf failed");
773 ret = vconf_get_int(VCONFKEY_SETAPPL_BM_END_MIN, &min);
775 _DBG("get vconf failed");
778 ret = vconf_get_int(VCONFKEY_REGIONFORMAT_TIME1224, &value);
780 _DBG("get vconf failed");
781 value = VCONFKEY_TIME_FORMAT_12;
784 if(value == VCONFKEY_TIME_FORMAT_12){
787 snprintf(time, sizeof(time), "%s %02d:%02d",_("IDS_ST_BODY_PM"),hour,min);
790 snprintf(time, sizeof(time), "%s %02d:%02d",_("IDS_ST_BODY_AM"),hour,min);
794 //default and VCONFKEY_TIME_FORMAT_24
795 snprintf(time, sizeof(time), "%02d:%02d",hour,min);
798 return (char *)g_strdup(time);
803 static void _mode_vconf_change_cb(keynode_t *key, void *data)
805 _DBG("_mode_vconf_change_cb");
806 struct appdata *ad = data;
807 int status = vconf_keynode_get_bool(key);
808 char *vconf_name = vconf_keynode_get_name(key);
810 if (!strcmp(vconf_name, VCONFKEY_SETAPPL_BLOCKINGMODE_BLOCKINGMODE)) {
811 _DBG("status:%d", status);
815 mode_create_noti(ad, "IDS_ST_BODY_BLOCKING_MODE_IS_ENABLED", PKG_BLOCKING_MODE, "IDS_ST_BODY_BLOCKING_MODE");
820 mode_create_noti_with_no_msg(ad, "IDS_ST_BODY_BLOCKING_MODE_IS_ENABLED", PKG_BLOCKING_MODE, "IDS_ST_BODY_BLOCKING_MODE");
823 //#2, msg for alarm time
824 char *StartTimeStr = NULL;
825 char *EndTimeStr = NULL;
827 StartTimeStr = _get_time_str_from_vconf("IDS_ST_BODY_FROM_M_TIME");
828 EndTimeStr = _get_time_str_from_vconf("IDS_ST_BODY_TO_M_PERIOD");
829 snprintf(NotiStr, sizeof(NotiStr), "%s - %s %s",StartTimeStr, EndTimeStr,_("IDS_ST_BODY_BLOCKING_MODE_IS_ENABLED"));
830 mode_create_noti(ad,NotiStr, PKG_BLOCKING_MODE, "IDS_ST_BODY_BLOCKING_MODE");
832 g_free(StartTimeStr);
839 mode_remove_noti(ad, PKG_BLOCKING_MODE);
841 } else if (!strcmp(vconf_name, VCONFKEY_SETAPPL_DRIVINGMODE_DRIVINGMODE)) {
842 _DBG("status:%d", status);
847 vconf_get_bool(VCONFKEY_SETAPPL_SOUND_STATUS_BOOL, &sound);
848 vconf_get_bool(VCONFKEY_SETAPPL_VIBRATION_STATUS_BOOL, &vib);
851 vconf_set_int(VCONFKEY_SETAPPL_HANDSFREE_SOUND_REMINDER, SETTING_HANDSFREE_SOUND_ON); //sound on to skip set
855 vconf_set_int(VCONFKEY_SETAPPL_HANDSFREE_SOUND_REMINDER, SETTING_HANDSFREE_SOUND_VIB);
858 vconf_set_int(VCONFKEY_SETAPPL_HANDSFREE_SOUND_REMINDER, SETTING_HANDSFREE_SOUND_MUTE);
860 vconf_set_bool(VCONFKEY_SETAPPL_SOUND_STATUS_BOOL, status); //sound on after backup sound status
862 mode_create_noti(ad, "IDS_ST_BODY_INCOMING_CALLS_AND_NEW_NOTIFICATIONS_WILL_BE_READ_OUT_AUTOMATICALLY", PKG_DRIVING_MODE, "IDS_VC_MBODY_NOTIFICATION_READ_OUT");
868 vconf_get_int(VCONFKEY_SETAPPL_HANDSFREE_SOUND_REMINDER, &b_val);
869 if(b_val == SETTING_HANDSFREE_SOUND_MUTE){
870 vconf_set_bool(VCONFKEY_SETAPPL_SOUND_STATUS_BOOL, 0);
871 vconf_set_bool(VCONFKEY_SETAPPL_VIBRATION_STATUS_BOOL, 0);
873 else if(b_val == SETTING_HANDSFREE_SOUND_VIB){
874 vconf_set_bool(VCONFKEY_SETAPPL_SOUND_STATUS_BOOL, 0);
875 vconf_set_bool(VCONFKEY_SETAPPL_VIBRATION_STATUS_BOOL, 1);
880 mode_remove_noti(ad, PKG_DRIVING_MODE);
883 _DBG("vconf_name is wrong");
889 void _mode_backup_settings(void *data) {
891 struct appdata *ad = data;
898 vconf_get_int(VCONFKEY_SETAPPL_PSMODE, &val);
899 _DBG("VCONFKEY_SETAPPL_PSMODE [%d]", val);
900 ret = preference_set_int(PREFKEY_SAVINGPOWER_BACKUP_PSMODE, val);
901 _DBG("PREFKEY_SAVINGPOWER_BACKUP_PSMODE [%d]", ret);
904 vconf_get_bool(VCONFKEY_SETAPPL_PWRSV_CUSTMODE_CPU, &val);
905 _DBG("VCONFKEY_SETAPPL_PWRSV_CUSTMODE_CPU [%d]", val);
906 ret = preference_set_int(PREFKEY_SAVINGPOWER_NORMAL_BACKUP_CPU_PERF, val);
907 _DBG("PREFKEY_SAVINGPOWER_NORMAL_BACKUP_CPU_PERF [%d]", ret);
910 str1 = vconf_get_str(VCONF_HOMESCREEN_PATH);
911 ret = preference_set_string(PREFKEY_SAVINGPOWER_NORMAL_BACKUP_HOMESCREEN_PATH, str1);
913 str2 = vconf_get_str(VCONF_LOCKSCREEN_PATH);
914 ret = preference_set_string(PREFKEY_SAVINGPOWER_NORMAL_BACKUP_LOCKSCREEN_PATH, str2);
918 vconf_get_int(VCONFKEY_WIFI_STATE, &val);
919 ret = preference_set_int(PREFKEY_SAVINGPOWER_NORMAL_BACKUP_WIFI, val);
920 setting_retm_if(ret != PREFERENCE_ERROR_NONE, "*** [ERR] VCONFKEY_WIFI_STATE ***");
922 vconf_get_int(VCONFKEY_BT_STATUS, &val);
923 ret = preference_set_int(PREFKEY_SAVINGPOWER_NORMAL_BACKUP_BT, val);
924 setting_retm_if(ret != PREFERENCE_ERROR_NONE, "*** [ERR] PREFKEY_SAVINGPOWER_NORMAL_BACKUP_BT ***");
927 vconf_get_int(VCONFKEY_SETAPPL_LCD_TIMEOUT_NORMAL, &val);
928 _DBG("VCONFKEY_SETAPPL_LCD_TIMEOUT_NORMAL [%d]", val);
929 ret = preference_set_int(PREFKEY_SAVINGPOWER_NORMAL_BACKUP_TIMEOUT, val);
930 _DBG("PREFKEY_SAVINGPOWER_NORMAL_BACKUP_TIMEOUT [%d]", ret);
931 //Auto Brightness : ON/OFF
932 vconf_get_int(VCONFKEY_SETAPPL_BRIGHTNESS_AUTOMATIC_INT, &val);
933 _DBG("VCONFKEY_SETAPPL_BRIGHTNESS_AUTOMATIC_INT [%d]", val);
934 ret = preference_set_int(PREFKEY_SAVINGPOWER_NORMAL_BACKUP_AUTO_BRIGHT, val);
935 _DBG("PREFKEY_SAVINGPOWER_NORMAL_BACKUP_AUTO_BRIGHT [%d]", ret);
937 vconf_get_int(VCONFKEY_SETAPPL_LCD_BRIGHTNESS, &val);
938 _DBG("VCONFKEY_SETAPPL_LCD_BRIGHTNESS [%d]", val);
939 ret = preference_set_int(PREFKEY_SAVINGPOWER_NORMAL_BACKUP_BRIGHT, val);
940 _DBG("PREFKEY_SAVINGPOWER_NORMAL_BACKUP_BRIGHT [%d]", ret);
942 vconf_get_bool(VCONFKEY_SETAPPL_AUTO_ROTATE_SCREEN_BOOL, &val);
943 _DBG("VCONFKEY_SETAPPL_AUTO_ROTATE_SCREEN_BOOL [%d]", val);
944 ret = preference_set_int(PREFKEY_SAVINGPOWER_NORMAL_BACKUP_AUTO_ROTATE, val);
945 _DBG("PREFKEY_SAVINGPOWER_NORMAL_BACKUP_AUTO_ROTATE [%d]", ret);
947 vconf_get_int(VCONFKEY_SETAPPL_SMARTSCREEN_SMARTSTAY_STATUS, &val);
948 ret = preference_set_int(PREFKEY_SAVINGPOWER_NORMAL_BACKUP_SMART_SCREEN, val);
949 vconf_get_bool(VCONFKEY_SETAPPL_SMARTSCREEN_SMART_ROTATION, &val);
950 _DBG("VCONFKEY_SETAPPL_SMARTSCREEN_SMART_ROTATION [%d]", val);
951 ret = preference_set_int(PREFKEY_SAVINGPOWER_NORMAL_BACKUP_SMART_ROTATE, val);
952 _DBG("PREFKEY_SAVINGPOWER_NORMAL_BACKUP_SMART_ROTATE [%d]", ret);
954 vconf_get_bool(VCONFKEY_SETAPPL_HAPTIC_FEEDBACK_STATUS_BOOL, &val);
955 _DBG("VCONFKEY_SETAPPL_HAPTIC_FEEDBACK_STATUS_BOOL [%d]", val);
956 ret = preference_set_int(PREFKEY_SAVINGPOWER_NORMAL_BACKUP_HAPTIC_FEEDBACK, val); //on/off
957 _DBG("PREFKEY_SAVINGPOWER_NORMAL_BACKUP_HAPTIC_FEEDBACK [%d]", ret);
959 vconf_get_int(VCONFKEY_SETAPPL_NOTI_VIBRATION_LEVEL_INT, &val);
960 ret = preference_set_int(PREFKEY_SAVINGPOWER_NORMAL_BACKUP_NOTI, val);
961 vconf_get_int(VCONFKEY_SETAPPL_TOUCH_FEEDBACK_VIBRATION_LEVEL_INT, &val);
962 _DBG("VCONFKEY_SETAPPL_TOUCH_FEEDBACK_VIBRATION_LEVEL_INT [%d]", val);
963 ret = preference_set_int(PREFKEY_SAVINGPOWER_NORMAL_BACKUP_HAPTIC, val);
964 _DBG("PREFKEY_SAVINGPOWER_NORMAL_BACKUP_HAPTIC [%d]", ret);
967 launching_effect_get(ad->win, &val);
968 _DBG("launching_effect_get [%d]", val);
969 ret = preference_set_int(PREFKEY_SAVINGPOWER_NORMAL_BACKUP_LAUNCH_EFFECT, val);
970 _DBG("PREFKEY_SAVINGPOWER_NORMAL_BACKUP_LAUNCH_EFFECT [%d]", ret);
974 vconf_get_bool(VCONFKEY_SETAPPL_LCD_FREQ_CONTROL, &val);
975 _DBG("VCONFKEY_SETAPPL_LCD_FREQ_CONTROL [%d]", val);
976 ret = preference_set_boolean(PREFKEY_SAVINGPOWER_NORMAL_BACKUP_LCD_FREQ_CONTROL, val);
977 _DBG("PREFKEY_SAVINGPOWER_NORMAL_BACKUP_LCD_FREQ_CONTROL [%d]", ret);
979 //pkg backup : cluster or easy
980 char *pkg_home = NULL;
981 pkg_home = vconf_get_str(VCONF_PKG_PATH);
982 _DBG("pkghome [%s]", pkg_home);
983 ret =preference_set_string(PREFKEY_SAVINGPOWER_NORMAL_BACKUP_PKG_HOME, pkg_home);
984 _DBG("PREFKEY_SAVINGPOWER_NORMAL_BACKUP_PKG_HOME [%d]", ret);
986 //vconf_get_int(VCONF_FAKE_KEY, &val);
987 //ret = preference_set_int(PREFKEY_SAVINGPOWER_NORMAL_BACKUP_FAKE_EFFECT, val);
988 //setting_retm_if(ret != PREFERENCE_ERROR_NONE, "*** [ERR] PREFKEY_SAVINGPOWER_NORMAL_BACKUP_FAKE_EFFECT ***");
991 vconf_get_bool(VCONFKEY_SETAPPL_WINDOW_GRAYTONE, &val);
992 _DBG("VCONFKEY_SETAPPL_WINDOW_GRAYTONE [%d]", val);
993 ret = preference_set_int(PREFKEY_SAVINGPOWER_NORMAL_BACKUP_GRAYTONE, val);
994 _DBG("PREFKEY_SAVINGPOWER_NORMAL_BACKUP_GRAYTONE [%d]", ret);
997 vconf_get_bool(VCONFKEY_SETAPPL_WINDOW_FPS, &val);
998 _DBG("VCONFKEY_SETAPPL_WINDOW_FPS [%d]", val);
999 ret = preference_set_int(PREFKEY_SAVINGPOWER_NORMAL_BACKUP_FPS, val);
1000 _DBG("PREFKEY_SAVINGPOWER_NORMAL_BACKUP_FPS [%d]", ret);
1003 vconf_get_int(VCONFKEY_LOCATION_ENABLED, &val);
1004 _DBG("VCONFKEY_LOCATION_ENABLED [%d]", val);
1005 ret = preference_set_int(PREFKEY_SAVINGPOWER_NORMAL_BACKUP_GPS, val);
1006 _DBG("PREFKEY_SAVINGPOWER_NORMAL_BACKUP_GPS [%d]", ret);
1008 //touch key ligh duration
1009 vconf_get_int(VCONFKEY_SETAPPL_TOUCHKEY_LIGHT_DURATION, &val);
1010 _DBG("VCONFKEY_SETAPPL_TOUCHKEY_LIGHT_DURATION [%d]", val);
1011 ret = preference_set_int(PREFKEY_SAVINGPOWER_NORMAL_BACKUP_TOUCH_KEY_LIGHT, val);
1012 _DBG("PREFKEY_SAVINGPOWER_NORMAL_BACKUP_TOUCH_KEY_LIGHT [%d]", ret);
1014 //end for power saving profile
1016 //LED indicator - VCONFKEY_SETAPPL_LED_INDICATOR_NOTIFICATIONS (bool) #14
1017 vconf_get_bool(VCONFKEY_SETAPPL_LED_INDICATOR_NOTIFICATIONS, &val);
1018 _DBG("VCONFKEY_SETAPPL_LED_INDICATOR_NOTIFICATIONS [%d]", val);
1019 ret = preference_set_int(PREFKEY_SAVINGPOWER_NORMAL_BACKUP_LED_INDICATOR_NOTI, val);
1020 _DBG("PREFKEY_SAVINGPOWER_NORMAL_BACKUP_LED_INDICATOR_NOTI [%d]", ret);
1022 //Battery level display - VCONFKEY_SETAPPL_BATTERY_PERCENTAGE_BOOL #15
1023 vconf_get_bool(VCONFKEY_SETAPPL_BATTERY_PERCENTAGE_BOOL, &val);
1024 _DBG("VCONFKEY_SETAPPL_BATTERY_PERCENTAGE_BOOL [%d]", val);
1025 ret = preference_set_int(PREFKEY_SAVINGPOWER_NORMAL_BACKUP_BATTERY_PERCENTAGE, val);
1026 _DBG("PREFKEY_SAVINGPOWER_NORMAL_BACKUP_BATTERY_PERCENTAGE [%d]", ret);
1028 //Voice control - VCONFKEY_VOICE_CONTROL_ENABLED #16
1029 vconf_get_bool(VCONFKEY_VOICE_CONTROL_ENABLED, &val);
1030 _DBG("VCONFKEY_VOICE_CONTROL_ENABLED [%d]", val);
1031 ret = preference_set_int(PREFKEY_SAVINGPOWER_NORMAL_BACKUP_VOICE_CONTROL, val);
1032 _DBG("PREFKEY_SAVINGPOWER_NORMAL_BACKUP_VOICE_CONTROL [%d]", ret);
1034 //Multi window - VCONFKEY_QUICKSETTING_MULTIWINDOW_ENABLED #17
1035 vconf_get_bool(VCONFKEY_QUICKSETTING_MULTIWINDOW_ENABLED, &val);
1036 _DBG("VCONFKEY_QUICKSETTING_MULTIWINDOW_ENABLED [%d]", val);
1037 ret = preference_set_int(PREFKEY_SAVINGPOWER_NORMAL_BACKUP_MULTIWINDOW, val);
1038 _DBG("PREFKEY_SAVINGPOWER_NORMAL_BACKUP_MULTIWINDOW [%d]", ret);
1040 //Hands-free mode - syspopup #18
1041 vconf_get_bool(VCONFKEY_SETAPPL_DRIVINGMODE_DRIVINGMODE, &val);
1042 _DBG("VCONFKEY_SETAPPL_DRIVINGMODE_DRIVINGMODE [%d]", val);
1043 ret = preference_set_int(PREFKEY_SAVINGPOWER_NORMAL_BACKUP_HANDS_FREE_MODE, val);
1044 _DBG("PREFKEY_SAVINGPOWER_NORMAL_BACKUP_HANDS_FREE_MODE [%d]", ret);
1046 //Blocking mode - syspopup #19
1047 vconf_get_bool(VCONFKEY_SETAPPL_BLOCKINGMODE_BLOCKINGMODE, &val);
1048 _DBG("VCONFKEY_SETAPPL_BLOCKINGMODE_BLOCKINGMODE [%d]", val);
1049 ret = preference_set_int(PREFKEY_SAVINGPOWER_NORMAL_BACKUP_BLOCKING_MODE, val);
1050 _DBG("PREFKEY_SAVINGPOWER_NORMAL_BACKUP_BLOCKING_MODE [%d]", ret);
1052 //Net-restriction mode - syspopup #20
1053 vconf_get_bool(VCONFKEY_SETAPPL_NETWORK_RESTRICT_MODE, &val);
1054 _DBG("VCONFKEY_SETAPPL_NETWORK_RESTRICT_MODE [%d]", val);
1055 ret = preference_set_int(PREFKEY_SAVINGPOWER_NORMAL_BACKUP_NET_RESRICT_MODE, val);
1056 _DBG("PREFKEY_SAVINGPOWER_NORMAL_BACKUP_NET_RESRICT_MODE [%d]", ret);
1058 //default power saving need 1 time
1059 ret = preference_get_int(PREFKEY_SAVINGPOWER_BACKUP_FIRST_PWR, &val);
1060 _DBG("PREFKEY_SAVINGPOWER_BACKUP_FIRST_PWR : ret [%d], val [%d]",ret, val);
1061 if(ret!=PREFERENCE_ERROR_NONE) {
1062 preference_set_int(PREFKEY_SAVINGPOWER_BACKUP_FIRST_PWR, 1);
1066 void _mode_power_backup_settings(void *data) {
1068 struct appdata *ad = data;
1075 vconf_get_int(VCONFKEY_SETAPPL_PSMODE, &val);
1076 _DBG("VCONFKEY_SETAPPL_PSMODE [%d]", val);
1077 ret = preference_set_int(PREFKEY_SAVINGPOWER_BACKUP_PSMODE, val);
1078 _DBG("PREFKEY_SAVINGPOWER_BACKUP_PSMODE [%d]", ret);
1081 vconf_get_bool(VCONFKEY_SETAPPL_PWRSV_CUSTMODE_CPU, &val);
1082 _DBG("VCONFKEY_SETAPPL_PWRSV_CUSTMODE_CPU [%d]", val);
1083 ret = preference_set_int(PREFKEY_SAVINGPOWER_POWER_BACKUP_CPU_PERF, val);
1084 _DBG("PREFKEY_SAVINGPOWER_POWER_BACKUP_CPU_PERF [%d]", ret);
1087 str1 = vconf_get_str(VCONF_HOMESCREEN_PATH);
1088 ret = preference_set_string(PREFKEY_SAVINGPOWER_POWER_BACKUP_HOMESCREEN_PATH, str1);
1089 //setting_retm_if(ret != PREFERENCE_ERROR_NONE, "*** [ERR] PREFKEY_SAVINGPOWER_POWER_BACKUP_HOMESCREEN_PATH ***");
1091 str2 = vconf_get_str(VCONF_LOCKSCREEN_PATH);
1092 ret = preference_set_string(PREFKEY_SAVINGPOWER_POWER_BACKUP_LOCKSCREEN_PATH, str2);
1093 //setting_retm_if(ret != PREFERENCE_ERROR_NONE, "*** [ERR] PREFKEY_SAVINGPOWER_POWER_BACKUP_LOCKSCREEN_PATH ***");
1097 vconf_get_int(VCONFKEY_SETAPPL_LCD_TIMEOUT_NORMAL, &val);
1098 _DBG("VCONFKEY_SETAPPL_LCD_TIMEOUT_NORMAL [%d]", val);
1099 ret = preference_set_int(PREFKEY_SAVINGPOWER_POWER_BACKUP_TIMEOUT, val);
1100 _DBG("PREFKEY_SAVINGPOWER_POWER_BACKUP_TIMEOUT [%d]", ret);
1101 //Auto Brightness : ON/OFF
1102 vconf_get_int(VCONFKEY_SETAPPL_BRIGHTNESS_AUTOMATIC_INT, &val);
1103 _DBG("VCONFKEY_SETAPPL_BRIGHTNESS_AUTOMATIC_INT [%d]", val);
1104 ret = preference_set_int(PREFKEY_SAVINGPOWER_POWER_BACKUP_AUTO_BRIGHT, val);
1105 _DBG("PREFKEY_SAVINGPOWER_POWER_BACKUP_AUTO_BRIGHT [%d]", ret);
1107 vconf_get_int(VCONFKEY_SETAPPL_LCD_BRIGHTNESS, &val);
1108 _DBG("VCONFKEY_SETAPPL_LCD_BRIGHTNESS [%d]", val);
1109 ret = preference_set_int(PREFKEY_SAVINGPOWER_POWER_BACKUP_BRIGHT, val);
1110 _DBG("PREFKEY_SAVINGPOWER_POWER_BACKUP_BRIGHT [%d]", ret);
1111 //Auto rotate screen
1112 vconf_get_bool(VCONFKEY_SETAPPL_AUTO_ROTATE_SCREEN_BOOL, &val);
1113 _DBG("VCONFKEY_SETAPPL_AUTO_ROTATE_SCREEN_BOOL [%d]", val);
1114 ret = preference_set_int(PREFKEY_SAVINGPOWER_POWER_BACKUP_AUTO_ROTATE, val);
1115 _DBG("PREFKEY_SAVINGPOWER_POWER_BACKUP_AUTO_ROTATE [%d]", ret);
1117 vconf_get_int(VCONFKEY_SETAPPL_SMARTSCREEN_SMARTSTAY_STATUS, &val);
1118 ret = preference_set_int(PREFKEY_SAVINGPOWER_POWER_BACKUP_SMART_SCREEN, val);
1119 vconf_get_bool(VCONFKEY_SETAPPL_SMARTSCREEN_SMART_ROTATION, &val);
1120 _DBG("VCONFKEY_SETAPPL_SMARTSCREEN_SMART_ROTATION [%d]", val);
1121 ret = preference_set_int(PREFKEY_SAVINGPOWER_POWER_BACKUP_SMART_ROTATE, val);
1122 _DBG("PREFKEY_SAVINGPOWER_POWER_BACKUP_SMART_ROTATE [%d]", ret);
1124 vconf_get_bool(VCONFKEY_SETAPPL_HAPTIC_FEEDBACK_STATUS_BOOL, &val);
1125 _DBG("VCONFKEY_SETAPPL_HAPTIC_FEEDBACK_STATUS_BOOL [%d]", val);
1126 ret = preference_set_int(PREFKEY_SAVINGPOWER_POWER_BACKUP_HAPTIC_FEEDBACK, val); //on/off
1127 _DBG("PREFKEY_SAVINGPOWER_POWER_BACKUP_HAPTIC_FEEDBACK [%d]", ret);
1130 launching_effect_get(ad->win, &val);
1131 _DBG("launching_effect_get [%d]", val);
1132 ret = preference_set_int(PREFKEY_SAVINGPOWER_POWER_BACKUP_LAUNCH_EFFECT, val);
1133 _DBG("PREFKEY_SAVINGPOWER_POWER_BACKUP_LAUNCH_EFFECT [%d]", ret);
1135 //pkg backup : cluster or easy
1136 char *pkg_home = NULL;
1137 pkg_home = vconf_get_str(VCONF_PKG_PATH);
1138 _DBG("pkghome [%s]", pkg_home);
1139 ret =preference_set_string(PREFKEY_SAVINGPOWER_POWER_BACKUP_PKG_HOME, pkg_home);
1140 _DBG("PREFKEY_SAVINGPOWER_POWER_BACKUP_PKG_HOME [%d]", ret);
1143 vconf_get_bool(VCONFKEY_SETAPPL_WINDOW_GRAYTONE, &val);
1144 _DBG("VCONFKEY_SETAPPL_WINDOW_GRAYTONE [%d]", val);
1145 ret = preference_set_int(PREFKEY_SAVINGPOWER_POWER_BACKUP_GRAYTONE, val);
1146 _DBG("PREFKEY_SAVINGPOWER_POWER_BACKUP_GRAYTONE [%d]", ret);
1149 vconf_get_bool(VCONFKEY_SETAPPL_WINDOW_FPS, &val);
1150 _DBG("VCONFKEY_SETAPPL_WINDOW_FPS [%d]", val);
1151 ret = preference_set_int(PREFKEY_SAVINGPOWER_POWER_BACKUP_FPS, val);
1152 _DBG("PREFKEY_SAVINGPOWER_POWER_BACKUP_FPS [%d]", ret);
1155 vconf_get_int(VCONFKEY_LOCATION_ENABLED, &val);
1156 _DBG("VCONFKEY_LOCATION_ENABLED [%d]", val);
1157 ret = preference_set_int(PREFKEY_SAVINGPOWER_POWER_BACKUP_GPS, val);
1158 _DBG("PREFKEY_SAVINGPOWER_POWER_BACKUP_GPS [%d]", ret);
1160 //touch key ligh duration
1161 vconf_get_int(VCONFKEY_SETAPPL_TOUCHKEY_LIGHT_DURATION, &val);
1162 _DBG("VCONFKEY_SETAPPL_TOUCHKEY_LIGHT_DURATION [%d]", val);
1163 ret = preference_set_int(PREFKEY_SAVINGPOWER_POWER_BACKUP_TOUCH_KEY_LIGHT, val);
1164 _DBG("PREFKEY_SAVINGPOWER_POWER_BACKUP_TOUCH_KEY_LIGHT [%d]", ret);
1166 //end for power saving profile
1168 //LED indicator - VCONFKEY_SETAPPL_LED_INDICATOR_NOTIFICATIONS (bool) #14
1169 vconf_get_bool(VCONFKEY_SETAPPL_LED_INDICATOR_NOTIFICATIONS, &val);
1170 _DBG("VCONFKEY_SETAPPL_LED_INDICATOR_NOTIFICATIONS [%d]", val);
1171 ret = preference_set_int(PREFKEY_SAVINGPOWER_POWER_BACKUP_LED_INDICATOR_NOTI, val);
1172 _DBG("PREFKEY_SAVINGPOWER_POWER_BACKUP_LED_INDICATOR_NOTI [%d]", ret);
1174 //Battery level display - VCONFKEY_SETAPPL_BATTERY_PERCENTAGE_BOOL #15
1175 vconf_get_bool(VCONFKEY_SETAPPL_BATTERY_PERCENTAGE_BOOL, &val);
1176 _DBG("VCONFKEY_SETAPPL_BATTERY_PERCENTAGE_BOOL [%d]", val);
1177 ret = preference_set_int(PREFKEY_SAVINGPOWER_POWER_BACKUP_BATTERY_PERCENTAGE, val);
1178 _DBG("PREFKEY_SAVINGPOWER_POWER_BACKUP_BATTERY_PERCENTAGE [%d]", ret);
1180 //Voice control - VCONFKEY_VOICE_CONTROL_ENABLED #16
1181 vconf_get_bool(VCONFKEY_VOICE_CONTROL_ENABLED, &val);
1182 _DBG("VCONFKEY_VOICE_CONTROL_ENABLED [%d]", val);
1183 ret = preference_set_int(PREFKEY_SAVINGPOWER_POWER_BACKUP_VOICE_CONTROL, val);
1184 _DBG("PREFKEY_SAVINGPOWER_POWER_BACKUP_VOICE_CONTROL [%d]", ret);
1186 //Multi window - VCONFKEY_QUICKSETTING_MULTIWINDOW_ENABLED #17
1187 vconf_get_bool(VCONFKEY_QUICKSETTING_MULTIWINDOW_ENABLED, &val);
1188 _DBG("VCONFKEY_QUICKSETTING_MULTIWINDOW_ENABLED [%d]", val);
1189 ret = preference_set_int(PREFKEY_SAVINGPOWER_POWER_BACKUP_MULTIWINDOW, val);
1190 _DBG("PREFKEY_SAVINGPOWER_POWER_BACKUP_MULTIWINDOW [%d]", ret);
1192 //Hands-free mode - syspopup #18
1193 vconf_get_bool(VCONFKEY_SETAPPL_DRIVINGMODE_DRIVINGMODE, &val);
1194 _DBG("VCONFKEY_SETAPPL_DRIVINGMODE_DRIVINGMODE [%d]", val);
1195 ret = preference_set_int(PREFKEY_SAVINGPOWER_POWER_BACKUP_HANDS_FREE_MODE, val);
1196 _DBG("PREFKEY_SAVINGPOWER_POWER_BACKUP_HANDS_FREE_MODE [%d]", ret);
1198 //Blocking mode - syspopup #19
1199 vconf_get_bool(VCONFKEY_SETAPPL_BLOCKINGMODE_BLOCKINGMODE, &val);
1200 _DBG("VCONFKEY_SETAPPL_BLOCKINGMODE_BLOCKINGMODE [%d]", val);
1201 ret = preference_set_int(PREFKEY_SAVINGPOWER_POWER_BACKUP_BLOCKING_MODE, val);
1202 _DBG("PREFKEY_SAVINGPOWER_POWER_BACKUP_BLOCKING_MODE [%d]", ret);
1204 //Net-restriction mode - syspopup #20
1205 vconf_get_bool(VCONFKEY_SETAPPL_NETWORK_RESTRICT_MODE, &val);
1206 _DBG("VCONFKEY_SETAPPL_NETWORK_RESTRICT_MODE [%d]", val);
1207 ret = preference_set_int(PREFKEY_SAVINGPOWER_POWER_BACKUP_NET_RESRICT_MODE, val);
1208 _DBG("PREFKEY_SAVINGPOWER_POWER_BACKUP_NET_RESRICT_MODE [%d]", ret);
1212 void _mode_apply_settings(void *data, int *set) {
1215 //static int normal_settings[22] = {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 /*and pws profile*/, -1, -1, -1, -1, -1, -1, -1, 0, 0};
1216 //static int powerful_settings_def[22] = {0, 0, 0, 20, 0, 15, 0, 0, 0, 1, 1, -1, -1 /*and pws profile*/, -1, -1, -1, -1, -1, -1, -1, 0, 0};
1217 //static int powerful_settings[22] = {-2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2 /*and pws profile*/, -1, -1, -1, -1, -1, -1, -1, 0, 0};
1218 //static int emergency_settings[22] = {0, 0, 0, 20, 0, 15, 0, 0, 1, 1, 1, 1, 1 /*and pws profile*/, 0, 0, 0, 0, 0, 0, 0, 1, 1};
1220 struct appdata *ad = data;
1221 int val, crt_val, ret;
1224 /////////////////////////////////
1225 /* power saving mode content order */
1226 /////////////////////////////////
1228 //Haptic feedback #1
1229 vconf_get_bool(VCONFKEY_SETAPPL_HAPTIC_FEEDBACK_STATUS_BOOL, &crt_val);
1232 ret = preference_get_int(PREFKEY_SAVINGPOWER_NORMAL_BACKUP_HAPTIC_FEEDBACK, &val);
1234 else if (val == -2) {
1235 ret = preference_get_int(PREFKEY_SAVINGPOWER_POWER_BACKUP_HAPTIC_FEEDBACK, &val);
1237 if (val != crt_val) {
1238 vconf_set_bool(VCONFKEY_SETAPPL_HAPTIC_FEEDBACK_STATUS_BOOL, val);
1239 _DBG("set haptic feedback : %d", val);
1242 //Launching effect #2
1243 launching_effect_get(ad->win, &crt_val);
1246 ret = preference_get_int(PREFKEY_SAVINGPOWER_NORMAL_BACKUP_LAUNCH_EFFECT, &val);
1249 ret = preference_get_int(PREFKEY_SAVINGPOWER_POWER_BACKUP_LAUNCH_EFFECT, &val);
1251 if (val != crt_val) {
1252 launching_effect_set(ad->win, val);
1253 _DBG("set launching effect %d", val);
1257 vconf_get_int(VCONFKEY_LOCATION_ENABLED, &crt_val);
1258 _DBG("get GPS %d", crt_val);
1261 ret = preference_get_int(PREFKEY_SAVINGPOWER_NORMAL_BACKUP_GPS, &val);
1262 _DBG("get GPS %d", val);
1265 ret = preference_get_int(PREFKEY_SAVINGPOWER_POWER_BACKUP_GPS, &val);
1266 _DBG("get GPS %d", val);
1268 if (val != crt_val) {
1269 vconf_set_int(VCONFKEY_LOCATION_ENABLED, val);
1270 _DBG("set GPS %d", val);
1274 //add check auto brightness routine
1275 vconf_get_int(VCONFKEY_SETAPPL_LCD_BRIGHTNESS, &crt_val);
1279 ret = preference_get_int(PREFKEY_SAVINGPOWER_NORMAL_BACKUP_AUTO_BRIGHT, &auto_br);
1283 _DBG("check1 auto_br [%d]", auto_br);
1284 if(auto_br == SETTING_BRIGHTNESS_AUTOMATIC_ON){
1285 //prev : auto on, fix to auto status last
1286 ret = vconf_set_int(VCONFKEY_SETAPPL_BRIGHTNESS_AUTOMATIC_INT, SETTING_BRIGHTNESS_AUTOMATIC_ON);
1289 else if(auto_br == SETTING_BRIGHTNESS_AUTOMATIC_OFF){
1290 //auto to off and set bright
1291 ret = vconf_set_int(VCONFKEY_SETAPPL_BRIGHTNESS_AUTOMATIC_INT, SETTING_BRIGHTNESS_AUTOMATIC_OFF);
1292 ret = preference_get_int(PREFKEY_SAVINGPOWER_NORMAL_BACKUP_BRIGHT, &val);
1295 else if (val == -2) {
1297 ret = preference_get_int(PREFKEY_SAVINGPOWER_POWER_BACKUP_AUTO_BRIGHT, &auto_br);
1301 _DBG("check1 auto_br [%d]", auto_br);
1302 if(auto_br == SETTING_BRIGHTNESS_AUTOMATIC_ON){
1303 //prev : auto on, fix to auto status last
1304 ret = vconf_set_int(VCONFKEY_SETAPPL_BRIGHTNESS_AUTOMATIC_INT, SETTING_BRIGHTNESS_AUTOMATIC_ON);
1307 else if(auto_br == SETTING_BRIGHTNESS_AUTOMATIC_OFF){
1308 //auto to off and set bright
1309 ret = vconf_set_int(VCONFKEY_SETAPPL_BRIGHTNESS_AUTOMATIC_INT, SETTING_BRIGHTNESS_AUTOMATIC_OFF);
1310 ret = preference_get_int(PREFKEY_SAVINGPOWER_POWER_BACKUP_BRIGHT, &val);
1314 //normal to power saving or emergency(val != -1), get auto brightness off
1315 ret = vconf_set_int(VCONFKEY_SETAPPL_BRIGHTNESS_AUTOMATIC_INT, SETTING_BRIGHTNESS_AUTOMATIC_OFF);
1318 if (val != -1 && val != -2) {
1319 ret = display_set_brightness_with_setting(val);
1320 _DBG("set Brightness %d, ret = %d", val, ret);
1321 ret = vconf_set_int(VCONFKEY_SETAPPL_LCD_BRIGHTNESS, val);
1324 //Auto rotate screen #5
1325 vconf_get_bool(VCONFKEY_SETAPPL_AUTO_ROTATE_SCREEN_BOOL, &crt_val);
1328 ret = preference_get_int(PREFKEY_SAVINGPOWER_NORMAL_BACKUP_AUTO_ROTATE, &val);
1331 ret = preference_get_int(PREFKEY_SAVINGPOWER_POWER_BACKUP_AUTO_ROTATE, &val);
1333 if (val != crt_val) {
1334 vconf_set_bool(VCONFKEY_SETAPPL_AUTO_ROTATE_SCREEN_BOOL, val);
1335 _DBG("set Auto rotate screen %d", val);
1339 vconf_get_int(VCONFKEY_SETAPPL_LCD_TIMEOUT_NORMAL, &crt_val);
1342 ret = preference_get_int(PREFKEY_SAVINGPOWER_NORMAL_BACKUP_TIMEOUT, &val);
1345 ret = preference_get_int(PREFKEY_SAVINGPOWER_POWER_BACKUP_TIMEOUT, &val);
1347 if (val != crt_val) {
1348 vconf_set_int(VCONFKEY_SETAPPL_LCD_TIMEOUT_NORMAL, val);
1349 _DBG("set time out %d", val);
1353 int val1,val2,crt_val2;
1356 ret = preference_get_int(PREFKEY_SAVINGPOWER_NORMAL_BACKUP_SMART_SCREEN, &val1);
1357 ret = preference_get_int(PREFKEY_SAVINGPOWER_NORMAL_BACKUP_SMART_ROTATE, &val2);
1358 }else if (val == -2) {
1359 ret = preference_get_int(PREFKEY_SAVINGPOWER_POWER_BACKUP_SMART_SCREEN, &val1);
1360 ret = preference_get_int(PREFKEY_SAVINGPOWER_POWER_BACKUP_SMART_ROTATE, &val2);
1365 vconf_get_int(VCONFKEY_SETAPPL_SMARTSCREEN_SMARTSTAY_STATUS, &crt_val);
1366 vconf_get_bool(VCONFKEY_SETAPPL_SMARTSCREEN_SMART_ROTATION, &crt_val2);
1367 if (val1 != crt_val) {
1368 vconf_set_int(VCONFKEY_SETAPPL_SMARTSCREEN_SMARTSTAY_STATUS, val1);
1369 _DBG("set Smart screen %d", val1);
1371 if (val2 != crt_val2) {
1372 vconf_set_bool(VCONFKEY_SETAPPL_SMARTSCREEN_SMART_ROTATION, val2);
1373 _DBG("set Smart screen rotation %d", val2);
1376 //Touch key light duration #8
1377 vconf_get_int(VCONFKEY_SETAPPL_TOUCHKEY_LIGHT_DURATION, &crt_val);
1378 _DBG("VCONFKEY_SETAPPL_TOUCHKEY_LIGHT_DURATION %d", crt_val);
1381 ret = preference_get_int(PREFKEY_SAVINGPOWER_NORMAL_BACKUP_TOUCH_KEY_LIGHT, &val);
1382 _DBG("PREFKEY_SAVINGPOWER_NORMAL_BACKUP_TOUCH_KEY_LIGHT %d", val);
1385 ret = preference_get_int(PREFKEY_SAVINGPOWER_POWER_BACKUP_TOUCH_KEY_LIGHT, &val);
1386 _DBG("PREFKEY_SAVINGPOWER_POWER_BACKUP_TOUCH_KEY_LIGHT %d", val);
1388 if (val != crt_val) {
1389 vconf_set_int(VCONFKEY_SETAPPL_TOUCHKEY_LIGHT_DURATION, val);
1390 _DBG("set Touch key light duration %d", val);
1393 //gray scale tone #9
1394 //gray scale tone for power saving mode!
1395 vconf_get_bool(VCONFKEY_SETAPPL_WINDOW_GRAYTONE, &crt_val);
1398 ret = preference_get_int(PREFKEY_SAVINGPOWER_NORMAL_BACKUP_GRAYTONE, &val);
1401 ret = preference_get_int(PREFKEY_SAVINGPOWER_POWER_BACKUP_GRAYTONE, &val);
1403 if (val != crt_val) {
1404 vconf_set_bool(VCONFKEY_SETAPPL_WINDOW_GRAYTONE, val);
1405 _DBG("set gray scale tone %d", val);
1409 //cpu limit on for power saving mode!
1410 vconf_get_bool(VCONFKEY_SETAPPL_PWRSV_CUSTMODE_CPU, &crt_val);
1413 ret = preference_get_int(PREFKEY_SAVINGPOWER_NORMAL_BACKUP_CPU_PERF, &val);
1416 ret = preference_get_int(PREFKEY_SAVINGPOWER_POWER_BACKUP_CPU_PERF, &val);
1419 if (val != crt_val) {
1420 vconf_set_bool(VCONFKEY_SETAPPL_PWRSV_CUSTMODE_CPU, val);
1421 _DBG("set CPU frequency limit %d", val);
1424 //Screen Output (D.FPS) #11
1425 //screen output for power saving mode!
1426 vconf_get_bool(VCONFKEY_SETAPPL_WINDOW_FPS, &crt_val);
1429 ret = preference_get_int(PREFKEY_SAVINGPOWER_NORMAL_BACKUP_FPS, &val);
1432 ret = preference_get_int(PREFKEY_SAVINGPOWER_POWER_BACKUP_FPS, &val);
1434 if (val != crt_val) {
1435 vconf_set_bool(VCONFKEY_SETAPPL_WINDOW_FPS, val);
1436 _DBG("set FPS %d", val);
1439 //Eco. wallpaper (Wallpaper change) #12
1445 crt_str1 = vconf_get_str(VCONF_HOMESCREEN_PATH);
1446 crt_str2 = vconf_get_str(VCONF_LOCKSCREEN_PATH);
1448 ret = preference_get_string(PREFKEY_SAVINGPOWER_NORMAL_BACKUP_HOMESCREEN_PATH, &str1);
1449 ret = preference_get_string(PREFKEY_SAVINGPOWER_NORMAL_BACKUP_LOCKSCREEN_PATH, &str2);
1450 } else if (val == -2) {
1451 ret = preference_get_string(PREFKEY_SAVINGPOWER_POWER_BACKUP_HOMESCREEN_PATH, &str1);
1452 ret = preference_get_string(PREFKEY_SAVINGPOWER_POWER_BACKUP_LOCKSCREEN_PATH, &str2);
1453 } else { // value ==1 and other cases -> set to default value
1454 str1 = strdup(HOMESCREEN_FILE);
1455 str2 = strdup(LOCKSCREEN_FILE);
1458 if (strcmp(str1, crt_str1) != 0) {
1459 vconf_set_str(VCONF_HOMESCREEN_PATH, str1);
1460 _DBG("set eco home screen wallpaper");
1462 if (strcmp(str2, crt_str2) != 0) {
1463 vconf_set_str(VCONF_LOCKSCREEN_PATH, str2);
1464 _DBG("set eco lock screen wallpaper");
1471 //END of the Power saving profile set
1473 //pkghome -for HOMESCREEN #13
1477 crt_str = vconf_get_str(VCONF_PKG_PATH);
1480 vconf_get_bool(VCONFKEY_SETAPPL_HOMESCREEN_EASYMODE_BOOL, &chk_easy);
1482 //easy-mode :on -> off mode did not go back to current, just keep easy home state
1483 str = strdup(PKG_EASYHOME); //get curren pkg home path -> easy-mode
1487 //ret = preference_get_string(PREFKEY_SAVINGPOWER_NORMAL_BACKUP_PKG_HOME, &str);
1488 str = strdup(PKG_CLUSTERHOME);
1490 }else if (val == -2) {
1492 vconf_get_bool(VCONFKEY_SETAPPL_HOMESCREEN_EASYMODE_BOOL, &chk_easy);
1494 //easy-mode :on -> off mode did not go back to current, just keep easy home state
1495 str = strdup(PKG_EASYHOME); //get curren pkg home path -> easy-mode
1499 //ret = preference_get_string(PREFKEY_SAVINGPOWER_NORMAL_BACKUP_PKG_HOME, &str);
1500 str = strdup(PKG_CLUSTERHOME);
1502 } else if (val == 1) {
1503 str = strdup(PKG_EMERGENCY);
1506 if (str != NULL && strcmp(str, crt_str) != 0) {
1507 vconf_set_str(VCONF_PKG_PATH, str);
1512 //LED indicator - VCONFKEY_SETAPPL_LED_INDICATOR_NOTIFICATIONS (bool) #14
1513 vconf_get_bool(VCONFKEY_SETAPPL_LED_INDICATOR_NOTIFICATIONS, &crt_val);
1516 ret = preference_get_int(PREFKEY_SAVINGPOWER_NORMAL_BACKUP_LED_INDICATOR_NOTI, &val);
1519 ret = preference_get_int(PREFKEY_SAVINGPOWER_POWER_BACKUP_LED_INDICATOR_NOTI, &val);
1522 if (val != crt_val) {
1523 vconf_set_bool(VCONFKEY_SETAPPL_LED_INDICATOR_NOTIFICATIONS, val);
1524 _DBG("set LED indicator%d", val);
1526 //ENDOF POWER SAVING PROFILES
1529 //Battery level display - VCONFKEY_SETAPPL_BATTERY_PERCENTAGE_BOOL #15
1530 vconf_get_bool(VCONFKEY_SETAPPL_BATTERY_PERCENTAGE_BOOL, &crt_val);
1533 ret = preference_get_int(PREFKEY_SAVINGPOWER_NORMAL_BACKUP_BATTERY_PERCENTAGE, &val);
1536 ret = preference_get_int(PREFKEY_SAVINGPOWER_POWER_BACKUP_BATTERY_PERCENTAGE, &val);
1539 if (val != crt_val) {
1540 vconf_set_bool(VCONFKEY_SETAPPL_BATTERY_PERCENTAGE_BOOL, val);
1541 _DBG("set battery percent %d", val);
1544 //Voice control - VCONFKEY_VOICE_CONTROL_ENABLED #16
1545 vconf_get_bool(VCONFKEY_VOICE_CONTROL_ENABLED, &crt_val);
1548 ret = preference_get_int(PREFKEY_SAVINGPOWER_NORMAL_BACKUP_VOICE_CONTROL, &val);
1551 ret = preference_get_int(PREFKEY_SAVINGPOWER_POWER_BACKUP_VOICE_CONTROL, &val);
1554 if (val != crt_val) {
1555 vconf_set_bool(VCONFKEY_VOICE_CONTROL_ENABLED, val);
1556 _DBG("set voice control %d", val);
1558 //Multi window - VCONFKEY_QUICKSETTING_MULTIWINDOW_ENABLED #17
1559 vconf_get_bool(VCONFKEY_QUICKSETTING_MULTIWINDOW_ENABLED, &crt_val);
1562 ret = preference_get_int(PREFKEY_SAVINGPOWER_NORMAL_BACKUP_MULTIWINDOW, &val);
1565 ret = preference_get_int(PREFKEY_SAVINGPOWER_POWER_BACKUP_MULTIWINDOW, &val);
1568 if (val != crt_val) {
1569 vconf_set_bool(VCONFKEY_QUICKSETTING_MULTIWINDOW_ENABLED, val);
1570 _DBG("set Multi window %d", val);
1572 //Hands-free mode - syspopup : VCONFKEY_SETAPPL_DRIVINGMODE_DRIVINGMODE #18
1573 vconf_get_bool(VCONFKEY_SETAPPL_DRIVINGMODE_DRIVINGMODE, &crt_val);
1576 ret = preference_get_int(PREFKEY_SAVINGPOWER_NORMAL_BACKUP_HANDS_FREE_MODE, &val);
1579 ret = preference_get_int(PREFKEY_SAVINGPOWER_POWER_BACKUP_HANDS_FREE_MODE, &val);
1582 if (val != crt_val) {
1583 vconf_set_bool(VCONFKEY_SETAPPL_DRIVINGMODE_DRIVINGMODE, val);
1584 //todo mode-syspopup
1585 _DBG("set Hands-free mode %d", val);
1587 //Blocking mode - syspopup #19
1588 vconf_get_bool(VCONFKEY_SETAPPL_BLOCKINGMODE_BLOCKINGMODE, &crt_val);
1591 ret = preference_get_int(PREFKEY_SAVINGPOWER_NORMAL_BACKUP_BLOCKING_MODE, &val);
1594 ret = preference_get_int(PREFKEY_SAVINGPOWER_POWER_BACKUP_BLOCKING_MODE, &val);
1597 if (val != crt_val) {
1598 vconf_set_bool(VCONFKEY_SETAPPL_BLOCKINGMODE_BLOCKINGMODE, val);
1601 //Net-restriction mode - syspopup #20
1602 vconf_get_bool(VCONFKEY_SETAPPL_NETWORK_RESTRICT_MODE, &crt_val);
1605 ret = preference_get_int(PREFKEY_SAVINGPOWER_NORMAL_BACKUP_NET_RESRICT_MODE, &val);
1608 ret = preference_get_int(PREFKEY_SAVINGPOWER_POWER_BACKUP_NET_RESRICT_MODE, &val);
1611 if (val != crt_val) {
1612 vconf_set_bool(VCONFKEY_SETAPPL_NETWORK_RESTRICT_MODE, val);
1613 //todo mode-syspopup
1614 _DBG("set Net-restriction mode %d", val);
1617 //mini app terminate - syspopup #21
1620 _DBG("emergency terminate mini");
1621 _terminate_miniapp(ad);
1624 //unmount for private mode - syspopup #22
1627 _DBG("unmount for private mode");
1633 /// blocking mode ///
1635 void mode_syspopup_layout_ug_cb(ui_gadget_h ug, enum ug_mode mode,
1644 base = (Evas_Object *) ug_get_layout(ug);
1650 case UG_MODE_FULLVIEW:
1651 evas_object_size_hint_weight_set(base, EVAS_HINT_EXPAND,
1653 evas_object_show(base);
1660 void mode_syspopup_destroy_font_ug_cb(ui_gadget_h ug, void *priv)
1665 struct appdata *ad = priv;
1666 elm_win_lower(ad->win);
1673 //blocking mode alarm on/off
1674 static void __set_on_alarm(int start_h, int start_m, int end_h, int end_m)
1676 MODE_BM_AData *start_alarm = (MODE_BM_AData *)calloc(1, sizeof(MODE_BM_AData));
1677 MODE_BM_AData *end_alarm = (MODE_BM_AData *)calloc(1, sizeof(MODE_BM_AData));
1679 //alarm server regist
1681 start_alarm->hour = start_h;
1682 start_alarm->min = start_m;
1683 end_alarm->hour = end_h;
1684 end_alarm->min = end_m;
1686 int start_block_id, end_block_id = -1;
1687 vconf_get_int(VCONFKEY_SETAPPL_BM_ALARM_ID_START, &start_block_id);
1688 vconf_get_int(VCONFKEY_SETAPPL_BM_ALARM_ID_END, &end_block_id);
1689 start_alarm->alarm_mgr_id = start_block_id;
1690 end_alarm->alarm_mgr_id = end_block_id;
1691 int nErr = mode_syspopup_alarmmgr_update(start_alarm);
1694 vconf_set_int(VCONFKEY_SETAPPL_BM_ALARM_ID_START, start_alarm->alarm_mgr_id);
1696 nErr = mode_syspopup_alarmmgr_update(end_alarm);
1699 vconf_set_int(VCONFKEY_SETAPPL_BM_ALARM_ID_END, end_alarm->alarm_mgr_id);
1706 static void __set_off_alarm()
1708 MODE_BM_AData *start_alarm = (MODE_BM_AData *)calloc(1, sizeof(MODE_BM_AData));
1709 MODE_BM_AData *end_alarm = (MODE_BM_AData *)calloc(1, sizeof(MODE_BM_AData));
1711 //alarm server delete
1714 int start_block_id, end_block_id = -1;
1715 vconf_get_int(VCONFKEY_SETAPPL_BM_ALARM_ID_START, &start_block_id);
1716 vconf_get_int(VCONFKEY_SETAPPL_BM_ALARM_ID_END, &end_block_id);
1717 start_alarm->alarm_mgr_id = start_block_id;
1718 end_alarm->alarm_mgr_id = end_block_id;
1719 int nErr = mode_syspopup_alarmmgr_remove(start_alarm);
1722 vconf_set_int(VCONFKEY_SETAPPL_BM_ALARM_ID_START, -1);
1724 nErr = mode_syspopup_alarmmgr_remove(end_alarm);
1727 vconf_set_int(VCONFKEY_SETAPPL_BM_ALARM_ID_END, -1);
1735 static int _blockingmode_get_status(void *data)
1737 struct appdata *ad = data;
1739 int all_day, call, noti, alarmNtimer, led = 0;
1740 ret |= vconf_get_bool(VCONFKEY_SETAPPL_BLOCKINGMODE_ALLDAY, &all_day);
1741 ret |= vconf_get_bool(VCONFKEY_SETAPPL_BLOCKINGMODE_INCOMINGCALL, &call);
1742 ret |= vconf_get_bool(VCONFKEY_SETAPPL_BLOCKINGMODE_NOTIFICATIONS, ¬i);
1743 ret |= vconf_get_bool(VCONFKEY_SETAPPL_BLOCKINGMODE_ALARM_AND_TIMER, &alarmNtimer);
1744 ret |= vconf_get_bool(VCONFKEY_SETAPPL_BLOCKINGMODE_LED_INDICATOR, &led);
1745 int b_call, b_noti, b_alarmNtimer, b_led = 0;
1746 ret |= vconf_get_bool(VCONFKEY_SETAPPL_BM_INTER_INCOMING_CALL, &b_call);
1747 ret |= vconf_get_bool(VCONFKEY_SETAPPL_BM_INTER_NOTIFICATIONS, &b_noti);
1748 ret |= vconf_get_bool(VCONFKEY_SETAPPL_BM_INTER_ALARM_AND_TIMER, &b_alarmNtimer);
1749 ret |= vconf_get_bool(VCONFKEY_SETAPPL_BM_INTER_LED_INDICATOR, &b_led);
1751 ad->all_day = all_day;
1754 ad->alarmNtimer = alarmNtimer;
1756 ad->b_call = b_call;
1757 ad->b_noti = b_noti;
1758 ad->b_alarmNtimer = b_alarmNtimer;
1764 static bool __check_drivingmode_sub_item()
1766 _DBG("__check_drivingmode_sub_item");
1767 //if zero cnt with master on, then it showed popup to rollback it(back btn)
1770 int sub_item_value = 0;
1772 /* check VCONFKEY_SETAPPL_DM_INCOMING_CALL */
1773 vcnf_ret = vconf_get_bool(VCONFKEY_SETAPPL_DRIVINGMODE_INCOMINGCALL, &sub_item_value); //backup
1774 if (sub_item_value) {
1779 /* check VCONFKEY_SETAPPL_DM_MESSAGE */
1780 vcnf_ret = vconf_get_bool(VCONFKEY_SETAPPL_DRIVINGMODE_MESSAGE, &sub_item_value); //backup
1781 if (sub_item_value) {
1786 /* check VCONFKEY_SETAPPL_DM_ALARM */
1787 vcnf_ret = vconf_get_bool(VCONFKEY_SETAPPL_DRIVINGMODE_ALARM, &sub_item_value); //backup
1788 if (sub_item_value) {
1793 /* check VCONFKEY_SETAPPL_DM_SCHEDULE */
1794 vcnf_ret = vconf_get_bool(VCONFKEY_SETAPPL_DRIVINGMODE_SCHEDULE, &sub_item_value); //backup
1795 if (sub_item_value) {
1800 _DBG("ret : [%d]",ret);
1804 static int _range_chk_with_set_block_alarm(void *data)
1806 struct appdata *ad = data;
1807 //range check with current time
1810 memset(&cur_t, 0, sizeof(struct tm));
1811 time_t cur_time = time(0);
1812 if (NULL == localtime_r(&cur_time, &cur_t)) {
1813 _DBG("fail to call localtime_r");
1816 _DBG("%d:%d", cur_t.tm_hour, cur_t.tm_min);
1817 int start_h,start_m,end_h,end_m;
1818 vconf_get_int(VCONFKEY_SETAPPL_BM_START_HOUR, &start_h);
1819 vconf_get_int(VCONFKEY_SETAPPL_BM_START_MIN, &start_m);
1820 vconf_get_int(VCONFKEY_SETAPPL_BM_END_HOUR, &end_h);
1821 vconf_get_int(VCONFKEY_SETAPPL_BM_END_MIN, &end_m);
1823 int start = 60*start_h+start_m;
1824 int end = 60*end_h+end_m;
1825 int cur = 60*cur_t.tm_hour + cur_t.tm_min;
1828 int call, noti, alarmNtimer, led = 0;
1829 ret |= vconf_get_bool(VCONFKEY_SETAPPL_BM_INTER_INCOMING_CALL, &call);
1830 ret |= vconf_get_bool(VCONFKEY_SETAPPL_BM_INTER_NOTIFICATIONS, ¬i);
1831 ret |= vconf_get_bool(VCONFKEY_SETAPPL_BM_INTER_ALARM_AND_TIMER, &alarmNtimer);
1832 ret |= vconf_get_bool(VCONFKEY_SETAPPL_BM_INTER_LED_INDICATOR, &led);
1834 ad->in_range = FALSE;
1837 if(start <= cur && cur < end)
1839 ad->in_range = TRUE;
1842 ret |=vconf_set_bool(VCONFKEY_SETAPPL_BLOCKINGMODE_INCOMINGCALL, TRUE);
1846 ret |=vconf_set_bool(VCONFKEY_SETAPPL_BLOCKINGMODE_NOTIFICATIONS, TRUE);
1850 ret |=vconf_set_bool(VCONFKEY_SETAPPL_BLOCKINGMODE_ALARM_AND_TIMER, TRUE);
1854 ret |=vconf_set_bool(VCONFKEY_SETAPPL_BLOCKINGMODE_LED_INDICATOR, TRUE);
1861 ret |=vconf_set_bool(VCONFKEY_SETAPPL_BLOCKINGMODE_INCOMINGCALL, FALSE);
1865 ret |=vconf_set_bool(VCONFKEY_SETAPPL_BLOCKINGMODE_NOTIFICATIONS, FALSE);
1869 ret |=vconf_set_bool(VCONFKEY_SETAPPL_BLOCKINGMODE_ALARM_AND_TIMER, FALSE);
1873 ret |=vconf_set_bool(VCONFKEY_SETAPPL_BLOCKINGMODE_LED_INDICATOR, FALSE);
1877 if(start <= cur || cur < end)
1879 ad->in_range = TRUE;
1882 ret |=vconf_set_bool(VCONFKEY_SETAPPL_BLOCKINGMODE_INCOMINGCALL, TRUE);
1886 ret |=vconf_set_bool(VCONFKEY_SETAPPL_BLOCKINGMODE_NOTIFICATIONS, TRUE);
1890 ret |=vconf_set_bool(VCONFKEY_SETAPPL_BLOCKINGMODE_ALARM_AND_TIMER, TRUE);
1894 ret |=vconf_set_bool(VCONFKEY_SETAPPL_BLOCKINGMODE_LED_INDICATOR, TRUE);
1901 ret |=vconf_set_bool(VCONFKEY_SETAPPL_BLOCKINGMODE_INCOMINGCALL, FALSE);
1905 ret |=vconf_set_bool(VCONFKEY_SETAPPL_BLOCKINGMODE_NOTIFICATIONS, FALSE);
1909 ret |=vconf_set_bool(VCONFKEY_SETAPPL_BLOCKINGMODE_ALARM_AND_TIMER, FALSE);
1913 ret |=vconf_set_bool(VCONFKEY_SETAPPL_BLOCKINGMODE_LED_INDICATOR, FALSE);
1917 ad->start_h = start_h;
1918 ad->start_m = start_m;
1925 //not need to set for allday
1930 static int _blockingmode_btn_change_set(void *data, int set_value)
1932 struct appdata *ad = data;
1933 const char *vconf_key = NULL;
1934 const char *pref_key = NULL;
1937 vconf_key = VCONFKEY_SETAPPL_BLOCKINGMODE_BLOCKINGMODE;
1943 //all day 1 to set on
1944 vconf_set_bool(VCONFKEY_SETAPPL_BLOCKINGMODE_INCOMINGCALL, TRUE);
1949 vconf_set_bool(VCONFKEY_SETAPPL_BLOCKINGMODE_NOTIFICATIONS, TRUE);
1952 if(ad->b_alarmNtimer){
1954 vconf_set_bool(VCONFKEY_SETAPPL_BLOCKINGMODE_ALARM_AND_TIMER, TRUE);
1959 vconf_set_bool(VCONFKEY_SETAPPL_BLOCKINGMODE_LED_INDICATOR, TRUE);
1963 if(_range_chk_with_set_block_alarm(ad) == TRUE){
1964 __set_on_alarm(ad->start_h, ad->start_m, ad->end_h, ad->end_m);
1967 //not need to set for allday
1970 /* when BM is FALSE all app vconf need to change FALSE */
1972 vconf_set_bool(VCONFKEY_SETAPPL_BLOCKINGMODE_INCOMINGCALL, FALSE);
1975 vconf_set_bool(VCONFKEY_SETAPPL_BLOCKINGMODE_NOTIFICATIONS, FALSE);
1977 if(ad->b_alarmNtimer){
1978 vconf_set_bool(VCONFKEY_SETAPPL_BLOCKINGMODE_ALARM_AND_TIMER, FALSE);
1981 vconf_set_bool(VCONFKEY_SETAPPL_BLOCKINGMODE_LED_INDICATOR, FALSE);
1987 //set toogle to vconf
1989 ret = vconf_set_bool(vconf_key, set_value);
1991 _DBG("ret:%d", ret);
1994 //range check with current time
1999 void __set_gray_tone(int opposite) {
2001 #if 0 //The function will cause KERNAL PANNIC
2003 Ecore_X_Window rootWin;
2004 Ecore_X_Atom atomHighContrast;
2005 rootWin = ecore_x_window_root_first_get();
2006 atomHighContrast = ecore_x_atom_get("_E_ACC_ENABLE_HIGH_CONTRAST_");
2009 ecore_x_window_prop_card32_set(rootWin, atomHighContrast, &val, 1);
2013 // rotation policy with lock screen
2014 static void lcd_state_changed(keynode_t *key, void *data)
2017 struct appdata *ad = data;
2022 state = vconf_keynode_get_int(key);
2023 if (state != VCONFKEY_PM_STATE_LCDOFF)
2026 if (vconf_ignore_key_changed(VCONFKEY_PM_STATE, lcd_state_changed) != 0)
2027 _DBG("vconf key ignore failed");
2033 static void __def_response_cb(void *data, Evas_Object *obj,
2036 _DBG(" REMOVE THE POPUP OBJECT BY THIS FUNCTION ");
2038 evas_object_del(obj);
2043 void __popup_del_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
2045 _DBG("__popup_del_cb");
2046 Ecore_X_Display *disp = ecore_x_display_get();
2047 Ecore_X_Window xwin = elm_win_xwindow_get(obj);
2048 int ret = utilx_ungrab_key(disp, xwin, KEY_HOME);
2050 _DBG("KEY_HOME ungrab error ret[%d]", ret);
2053 ret = utilx_ungrab_key(disp, xwin, KEY_BACK);
2055 _DBG("KEY_BACK ungrab error ret[%d]", ret);
2058 ret = utilx_ungrab_key(disp, xwin, KEY_POWER);
2060 _DBG("KEY_POWER ungrab error ret[%d]", ret);
2063 ret = utilx_ungrab_key(disp, xwin, KEY_VOLUMEUP);
2065 _DBG("KEY_VOLUMEUP ungrab error ret[%d]", ret);
2068 ret = utilx_ungrab_key(disp, xwin, KEY_VOLUMEDOWN);
2070 _DBG("KEY_VOLUMEDOWN ungrab error ret[%d]", ret);
2074 static void __popup_event_set(Evas_Object *popup, void *data,
2075 _cb_func response_cb,
2076 int timeout,//to control the timeout time
2077 bool blocked_flag,//to control whether to block the screen
2078 bool keygrab_flag//to control whether to block the 'Home key'
2081 _DBG("__popup_event_set");
2084 evas_object_smart_callback_add(popup, "timeout", response_cb, data);
2086 evas_object_smart_callback_add(popup, "timeout", __def_response_cb, data);
2090 if (!blocked_flag) {//not blocked_flag == TRUE !!!
2092 evas_object_smart_callback_add(popup, "block,clicked", response_cb, data);
2094 evas_object_smart_callback_add(popup, "block,clicked", __def_response_cb, data);
2099 Ecore_X_Display *disp = ecore_x_display_get();
2100 Ecore_X_Window xwin = elm_win_xwindow_get(popup);
2101 int ret = utilx_grab_key(disp, xwin, KEY_HOME, TOP_POSITION_GRAB);
2103 _DBG("KEY_HOME grab error ret[%d]", ret);
2106 ret = utilx_grab_key(disp, xwin, KEY_BACK, TOP_POSITION_GRAB);
2108 _DBG("KEY_BACK grab error ret[%d]", ret);
2111 ret = utilx_grab_key(disp, xwin, KEY_POWER, TOP_POSITION_GRAB);
2113 _DBG("KEY_POWER grab error ret[%d]", ret);
2116 ret = utilx_grab_key(disp, xwin, KEY_VOLUMEUP, TOP_POSITION_GRAB);
2118 _DBG("KEY_VOLUMEUP grab error ret[%d]", ret);
2121 ret = utilx_grab_key(disp, xwin, KEY_VOLUMEDOWN, TOP_POSITION_GRAB);
2123 _DBG("KEY_VOLUMEDOWN grab error ret[%d]", ret);
2126 evas_object_event_callback_add(popup, EVAS_CALLBACK_DEL, __popup_del_cb, NULL);
2130 static Evas_Object *__add_progressbar(void *data, Evas_Object *parent,
2131 char *progressbar_style,
2132 char *progressbar_title,
2133 char *progressbar_lable)
2135 _DBG("__add_progressbar");
2138 Evas_Object *progressbar;
2140 Evas_Object *layout;
2142 ad = (struct appdata *) data;
2143 popup = ea_center_popup_add(parent);
2145 layout = elm_layout_add(popup);
2146 elm_layout_file_set(layout, POPUP_EDJ, "popup_processingview_1button"); //u can use add button or not
2147 evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
2149 // [UI] progress icon
2150 progressbar = elm_progressbar_add(popup);
2151 elm_progressbar_pulse(progressbar, EINA_TRUE);
2152 elm_object_style_set(progressbar, progressbar_style);
2153 elm_progressbar_horizontal_set(progressbar, EINA_TRUE);
2154 evas_object_size_hint_align_set(progressbar, EVAS_HINT_FILL, EVAS_HINT_FILL);
2155 evas_object_size_hint_weight_set(progressbar, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
2156 evas_object_show(progressbar);
2158 elm_object_part_content_set(layout, "elm.swallow.content", progressbar);
2160 elm_object_part_text_set(layout, "elm.text", progressbar_lable);
2162 elm_object_content_set(popup, layout);
2166 Evas_Object *progressbar;
2167 Evas_Object *layout;
2171 popup = elm_popup_add(parent);
2172 evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
2174 Evas_Object *box = elm_box_add(popup);
2175 elm_box_horizontal_set(box, EINA_TRUE);
2176 evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
2177 evas_object_size_hint_align_set(box, EVAS_HINT_FILL, EVAS_HINT_FILL);
2178 elm_box_align_set(box, 0.5, 0.5);
2179 elm_box_padding_set(box, 16, 0);
2181 progressbar = elm_progressbar_add(popup);
2182 elm_progressbar_pulse(progressbar, EINA_TRUE);
2183 elm_object_style_set(progressbar, "process_large");
2184 evas_object_show(progressbar);
2185 elm_box_pack_end(box, progressbar);
2187 label = elm_label_add(popup);
2188 elm_object_text_set(label, progressbar_lable);
2189 evas_object_show(label);
2190 elm_box_pack_end(box, label);
2192 Evas_Object *table = elm_table_add(popup);
2193 evas_object_show(table);
2194 elm_table_homogeneous_set(table, EINA_FALSE);
2196 Evas_Object *rect_up;
2197 rect_up = evas_object_rectangle_add(evas_object_evas_get(popup));
2198 evas_object_size_hint_min_set(rect_up, ELM_SCALE_SIZE(100), ELM_SCALE_SIZE(32));
2200 Evas_Object *rect_down;
2201 rect_down = evas_object_rectangle_add(evas_object_evas_get(popup));
2202 evas_object_size_hint_min_set(rect_down, ELM_SCALE_SIZE(100), ELM_SCALE_SIZE(37));
2205 elm_table_pack(table, rect_up, 0, 0, 1, 1);// rect as a padding
2206 elm_table_pack(table, box, 0, 1, 1, 1);
2207 elm_table_pack(table, rect_down, 0, 2, 1, 1);// rect as a padding
2208 evas_object_show(box);
2209 elm_object_content_set(popup, table);
2211 evas_object_show(popup);
2215 static Evas_Object *__add_double_line_progressbar(void *data, Evas_Object *parent,
2216 char *progressbar_style,
2217 char *progressbar_title,
2218 char *progressbar_lable)
2220 _DBG("__add_double_line_progressbar");
2223 Evas_Object *layout;
2224 Evas_Object *progressbar;
2225 popup = ea_center_popup_add(parent);
2227 if (progressbar_lable) {
2228 label = elm_label_add(popup);
2229 elm_label_line_wrap_set(label, ELM_WRAP_MIXED);
2230 elm_object_text_set(label, _(progressbar_lable));
2231 evas_object_size_hint_weight_set(label, EVAS_HINT_EXPAND, 0.0);
2232 evas_object_size_hint_align_set(label, EVAS_HINT_FILL, EVAS_HINT_FILL);
2233 evas_object_show(label);
2235 layout = elm_layout_add(popup);
2236 elm_layout_file_set(layout, POPUP_EDJ, "popup_processingview");
2237 evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
2239 // [UI] progress icon
2240 if (progressbar_style) {
2241 progressbar = elm_progressbar_add(popup);
2242 elm_progressbar_pulse(progressbar, EINA_TRUE);
2243 elm_object_style_set(progressbar, progressbar_style);
2244 elm_progressbar_horizontal_set(progressbar, EINA_TRUE);
2245 evas_object_size_hint_align_set(progressbar, EVAS_HINT_FILL, EVAS_HINT_FILL);
2246 evas_object_size_hint_weight_set(progressbar, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
2247 evas_object_show(progressbar);
2250 elm_object_part_content_set(layout, "elm.swallow.content", progressbar);
2251 elm_object_part_content_set(layout, "elm.swallow.text", label);
2253 elm_object_content_set(popup, layout);
2258 Evas_Object *__popup_with_progressbar(void *data, Evas_Object *popup,
2259 Evas_Object *parent,
2260 char *progressbar_style,
2263 _cb_func response_cb,
2267 bool dobule_line_flag)
2269 if(dobule_line_flag){
2270 popup = __add_double_line_progressbar(data, parent, progressbar_style,
2273 popup = __add_progressbar(data, parent, progressbar_style,
2275 elm_object_style_set(popup, "no_effect");
2279 elm_popup_timeout_set(popup, timeout);
2281 __popup_event_set(popup, data, response_cb, timeout, blocked_flag, keygrab_flag);
2282 evas_object_show(popup);
2286 Evas_Object *_create_bg(Evas_Object *parent,Evas_Object *win, const char *bg_style)
2289 if (parent == NULL) {
2292 Evas_Object *bg = elm_bg_add(parent);
2297 elm_object_style_set(bg, bg_style);
2298 evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND,
2300 elm_win_resize_object_add(parent, bg); //regarding window resize
2301 //elm_bg_file_set(bg, DEFAULT_BG_PATH, NULL);
2302 evas_object_show(bg);
2306 char *mode_syspopup_gettext(const char *s)
2308 /* fisrt find in app pg */
2313 char *p = dgettext(PACKAGE, s);
2315 if (p && !strcmp(s, p)) { /* not found */
2316 /* find in system pkg */
2317 p = dgettext("sys_string", s);
2320 if (p && !strcmp(s, p)) { /* not found */
2321 /* find in system pkg */
2322 p = dgettext("setting", s);
2327 int myterm(bundle * b, void *data)
2332 int mytimeout(bundle * b, void *data)
2337 syspopup_handler handler = {
2338 .def_term_fn = myterm,
2339 .def_timeout_fn = mytimeout
2343 static void __mode_syspopup_regist_keys(struct appdata *ad)
2345 //work with notification regsters contents
2346 vconf_notify_key_changed(VCONFKEY_SETAPPL_BLOCKINGMODE_BLOCKINGMODE, _mode_vconf_change_cb, ad);
2347 vconf_notify_key_changed(VCONFKEY_SETAPPL_DRIVINGMODE_DRIVINGMODE, _mode_vconf_change_cb, ad);
2349 vconf_notify_key_changed(VCONFKEY_PM_STATE, lcd_state_changed, ad);
2352 static void __mode_syspopup_ignore_keys(struct appdata *ad)
2354 vconf_ignore_key_changed(VCONFKEY_SETAPPL_BLOCKINGMODE_BLOCKINGMODE, _mode_vconf_change_cb);
2355 vconf_ignore_key_changed(VCONFKEY_SETAPPL_DRIVINGMODE_DRIVINGMODE, _mode_vconf_change_cb);
2358 vconf_ignore_key_changed(VCONFKEY_PM_STATE, lcd_state_changed);
2363 /* Release evas object */
2364 void release_evas_object(Evas_Object **obj)
2366 if (!obj || !(*obj))
2368 evas_object_del(*obj);
2373 static void ea_popup_back_cb_overide(void *data, Evas_Object *obj, void *event_info)
2375 ea_popup_back_cb(data, obj, event_info);
2377 if(NULL == data) return;
2378 struct appdata *ad = data;
2379 __mode_syspopup_app_terminate(ad);
2382 static void timeout_response_cb(void *data, Evas_Object *obj, void *event_info)
2384 ea_popup_back_cb(data, obj, event_info);
2386 if(NULL == data) return;
2387 struct appdata *ad = data;
2390 evas_object_del(ad->popup);
2393 __mode_syspopup_app_terminate(ad);
2396 static void __progress_popup_cb(void *data, Evas_Object *obj, void *event_info)
2398 if(NULL == data) return;
2399 struct appdata *ad = data;
2400 _DBG("progress popup cb");
2402 // have operating delay in emergency to cluster, exit point was after progress
2403 if (vconf_ignore_key_changed(VCONFKEY_PM_STATE, lcd_state_changed) != 0)
2404 _DBG("vconf key ignore failed");
2406 is_recovery = false;
2409 __mode_reboot_noti_method();
2415 play_timeout_update_cb(void *data)
2417 if(NULL == data) return EINA_FALSE;
2418 struct appdata *ad = data;
2419 play_text(ad, _("IDS_ST_BODY_A_PERSON_YOU_HAVE_GRANTED_AUTHORITY_TO_IS_TRYING_TO_REMOTELY_ENABLE_EMERGENCY_MODE_ON_THIS_DEVICE_MSG"));
2420 ad->play_timer = NULL;
2425 static void __mode_syspopup_emergency_cb(void *data, Evas_Object * obj, void *event_info)
2427 struct appdata *ad = data;
2433 if (ad->help_type != HELP_NONE) {
2434 if (ad->help_circle) {
2435 evas_object_del(ad->help_circle);
2436 ad->help_circle = NULL;
2438 if (ad->help_popup) {
2439 evas_object_del(ad->help_popup);
2440 ad->help_popup = NULL;
2444 char *btn_str = elm_entry_markup_to_utf8(elm_object_text_get(obj));
2445 if(!strcmp(btn_str, _("IDS_COM_SK_OK")) || !strcmp(btn_str, _("IDS_ST_BUTTON_ENABLE"))){
2446 //make complete flag
2447 int ret = export_xml(DEFAULT_COMPLETE_CONFIG_FLAG_DIR"mode_perf.xml");
2448 if(ret) _ERR("check export xml");
2451 vconf_get_int(VCONFKEY_SETAPPL_PSMODE, &m_key);
2452 if(m_key == SETTING_PSMODE_NORMAL){
2454 _mode_backup_settings(ad);
2456 else if(m_key == SETTING_PSMODE_POWERFUL){
2458 _mode_power_backup_settings(ad);
2460 release_evas_object(&(ad->popup));
2461 ad->bg = _create_bg(ad->win, NULL, "group_list");
2463 ad->enable_popup = __popup_with_progressbar(ad, ad->enable_popup, ad->win, PROGRESSBAR_STYLE,
2464 NULL, _("IDS_ST_POP_ENABLING_EMERGENCY_MODE_ING"), __progress_popup_cb, 3/*0*/, TRUE, TRUE, TRUE); // 2 seconds to wait in maximum
2466 //assistive light off, P140422-06240
2467 ret = led_set_brightness_with_noti(0, TRUE);
2469 _DBG(">>>led SET TO ZERO err [%d]", ret);
2472 vconf_set_bool(VCONFKEY_SETAPPL_ACCESSIBILITY_TORCH_LIGHT, EINA_FALSE);
2474 _DBG("*** [ERR] Failed to disable popup off reminder %d***",ret);
2479 _mode_apply_settings(ad, emergency_settings);
2482 if(vconf_set_int(VCONFKEY_SETAPPL_PSMODE, SETTING_PSMODE_EMERGENCY) == 0) {
2483 _DBG("set on SETTING_PSMODE_EMERGENCY");
2486 } else if (!strcmp(btn_str, _("IDS_COM_SK_CANCEL"))) {
2493 //evas_object_del(ad->win);
2496 static void __mode_syspopup_powerful_cb(void *data, Evas_Object * obj, void *event_info)
2498 struct appdata *ad = data;
2504 if (ad->help_type != HELP_NONE) {
2505 if (ad->help_circle) {
2506 evas_object_del(ad->help_circle);
2507 ad->help_circle = NULL;
2509 if (ad->help_popup) {
2510 evas_object_del(ad->help_popup);
2511 ad->help_popup = NULL;
2515 char *btn_str = elm_entry_markup_to_utf8(elm_object_text_get(obj));
2516 if(!strcmp(btn_str, _("IDS_COM_SK_OK"))){
2518 vconf_get_int(VCONFKEY_SETAPPL_PSMODE, &m_key);
2519 if(m_key == SETTING_PSMODE_NORMAL){
2521 _mode_backup_settings(ad);
2525 int ret = preference_get_int(PREFKEY_SAVINGPOWER_BACKUP_FIRST_PWR, &first);
2528 _mode_apply_settings(ad, powerful_settings_def);
2529 preference_set_int(PREFKEY_SAVINGPOWER_BACKUP_FIRST_PWR, 0);
2532 _mode_apply_settings(ad, powerful_settings);
2533 _DBG("right to set powerful");
2535 /* set to default */
2537 ret = vconf_get_bool(VCONFKEY_SETAPPL_ACCESSIBILITY_HIGH_CONTRAST, &opposite);
2538 if(ret) _DBG("vconf_get_bool failed");
2539 __set_gray_tone(opposite);
2540 //emergency mode -> normal
2541 if(vconf_set_int(VCONFKEY_SETAPPL_PSMODE, SETTING_PSMODE_POWERFUL) == 0) {
2542 _DBG("set on SETTING_PSMODE_POWERFUL");
2545 else if(!strcmp(btn_str, _("IDS_COM_SK_CANCEL"))){
2548 //evas_object_del(ad->win);
2553 static void __mode_syspopup_netrestrictionmode_change_on_cb(void *data, Evas_Object * obj, void *event_info)
2555 struct appdata *ad = data;
2560 char *btn_str = elm_entry_markup_to_utf8(elm_object_text_get(obj));
2562 if(!strcmp(btn_str, _("IDS_COM_SK_OK")))
2566 if(vconf_set_bool(VCONFKEY_SETAPPL_NETWORK_RESTRICT_MODE, 1) == 0)
2568 _DBG("network_restrict_mode vconf set 1");
2572 _DBG("network_restrict_mode vconf set failed");
2576 if(!strcmp(btn_str, _("IDS_COM_SK_CANCEL")))
2578 _DBG("Cancel button");
2586 static void __mode_syspopup_netrestrictionmode_change_off_cb(void *data, Evas_Object * obj, void *event_info)
2588 struct appdata *ad = data;
2593 char *btn_str = elm_entry_markup_to_utf8(elm_object_text_get(obj));
2595 if(!strcmp(btn_str, _("IDS_COM_SK_OK")))
2599 if(vconf_set_bool(VCONFKEY_SETAPPL_NETWORK_RESTRICT_MODE, 0) == 0)
2601 _DBG("network_restrict_mode vconf set 0");
2605 _DBG("network_restrict_mode vconf set failed");
2609 if(!strcmp(btn_str, _("IDS_COM_SK_CANCEL")))
2611 _DBG("Cancel button");
2619 static void __mode_syspopup_normal_cb(void *data, Evas_Object * obj, void *event_info)
2621 _DBG("__mode_syspopup_normal_cb");
2622 struct appdata *ad = data;
2627 char *btn_str = elm_entry_markup_to_utf8(elm_object_text_get(obj));
2628 if(!strcmp(btn_str, _("IDS_COM_SK_OK")) || !strcmp(btn_str, _("IDS_ST_BUTTON_DISABLE"))){
2629 //using normal cb as 1) emergency -> normal or 2) emergency -> powerful , after[K] concept back_mode needed
2631 preference_get_int(PREFKEY_SAVINGPOWER_BACKUP_PSMODE, &back_mode);
2634 vconf_get_int(VCONFKEY_SETAPPL_PSMODE, &m_key);
2635 if(m_key == SETTING_PSMODE_POWERFUL){
2637 _mode_power_backup_settings(ad);
2639 //evas_object_hide(ad->popup);
2640 release_evas_object(&(ad->popup));
2641 ad->bg = _create_bg(ad->win, NULL, "group_list");
2643 ad->disable_popup = __popup_with_progressbar(ad, ad->disable_popup, ad->win, PROGRESSBAR_STYLE,
2644 NULL, _(KeyStr_Loading), __progress_popup_cb, 3/*0*/, TRUE, TRUE, FALSE); // 2 seconds to wait in maximum
2648 if(back_mode == SETTING_PSMODE_NORMAL){
2649 //make complete flag
2650 int ret = export_xml(DEFAULT_COMPLETE_CONFIG_FLAG_DIR"mode_perf.xml");
2651 if(ret) _ERR("check export xml");
2652 //torch light off with diable emergency/ups mode, P140507-03841
2653 int t_ret = led_set_brightness_with_noti(0, TRUE);
2655 _DBG(">>>led SET TO ZERO err [%d]", t_ret);
2658 vconf_set_bool(VCONFKEY_SETAPPL_ACCESSIBILITY_TORCH_LIGHT, EINA_FALSE);
2660 _DBG("*** [ERR] Failed to disable popup off reminder %d***",t_ret);
2663 int b_network_lcd_off;
2664 vconf_get_bool(VCONFKEY_SETAPPL_NETWORK_PERMIT_WITH_LCD_OFF_LIMIT, &b_network_lcd_off);
2665 if( b_network_lcd_off ){
2666 vconf_set_bool(VCONFKEY_SETAPPL_NETWORK_PERMIT_WITH_LCD_OFF_LIMIT, EINA_FALSE);
2668 _mode_apply_settings(ad, normal_settings);
2672 if(back_mode == SETTING_PSMODE_POWERFUL){
2675 int ret = preference_get_int(PREFKEY_SAVINGPOWER_BACKUP_FIRST_PWR, &first);
2677 _mode_apply_settings(ad, powerful_settings_def);
2678 preference_set_int(PREFKEY_SAVINGPOWER_BACKUP_FIRST_PWR, 0);
2681 _mode_apply_settings(ad, powerful_settings);
2682 _DBG("right to set powerful");
2686 /* set to default */
2689 ret = vconf_get_bool(VCONFKEY_SETAPPL_ACCESSIBILITY_HIGH_CONTRAST, &opposite);
2690 if(ret) _DBG("vconf_get_bool failed");
2691 __set_gray_tone(opposite);
2692 if(back_mode == SETTING_PSMODE_NORMAL){
2693 //emergency mode -> normal
2694 if(vconf_set_int(VCONFKEY_SETAPPL_PSMODE, SETTING_PSMODE_NORMAL) == 0) {
2695 _DBG("set on SETTING_PSMODE_NORMAL");
2697 }else if(back_mode == SETTING_PSMODE_POWERFUL){
2698 //emergency mode -> power saving
2699 if(vconf_set_int(VCONFKEY_SETAPPL_PSMODE, SETTING_PSMODE_POWERFUL) == 0) {
2700 _DBG("set on SETTING_PSMODE_POWERFUL");
2707 if (ad->lcd_freq_timer) {
2708 ecore_timer_del(ad->lcd_freq_timer);
2709 ad->lcd_freq_timer = NULL;
2711 ad->is_lcd_ctrl = EINA_FALSE;
2712 ad->lcd_freq_timer = ecore_timer_add(2.7, (Ecore_Task_Cb)_LCD_freq_ctrl_handler, ad);
2716 } else if (!strcmp(btn_str, _("IDS_COM_SK_CANCEL"))) {
2723 //evas_object_del(ad->win);
2726 static void __mode_blockingmode_popup_cb(app_control_h request, app_control_h reply, app_control_result_e result, void *data)
2728 struct appdata *ad = data;
2729 _DBG("__mode_blockingmode_popup_cb");
2732 evas_object_del(ad->popup);
2737 static void __mode_syspopup_blockingmode_cb(void *data, Evas_Object * obj, void *event_info)
2739 struct appdata *ad = data;
2744 char *btn_str = elm_entry_markup_to_utf8(elm_object_text_get(obj));
2745 if(!strcmp(btn_str, _("IDS_COM_SK_OK"))){
2748 app_control_h app_control = NULL;
2749 app_control_create(&app_control);
2750 if (app_control == NULL) {
2751 _DBG("the app_control is NULL");
2756 ret = app_control_set_app_id(app_control, "setting-blockingmode-efl");
2757 if (ret != APP_CONTROL_ERROR_NONE) {
2758 _DBG("app_control_set_app_id fail : %d", ret);
2760 app_control_set_operation(app_control, APP_CONTROL_OPERATION_DEFAULT);
2761 ret = app_control_send_launch_request(app_control, NULL, NULL);
2762 if (ret != APP_CONTROL_ERROR_NONE) {
2763 _DBG("app_control_send_launch_request fail : %d", ret);
2765 app_control_destroy(app_control);
2767 else if(!strcmp(btn_str, _("IDS_COM_SK_CANCEL"))){
2771 evas_object_del(ad->popup);
2774 //evas_object_del(ad->win);
2779 static void __mode_syspopup_drivingmode_cb(void *data, Evas_Object * obj, void *event_info)
2781 struct appdata *ad = data;
2786 char *btn_str = elm_entry_markup_to_utf8(elm_object_text_get(obj));
2787 if(!strcmp(btn_str, _("IDS_COM_SK_OK"))){
2790 app_control_h app_control = NULL;
2791 app_control_create(&app_control);
2792 if (app_control == NULL) {
2793 _DBG("the app_control is NULL");
2798 ret = app_control_set_app_id(app_control, "setting-drivingmode-efl");
2799 if (ret != APP_CONTROL_ERROR_NONE) {
2800 _DBG("app_control_set_app_id fail : %d", ret);
2802 app_control_set_operation(app_control, APP_CONTROL_OPERATION_DEFAULT);
2803 ret = app_control_send_launch_request(app_control, NULL, NULL);
2804 if (ret != APP_CONTROL_ERROR_NONE) {
2805 _DBG("app_control_send_launch_request fail : %d", ret);
2807 app_control_destroy(app_control);
2809 else if(!strcmp(btn_str, _("IDS_COM_SK_CANCEL"))){
2813 evas_object_del(ad->popup);
2816 //evas_object_del(ad->win);
2822 static void __mode_syspopup_mobiledata_cb(void *data, Evas_Object * obj, void *event_info)
2824 struct appdata *ad = data;
2829 char *btn_str = elm_entry_markup_to_utf8(elm_object_text_get(obj));
2830 if(!strcmp(btn_str, _("IDS_COM_SK_OK"))){
2834 if(ad->type && !strcmp(ad->type, MODE_SYSTEM_POPUP_MOBILEDATA_ON)) {
2835 /*enable mobile data */
2836 ret = vconf_set_bool(VCONFKEY_3G_ENABLE,1);
2838 _DBG("*** [ERR] Failed to enable mobile data with error code %d***",ret);
2840 if (ad->popup_chk && elm_check_state_get(ad->popup_chk)) {
2841 ret = vconf_set_bool(VCONFKEY_SETAPPL_MOBILE_DATA_ON_REMINDER, 0);
2843 _DBG("*** [ERR] Failed to disable popup on reminder %d***",ret);
2848 /*disable mobile data*/
2849 ret = vconf_set_bool(VCONFKEY_3G_ENABLE,0);
2851 _DBG("*** [ERR] Failed to enable mobile data with error code %d***",ret);
2853 if (ad->popup_chk && elm_check_state_get(ad->popup_chk)) {
2854 ret = vconf_set_bool(VCONFKEY_SETAPPL_MOBILE_DATA_OFF_REMINDER, 0);
2856 _DBG("*** [ERR] Failed to disable popup off reminder %d***",ret);
2862 else if(!strcmp(btn_str, _("IDS_COM_SK_CANCEL"))){
2870 static void __mode_syspopup_flightmode_tapi_event_cb(TapiHandle *handle, int result, void *data, void *user_data)
2872 _DBG("flight mode result:%d", result);
2876 static void __mode_syspopup_flightmode_cb(void *data, Evas_Object * obj, void *event_info)
2878 struct appdata *ad = data;
2883 char *btn_str = elm_entry_markup_to_utf8(elm_object_text_get(obj));
2884 if(!strcmp(btn_str, _("IDS_COM_SK_OK")) || !strcmp(btn_str, _("IDS_ST_BUTTON_ENABLE"))){
2888 TapiHandle* tapi_handle = tel_init(NULL);
2890 _DBG("*** [ERR] tel_init failed ***");
2897 vconf_get_bool(VCONFKEY_SETAPPL_FIREWALL_KEY, &firewall_state);
2898 if(ad->type && !strcmp(ad->type, MODE_SYSTEM_POPUP_FLIGHTMODE_ON)) {
2899 /*enable flight mode on*/
2900 ret = tel_set_flight_mode(tapi_handle, TAPI_POWER_FLIGHT_MODE_ENTER,__mode_syspopup_flightmode_tapi_event_cb,ad);
2901 if(ret != TAPI_API_SUCCESS){
2902 _DBG("*** [ERR] tel_set_flight_mode(TAPI_POWER_FLIGHT_MODE_ENTER) ***");
2908 mode_remove_noti(ad, "setting-firewall-efl");
2911 /*disable flight mode*/
2912 ret = tel_set_flight_mode(tapi_handle, TAPI_POWER_FLIGHT_MODE_LEAVE,__mode_syspopup_flightmode_tapi_event_cb,ad);
2913 if(ret != TAPI_API_SUCCESS){
2914 _DBG("*** [ERR] tel_set_flight_mode(TAPI_POWER_FLIGHT_MODE_LEAVE) ***");
2918 mode_create_noti(ad, "IDS_ST_BODY_CONFIGURE_FIREWALL_SETTINGS", "setting-firewall-efl", "IDS_ST_BODY_FIREWALL_ENABLED_ABB");
2922 if ((ret = tel_deinit(tapi_handle)) != TAPI_API_SUCCESS) {
2923 _DBG("failed to deinitialized tapi handler:%d", ret);
2927 else if(!strcmp(btn_str, _("IDS_COM_SK_CANCEL"))){
2931 //evas_object_del(ad->win);
2937 static void _text_rotation_changed(void *data, Evas_Object *obj, void *event_info )
2940 Evas_Object *win = obj;
2941 Evas_Object *layout = data;
2943 rot = elm_win_rotation_get(win);
2944 if (rot == 90 || rot == 270)
2945 elm_layout_file_set(layout, POPUP_EDJ, "label_layout_landscape");
2947 elm_layout_file_set(layout, POPUP_EDJ, "label_layout");
2950 static Eina_Bool _help_handler(void *data){
2951 struct appdata *ad = data;
2952 Evas_Coord_Rectangle rect = {0,};
2953 evas_object_geometry_get(ad->help_eo, &rect.x,&rect.y,&rect.w,&rect.h);
2954 if (ad->help_type != HELP_NONE) {
2955 syspop_help_popup_circle_block_create(ad->win, ad->popup,
2956 &ad->help_circle, &ad->help_popup,
2957 _(MODE_SYSTEM_POPUP_MSG),
2958 rect.x + rect.w/2, rect.y + rect.h/2, &rect);
2960 ad->help_timer = NULL;
2964 static void _help_rotation_changed(void *data, Evas_Object *obj, void *event_info )
2966 struct appdata *ad = (struct appdata *)data;
2968 if (ad->help_circle) {
2969 evas_object_del(ad->help_circle);
2970 ad->help_circle = NULL;
2972 if (ad->help_popup) {
2973 evas_object_del(ad->help_popup);
2974 ad->help_popup = NULL;
2977 if (ad->help_type != HELP_NONE) {
2978 if (ad->help_timer) {
2979 ecore_timer_del(ad->help_timer);
2980 ad->help_timer = NULL;
2982 ad->help_timer = ecore_timer_add(0.5, (Ecore_Task_Cb)_help_handler, ad);
2986 static void _ultra_popup_cb(void *data, Evas_Object * obj, void *event_info)
2988 struct appdata *ad = data;
2994 if (ad->help_type != HELP_NONE) {
2995 if (ad->help_circle) {
2996 evas_object_del(ad->help_circle);
2997 ad->help_circle = NULL;
2999 if (ad->help_popup) {
3000 evas_object_del(ad->help_popup);
3001 ad->help_popup = NULL;
3005 char *btn_str = elm_entry_markup_to_utf8(elm_object_text_get(obj));
3006 if(!strcmp(btn_str, _("IDS_COM_SK_OK")) || !strcmp(btn_str, _("IDS_ST_BUTTON_ENABLE"))){
3007 //make complete flag
3008 int ret = export_xml(DEFAULT_COMPLETE_CONFIG_FLAG_DIR"mode_perf.xml");
3009 if(ret) _ERR("check export xml");
3011 vconf_get_int(VCONFKEY_SETAPPL_PSMODE, &m_key);
3012 if(m_key == SETTING_PSMODE_NORMAL){
3014 _mode_backup_settings(ad);
3016 else if(m_key == SETTING_PSMODE_POWERFUL){
3018 _mode_power_backup_settings(ad);
3021 release_evas_object(&(ad->popup));
3022 ad->bg = _create_bg(ad->win, NULL, "group_list");
3024 ad->enable_popup = __popup_with_progressbar(ad, ad->enable_popup, ad->win, PROGRESSBAR_STYLE,
3025 NULL, _("IDS_ST_TPOP_ENABLING_ULTRA_POWER_SAVING_MODE_ING"), __progress_popup_cb, 3/*0*/, TRUE, TRUE, TRUE); // 2 seconds to wait in maximum
3027 //assistive light off, P140422-06240
3028 ret = led_set_brightness_with_noti(0, TRUE);
3030 _DBG(">>>led SET TO ZERO err [%d]", ret);
3033 vconf_set_bool(VCONFKEY_SETAPPL_ACCESSIBILITY_TORCH_LIGHT, EINA_FALSE);
3035 _DBG("*** [ERR] Failed to disable popup off reminder %d***",ret);
3039 /*set ultra == emergency*/
3040 _mode_apply_settings(ad, emergency_settings);
3043 if(vconf_set_int(VCONFKEY_SETAPPL_PSMODE, SETTING_PSMODE_EMERGENCY) == 0) {
3044 _DBG("set upsm, in indicator");
3047 } else if (!strcmp(btn_str, _("IDS_COM_SK_CANCEL"))){
3056 void _set_battery(Evas_Object *battery, int percent)
3058 int stage = ((double) percent) / 100 * 35;
3059 stage = stage == 0 ? 1 : stage;
3061 char stage_txt[16] = { '\0' };
3062 snprintf(stage_txt, sizeof(stage_txt), "%02d", stage);
3064 char percent_txt[16] = { '\0' };
3065 snprintf(percent_txt, sizeof(percent_txt), "%d%%", percent);
3067 //batt level image set
3068 elm_object_signal_emit(battery, stage_txt, "batt_image");
3071 elm_object_part_text_set(battery, "text2", percent_txt);
3074 void _set_stand_by_time(Evas_Object *stand_by_time, int percent)
3076 int stage = ((double) percent) / 100 * 36; //battery percent value
3077 double sbt_val = ((double) percent) * 2.80f; //estimated time value
3079 stage = stage == 0 ? 1 : stage;
3081 char stage_txt[16] = { '\0' };
3082 snprintf(stage_txt, sizeof(stage_txt), "%02d", stage);
3084 char percent_txt[16] = { '\0' };
3086 double decimal = sbt_val/24.0f - (int)sbt_val/24.0f;
3087 if(decimal == 0.0) {
3088 snprintf(percent_txt, sizeof(percent_txt), "%d%s", (int)(sbt_val/24.0f), _("IDS_COM_POP_DAYS"));
3090 snprintf(percent_txt, sizeof(percent_txt), "%.1f%s", sbt_val/24.0f, _("IDS_COM_POP_DAYS"));
3092 } else if (sbt_val > 1) {
3093 snprintf(percent_txt, sizeof(percent_txt), "%dh%dm", (int)sbt_val, (int)(sbt_val/0.6f));
3095 snprintf(percent_txt, sizeof(percent_txt), "%dm", (int)(sbt_val/0.6f));
3098 elm_object_signal_emit(stand_by_time, stage_txt, "standby_lev_img");
3099 elm_object_part_text_set(stand_by_time, "text_r3", percent_txt);
3102 Evas_Object *_ultra_popup_with_btn(void *data,
3103 Evas_Object *parent,
3106 _cb_func response_cb,
3107 int timeout, int btn_num)
3109 _DBG("_ultra_popup_with_btn");
3110 struct appdata *ad = data;
3114 Evas_Object *popup = ad->popup;
3117 Evas_Object *layout = elm_layout_add(popup);
3118 int rotation = elm_win_rotation_get(parent);
3119 if (rotation == 90 || rotation == 270)
3120 elm_layout_file_set(layout, UPMS_EDJ, "label_layout_landscape");
3122 elm_layout_file_set(layout, UPMS_EDJ, "label_layout");
3123 evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
3125 Evas_Object *inner_layout = elm_layout_add(popup);
3126 elm_layout_file_set(inner_layout, UPMS_EDJ, "inner_layout");
3127 evas_object_size_hint_weight_set(inner_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
3129 Evas_Object *scroller = elm_scroller_add(layout);
3130 elm_object_style_set(scroller, "list_effect");
3131 elm_scroller_bounce_set(scroller, EINA_TRUE, EINA_TRUE);
3132 elm_scroller_policy_set(scroller, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_AUTO);
3133 evas_object_show(scroller);
3134 elm_object_content_set(scroller, inner_layout);
3136 //1) battery image, text
3138 elm_object_part_text_set(inner_layout, "text1" ,_("IDS_ST_BODY_BATTERY_PERCENTAGE_ABB"));
3140 Evas_Object *img = NULL;
3141 img = elm_image_add(inner_layout);
3142 elm_image_file_set(img, "/usr/apps/org.tizen.setting/res/icons/savingpower/popup/battery/A01-11_popup_battery_bg.png", NULL);
3143 elm_object_part_content_set(inner_layout, "def_image", img);
3144 //batt level image, text
3146 if (vconf_get_int(VCONFKEY_SYSMAN_BATTERY_CAPACITY, &percent))
3147 _DBG("Cannot get the vconf value for VCONFKEY_SYSMAN_BATTERY_CAPACITY");
3148 _set_battery(inner_layout, percent);
3150 //2) standby time image, text
3151 //text r1, r2 -> text r1
3152 elm_object_part_text_set(inner_layout, "text_r1" ,_("IDS_ST_BODY_ESTIMATED_MAX_STANDBY_TIME_ABB"));
3153 //elm_object_part_text_set(inner_layout, "text_r2" ,"standby time");
3155 Evas_Object *standby_img = NULL;
3156 standby_img = elm_image_add(inner_layout);
3157 elm_image_file_set(standby_img, "/usr/apps/org.tizen.setting/res/icons/savingpower/popup/standby_time/A01-11_popup_time_bg.png", NULL);
3158 elm_object_part_content_set(inner_layout, "standby_image", standby_img);
3159 //standby time image, text
3160 _set_stand_by_time(inner_layout, percent);
3162 // label for long typing popup
3163 Evas_Object *label = elm_label_add(popup);
3164 elm_object_style_set(label, "popup/default");
3165 elm_label_line_wrap_set(label, ELM_WRAP_MIXED);
3167 char ultra_desc[1024] = {0, };
3168 snprintf(ultra_desc, sizeof(ultra_desc), "%s", text);
3169 elm_object_text_set(label, ultra_desc);
3170 evas_object_size_hint_weight_set(label, EVAS_HINT_EXPAND, 0.0);
3171 evas_object_size_hint_align_set(label, EVAS_HINT_FILL, EVAS_HINT_FILL);
3172 evas_object_show(label);
3174 elm_object_part_content_set(inner_layout, "guide_text", label);
3176 elm_object_part_content_set(layout, "elm.swallow.content", scroller);
3178 elm_object_content_set(popup, layout);
3179 evas_object_smart_callback_add(elm_object_top_widget_get(popup), "rotation,changed", _text_rotation_changed, layout);
3182 elm_object_part_text_set(popup, "title,text", _(title));
3185 elm_popup_timeout_set(popup, timeout);
3187 if (btn_num > 0) { //the case popup has button or buttons
3188 Evas_Object *btn1 = elm_button_add(popup);
3189 elm_object_style_set(btn1, "popup");
3190 elm_object_text_set(btn1, _("IDS_COM_SK_CANCEL"));
3191 elm_object_part_content_set(popup, "button1", btn1); //right
3192 evas_object_smart_callback_add(btn1, "clicked", response_cb, ad);
3193 Evas_Object *btn2 = elm_button_add(popup);
3194 elm_object_style_set(btn2, "popup");
3195 elm_object_text_set(btn2, _("IDS_ST_BUTTON_ENABLE"));
3196 elm_object_part_content_set(popup, "button2", btn2); //left
3197 evas_object_smart_callback_add(btn2, "clicked", response_cb, ad);
3198 evas_object_show(popup);
3200 evas_object_show(popup);
3205 static Evas_Object *mode_syspopup_create_popup_with_label_check(void *data,
3206 Evas_Object *parent,
3210 Evas_Object **check,
3211 Evas_Smart_Cb response_cb,
3213 const char *btn_left,const char *btn_right)
3215 _DBG("ENTER mode_syspopup_create_popup_with_label_check");
3216 struct appdata *ad = data;
3217 if (!ad) return NULL;
3218 Evas_Object *popup = elm_popup_add(parent);
3220 ea_object_event_callback_add(popup, EA_CALLBACK_BACK, ea_popup_back_cb, NULL);
3221 evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
3223 elm_object_part_text_set(popup, "title,text", _(title));
3226 Evas_Object *btn1 = elm_button_add(popup);
3227 elm_object_style_set(btn1, "popup");
3228 elm_object_text_set(btn1, _(btn_left));
3229 elm_object_part_content_set(popup, "button1", btn1);
3231 evas_object_smart_callback_add(btn1, "clicked", response_cb, ad);
3235 Evas_Object *btn2 = elm_button_add(popup);
3236 elm_object_style_set(btn2, "popup");
3237 elm_object_text_set(btn2, _(btn_right));
3238 elm_object_part_content_set(popup, "button2", btn2);
3240 evas_object_smart_callback_add(btn2, "clicked", response_cb, ad);}
3242 evas_object_show(popup);
3245 ea_object_event_callback_add(popup, EA_CALLBACK_BACK, ea_popup_back_cb, NULL);
3246 //setting_add_hardkey_features(popup, data);
3247 evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
3250 elm_object_part_text_set(popup, "title,text", _(title));
3254 elm_popup_timeout_set(popup, timeout);
3257 Evas_Object *label = NULL;
3258 label = elm_label_add(popup);
3259 elm_label_line_wrap_set(label, ELM_WRAP_MIXED);
3261 char arr[2048] = {'\0',};
3262 snprintf(arr, 2048, "<color=#000000>%s</color>",_(content));
3263 elm_object_text_set(label, arr);
3265 evas_object_color_set(label, 0, 0, 0, 255);
3266 evas_object_show(label);
3268 evas_object_size_hint_weight_set(label, EVAS_HINT_EXPAND, 0.0);
3269 evas_object_size_hint_align_set(label, EVAS_HINT_FILL, EVAS_HINT_FILL);
3271 Evas_Object *layout = elm_layout_add(popup);
3272 elm_layout_file_set(layout, MODE_POPUP_EDJ, "popup_checkview_setting");
3273 evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
3276 *check = elm_check_add(popup);
3278 elm_object_style_set(*check, "multiline");
3280 elm_object_text_set(*check, _(check_str));
3283 elm_object_style_set(*check, "multiline");
3284 elm_object_text_set(*check, "Don't ask again Don't ask again Don't ask again Don't ask again Don't ask again Don't ask again ");
3286 evas_object_size_hint_align_set(*check, EVAS_HINT_FILL, EVAS_HINT_FILL);
3287 evas_object_size_hint_weight_set(*check, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
3288 evas_object_show(*check);
3290 Evas_Object* box = elm_box_add(popup);
3291 elm_box_horizontal_set(box, EINA_TRUE);
3292 elm_box_pack_end(box, *check);
3295 Evas_Object* lbl = elm_label_add(popup);
3296 elm_object_text_set(lbl, _(check_str));
3297 evas_object_show(lbl);
3298 elm_box_pack_end(box, lbl);
3300 elm_box_padding_set(box, 30, 0);
3301 evas_object_show(box);
3303 elm_object_part_content_set(layout, "elm.swallow.end", box);
3306 elm_object_part_content_set(layout, "elm.swallow.content", label);
3309 elm_object_content_set(popup, layout);
3310 evas_object_data_set(popup, "check_str", check_str);
3315 btn1 = elm_button_add(popup);
3316 elm_object_style_set(btn1, "popup");
3317 elm_object_text_set(btn1, _(btn_left));
3318 elm_object_part_content_set(popup, "button1", btn1);
3320 evas_object_smart_callback_add(btn1, "clicked", response_cb, ad);
3324 btn2 = elm_button_add(popup);
3325 elm_object_style_set(btn2, "popup");
3326 elm_object_text_set(btn2, _(btn_right));
3327 elm_object_part_content_set(popup, "button2", btn2);
3329 evas_object_smart_callback_add(btn2, "clicked", response_cb, ad);}
3331 evas_object_show(popup);
3335 void fini_tts(struct appdata *ad){
3340 tts_state_e current_state;
3341 tts_get_state(ad->tts, ¤t_state);
3343 if (TTS_STATE_READY == current_state)
3345 result = tts_unprepare(ad->tts);
3346 if (TTS_ERROR_NONE != result)
3348 _ERR("Fail to prepare function : ret(%d)\n", result);
3352 result = tts_destroy(ad->tts);
3353 if (TTS_ERROR_NONE != result)
3355 _ERR("Fail to destroy handle : result(%d)", result);
3361 void __tts_completed_cb(tts_h tts, int utt_id, void *user_data)
3363 fini_tts(user_data);
3366 void init_tts(struct appdata *ad)
3369 int result = tts_create(&(ad->tts));
3370 if (TTS_ERROR_NONE != result)
3372 _ERR("Fail to get handle : result(%d)", result);
3377 result = tts_set_utterance_completed_cb(ad->tts, __tts_completed_cb, ad);
3378 if (TTS_ERROR_NONE != result)
3380 _ERR("Fail to set callback : ret(%d)\n", result);
3382 result = tts_set_mode(ad->tts, TTS_MODE_DEFAULT);
3383 if (TTS_ERROR_NONE != result)
3385 _ERR("Fail to set tts mode : ret(%d)\n", result);
3387 result = tts_prepare(ad->tts);//async API,need to wait until TTS_STATE_READY
3388 if (TTS_ERROR_NONE != result)
3390 _ERR("Fail to prepare function : ret(%d)\n", result);
3395 void play_text(struct appdata *ad, const char *text) {
3398 if (!ad || !ad->tts) {
3399 _ERR("ad or tts == NULL");
3402 ret = tts_stop(ad->tts);
3403 if (TTS_ERROR_NONE != ret) {
3404 _ERR("failed to call tts_stop: %d", ret);
3407 ret = tts_add_text(ad->tts, text, NULL,
3408 TTS_VOICE_TYPE_AUTO, TTS_SPEED_AUTO, &utt_id);
3409 if (TTS_ERROR_NONE != ret) {
3410 _ERR("failed to call tts_add_text: %d", ret);
3413 ret = tts_play(ad->tts);
3414 if (TTS_ERROR_NONE != ret) {
3415 _ERR("failed to call tts_play: %d", ret);
3420 static void __mode_syspopup_add(struct appdata *ad)
3429 //evas_object_show(ad->win);
3431 popup = elm_popup_add(ad->win);
3434 if (popup == NULL) {
3435 _ERR("elm_popup_add failed..!!");
3440 vconf_get_int(VCONFKEY_SETAPPL_PSMODE, &m_key);
3441 if (ad->type && !strcmp(ad->type, MODE_SYSTEM_POPUP_EMERGENCY)) {
3442 vconf_set_int(VCONFKEY_SETAPPL_EMERGENCY_UI_MODE, EMERGENCY_UI_MODE_EMERGENCY);
3443 elm_object_part_text_set(popup, "title,text", _(KeyStr_Enable_emergency_Mode));
3444 Evas_Object *layout = elm_layout_add(popup);
3445 int rotation = elm_win_rotation_get(ad->win);
3446 if (rotation == 90 || rotation == 270)
3447 elm_layout_file_set(layout, POPUP_EDJ, "label_layout_landscape");
3449 elm_layout_file_set(layout, POPUP_EDJ, "label_layout");
3450 evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
3451 // label for long typing popup
3452 Evas_Object *label = elm_label_add(popup);
3453 elm_object_style_set(label, "popup/default");
3454 elm_label_line_wrap_set(label, ELM_WRAP_MIXED);
3455 elm_object_text_set(label, _(KeyStr_Survivor_Mode_POP_DESC));
3456 evas_object_size_hint_weight_set(label, EVAS_HINT_EXPAND, 0.0);
3457 evas_object_size_hint_align_set(label, EVAS_HINT_FILL, EVAS_HINT_FILL);
3458 evas_object_show(label);
3460 Evas_Object *scroller = elm_scroller_add(layout);
3461 elm_object_style_set(scroller, "list_effect");
3462 elm_scroller_bounce_set(scroller, EINA_TRUE, EINA_TRUE);
3463 elm_scroller_policy_set(scroller, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_AUTO);
3464 evas_object_show(scroller);
3465 elm_object_content_set(scroller, label);
3467 elm_object_part_content_set(layout, "elm.swallow.content", scroller);
3469 elm_object_content_set(popup, layout);
3470 evas_object_smart_callback_add(elm_object_top_widget_get(popup), "rotation,changed", _text_rotation_changed, layout);
3472 btn1 = elm_button_add(popup);
3473 elm_object_style_set(btn1, "popup");
3474 elm_object_text_set(btn1, _("IDS_COM_SK_CANCEL"));
3475 elm_object_part_content_set(popup, "button1", btn1); //right
3476 evas_object_smart_callback_add(btn1, "clicked", __mode_syspopup_emergency_cb, ad);
3477 btn2 = elm_button_add(popup);
3478 elm_object_style_set(btn2, "popup");
3479 elm_object_text_set(btn2, _("IDS_ST_BUTTON_ENABLE"));
3480 elm_object_part_content_set(popup, "button2", btn2); //left
3481 evas_object_smart_callback_add(btn2, "clicked", __mode_syspopup_emergency_cb, ad);
3482 evas_object_show(popup);
3485 if (ad->help_type != HELP_NONE) {
3486 if (ad->help_timer) {
3487 ecore_timer_del(ad->help_timer);
3488 ad->help_timer = NULL;
3491 ad->help_timer = ecore_timer_add(0.5, (Ecore_Task_Cb)_help_handler, ad);
3494 else if (ad->type && !strcmp(ad->type, MODE_SYSTEM_POPUP_ULTRA)) {
3495 vconf_set_int(VCONFKEY_SETAPPL_EMERGENCY_UI_MODE, EMERGENCY_UI_MODE_ULTRA_POWER_SAVING);
3496 char ultra_desc[1024] = {0, };
3497 snprintf(ultra_desc, sizeof(ultra_desc), "- %s<br>- %s<br>- %s<br>- %s",
3498 _(KeyStr_Survivor_Mode_POP_DESC1),
3499 _(KeyStr_Survivor_Mode_POP_DESC2),
3500 _(KeyStr_Survivor_Mode_POP_DESC3),
3501 _(KeyStr_Survivor_Mode_POP_DESC4));
3502 _ultra_popup_with_btn(ad, ad->win, "IDS_ST_HEADER_ULTRA_POWER_SAVING_MODE",
3507 else if (ad->type && !strcmp(ad->type, MODE_SYSTEM_POPUP_EMERGENCY_SETTING)) {
3509 //make complete flag
3510 int ret = export_xml(DEFAULT_COMPLETE_CONFIG_FLAG_DIR"mode_perf.xml");
3511 if(ret) _ERR("check export xml");
3512 //ultra power saving mode !!
3514 evas_object_del(popup);
3518 if(m_key == SETTING_PSMODE_NORMAL){
3520 _mode_backup_settings(ad);
3522 else if(m_key == SETTING_PSMODE_POWERFUL){
3524 _mode_power_backup_settings(ad);
3527 ad->is_lcd_ctrl = EINA_TRUE;
3530 //assistive light off, P140422-06240
3531 ret = led_set_brightness_with_noti(0, TRUE);
3533 _DBG(">>>led SET TO ZERO err [%d]", ret);
3536 vconf_set_bool(VCONFKEY_SETAPPL_ACCESSIBILITY_TORCH_LIGHT, EINA_FALSE);
3538 _DBG("*** [ERR] Failed to disable popup off reminder %d***",ret);
3541 _mode_apply_settings(ad, emergency_settings);
3542 #if 1 //---------following two invoking will cause KERNAL PANNIC
3545 //if(vconf_set_int(VCONFKEY_SETAPPL_PSMODE, SETTING_PSMODE_EMERGENCY) == 0)
3547 _DBG("set ultra power saving mode in setting");
3554 else if (ad->type && !strcmp(ad->type, MODE_SYSTEM_POPUP_EMERGENCY_SAFETY)) {
3555 vconf_set_int(VCONFKEY_SETAPPL_EMERGENCY_UI_MODE, EMERGENCY_UI_MODE_EMERGENCY);
3557 //make complete flag
3558 int ret = export_xml(DEFAULT_COMPLETE_CONFIG_FLAG_DIR"mode_perf.xml");
3559 if(ret) _ERR("check export xml");
3561 evas_object_del(popup);
3565 if(m_key == SETTING_PSMODE_NORMAL){
3567 _mode_backup_settings(ad);
3569 else if(m_key == SETTING_PSMODE_POWERFUL){
3571 _mode_power_backup_settings(ad);
3574 //assistive light off, P140422-06240
3575 ret = led_set_brightness_with_noti(0, TRUE);
3577 _DBG(">>>led SET TO ZERO err [%d]", ret);
3580 vconf_set_bool(VCONFKEY_SETAPPL_ACCESSIBILITY_TORCH_LIGHT, EINA_FALSE);
3582 _DBG("*** [ERR] Failed to disable popup off reminder %d***",ret);
3586 _mode_apply_settings(ad, emergency_settings);
3589 if(vconf_set_int(VCONFKEY_SETAPPL_PSMODE, SETTING_PSMODE_EMERGENCY) == 0) {
3590 _DBG("set on SETTING_PSMODE_EMERGENCY");
3594 if (ad->type && !strcmp(ad->type, MODE_SYSTEM_POPUP_NORMAL)) {
3595 elm_object_style_set(popup, "transparent");
3596 evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
3598 int ultra_emergency;
3599 vconf_get_int(VCONFKEY_SETAPPL_EMERGENCY_UI_MODE, &ultra_emergency);
3603 #define VCONF_KEY_MODE "file/private/org.tizen.emergency-home/mode"
3606 MODE_ULTRA_POWER_SAVING,
3611 if(ultra_emergency == 1){
3612 elm_object_text_set(popup, _(KeyStr_Emergency_off_Mode_POP_DESC));
3613 elm_object_part_text_set(popup, "title,text", _("IDS_ST_HEADER_DISABLE_EMERGENCY_MODE_ABB"));
3615 else if(ultra_emergency == 2){
3616 elm_object_text_set(popup, _(KeyStr_Ultra_off_Mode_POP_DESC));
3617 elm_object_part_text_set(popup, "title,text", _("IDS_ST_HEADER_ULTRA_POWER_SAVING_MODE"));
3621 release_evas_object(&(ad->popup));
3622 ad->bg = _create_bg(ad->win, NULL, "group_list");
3625 ad->disable_popup = __popup_with_progressbar(ad, ad->disable_popup, ad->win, PROGRESSBAR_STYLE,
3626 NULL, _(KeyStr_Loading), __progress_popup_cb, 3/*0*/, TRUE, TRUE, FALSE); // 2 seconds to wait in maximum
3629 //make complete flag
3630 int ret = export_xml(DEFAULT_COMPLETE_CONFIG_FLAG_DIR"mode_perf.xml");
3631 if(ret) _ERR("check export xml");
3632 //torch light off with diable emergency/ups mode, P140507-03841
3633 int t_ret = led_set_brightness_with_noti(0, TRUE);
3635 _DBG(">>>led SET TO ZERO err [%d]", t_ret);
3638 vconf_set_bool(VCONFKEY_SETAPPL_ACCESSIBILITY_TORCH_LIGHT, EINA_FALSE);
3640 _DBG("*** [ERR] Failed to disable popup off reminder %d***",t_ret);
3644 int b_network_lcd_off;
3645 vconf_get_bool(VCONFKEY_SETAPPL_NETWORK_PERMIT_WITH_LCD_OFF_LIMIT, &b_network_lcd_off);
3646 if( b_network_lcd_off ){
3647 vconf_set_bool(VCONFKEY_SETAPPL_NETWORK_PERMIT_WITH_LCD_OFF_LIMIT, EINA_FALSE);
3649 _mode_apply_settings(ad, normal_settings);
3651 /* set to default */
3653 ret = vconf_get_bool(VCONFKEY_SETAPPL_ACCESSIBILITY_HIGH_CONTRAST, &opposite);
3654 if(ret) _DBG("vconf_get_bool failed");
3655 __set_gray_tone(opposite);
3656 if(vconf_set_int(VCONFKEY_SETAPPL_PSMODE, SETTING_PSMODE_NORMAL) == 0) {
3657 _DBG("set on SETTING_PSMODE_NORMAL");
3661 btn1 = elm_button_add(popup);
3662 elm_object_style_set(btn1, "popup");
3663 elm_object_text_set(btn1, _("IDS_COM_SK_CANCEL"));
3664 elm_object_part_content_set(popup, "button1", btn1); //right
3665 evas_object_smart_callback_add(btn1, "clicked", __mode_syspopup_normal_cb, ad);
3666 btn2 = elm_button_add(popup);
3667 elm_object_style_set(btn2, "popup");
3668 elm_object_text_set(btn2, _("IDS_ST_BUTTON_DISABLE"));
3669 elm_object_part_content_set(popup, "button2", btn2); //left
3670 evas_object_smart_callback_add(btn2, "clicked", __mode_syspopup_normal_cb, ad);
3671 evas_object_show(popup);
3673 if (vconf_notify_key_changed(VCONFKEY_PM_STATE, lcd_state_changed, ad) != 0)
3674 _DBG("vconf key notify failed");
3677 else if (ad->type && !strcmp(ad->type, MODE_SYSTEM_POPUP_REMOVE_FLAG)) {
3678 int ret = remove_xml(DEFAULT_COMPLETE_CONFIG_FLAG_DIR"mode_perf.xml");
3679 if(ret) _ERR("check remove xml");
3681 evas_object_del(popup);
3686 else if (ad->type && !strcmp(ad->type, MODE_SYSTEM_POPUP_POWERFUL)) {
3688 int ret = vconf_get_bool(VCONFKEY_TELEPHONY_FLIGHT_MODE, &flight);
3689 if(ret) _DBG("vconf_get_bool failed");
3691 if(flight == EINA_TRUE){
3692 //cannot set with flight mode on
3693 elm_object_style_set(popup, "transparent");
3694 evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
3695 elm_object_text_set(popup, _("IDS_IM_POP_THIS_FEATURE_IS_NOT_AVAILABLE_WHILE_FLIGHT_MODE_IS_ON"));
3697 elm_popup_timeout_set(popup, 2.0);
3698 evas_object_smart_callback_add(popup, "block,clicked", timeout_response_cb, ad);
3699 evas_object_smart_callback_add(popup, "timeout", timeout_response_cb, ad);
3701 evas_object_show(popup);
3705 evas_object_del(popup);
3709 vconf_get_int(VCONFKEY_SETAPPL_PSMODE, &m_key);
3710 if(m_key == SETTING_PSMODE_NORMAL){
3712 _mode_backup_settings(ad);
3716 int ret = preference_get_int(PREFKEY_SAVINGPOWER_BACKUP_FIRST_PWR, &first);
3719 _mode_apply_settings(ad, powerful_settings_def);
3720 preference_set_int(PREFKEY_SAVINGPOWER_BACKUP_FIRST_PWR, 0);
3723 _mode_apply_settings(ad, powerful_settings);
3724 _DBG("right to set powerful");
3726 /* set to default */
3728 ret = vconf_get_bool(VCONFKEY_SETAPPL_ACCESSIBILITY_HIGH_CONTRAST, &opposite);
3729 if(ret) _DBG("vconf_get_bool failed");
3730 __set_gray_tone(opposite);
3731 //emergency mode -> normal
3732 if(vconf_set_int(VCONFKEY_SETAPPL_PSMODE, SETTING_PSMODE_POWERFUL) == 0) {
3733 _DBG("set on SETTING_PSMODE_POWERFUL");
3736 evas_object_smart_callback_add(elm_object_top_widget_get(popup), "rotation,changed", _help_rotation_changed, ad);
3739 if (ad->help_type != HELP_NONE) {
3740 if (ad->help_timer) {
3741 ecore_timer_del(ad->help_timer);
3742 ad->help_timer = NULL;
3745 ad->help_timer = ecore_timer_add(0.5, (Ecore_Task_Cb)_help_handler, ad);
3748 if (vconf_notify_key_changed(VCONFKEY_PM_STATE, lcd_state_changed, ad) != 0)
3749 _DBG("vconf key notify failed");
3753 else if (ad->type && !strcmp(ad->type, MODE_SYSTEM_POPUP_POWERFUL_SETTING)) {
3755 evas_object_del(popup);
3759 if(m_key == SETTING_PSMODE_NORMAL){
3761 _mode_backup_settings(ad);
3766 int ret = preference_get_int(PREFKEY_SAVINGPOWER_BACKUP_FIRST_PWR, &first);
3768 _mode_apply_settings(ad, powerful_settings_def);
3769 preference_set_int(PREFKEY_SAVINGPOWER_BACKUP_FIRST_PWR, 0);
3772 _mode_apply_settings(ad, powerful_settings);
3773 _DBG("right to set powerful");
3776 /* set to default */
3778 ret = vconf_get_bool(VCONFKEY_SETAPPL_ACCESSIBILITY_HIGH_CONTRAST, &opposite);
3779 if(ret) _DBG("vconf_get_bool failed");
3780 __set_gray_tone(opposite);
3781 //emergency mode -> normal
3782 if(vconf_set_int(VCONFKEY_SETAPPL_PSMODE, SETTING_PSMODE_POWERFUL) == 0) {
3783 _DBG("set on SETTING_PSMODE_POWERFUL");
3787 else if (ad->type && !strcmp(ad->type, MODE_SYSTEM_POPUP_NORMAL_SETTING)) {
3788 //make complete flag
3789 int ret = export_xml(DEFAULT_COMPLETE_CONFIG_FLAG_DIR"mode_perf.xml");
3790 if(ret) _ERR("check export xml");
3792 if(m_key == SETTING_PSMODE_POWERFUL){
3794 _mode_power_backup_settings(ad);
3796 //torch light off with diable emergency/ups mode, P140507-03841
3797 int t_ret = led_set_brightness_with_noti(0, TRUE);
3799 _DBG(">>>led SET TO ZERO err [%d]", t_ret);
3802 vconf_set_bool(VCONFKEY_SETAPPL_ACCESSIBILITY_TORCH_LIGHT, EINA_FALSE);
3804 _DBG("*** [ERR] Failed to disable popup off reminder %d***",t_ret);
3808 int b_network_lcd_off;
3809 vconf_get_bool(VCONFKEY_SETAPPL_NETWORK_PERMIT_WITH_LCD_OFF_LIMIT, &b_network_lcd_off);
3810 if( b_network_lcd_off ){
3811 vconf_set_bool(VCONFKEY_SETAPPL_NETWORK_PERMIT_WITH_LCD_OFF_LIMIT, EINA_FALSE);
3815 _mode_apply_settings(ad, normal_settings);
3816 /* set to default */
3819 ret = vconf_get_bool(VCONFKEY_SETAPPL_ACCESSIBILITY_HIGH_CONTRAST, &opposite);
3820 if(ret) _DBG("vconf_get_bool failed");
3821 __set_gray_tone(opposite);
3822 //emergency mode -> normal
3823 if(vconf_set_int(VCONFKEY_SETAPPL_PSMODE, SETTING_PSMODE_NORMAL) == 0) {
3824 _DBG("set on SETTING_PSMODE_NORMAL");
3828 else if (ad->type && !strcmp(ad->type, MODE_SYSTEM_POPUP_BACKUP_SETTING)) {
3830 evas_object_del(popup);
3834 _mode_backup_settings(ad);
3837 else if (ad->type && !strcmp(ad->type, MODE_SYSTEM_POPUP_BLOCKINGMODE_ON)) {
3839 /* blockingmode ON */
3840 int ret = vconf_notify_key_changed(VCONFKEY_SETAPPL_BLOCKINGMODE_BLOCKINGMODE, _mode_vconf_change_cb, ad);
3842 _DBG("call vconf_notify_key_changed failed");
3845 ret = _blockingmode_get_status(ad);
3846 if(ret) _DBG("vconf get reminder failed");
3848 if(ad->b_call || ad->b_noti || ad->b_alarmNtimer || ad->b_led){
3850 evas_object_del(popup);
3853 _blockingmode_btn_change_set(ad, EINA_TRUE);
3856 ea_object_event_callback_add(popup, EA_CALLBACK_BACK, ea_popup_back_cb_overide, NULL);
3857 //sub check routine insert
3858 _DBG("sub check else");
3859 elm_object_style_set(popup, "transparent");
3860 evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
3862 elm_object_text_set(popup, _(KeyStr_Blocking_Mode_POP_DESC));
3863 //elm_popup_timeout_set(popup, 2.0);
3864 //evas_object_smart_callback_add(popup, "block,clicked", timeout_response_cb, ad);
3865 //evas_object_smart_callback_add(popup, "timeout", timeout_response_cb, ad);
3867 elm_object_part_text_set(popup, "title,text", _(keystr_Blockingmode));
3869 btn1 = elm_button_add(popup);
3870 elm_object_style_set(btn1, "popup");
3871 elm_object_text_set(btn1, _("IDS_COM_SK_CANCEL"));
3872 elm_object_part_content_set(popup, "button1", btn1); //right
3873 evas_object_smart_callback_add(btn1, "clicked", __mode_syspopup_blockingmode_cb, ad);
3874 btn2 = elm_button_add(popup);
3875 elm_object_style_set(btn2, "popup");
3876 elm_object_text_set(btn2, _("IDS_COM_SK_OK"));
3877 elm_object_part_content_set(popup, "button2", btn2); //left
3878 evas_object_smart_callback_add(btn2, "clicked", __mode_syspopup_blockingmode_cb, ad);
3880 evas_object_show(popup);
3883 else if (ad->type && !strcmp(ad->type, MODE_SYSTEM_POPUP_BLOCKINGMODE_OFF)) {
3885 evas_object_del(popup);
3889 /* blockingmode OFF */
3890 int ret = vconf_notify_key_changed(VCONFKEY_SETAPPL_BLOCKINGMODE_BLOCKINGMODE, _mode_vconf_change_cb, ad);
3892 _DBG("call vconf_notify_key_changed failed");
3895 ret = _blockingmode_get_status(ad);
3896 if(ret) _DBG("vconf get reminder failed");
3897 _blockingmode_btn_change_set(ad, EINA_FALSE);
3899 else if (ad->type && !strcmp(ad->type, MODE_SYSTEM_POPUP_DRIVINGMODE_ON)) {
3901 /* drivingmode ON */
3902 //just notifications be needed
3904 ret = vconf_notify_key_changed(VCONFKEY_SETAPPL_DRIVINGMODE_DRIVINGMODE, _mode_vconf_change_cb, ad);
3906 _DBG("call vconf_notify_key_changed failed");
3908 if(__check_drivingmode_sub_item()){
3910 evas_object_del(popup);
3913 ret = vconf_set_bool(VCONFKEY_SETAPPL_DRIVINGMODE_DRIVINGMODE, EINA_TRUE);
3915 _DBG("call vconf_set_bool failed");
3919 ea_object_event_callback_add(popup, EA_CALLBACK_BACK, ea_popup_back_cb_overide, NULL);
3920 //sub check routine insert
3921 _DBG("sub check else");
3922 elm_object_style_set(popup, "transparent");
3923 evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
3925 elm_object_text_set(popup, _("IDS_ST_POP_TO_ENABLE_HANDS_FREE_MODE_ENABLE_AT_LEAST_ONE_RELEVANT_FUNCTION"));
3926 elm_object_part_text_set(popup, "title,text", _("IDS_VC_MBODY_NOTIFICATION_READ_OUT"));
3928 btn1 = elm_button_add(popup);
3929 elm_object_style_set(btn1, "popup");
3930 elm_object_text_set(btn1, _("IDS_COM_SK_CANCEL"));
3931 elm_object_part_content_set(popup, "button1", btn1); //right
3932 evas_object_smart_callback_add(btn1, "clicked", __mode_syspopup_drivingmode_cb, ad);
3933 btn2 = elm_button_add(popup);
3934 elm_object_style_set(btn2, "popup");
3935 elm_object_text_set(btn2, _("IDS_COM_SK_OK"));
3936 elm_object_part_content_set(popup, "button2", btn2); //left
3937 evas_object_smart_callback_add(btn2, "clicked", __mode_syspopup_drivingmode_cb, ad);
3939 evas_object_show(popup);
3942 else if (ad->type && !strcmp(ad->type, MODE_SYSTEM_POPUP_DRIVINGMODE_OFF)) {
3944 evas_object_del(popup);
3948 /* drivingmode OFF */
3949 //just notifications be needed
3950 int ret = vconf_notify_key_changed(VCONFKEY_SETAPPL_DRIVINGMODE_DRIVINGMODE, _mode_vconf_change_cb, ad);
3952 _DBG("call vconf_notify_key_changed failed");
3954 ret = vconf_set_bool(VCONFKEY_SETAPPL_DRIVINGMODE_DRIVINGMODE, EINA_FALSE);
3956 _DBG("call vconf_set_bool failed");
3958 }else if (ad->type && !strcmp(ad->type, MODE_SYSTEM_POPUP_FLIGHTMODE_ON)) {
3960 setting_set_i18n(MODE_SYSPOPUP_PACKAGE, MODE_SYSPOPUP_LOCALEDIR);
3961 evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
3963 _DBG("--------------------------------------------------------------");
3964 _DBG("--------------------------------------------------------------");
3965 elm_object_text_set(popup, _(KeyStr_Fligtmode_Popup_On_Text));
3966 _DBG("--------------------------------------------------------------");
3967 _DBG("--------------------------------------------------------------");
3969 elm_object_part_text_set(popup, "title,text", _(KeyStr_Fligtmode_Popup_Title));
3970 btn1 = elm_button_add(popup);
3971 elm_object_style_set(btn1, "popup");
3972 elm_object_text_set(btn1, _("IDS_COM_SK_CANCEL"));
3973 elm_object_part_content_set(popup, "button1", btn1); //right
3974 evas_object_smart_callback_add(btn1, "clicked", __mode_syspopup_flightmode_cb, ad);
3975 btn2 = elm_button_add(popup);
3976 elm_object_style_set(btn2, "popup");
3977 elm_object_text_set(btn2, _("IDS_ST_BUTTON_ENABLE"));
3978 elm_object_part_content_set(popup, "button2", btn2); //left
3979 evas_object_smart_callback_add(btn2, "clicked", __mode_syspopup_flightmode_cb, ad);
3980 evas_object_show(popup);
3982 }else if (ad->type && !strcmp(ad->type, MODE_SYSTEM_POPUP_FLIGHTMODE_OFF)) {
3984 evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
3986 elm_object_text_set(popup, _(KeyStr_Fligtmode_Popup_Off_Text));
3988 elm_object_part_text_set(popup, "title,text", _(KeyStr_Fligtmode_Popup_Title));
3989 btn1 = elm_button_add(popup);
3990 elm_object_style_set(btn1, "popup");
3991 elm_object_text_set(btn1, _("IDS_COM_SK_CANCEL"));
3992 elm_object_part_content_set(popup, "button1", btn1); //right
3993 evas_object_smart_callback_add(btn1, "clicked", __mode_syspopup_flightmode_cb, ad);
3994 btn2 = elm_button_add(popup);
3995 elm_object_style_set(btn2, "popup");
3996 elm_object_text_set(btn2, _("IDS_COM_SK_OK"));
3997 elm_object_part_content_set(popup, "button2", btn2); //left
3998 evas_object_smart_callback_add(btn2, "clicked", __mode_syspopup_flightmode_cb, ad);
3999 evas_object_show(popup);
4002 else if (ad->type && !strcmp(ad->type, MODE_SYSTEM_POPUP_NETRESTRICTIONMODE_CHANGE)) {
4004 /* Network restriction mode change */
4006 int ret = vconf_get_bool(VCONFKEY_SETAPPL_NETWORK_RESTRICT_MODE, &vconf_value);
4009 _DBG("network_restrict_mode vconf get failed");
4013 _DBG("network_restrict_mode vconf get %d", vconf_value);
4016 elm_object_style_set(popup, "transparent");
4017 evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
4022 elm_object_text_set(popup, _( "IDS_QP_POP_NETWORK_RESTRICTION_MODE_WILL_BE_DISABLED_JPN" ));
4027 elm_object_text_set(popup, _( "IDS_QP_POP_IN_NETWORK_RESTRICTION_MODE_YOU_CAN_USE_ALL_YOUR_APPLICATIONS_WITHOUT_CONNECTING_TO_THE_NETWORK_YOU_CAN_ALSO_RECEIVE_CALLS_AND_SMS_MESSAGES_MSG_JPN" ));
4029 elm_object_part_text_set(popup, "title,text", _( "IDS_ST_HEADER_NETWORK_RESTRICTION_MODE_ABB_JPN" ));
4030 btn1 = elm_button_add(popup);
4031 elm_object_style_set(btn1, "popup");
4032 elm_object_text_set(btn1, _("IDS_COM_SK_CANCEL"));
4033 elm_object_part_content_set(popup, "button1", btn1); //right
4035 btn2 = elm_button_add(popup);
4036 elm_object_style_set(btn2, "popup");
4037 elm_object_text_set(btn2, _("IDS_COM_SK_OK"));
4038 elm_object_part_content_set(popup, "button2", btn2); //left
4043 evas_object_smart_callback_add(btn1, "clicked", __mode_syspopup_netrestrictionmode_change_off_cb, popup);
4044 evas_object_smart_callback_add(btn2, "clicked", __mode_syspopup_netrestrictionmode_change_off_cb, popup);
4049 evas_object_smart_callback_add(btn1, "clicked", __mode_syspopup_netrestrictionmode_change_on_cb, popup);
4050 evas_object_smart_callback_add(btn2, "clicked", __mode_syspopup_netrestrictionmode_change_on_cb, popup);
4053 evas_object_show(popup);
4054 }else if (ad->type && !strcmp(ad->type, MODE_SYSTEM_POPUP_MOBILEDATA_ON)) {
4056 evas_object_del(ad->popup);
4059 ad->popup = mode_syspopup_create_popup_with_label_check(ad, ad->win, NULL,
4060 _(Data_packet_Popup_desc),
4061 KeyStr_DO_NOT_ASK_AGAIN,
4062 &(ad->popup_chk), __mode_syspopup_mobiledata_cb, 0,
4063 "IDS_COM_SK_CANCEL","IDS_COM_SK_OK");
4066 }else if (ad->type && !strcmp(ad->type, MODE_SYSTEM_POPUP_MOBILEDATA_OFF)) {
4068 evas_object_del(ad->popup);
4071 ad->popup = mode_syspopup_create_popup_with_label_check(ad, ad->win, NULL,
4072 KeyStr_MOBILEDATA_Popup_Off_Text,
4073 KeyStr_DO_NOT_ASK_AGAIN,
4074 &(ad->popup_chk), __mode_syspopup_mobiledata_cb, 0,
4075 "IDS_COM_SK_CANCEL","IDS_COM_SK_OK");
4079 static int __mode_syspopup_reset(bundle * b, void *data)
4081 struct appdata *ad = data;
4088 ad->type=strdup(MODE_SYSTEM_POPUP_NORMAL);
4089 evas_object_show(ad->win);
4090 __mode_syspopup_add(ad);
4095 ad->b = bundle_dup(b);
4097 /* When syspopup is already loaded, remove the popup and load new popup */
4098 if (syspopup_has_popup(b)) {
4101 ret = syspopup_create(b, &handler, ad->win, ad);
4102 _DBG("ret = %d", ret);
4105 help = bundle_get_val(b, "help_type");
4107 ad->help_type = HELP_PS_MODE;
4110 val = bundle_get_val(b, "_MODE_SYSTEM_POPUP_TYPE_");
4112 ad->type=strdup(val);
4113 _INFO("type :%s", ad->type);
4114 if (ad->type && !strcmp(ad->type, MODE_SYSTEM_POPUP_BLOCKINGMODE_ON)){
4115 ret = _blockingmode_get_status(ad);
4116 if(ret) _DBG("vconf get reminder failed");
4118 if(!ad->b_call && !ad->b_noti && !ad->b_alarmNtimer && !ad->b_led){
4119 evas_object_show(ad->win);
4122 else if (ad->type && !strcmp(ad->type, MODE_SYSTEM_POPUP_BLOCKINGMODE_OFF)){
4124 else if (ad->type && !strcmp(ad->type, MODE_SYSTEM_POPUP_DRIVINGMODE_ON)){
4125 if(!__check_drivingmode_sub_item()){
4126 evas_object_show(ad->win);
4129 else if (ad->type && !strcmp(ad->type, MODE_SYSTEM_POPUP_DRIVINGMODE_OFF)){
4131 else if (ad->type && !strcmp(ad->type, MODE_SYSTEM_POPUP_BACKUP_SETTING)){
4133 else if (ad->type && !strcmp(ad->type, MODE_SYSTEM_POPUP_NORMAL_SETTING)){
4135 else if (ad->type && !strcmp(ad->type, MODE_SYSTEM_POPUP_POWERFUL_SETTING)){
4137 else if (ad->type && !strcmp(ad->type, MODE_SYSTEM_POPUP_POWERFUL)){
4139 int ret = vconf_get_bool(VCONFKEY_TELEPHONY_FLIGHT_MODE, &flight);
4140 if(ret) _DBG("vconf_get_bool failed");
4143 evas_object_show(ad->win);
4146 else if (ad->type && !strcmp(ad->type, MODE_SYSTEM_POPUP_EMERGENCY_SETTING)){
4148 else if (ad->type && !strcmp(ad->type, MODE_SYSTEM_POPUP_EMERGENCY_SAFETY)){
4150 else if (ad->type && !strcmp(ad->type, MODE_SYSTEM_POPUP_REMOVE_FLAG)){
4153 evas_object_show(ad->win);
4157 _ERR("Unknown popup type");
4160 __mode_syspopup_add(ad);
4168 static int mode_reboot_create_noti_only(const char *key_str,const char *package,const char *title)
4170 notification_h noti = NULL;
4171 notification_error_e ret = NOTIFICATION_ERROR_NONE;
4173 /* not need to remove noti */
4174 noti = notification_new(NOTIFICATION_TYPE_ONGOING,
4175 NOTIFICATION_GROUP_ID_NONE, NOTIFICATION_PRIV_ID_NONE);
4177 _DBG("Fail to notification_new [%d]", ret);
4181 ret = notification_set_layout(noti, NOTIFICATION_LY_ONGOING_EVENT);
4182 if (ret != NOTIFICATION_ERROR_NONE) {
4183 _DBG("Fail to notification_set_layout [%d]", ret);
4187 if(!strcmp(PKG_BLOCKING_MODE, package)){
4188 ret = notification_set_image(noti, NOTIFICATION_IMAGE_TYPE_ICON, IMG_BlockingMode);
4189 if (ret != NOTIFICATION_ERROR_NONE) {
4190 _DBG("Fail to notification_set_image [%d]", ret);
4193 ret = notification_set_image(noti, NOTIFICATION_IMAGE_TYPE_ICON_FOR_INDICATOR, INDI_IMG_BlockingMode);
4194 if (ret != NOTIFICATION_ERROR_NONE) {
4195 _DBG("Fail to notification_set_image [%d]", ret);
4199 else if(!strcmp(PKG_DRIVING_MODE, package)){
4200 ret = notification_set_image(noti, NOTIFICATION_IMAGE_TYPE_ICON, IMG_DrivingMode);
4201 if (ret != NOTIFICATION_ERROR_NONE) {
4202 _DBG("Fail to notification_set_image [%d]", ret);
4205 ret = notification_set_image(noti, NOTIFICATION_IMAGE_TYPE_ICON_FOR_INDICATOR, INDI_IMG_DrivingMode);
4206 if (ret != NOTIFICATION_ERROR_NONE) {
4207 _DBG("Fail to notification_set_image [%d]", ret);
4211 else if(!strcmp(PKG_FIREWALL, package)){
4212 ret = notification_set_image(noti, NOTIFICATION_IMAGE_TYPE_ICON, IMG_Firewall);
4213 if (ret != NOTIFICATION_ERROR_NONE) {
4214 _DBG("Fail to notification_set_image [%d]", ret);
4217 ret = notification_set_image(noti, NOTIFICATION_IMAGE_TYPE_ICON_FOR_INDICATOR, INDI_IMG_Firewall);
4218 if (ret != NOTIFICATION_ERROR_NONE) {
4219 _DBG("Fail to notification_set_image [%d]", ret);
4224 ret = notification_set_text(noti,
4225 NOTIFICATION_TEXT_TYPE_TITLE,
4227 title, NOTIFICATION_VARIABLE_TYPE_NONE);
4228 if (ret != NOTIFICATION_ERROR_NONE) {
4229 _DBG("Fail to notification_set_text [%d]", ret);
4233 ret = notification_set_text(noti,
4234 NOTIFICATION_TEXT_TYPE_CONTENT,
4236 key_str, NOTIFICATION_VARIABLE_TYPE_NONE);
4237 if (ret != NOTIFICATION_ERROR_NONE) {
4238 _DBG("Fail to notification_set_text [%d]", ret);
4242 ret = notification_set_text_domain(noti, SETTING_PACKAGE, SETTING_LOCALEDIR);
4243 if (ret != NOTIFICATION_ERROR_NONE) {
4244 _DBG("Fail to notification_set_text [%d]", ret);
4248 ret = notification_set_pkgname(noti, package); //pkg ex : "setting-blockingmode-efl"
4249 if (ret != NOTIFICATION_ERROR_NONE) {
4250 _DBG("Fail to notification_set_pkgname [%d]", ret);
4254 ret = notification_set_application(noti, package); //pkg ex : "setting-blockingmode-efl"
4255 if (ret != NOTIFICATION_ERROR_NONE) {
4256 _DBG("Fail to notification_set_application [%d]", ret);
4261 ret = notification_insert(noti, ¬i_id);
4262 if (ret != NOTIFICATION_ERROR_NONE) {
4263 _DBG("Fail to notification_insert [%d]", ret);
4267 ret = notification_free(noti);
4268 if (ret != NOTIFICATION_ERROR_NONE) {
4269 _DBG("Fail to notification_free [%d]", ret);
4276 ret = notification_free(noti);
4277 if (ret != NOTIFICATION_ERROR_NONE) {
4278 _DBG("Fail to notification_free [%d]", ret);
4284 * Check whether file existed or not
4286 * @param pszFilePathName [in] : File path (/Folder)
4287 * @return TRUE on success, FALSE on failure
4289 static int __is_file_exist( char* pszFilePathName )
4293 pFile = fopen( pszFilePathName, "r" );
4294 if ( pFile == NULL )
4296 _DBG( "fopen('%s')=NULL, File not existed.", pszFilePathName );
4300 _DBG( "fopen('%s')!=NULL, File existed.", pszFilePathName );
4308 static int __mode_reboot_noti_method()
4310 //get vconf to notif register
4311 //blockingmode, drivingmode, flightmode
4312 int block, driving, firewall, ret;
4314 ret |= vconf_get_bool(VCONFKEY_SETAPPL_BLOCKINGMODE_BLOCKINGMODE, &block);
4315 ret |= vconf_get_bool(VCONFKEY_SETAPPL_DRIVINGMODE_DRIVINGMODE, &driving);
4316 ret |= vconf_get_bool(VCONFKEY_SETAPPL_FIREWALL_KEY, &firewall);
4317 //ret |= vconf_get_bool(VCONFKEY_TELEPHONY_FLIGHT_MODE, &flight);
4318 _DBG("__mode_reboot_noti_method");
4319 printf("noti method start\n");
4321 printf("mode get vconf failed\n");
4324 //set noti for on status
4326 ret |= mode_reboot_create_noti_only("IDS_ST_BODY_BLOCKING_MODE_IS_ENABLED", PKG_BLOCKING_MODE, "IDS_ST_BODY_BLOCKING_MODE");
4328 ret |= mode_reboot_create_noti_only("IDS_ST_BODY_INCOMING_CALLS_AND_NEW_NOTIFICATIONS_WILL_BE_READ_OUT_AUTOMATICALLY", PKG_DRIVING_MODE, "IDS_VC_MBODY_NOTIFICATION_READ_OUT");
4330 ret |= mode_reboot_create_noti_only("IDS_ST_BODY_CONFIGURE_FIREWALL_SETTINGS", PKG_FIREWALL, "IDS_ST_BODY_FIREWALL_ENABLED_ABB");
4331 //if(flight) mode_reboot_create_noti_only ... not need to
4333 return ret; //zero for success
4335 static void __win_del(void *data, Evas_Object * obj, void *event)
4340 static Evas_Object *__create_win(const char *name)
4342 _DBG("ENTER __create_win");
4346 Ecore_X_Window xwin;
4347 unsigned int val = 1;
4349 eo = elm_win_add(NULL, name, ELM_WIN_DIALOG_BASIC);
4352 elm_win_title_set(eo, name);
4353 elm_win_borderless_set(eo, EINA_TRUE);
4354 elm_win_alpha_set(eo, EINA_TRUE);
4356 evas_object_smart_callback_add(eo, "delete,request", __win_del, NULL);
4357 ecore_x_window_size_get(ecore_x_window_root_first_get(), &w, &h);
4358 evas_object_resize(eo, w, h);
4360 xwin = elm_win_xwindow_get(eo);
4361 ecore_x_window_prop_card32_set(xwin, ECORE_X_ATOM_E_ILLUME_ACCESS_CONTROL, &val, 1);
4367 static int __mode_syspopup_app_create(void *data)
4369 _DBG("ENTER __mode_syspopup_app_create");
4370 struct appdata *ad = data;
4374 ad->win = __create_win(PACKAGE);
4375 if (ad->win == NULL) {
4376 _ERR("Create win error");
4380 ad->ly_main = elm_layout_add(ad->win);
4381 evas_object_size_hint_weight_set(ad->ly_main, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
4382 elm_layout_theme_set(ad->ly_main, "layout", "application", "default");
4385 Evas_Object *conform = elm_conformant_add(ad->win);
4386 evas_object_size_hint_weight_set(conform, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
4387 evas_object_size_hint_align_set(conform, EVAS_HINT_FILL, EVAS_HINT_FILL);
4388 elm_win_resize_object_add(ad->win, conform);
4389 elm_object_content_set(conform, ad->ly_main);
4390 evas_object_show(conform);
4391 elm_win_conformant_set(ad->win, EINA_TRUE);
4393 evas_object_show(ad->ly_main);
4394 elm_win_resize_object_add(ad->win, ad->ly_main);
4395 evas_object_show(ad->win);
4397 /* init internationalization */
4398 setting_set_i18n(MODE_SYSPOPUP_PACKAGE, MODE_SYSPOPUP_LOCALEDIR);
4401 mode_syspopup_create_popup_with_label_check(ad, ad->ly_main, NULL,
4402 KeyStr_MOBILEDATA_Popup_Off_Text,
4403 KeyStr_DO_NOT_ASK_AGAIN,
4404 &(ad->popup_chk), __mode_syspopup_mobiledata_cb, 0,
4405 "IDS_COM_SK_CANCEL","IDS_COM_SK_OK");
4411 static int __mode_syspopup_app_terminate(void *data)
4413 _DBG("__mode_syspopup_app_terminate");
4414 struct appdata *ad = data;
4423 if (vconf_ignore_key_changed(VCONFKEY_PM_STATE, lcd_state_changed) != 0)
4424 _DBG("vconf key ignore failed");
4428 if (ad->type && (!strcmp(ad->type, MODE_SYSTEM_POPUP_BLOCKINGMODE_ON) || !strcmp(ad->type, MODE_SYSTEM_POPUP_BLOCKINGMODE_OFF))) {
4429 ret = vconf_ignore_key_changed(VCONFKEY_SETAPPL_BLOCKINGMODE_BLOCKINGMODE, _mode_vconf_change_cb);
4431 _DBG("call vconf_ignore_key_changed failed");
4436 if (ad->type && (!strcmp(ad->type, MODE_SYSTEM_POPUP_DRIVINGMODE_ON) || !strcmp(ad->type, MODE_SYSTEM_POPUP_DRIVINGMODE_OFF))) {
4437 ret = vconf_ignore_key_changed(VCONFKEY_SETAPPL_DRIVINGMODE_DRIVINGMODE, _mode_vconf_change_cb);
4439 _DBG("call vconf_ignore_key_changed failed");
4448 evas_object_del(ad->win);
4453 if (ad->lcd_freq_timer) {
4454 ecore_timer_del(ad->lcd_freq_timer);
4455 ad->lcd_freq_timer = NULL;
4459 if (ad->play_timer) {
4460 ecore_timer_del(ad->play_timer);
4461 ad->play_timer = NULL;
4465 if (ad->disable_popup) {
4466 evas_object_del(ad->disable_popup);
4467 ad->disable_popup = NULL;
4471 if (ad->enable_popup) {
4472 evas_object_del(ad->enable_popup);
4473 ad->enable_popup = NULL;
4482 static int __mode_syspopup_app_pause(void *data)
4484 //struct appdata *ad = data;
4489 static int __mode_syspopup_resume(void *data)
4491 //struct appdata *ad = data;
4496 int main(int argc, char *argv[])
4499 #if REBOOT_METHOD_FROM_SHELL
4501 //for(; i < argc;i++) _DBG("argv[%d]:%s", i, argv[i]);
4504 if(argc >= 2) command = atoi(argv[1]);
4505 //_DBG("[0]%s [1]%s [2]%s command=%d , argc = %d",argv[0], argv[1],argv[2],command, argc);
4509 sleep(1); //notification_is_service_ready
4510 //function for vconf get and notification register
4511 if(!__mode_reboot_noti_method()){
4514 //function for recovery interrupt in emergency/upms work
4515 if(__is_file_exist(DEFAULT_COMPLETE_CONFIG_FLAG_DIR"mode_perf.xml")){
4516 //should recovery!, set normal with reboot
4522 _DBG("noti method failing");
4523 return 1; //failing code from sh
4528 _DBG("[in reboot-mode sys seq from shell]end:res[%d]\n",res);
4533 struct appcore_ops ops = {
4534 .create = __mode_syspopup_app_create,
4535 .terminate = __mode_syspopup_app_terminate,
4536 .pause = __mode_syspopup_app_pause,
4537 .resume = __mode_syspopup_resume,
4538 .reset = __mode_syspopup_reset,
4541 memset(&ad, 0x0, sizeof(struct appdata));
4544 return appcore_efl_main(PACKAGE, &argc, &argv, &ops);