4 * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd.
6 * Contact: MyoungJune Park <mj2004.park@samsung.com>
8 * Licensed under the Apache License, Version 2.0 (the "License");
9 * you may not use this file except in compliance with the License.
10 * You may obtain a copy of the License at
12 * http://www.apache.org/licenses/LICENSE-2.0
14 * Unless required by applicable law or agreed to in writing, software
15 * distributed under the License is distributed on an "AS IS" BASIS,
16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 * See the License for the specific language governing permissions and
18 * limitations under the License.
22 #include <setting-powersaving-main.h>
23 //#include <Ecore_X.h>
26 static int setting_powersaving_main_create(void *cb);
27 static int setting_powersaving_main_destroy(void *cb);
28 static int setting_powersaving_main_update(void *cb);
29 static int setting_powersaving_main_cleanup(void *cb);
30 static void setting_powersaving_view_disable(void *data, bool disable);
32 setting_view setting_view_powersaving_main = {
33 .create = setting_powersaving_main_create,
34 .destroy = setting_powersaving_main_destroy,
35 .update = setting_powersaving_main_update,
36 .cleanup = setting_powersaving_main_cleanup,
39 static void __setting_powersaving_main_vconf_change_cb(keynode_t *key, void *data)
42 setting_retm_if(NULL == key, "key is NULL");
43 setting_retm_if(NULL == data, "data is NULL");
44 SettingPowersavingUG *ad = (SettingPowersavingUG *)data;
46 int status = vconf_keynode_get_bool(key);
47 char *vconf_name = vconf_keynode_get_name(key);
49 if (!safeStrCmp(vconf_name, VCONFKEY_SETAPPL_PWRSV_SYSMODE_STATUS)) {
50 SETTING_TRACE("status:%d", status);
51 setting_powersaving_view_disable(ad, !status);
52 ad->data_powersaving_active->chk_status = status;
53 elm_check_state_set(ad->data_powersaving_active->eo_check, ad->data_powersaving_active->chk_status);
55 if (status) {//powersaving is on
57 ret = vconf_get_bool(VCONFKEY_SETAPPL_PWRSV_CUSTMODE_SCREEN_VIB, &pwrsv_vib);
58 setting_retm_if(ret != 0, "get vconf failed");
60 //touch feedback virbration
62 ret = vconf_get_int(VCONFKEY_SETAPPL_TOUCH_FEEDBACK_VIBRATION_LEVEL_INT, &value);
63 setting_retm_if(ret != 0, "get vconf failed");
64 ret = vconf_set_int(VCONFKEY_SETAPPL_TOUCH_FEEDBACK_VIBRATION_LEVEL_BAK_INT, value);//backup
65 setting_retm_if(ret != 0, "set vconf failed");
66 ret = vconf_set_int(VCONFKEY_SETAPPL_TOUCH_FEEDBACK_VIBRATION_LEVEL_INT, 0);
67 setting_retm_if(ret != 0, "set vconf failed");
69 } else {//powersaving is off
70 //touch feedback virbration
72 ret = vconf_get_int(VCONFKEY_SETAPPL_TOUCH_FEEDBACK_VIBRATION_LEVEL_BAK_INT, &value);
73 setting_retm_if(ret != 0, "get vconf failed");
74 ret = vconf_set_int(VCONFKEY_SETAPPL_TOUCH_FEEDBACK_VIBRATION_LEVEL_INT, value);
75 setting_retm_if(ret != 0, "set vconf failed");
79 SETTING_TRACE_ERROR("vconf_name is wrong");
84 /* ***************************************************
88 ***************************************************/
89 static int setting_powersaving_main_create(void *cb)
93 retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
95 SettingPowersavingUG *ad = (SettingPowersavingUG *) cb;
96 Evas_Object *scroller = NULL;
98 /* add basic layout */
100 setting_create_layout_navi_bar_genlist(ad->win_main_layout,
102 _(KeyStr_Powersaving),
103 _("IDS_COM_BODY_BACK"), NULL,
104 setting_powersaving_main_click_softkey_back_cb,
107 Elm_Object_Item *item = NULL;;
109 item = elm_genlist_item_append(scroller, &itc_seperator, NULL, NULL,
110 ELM_GENLIST_ITEM_NONE, NULL, NULL);
111 elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
113 /* Powersaving Mode Activation */
116 ret = vconf_get_bool(VCONFKEY_SETAPPL_PWRSV_SYSMODE_STATUS, &value);
118 SETTING_TRACE_ERROR("Failed to get vconf value");
120 int active_value = value;
122 ad->data_powersaving_active = setting_create_Gendial_field_def(scroller,
124 setting_powersaving_main_mouse_up_Gendial_list_cb,
126 SWALLOW_Type_1TOGGLE,
130 KeyStr_Powersaving_Mode,
132 setting_powersaving_main_motion_active_chk_btn_cb);
133 if (ad->data_powersaving_active) {
134 __BACK_POINTER_SET(ad->data_powersaving_active);
135 ad->data_powersaving_active->userdata = ad;
137 SETTING_TRACE_ERROR("ad->data_powersaving_active is NULL");
140 (void)setting_create_Gendial_field_titleItem(scroller,
146 ret = vconf_get_bool(VCONFKEY_SETAPPL_PWRSV_CUSTMODE_CPU, &value);
148 SETTING_TRACE_ERROR("Failed to get vconf value");
150 ad->data_cpu_ps = setting_create_Gendial_field_def(scroller,
152 setting_powersaving_main_mouse_up_Gendial_list_cb,
154 SWALLOW_Type_1TOGGLE,
160 setting_powersaving_main_motion_active_chk_btn_cb);
161 if (ad->data_cpu_ps) {
162 __BACK_POINTER_SET(ad->data_cpu_ps);
163 ad->data_cpu_ps->userdata = ad;
166 setting_create_Gendial_field_def(scroller, &itc_multiline_text, NULL,
168 SWALLOW_Type_LAYOUT_SPECIALIZTION_X,
170 KeyStr_CPU_PS_DSC, NULL,
174 ret = vconf_get_bool(VCONFKEY_SETAPPL_PWRSV_CUSTMODE_DISPLAY, &value);
176 SETTING_TRACE_ERROR("Failed to get vconf value");
178 ad->data_display_ps = setting_create_Gendial_field_def(scroller,
180 setting_powersaving_main_mouse_up_Gendial_list_cb,
182 SWALLOW_Type_1TOGGLE,
188 setting_powersaving_main_motion_active_chk_btn_cb);
189 if (ad->data_display_ps) {
190 __BACK_POINTER_SET(ad->data_display_ps);
191 ad->data_display_ps->userdata = ad;
194 setting_create_Gendial_field_def(scroller, &itc_multiline_text, NULL,
196 SWALLOW_Type_LAYOUT_SPECIALIZTION_X,
198 KeyStr_DISPLAY_PS_DSC, NULL,
202 ret = vconf_get_bool(VCONFKEY_SETAPPL_PWRSV_CUSTMODE_BG_COLOR, &value);
204 SETTING_TRACE_ERROR("Failed to get vconf value");
206 ad->data_bg_color = setting_create_Gendial_field_def(scroller,
208 setting_powersaving_main_mouse_up_Gendial_list_cb,
210 SWALLOW_Type_1TOGGLE,
216 setting_powersaving_main_motion_active_chk_btn_cb);
217 if (ad->data_bg_color) {
218 __BACK_POINTER_SET(ad->data_bg_color);
219 ad->data_bg_color->userdata = ad;
222 setting_create_Gendial_field_def(scroller, &itc_multiline_text, NULL,
224 SWALLOW_Type_LAYOUT_SPECIALIZTION_X,
226 KeyStr_BG_COLOR_DSC, NULL,
230 ret = vconf_get_bool(VCONFKEY_SETAPPL_PWRSV_CUSTMODE_SCREEN_VIB, &value);
232 SETTING_TRACE_ERROR("Failed to get vconf value");
234 ad->data_screen_vib = setting_create_Gendial_field_def(scroller,
236 setting_powersaving_main_mouse_up_Gendial_list_cb,
238 SWALLOW_Type_1TOGGLE,
244 setting_powersaving_main_motion_active_chk_btn_cb);
245 if (ad->data_screen_vib) {
246 __BACK_POINTER_SET(ad->data_screen_vib);
247 ad->data_screen_vib->userdata = ad;
250 setting_create_Gendial_field_def(scroller, &itc_multiline_text, NULL,
252 SWALLOW_Type_LAYOUT_SPECIALIZTION_X,
254 KeyStr_SCREEN_VIB_DSC, NULL,
256 /****Powersaving Tips*/
257 (void)setting_create_Gendial_field_titleItem(scroller,
259 KeyStr_Powersaving_Tips,
262 /****Customed Setting*/
263 ad->data_powersaving_about =
264 setting_create_Gendial_field_def(scroller, &itc_1text,
265 setting_powersaving_main_mouse_up_Gendial_list_cb,
266 ad, SWALLOW_Type_INVALID, NULL,
267 NULL, 0, KeyStr_Powersaving_About,
269 __BACK_POINTER_SET(ad->data_powersaving_about);
271 item = elm_genlist_item_append(scroller, &itc_seperator, NULL, NULL,
272 ELM_GENLIST_ITEM_NONE, NULL, NULL);
273 elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
275 setting_powersaving_view_disable(ad, !active_value);
278 /****Powersaving Mode description*/
279 setting_create_Gendial_field_def(scroller, &itc_multiline_text, NULL,
280 ad, SWALLOW_Type_LAYOUT_SPECIALIZTION,
282 KeyStr_Powersaving_Mode_DSC, NULL,
284 /****customed Setting Mode active*/
285 ret = vconf_get_bool(VCONFKEY_SETAPPL_PWRSV_CUSTMODE_STATUS, &value);
287 SETTING_TRACE_ERROR("Failed to get vconf value");
289 bool customed_flag = (bool) value;
290 ad->data_customed_active = setting_create_Gendial_field_def(scroller,
292 setting_powersaving_main_mouse_up_Gendial_list_cb,
294 SWALLOW_Type_1TOGGLE,
297 KeyStr_Powersaving_Customed_Mode,
299 setting_powersaving_main_motion_active_chk_btn_cb);
300 if (ad->data_customed_active) {
301 __BACK_POINTER_SET(ad->data_customed_active);
302 ad->data_customed_active->userdata = ad;
304 SETTING_TRACE_ERROR("ad->data_powersaving_active is NULL");
307 setting_enable_expandable_genlist(scroller, ad, setting_powersaving_ug_exp_cb,NULL);
308 char *str_value = get_pa_powersaving_at_str();
310 setting_create_Gendial_exp_parent_field(scroller,
313 SWALLOW_Type_INVALID,
314 KeyStr_Powersaving_AT,
317 if (ad->data_saving_at) {
318 ad->data_saving_at->int_slp_setting_binded =
319 INT_SLP_SETTING_POWERSAVING_AT;
321 SETTING_TRACE_ERROR("ad->data_back is NULL");
323 __BACK_POINTER_SET(ad->data_saving_at);
326 /****Customed Setting*/
327 ad->data_customed_setting =
328 setting_create_Gendial_field_def(scroller, &itc_1text,
329 setting_powersaving_main_mouse_up_Gendial_list_cb,
330 ad, SWALLOW_Type_INVALID, NULL,
332 KeyStr_Powersaving_Customed, NULL,
334 __BACK_POINTER_SET(ad->data_customed_setting);
336 /* Powersaving and battery level Description */
337 setting_create_Gendial_field_def(scroller, &itc_multiline_text, NULL,
339 SWALLOW_Type_LAYOUT_SPECIALIZTION_X,
341 KeyStr_Powersaving_Level_DSC, NULL,
344 /****Powersaving Tips*/
345 (void)setting_create_Gendial_field_titleItem(scroller,
347 KeyStr_Powersaving_Tips,
350 /****Customed Setting*/
351 ad->data_powersaving_about =
352 setting_create_Gendial_field_def(scroller, &itc_1text,
353 setting_powersaving_main_mouse_up_Gendial_list_cb,
354 ad, SWALLOW_Type_INVALID, NULL,
355 NULL, 0, KeyStr_Powersaving_About,
357 __BACK_POINTER_SET(ad->data_powersaving_about);
359 if (!customed_flag && ad->data_customed_setting) {
360 setting_disable_genlist_item(ad->data_customed_setting->item);
365 if (ad->data_saving_at) {
366 setting_disable_genlist_item(ad->data_saving_at->item);
369 if (ad->data_customed_setting) {
370 setting_disable_genlist_item(ad->data_customed_setting->item);
376 ret = vconf_notify_key_changed(VCONFKEY_SETAPPL_PWRSV_SYSMODE_STATUS,
377 __setting_powersaving_main_vconf_change_cb, ad);
379 SETTING_TRACE_ERROR("call vconf_notify_key_changed failed");
382 setting_view_powersaving_main.is_create = 1;
383 return SETTING_RETURN_SUCCESS;
387 static int setting_powersaving_main_destroy(void *cb)
391 retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
393 SettingPowersavingUG *ad = (SettingPowersavingUG *) cb;
395 int ret = vconf_ignore_key_changed(VCONFKEY_SETAPPL_PWRSV_SYSMODE_STATUS,
396 __setting_powersaving_main_vconf_change_cb);
398 SETTING_TRACE_ERROR("call vconf_ignore_key_changed failed");
401 if (ad->ly_main != NULL) {
402 evas_object_del(ad->ly_main);
403 setting_view_powersaving_main.is_create = 0;
406 return SETTING_RETURN_SUCCESS;
409 static int setting_powersaving_main_update(void *cb)
413 retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
414 return SETTING_RETURN_SUCCESS;
417 static int setting_powersaving_main_cleanup(void *cb)
421 retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
422 return SETTING_RETURN_SUCCESS;
425 /* ***************************************************
429 ***************************************************/
431 #define NEVER_SHOW_AGAIN "Never show again"
432 #define POWERSAVING_REMINDER "Battery life extended but performance restricted, brightness low. Tap Power saving tips for more details"
435 __powersaving_on_resp_cb(void *data, Evas_Object *obj, void *event_info)
438 setting_retm_if(NULL == data, "NULL == data");
439 int response_type = btn_type(obj);
440 SettingPowersavingUG *ad = (SettingPowersavingUG *) data;
441 if (POPUP_RESPONSE_OK == response_type) { //need set vconf
443 vconf_set_bool(VCONFKEY_SETAPPL_PWRSV_SYSMODE_STATUS,
444 ad->data_powersaving_active->chk_status);
445 if (0 != err) { //if set failed, need rollback
446 SETTING_TRACE_ERROR("Set vconf Failed");
447 if (ad->data_powersaving_active) {
448 ad->data_powersaving_active->chk_status =
449 !ad->data_powersaving_active->chk_status;
450 elm_check_state_set(ad->
451 data_powersaving_active->
454 data_powersaving_active->
459 if (ad->data_powersaving_active->chk_status) {//powersaving is on
461 vconf_get_bool(VCONFKEY_SETAPPL_PWRSV_CUSTMODE_SCREEN_VIB, &pwrsv_vib);
463 //touch feedback virbration
465 vconf_get_int(VCONFKEY_SETAPPL_TOUCH_FEEDBACK_VIBRATION_LEVEL_INT, &value);
466 vconf_set_int(VCONFKEY_SETAPPL_TOUCH_FEEDBACK_VIBRATION_LEVEL_BAK_INT, value);//backup
467 vconf_set_int(VCONFKEY_SETAPPL_TOUCH_FEEDBACK_VIBRATION_LEVEL_INT, 0);
469 } else {//powersaving is off
470 //touch feedback virbration
472 vconf_get_int(VCONFKEY_SETAPPL_TOUCH_FEEDBACK_VIBRATION_LEVEL_BAK_INT, &value);
473 vconf_set_int(VCONFKEY_SETAPPL_TOUCH_FEEDBACK_VIBRATION_LEVEL_INT, value);
476 if (ad->popup_chk && elm_check_state_get(ad->popup_chk)) {
479 (VCONFKEY_SETAPPL_PWRSV_SYSMODE_STATUS_REMINDER,
483 } else if (POPUP_RESPONSE_CANCEL == response_type) { //need rollback
484 if (ad->data_powersaving_active) {
485 ad->data_powersaving_active->chk_status =
486 !ad->data_powersaving_active->chk_status;
487 elm_check_state_set(ad->data_powersaving_active->
489 ad->data_powersaving_active->
491 if (ad->data_saving_at) {
492 setting_disable_genlist_item(ad->data_saving_at->item);
494 if (ad->data_customed_setting) {
495 setting_disable_genlist_item(ad->data_customed_setting->item);
497 if (ad->data_cpu_ps) {
498 setting_disable_genlist_item(ad->data_cpu_ps->item);
500 if (ad->data_display_ps) {
501 setting_disable_genlist_item(ad->data_display_ps->item);
503 if (ad->data_bg_color) {
504 setting_disable_genlist_item(ad->data_bg_color->item);
506 if (ad->data_screen_vib) {
507 setting_disable_genlist_item(ad->data_screen_vib->item);
512 evas_object_del(ad->popup);
514 ad->popup_chk = NULL;
518 setting_powersaving_main_mouse_up_Gendial_list_cb(void *data, Evas_Object *obj,
523 setting_retm_if(data == NULL, "Data parameter is NULL");
525 retm_if(event_info == NULL, "Invalid argument: event info is NULL");
526 Elm_Object_Item *item = (Elm_Object_Item *) event_info;
527 elm_genlist_item_selected_set(item, 0);
528 Setting_GenGroupItem_Data *list_item =
529 (Setting_GenGroupItem_Data *) elm_object_item_data_get(item);
531 SettingPowersavingUG *ad = (SettingPowersavingUG *) data;
533 SETTING_TRACE("clicking item[%s]", _(list_item->keyStr));
535 if (!safeStrCmp(KeyStr_Powersaving_Mode, list_item->keyStr)) {
536 list_item->chk_status =
537 !elm_check_state_get(list_item->eo_check);
538 elm_check_state_set(list_item->eo_check, list_item->chk_status);
540 setting_powersaving_view_disable(ad, !list_item->chk_status);
542 int reminder_flag = TRUE;
544 vconf_get_bool(VCONFKEY_SETAPPL_PWRSV_SYSMODE_STATUS_REMINDER,
547 SETTING_TRACE_ERROR("Failed to get vconf value");
549 SETTING_TRACE("reminder_flag:%d", reminder_flag);
550 if (list_item->chk_status && reminder_flag) {
552 setting_create_popup_with_check(ad, ad->win_get,
554 _(POWERSAVING_REMINDER),
557 __powersaving_on_resp_cb,
559 2, _("IDS_COM_SK_OK"),
560 _("IDS_COM_SK_CANCEL"));
564 vconf_set_bool(VCONFKEY_SETAPPL_PWRSV_SYSMODE_STATUS, list_item->chk_status);
565 if (0 != ret) { /* rollback */
566 SETTING_TRACE_ERROR("Set vconf Failed");
567 list_item->chk_status = !list_item->chk_status;
568 elm_check_state_set(list_item->eo_check,
569 list_item->chk_status);
572 if (list_item->chk_status) {//powersaving is on
574 vconf_get_bool(VCONFKEY_SETAPPL_PWRSV_CUSTMODE_SCREEN_VIB, &pwrsv_vib);
576 //touch feedback virbration
578 vconf_get_int(VCONFKEY_SETAPPL_TOUCH_FEEDBACK_VIBRATION_LEVEL_INT, &value);
579 vconf_set_int(VCONFKEY_SETAPPL_TOUCH_FEEDBACK_VIBRATION_LEVEL_BAK_INT, value);//backup
580 vconf_set_int(VCONFKEY_SETAPPL_TOUCH_FEEDBACK_VIBRATION_LEVEL_INT, 0);
582 } else {//powersaving is off
583 //touch feedback virbration
585 vconf_get_int(VCONFKEY_SETAPPL_TOUCH_FEEDBACK_VIBRATION_LEVEL_BAK_INT, &value);
586 vconf_set_int(VCONFKEY_SETAPPL_TOUCH_FEEDBACK_VIBRATION_LEVEL_INT, value);
590 else if (!safeStrCmp(KeyStr_Powersaving_Customed_Mode, list_item->keyStr)) {
591 int old_status = elm_check_state_get(list_item->eo_check);
592 int ret = vconf_set_bool(VCONFKEY_SETAPPL_PWRSV_CUSTMODE_STATUS, !old_status);
593 setting_retm_if(0 != ret, "Failed to set vconf [%s]",
594 VCONFKEY_SETAPPL_PWRSV_CUSTMODE_STATUS);
596 list_item->chk_status = !old_status;
597 elm_check_state_set(list_item->eo_check, list_item->chk_status);
598 if (0 == list_item->chk_status) {
600 if (ad->data_customed_setting) {
601 setting_disable_genlist_item(ad->data_customed_setting->item);
604 //Powersavings actived
605 if (ad->data_customed_setting) {
606 setting_enable_genlist_item(ad->data_customed_setting->item);
610 else if (!safeStrCmp(KeyStr_Powersaving_Customed, list_item->keyStr)) {
611 setting_view_change(&setting_view_powersaving_main,
612 &setting_view_powersaving_customed, ad);
613 } else if (!safeStrCmp(KeyStr_Powersaving_About, list_item->keyStr)) {
614 setting_view_change(&setting_view_powersaving_main,
615 &setting_view_powersaving_about, ad);
617 else if(!safeStrCmp(KeyStr_CPU_PS, list_item->keyStr))
619 list_item->chk_status =
620 !elm_check_state_get(list_item->eo_check);
621 elm_check_state_set(list_item->eo_check, list_item->chk_status);
622 int err = vconf_set_bool(VCONFKEY_SETAPPL_PWRSV_CUSTMODE_CPU, list_item->chk_status);
625 SETTING_TRACE_ERROR("Set vconf Failed");
626 list_item->chk_status = !list_item->chk_status;
627 elm_check_state_set(obj, list_item->chk_status);
631 else if(!safeStrCmp(KeyStr_DISPLAY_PS, list_item->keyStr))
633 list_item->chk_status =
634 !elm_check_state_get(list_item->eo_check);
635 elm_check_state_set(list_item->eo_check, list_item->chk_status);
636 int err = vconf_set_bool(VCONFKEY_SETAPPL_PWRSV_CUSTMODE_DISPLAY, list_item->chk_status);
639 SETTING_TRACE_ERROR("Set vconf Failed");
640 list_item->chk_status = !list_item->chk_status;
641 elm_check_state_set(obj, list_item->chk_status);
645 else if(!safeStrCmp(KeyStr_BG_COLOR, list_item->keyStr))
647 list_item->chk_status =
648 !elm_check_state_get(list_item->eo_check);
649 elm_check_state_set(list_item->eo_check, list_item->chk_status);
650 int err = vconf_set_bool(VCONFKEY_SETAPPL_PWRSV_CUSTMODE_BG_COLOR, list_item->chk_status);
653 SETTING_TRACE_ERROR("Set vconf Failed");
654 list_item->chk_status = !list_item->chk_status;
655 elm_check_state_set(obj, list_item->chk_status);
659 else if(!safeStrCmp(KeyStr_SCREEN_VIB, list_item->keyStr))
661 list_item->chk_status =
662 !elm_check_state_get(list_item->eo_check);
663 elm_check_state_set(list_item->eo_check, list_item->chk_status);
664 int err = vconf_set_bool(VCONFKEY_SETAPPL_PWRSV_CUSTMODE_SCREEN_VIB, list_item->chk_status);
667 SETTING_TRACE_ERROR("Set vconf Failed");
668 list_item->chk_status = !list_item->chk_status;
669 elm_check_state_set(obj, list_item->chk_status);
673 //take it into effect
675 if (list_item->chk_status){
676 //touch feedback virbration
677 vconf_get_int(VCONFKEY_SETAPPL_TOUCH_FEEDBACK_VIBRATION_LEVEL_INT, &value);
678 vconf_set_int(VCONFKEY_SETAPPL_TOUCH_FEEDBACK_VIBRATION_LEVEL_BAK_INT, value);//backup
679 vconf_set_int(VCONFKEY_SETAPPL_TOUCH_FEEDBACK_VIBRATION_LEVEL_INT, 0);
681 //touch feedback virbration
682 vconf_get_int(VCONFKEY_SETAPPL_TOUCH_FEEDBACK_VIBRATION_LEVEL_BAK_INT, &value);
683 vconf_set_int(VCONFKEY_SETAPPL_TOUCH_FEEDBACK_VIBRATION_LEVEL_INT, value);
689 setting_powersaving_main_click_softkey_back_cb(void *data, Evas_Object *obj,
694 setting_retm_if(data == NULL,
695 "[Setting > Powersaving] Data parameter is NULL");
697 SettingPowersavingUG *ad = (SettingPowersavingUG *) data;
699 /* Send destroy request */
700 ug_destroy_me(ad->ug);
706 setting_powersaving_main_motion_active_chk_btn_cb(void *data, Evas_Object *obj,
711 retm_if(data == NULL, "Data parameter is NULL");
712 Setting_GenGroupItem_Data *list_item =
713 (Setting_GenGroupItem_Data *) data;
714 SettingPowersavingUG *ad = list_item->userdata;
715 list_item->chk_status = elm_check_state_get(obj); /* for genlist update status */
716 if (!safeStrCmp(KeyStr_Powersaving_Mode, list_item->keyStr)) {
717 setting_powersaving_view_disable(ad, !list_item->chk_status);
718 int reminder_flag = TRUE;
720 vconf_get_bool(VCONFKEY_SETAPPL_PWRSV_SYSMODE_STATUS_REMINDER,
723 SETTING_TRACE_ERROR("Failed to get vconf value");
725 SETTING_TRACE("reminder_flag:%d", reminder_flag);
726 if (list_item->chk_status && reminder_flag) {
728 setting_create_popup_with_check(ad, ad->win_get,
730 _(POWERSAVING_REMINDER),
733 __powersaving_on_resp_cb,
735 2, _("IDS_COM_SK_OK"),
736 _("IDS_COM_SK_CANCEL"));
741 vconf_set_bool(VCONFKEY_SETAPPL_PWRSV_SYSMODE_STATUS,
742 list_item->chk_status);
743 if (0 != ret) { /* rollback */
744 SETTING_TRACE_ERROR("Set vconf Failed");
745 list_item->chk_status = !list_item->chk_status;
746 elm_check_state_set(obj, list_item->chk_status);
749 if (list_item->chk_status) {//powersaving is on
751 vconf_get_bool(VCONFKEY_SETAPPL_PWRSV_CUSTMODE_SCREEN_VIB, &pwrsv_vib);
753 //touch feedback virbration
755 vconf_get_int(VCONFKEY_SETAPPL_TOUCH_FEEDBACK_VIBRATION_LEVEL_INT, &value);
756 vconf_set_int(VCONFKEY_SETAPPL_TOUCH_FEEDBACK_VIBRATION_LEVEL_BAK_INT, value);//backup
757 vconf_set_int(VCONFKEY_SETAPPL_TOUCH_FEEDBACK_VIBRATION_LEVEL_INT, 0);
759 } else {//powersaving is off
760 //touch feedback virbration
762 vconf_get_int(VCONFKEY_SETAPPL_TOUCH_FEEDBACK_VIBRATION_LEVEL_BAK_INT, &value);
763 vconf_set_int(VCONFKEY_SETAPPL_TOUCH_FEEDBACK_VIBRATION_LEVEL_INT, value);
766 else if(!safeStrCmp(KeyStr_Powersaving_Customed_Mode, list_item->keyStr))
768 int err = vconf_set_bool(VCONFKEY_SETAPPL_PWRSV_CUSTMODE_STATUS,
769 list_item->chk_status);
772 SETTING_TRACE_ERROR("Set vconf Failed");
773 list_item->chk_status = !list_item->chk_status;
774 elm_check_state_set(obj, list_item->chk_status);
777 if (0 == list_item->chk_status) {
779 if (ad->data_customed_setting)
781 setting_disable_genlist_item(ad->data_customed_setting->item);
784 //Powersavings actived
785 if (ad->data_customed_setting) {
786 setting_enable_genlist_item(ad->data_customed_setting->item);
790 else if(!safeStrCmp(KeyStr_CPU_PS, list_item->keyStr))
792 int err = vconf_set_bool(VCONFKEY_SETAPPL_PWRSV_CUSTMODE_CPU, list_item->chk_status);
795 SETTING_TRACE_ERROR("Set vconf Failed");
796 list_item->chk_status = !list_item->chk_status;
797 elm_check_state_set(obj, list_item->chk_status);
801 else if(!safeStrCmp(KeyStr_DISPLAY_PS, list_item->keyStr))
803 int err = vconf_set_bool(VCONFKEY_SETAPPL_PWRSV_CUSTMODE_DISPLAY, list_item->chk_status);
806 SETTING_TRACE_ERROR("Set vconf Failed");
807 list_item->chk_status = !list_item->chk_status;
808 elm_check_state_set(obj, list_item->chk_status);
812 else if(!safeStrCmp(KeyStr_BG_COLOR, list_item->keyStr))
814 int err = vconf_set_bool(VCONFKEY_SETAPPL_PWRSV_CUSTMODE_BG_COLOR, list_item->chk_status);
817 SETTING_TRACE_ERROR("Set vconf Failed");
818 list_item->chk_status = !list_item->chk_status;
819 elm_check_state_set(obj, list_item->chk_status);
822 if (list_item->chk_status)
824 //device_set_acl_control_status(DEV_MAIN_DISPLAY, 1);//it doen't work
825 #if 0 //it doen't work
826 int cmd = (DISPLAY_PROP_ACL_CONTROL | (DEV_DISPLAY_0 << 4));
827 device_set_property(DEVTYPE_DISPLAY0, cmd, 2);
828 cmd = (DISPLAY_PROP_ACL_CONTROL | (DEV_DISPLAY_1 << 4));
829 device_set_property(DEVTYPE_DISPLAY0, cmd, 2);
833 else if(!safeStrCmp(KeyStr_SCREEN_VIB, list_item->keyStr))
835 int err = vconf_set_bool(VCONFKEY_SETAPPL_PWRSV_CUSTMODE_SCREEN_VIB, list_item->chk_status);
838 SETTING_TRACE_ERROR("Set vconf Failed");
839 list_item->chk_status = !list_item->chk_status;
840 elm_check_state_set(obj, list_item->chk_status);
844 //take it into effect
846 if (list_item->chk_status){
847 //touch feedback virbration
848 vconf_get_int(VCONFKEY_SETAPPL_TOUCH_FEEDBACK_VIBRATION_LEVEL_INT, &value);
849 vconf_set_int(VCONFKEY_SETAPPL_TOUCH_FEEDBACK_VIBRATION_LEVEL_BAK_INT, value);//backup
850 vconf_set_int(VCONFKEY_SETAPPL_TOUCH_FEEDBACK_VIBRATION_LEVEL_INT, 0);
852 //touch feedback virbration
853 vconf_get_int(VCONFKEY_SETAPPL_TOUCH_FEEDBACK_VIBRATION_LEVEL_BAK_INT, &value);
854 vconf_set_int(VCONFKEY_SETAPPL_TOUCH_FEEDBACK_VIBRATION_LEVEL_INT, value);
861 static void setting_powersaving_view_disable(void *data, bool disable)
865 ret_if(data == NULL);
866 SettingPowersavingUG *ad = (SettingPowersavingUG *) data;
869 if (ad->data_cpu_ps) setting_disable_genlist_item(ad->data_cpu_ps->item);
870 if (ad->data_display_ps) setting_disable_genlist_item(ad->data_display_ps->item);
871 if (ad->data_bg_color) setting_disable_genlist_item(ad->data_bg_color->item);
872 if (ad->data_screen_vib) setting_disable_genlist_item(ad->data_screen_vib->item);
876 if (ad->data_cpu_ps) setting_enable_genlist_item(ad->data_cpu_ps->item);
877 if (ad->data_display_ps) setting_enable_genlist_item(ad->data_display_ps->item);
878 if (ad->data_bg_color) setting_enable_genlist_item(ad->data_bg_color->item);
879 if (ad->data_screen_vib) setting_enable_genlist_item(ad->data_screen_vib->item);