3 * Copyright (c) 2012 Samsung Electronics Co., Ltd.
5 * Licensed under the Flora License, Version 1.0 (the License);
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
9 * http://floralicense.org/license/
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an AS IS BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
18 #include <setting-powersaving-main.h>
21 static int setting_powersaving_main_create(void *cb);
22 static int setting_powersaving_main_destroy(void *cb);
23 static int setting_powersaving_main_update(void *cb);
24 static int setting_powersaving_main_cleanup(void *cb);
25 static void setting_powersaving_view_disable(void *data, bool disable);
27 setting_view setting_view_powersaving_main = {
28 .create = setting_powersaving_main_create,
29 .destroy = setting_powersaving_main_destroy,
30 .update = setting_powersaving_main_update,
31 .cleanup = setting_powersaving_main_cleanup,
34 static void __setting_powersaving_main_vconf_change_cb(keynode_t *key, void *data)
37 setting_retm_if(NULL == key, "key is NULL");
38 setting_retm_if(NULL == data, "data is NULL");
39 SettingPowersavingUG *ad = (SettingPowersavingUG *)data;
41 int status = vconf_keynode_get_bool(key);
42 char *vconf_name = vconf_keynode_get_name(key);
44 if (!safeStrCmp(vconf_name, VCONFKEY_SETAPPL_PWRSV_SYSMODE_STATUS)) {
45 SETTING_TRACE("status:%d", status);
46 setting_powersaving_view_disable(ad, !status);
47 ad->data_powersaving_active->chk_status = status;
48 elm_check_state_set(ad->data_powersaving_active->eo_check, ad->data_powersaving_active->chk_status);
50 if (status) {//powersaving is on
52 ret = vconf_get_bool(VCONFKEY_SETAPPL_PWRSV_CUSTMODE_SCREEN_VIB, &pwrsv_vib);
53 setting_retm_if(ret != 0, "get vconf failed");
55 //touch feedback virbration
57 ret = vconf_get_int(VCONFKEY_SETAPPL_TOUCH_FEEDBACK_VIBRATION_LEVEL_INT, &value);
58 setting_retm_if(ret != 0, "get vconf failed");
59 ret = vconf_set_int(VCONFKEY_SETAPPL_TOUCH_FEEDBACK_VIBRATION_LEVEL_BAK_INT, value);//backup
60 setting_retm_if(ret != 0, "set vconf failed");
61 ret = vconf_set_int(VCONFKEY_SETAPPL_TOUCH_FEEDBACK_VIBRATION_LEVEL_INT, 0);
62 setting_retm_if(ret != 0, "set vconf failed");
64 } else {//powersaving is off
65 //touch feedback virbration
67 ret = vconf_get_int(VCONFKEY_SETAPPL_TOUCH_FEEDBACK_VIBRATION_LEVEL_BAK_INT, &value);
68 setting_retm_if(ret != 0, "get vconf failed");
69 ret = vconf_set_int(VCONFKEY_SETAPPL_TOUCH_FEEDBACK_VIBRATION_LEVEL_INT, value);
70 setting_retm_if(ret != 0, "set vconf failed");
74 SETTING_TRACE_ERROR("vconf_name is wrong");
79 /* ***************************************************
83 ***************************************************/
84 static int setting_powersaving_main_create(void *cb)
88 retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
90 SettingPowersavingUG *ad = (SettingPowersavingUG *) cb;
91 Evas_Object *scroller = NULL;
93 /* add basic layout */
95 setting_create_layout_navi_bar_genlist(ad->win_main_layout,
97 _(KeyStr_Powersaving),
98 _("IDS_COM_BODY_BACK"), NULL,
99 setting_powersaving_main_click_softkey_back_cb,
102 Elm_Object_Item *item = NULL;;
104 item = elm_genlist_item_append(scroller, &itc_seperator, NULL, NULL,
105 ELM_GENLIST_ITEM_NONE, NULL, NULL);
106 elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
108 /* Powersaving Mode Activation */
111 ret = vconf_get_bool(VCONFKEY_SETAPPL_PWRSV_SYSMODE_STATUS, &value);
113 SETTING_TRACE_ERROR("Failed to get vconf value");
115 int active_value = value;
117 ad->data_powersaving_active = setting_create_Gendial_field_def(scroller,
119 setting_powersaving_main_mouse_up_Gendial_list_cb,
121 SWALLOW_Type_1TOGGLE,
125 KeyStr_Powersaving_Mode,
127 setting_powersaving_main_motion_active_chk_btn_cb);
128 if (ad->data_powersaving_active) {
129 __BACK_POINTER_SET(ad->data_powersaving_active);
130 ad->data_powersaving_active->userdata = ad;
132 SETTING_TRACE_ERROR("ad->data_powersaving_active is NULL");
135 (void)setting_create_Gendial_field_titleItem(scroller,
141 ret = vconf_get_bool(VCONFKEY_SETAPPL_PWRSV_CUSTMODE_CPU, &value);
143 SETTING_TRACE_ERROR("Failed to get vconf value");
145 ad->data_cpu_ps = setting_create_Gendial_field_def(scroller,
147 setting_powersaving_main_mouse_up_Gendial_list_cb,
149 SWALLOW_Type_1TOGGLE,
155 setting_powersaving_main_motion_active_chk_btn_cb);
156 if (ad->data_cpu_ps) {
157 __BACK_POINTER_SET(ad->data_cpu_ps);
158 ad->data_cpu_ps->userdata = ad;
161 setting_create_Gendial_field_def(scroller, &itc_multiline_text, NULL,
163 SWALLOW_Type_LAYOUT_SPECIALIZTION_X,
165 KeyStr_CPU_PS_DSC, NULL,
167 elm_genlist_item_select_mode_set(elm_genlist_item_append(scroller, &(itc_seperator), NULL, NULL,ELM_GENLIST_ITEM_NONE, NULL, NULL),
168 ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
173 ret = vconf_get_bool(VCONFKEY_SETAPPL_PWRSV_CUSTMODE_DISPLAY, &value);
175 SETTING_TRACE_ERROR("Failed to get vconf value");
177 ad->data_display_ps = setting_create_Gendial_field_def(scroller,
179 setting_powersaving_main_mouse_up_Gendial_list_cb,
181 SWALLOW_Type_1TOGGLE,
187 setting_powersaving_main_motion_active_chk_btn_cb);
188 if (ad->data_display_ps) {
189 __BACK_POINTER_SET(ad->data_display_ps);
190 ad->data_display_ps->userdata = ad;
193 setting_create_Gendial_field_def(scroller, &itc_multiline_text, NULL,
195 SWALLOW_Type_LAYOUT_SPECIALIZTION_X,
197 KeyStr_DISPLAY_PS_DSC, NULL,
199 elm_genlist_item_select_mode_set(elm_genlist_item_append(scroller, &(itc_seperator), NULL, NULL,ELM_GENLIST_ITEM_NONE, NULL, NULL),
200 ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
203 ret = vconf_get_bool(VCONFKEY_SETAPPL_PWRSV_CUSTMODE_BG_COLOR, &value);
205 SETTING_TRACE_ERROR("Failed to get vconf value");
207 ad->data_bg_color = setting_create_Gendial_field_def(scroller,
209 setting_powersaving_main_mouse_up_Gendial_list_cb,
211 SWALLOW_Type_1TOGGLE,
217 setting_powersaving_main_motion_active_chk_btn_cb);
218 if (ad->data_bg_color) {
219 __BACK_POINTER_SET(ad->data_bg_color);
220 ad->data_bg_color->userdata = ad;
223 setting_create_Gendial_field_def(scroller, &itc_multiline_text, NULL,
225 SWALLOW_Type_LAYOUT_SPECIALIZTION_X,
227 KeyStr_BG_COLOR_DSC, NULL,
229 elm_genlist_item_select_mode_set(elm_genlist_item_append(scroller, &(itc_seperator), NULL, NULL,ELM_GENLIST_ITEM_NONE, NULL, NULL),
230 ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
235 ret = vconf_get_bool(VCONFKEY_SETAPPL_PWRSV_CUSTMODE_SCREEN_VIB, &value);
237 SETTING_TRACE_ERROR("Failed to get vconf value");
239 ad->data_screen_vib = setting_create_Gendial_field_def(scroller,
241 setting_powersaving_main_mouse_up_Gendial_list_cb,
243 SWALLOW_Type_1TOGGLE,
249 setting_powersaving_main_motion_active_chk_btn_cb);
250 if (ad->data_screen_vib) {
251 __BACK_POINTER_SET(ad->data_screen_vib);
252 ad->data_screen_vib->userdata = ad;
255 setting_create_Gendial_field_def(scroller, &itc_multiline_text, NULL,
257 SWALLOW_Type_LAYOUT_SPECIALIZTION_X,
259 KeyStr_SCREEN_VIB_DSC, NULL,
261 /****Powersaving Tips*/
262 (void)setting_create_Gendial_field_titleItem(scroller,
264 KeyStr_Powersaving_Tips,
267 /****Customed Setting*/
268 ad->data_powersaving_about =
269 setting_create_Gendial_field_def(scroller, &itc_1text,
270 setting_powersaving_main_mouse_up_Gendial_list_cb,
271 ad, SWALLOW_Type_INVALID, NULL,
272 NULL, 0, KeyStr_Powersaving_About,
274 __BACK_POINTER_SET(ad->data_powersaving_about);
276 item = elm_genlist_item_append(scroller, &itc_bottom_seperator, NULL, NULL,
277 ELM_GENLIST_ITEM_NONE, NULL, NULL);
278 elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
280 setting_powersaving_view_disable(ad, !active_value);
283 /****Powersaving Mode description*/
284 setting_create_Gendial_field_def(scroller, &itc_multiline_text, NULL,
285 ad, SWALLOW_Type_LAYOUT_SPECIALIZTION_X,
287 KeyStr_Powersaving_Mode_DSC, NULL,
289 elm_genlist_item_select_mode_set(elm_genlist_item_append(scroller, &(itc_seperator), NULL, NULL,ELM_GENLIST_ITEM_NONE, NULL, NULL),
290 ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
291 /****customed Setting Mode active*/
292 ret = vconf_get_bool(VCONFKEY_SETAPPL_PWRSV_CUSTMODE_STATUS, &value);
294 SETTING_TRACE_ERROR("Failed to get vconf value");
296 bool customed_flag = (bool) value;
297 ad->data_customed_active = setting_create_Gendial_field_def(scroller,
299 setting_powersaving_main_mouse_up_Gendial_list_cb,
301 SWALLOW_Type_1TOGGLE,
304 KeyStr_Powersaving_Customed_Mode,
306 setting_powersaving_main_motion_active_chk_btn_cb);
307 if (ad->data_customed_active) {
308 __BACK_POINTER_SET(ad->data_customed_active);
309 ad->data_customed_active->userdata = ad;
311 SETTING_TRACE_ERROR("ad->data_powersaving_active is NULL");
314 setting_enable_expandable_genlist(scroller, ad, setting_powersaving_ug_exp_cb,NULL);
315 char *str_value = get_pa_powersaving_at_str();
317 setting_create_Gendial_exp_parent_field(scroller,
320 SWALLOW_Type_INVALID,
321 KeyStr_Powersaving_AT,
324 if (ad->data_saving_at) {
325 ad->data_saving_at->int_slp_setting_binded =
326 INT_SLP_SETTING_POWERSAVING_AT;
328 SETTING_TRACE_ERROR("ad->data_back is NULL");
330 __BACK_POINTER_SET(ad->data_saving_at);
333 /****Customed Setting*/
334 ad->data_customed_setting =
335 setting_create_Gendial_field_def(scroller, &itc_1text,
336 setting_powersaving_main_mouse_up_Gendial_list_cb,
337 ad, SWALLOW_Type_INVALID, NULL,
339 KeyStr_Powersaving_Customed, NULL,
341 __BACK_POINTER_SET(ad->data_customed_setting);
343 /* Powersaving and battery level Description */
344 setting_create_Gendial_field_def(scroller, &itc_multiline_text, NULL,
346 SWALLOW_Type_LAYOUT_SPECIALIZTION_X,
348 KeyStr_Powersaving_Level_DSC, NULL,
351 /****Powersaving Tips*/
352 (void)setting_create_Gendial_field_titleItem(scroller,
354 KeyStr_Powersaving_Tips,
357 /****Customed Setting*/
358 ad->data_powersaving_about =
359 setting_create_Gendial_field_def(scroller, &itc_1text,
360 setting_powersaving_main_mouse_up_Gendial_list_cb,
361 ad, SWALLOW_Type_INVALID, NULL,
362 NULL, 0, KeyStr_Powersaving_About,
364 __BACK_POINTER_SET(ad->data_powersaving_about);
366 if (!customed_flag && ad->data_customed_setting) {
367 setting_disable_genlist_item(ad->data_customed_setting->item);
372 if (ad->data_saving_at) {
373 setting_disable_genlist_item(ad->data_saving_at->item);
376 if (ad->data_customed_setting) {
377 setting_disable_genlist_item(ad->data_customed_setting->item);
383 ret = vconf_notify_key_changed(VCONFKEY_SETAPPL_PWRSV_SYSMODE_STATUS,
384 __setting_powersaving_main_vconf_change_cb, ad);
386 SETTING_TRACE_ERROR("call vconf_notify_key_changed failed");
389 setting_view_powersaving_main.is_create = 1;
390 return SETTING_RETURN_SUCCESS;
394 static int setting_powersaving_main_destroy(void *cb)
398 retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
400 SettingPowersavingUG *ad = (SettingPowersavingUG *) cb;
402 int ret = vconf_ignore_key_changed(VCONFKEY_SETAPPL_PWRSV_SYSMODE_STATUS,
403 __setting_powersaving_main_vconf_change_cb);
405 SETTING_TRACE_ERROR("call vconf_ignore_key_changed failed");
408 if (ad->ly_main != NULL) {
409 evas_object_del(ad->ly_main);
410 setting_view_powersaving_main.is_create = 0;
413 return SETTING_RETURN_SUCCESS;
416 static int setting_powersaving_main_update(void *cb)
420 retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
421 return SETTING_RETURN_SUCCESS;
424 static int setting_powersaving_main_cleanup(void *cb)
428 retv_if(cb == NULL, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
429 return SETTING_RETURN_SUCCESS;
432 /* ***************************************************
436 ***************************************************/
438 __powersaving_on_resp_cb(void *data, Evas_Object *obj, void *event_info)
441 setting_retm_if(NULL == data, "NULL == data");
442 int response_type = btn_type(obj);
443 SettingPowersavingUG *ad = (SettingPowersavingUG *) data;
444 if (POPUP_RESPONSE_OK == response_type) { //need set vconf
445 if (ad->data_powersaving_active) {
447 vconf_set_bool(VCONFKEY_SETAPPL_PWRSV_SYSMODE_STATUS,
448 ad->data_powersaving_active->chk_status);
449 if (0 != err) { //if set failed, need rollback
450 SETTING_TRACE_ERROR("Set vconf Failed");
451 ad->data_powersaving_active->chk_status =
452 !ad->data_powersaving_active->chk_status;
453 elm_check_state_set(ad->
454 data_powersaving_active->
457 data_powersaving_active->
461 if (ad->data_powersaving_active->chk_status) {//powersaving is on
463 vconf_get_bool(VCONFKEY_SETAPPL_PWRSV_CUSTMODE_SCREEN_VIB, &pwrsv_vib);
465 //touch feedback virbration
467 vconf_get_int(VCONFKEY_SETAPPL_TOUCH_FEEDBACK_VIBRATION_LEVEL_INT, &value);
468 vconf_set_int(VCONFKEY_SETAPPL_TOUCH_FEEDBACK_VIBRATION_LEVEL_BAK_INT, value);//backup
469 vconf_set_int(VCONFKEY_SETAPPL_TOUCH_FEEDBACK_VIBRATION_LEVEL_INT, 0);
471 } else {//powersaving is off
472 //touch feedback virbration
474 vconf_get_int(VCONFKEY_SETAPPL_TOUCH_FEEDBACK_VIBRATION_LEVEL_BAK_INT, &value);
475 vconf_set_int(VCONFKEY_SETAPPL_TOUCH_FEEDBACK_VIBRATION_LEVEL_INT, value);
478 if (ad->popup_chk && elm_check_state_get(ad->popup_chk)) {
481 (VCONFKEY_SETAPPL_PWRSV_SYSMODE_STATUS_REMINDER,
485 } else if (POPUP_RESPONSE_CANCEL == response_type) { //need rollback
486 if (ad->data_powersaving_active) {
487 ad->data_powersaving_active->chk_status =
488 !ad->data_powersaving_active->chk_status;
489 elm_check_state_set(ad->data_powersaving_active->
491 ad->data_powersaving_active->
493 if (ad->data_saving_at) {
494 setting_disable_genlist_item(ad->data_saving_at->item);
496 if (ad->data_customed_setting) {
497 setting_disable_genlist_item(ad->data_customed_setting->item);
499 if (ad->data_cpu_ps) {
500 setting_disable_genlist_item(ad->data_cpu_ps->item);
502 if (ad->data_display_ps) {
503 setting_disable_genlist_item(ad->data_display_ps->item);
505 if (ad->data_bg_color) {
506 setting_disable_genlist_item(ad->data_bg_color->item);
508 if (ad->data_screen_vib) {
509 setting_disable_genlist_item(ad->data_screen_vib->item);
514 evas_object_del(ad->popup);
516 ad->popup_chk = NULL;
520 setting_powersaving_main_mouse_up_Gendial_list_cb(void *data, Evas_Object *obj,
525 setting_retm_if(data == NULL, "Data parameter is NULL");
527 retm_if(event_info == NULL, "Invalid argument: event info is NULL");
528 Elm_Object_Item *item = (Elm_Object_Item *) event_info;
529 elm_genlist_item_selected_set(item, 0);
530 Setting_GenGroupItem_Data *list_item =
531 (Setting_GenGroupItem_Data *) elm_object_item_data_get(item);
533 SettingPowersavingUG *ad = (SettingPowersavingUG *) data;
535 SETTING_TRACE("clicking item[%s]", _(list_item->keyStr));
537 if (!safeStrCmp(KeyStr_Powersaving_Mode, list_item->keyStr)) {
538 list_item->chk_status =
539 !elm_check_state_get(list_item->eo_check);
540 elm_check_state_set(list_item->eo_check, list_item->chk_status);
542 setting_powersaving_view_disable(ad, !list_item->chk_status);
544 int reminder_flag = TRUE;
546 vconf_get_bool(VCONFKEY_SETAPPL_PWRSV_SYSMODE_STATUS_REMINDER,
549 SETTING_TRACE_ERROR("Failed to get vconf value");
551 SETTING_TRACE("reminder_flag:%d", reminder_flag);
552 if (list_item->chk_status && reminder_flag) {
554 setting_create_popup_with_image_check(ad, ad->win_get,
556 _(POWERSAVING_REMINDER), NULL,NULL,
559 __powersaving_on_resp_cb,
561 2, _("IDS_COM_SK_OK"),
562 _("IDS_COM_SK_CANCEL"));
566 vconf_set_bool(VCONFKEY_SETAPPL_PWRSV_SYSMODE_STATUS, list_item->chk_status);
567 if (0 != ret) { /* rollback */
568 SETTING_TRACE_ERROR("Set vconf Failed");
569 list_item->chk_status = !list_item->chk_status;
570 elm_check_state_set(list_item->eo_check,
571 list_item->chk_status);
574 if (list_item->chk_status) {//powersaving is on
576 vconf_get_bool(VCONFKEY_SETAPPL_PWRSV_CUSTMODE_SCREEN_VIB, &pwrsv_vib);
578 //touch feedback virbration
580 vconf_get_int(VCONFKEY_SETAPPL_TOUCH_FEEDBACK_VIBRATION_LEVEL_INT, &value);
581 vconf_set_int(VCONFKEY_SETAPPL_TOUCH_FEEDBACK_VIBRATION_LEVEL_BAK_INT, value);//backup
582 vconf_set_int(VCONFKEY_SETAPPL_TOUCH_FEEDBACK_VIBRATION_LEVEL_INT, 0);
584 } else {//powersaving is off
585 //touch feedback virbration
587 vconf_get_int(VCONFKEY_SETAPPL_TOUCH_FEEDBACK_VIBRATION_LEVEL_BAK_INT, &value);
588 vconf_set_int(VCONFKEY_SETAPPL_TOUCH_FEEDBACK_VIBRATION_LEVEL_INT, value);
592 else if (!safeStrCmp(KeyStr_Powersaving_Customed_Mode, list_item->keyStr)) {
593 int old_status = elm_check_state_get(list_item->eo_check);
594 int ret = vconf_set_bool(VCONFKEY_SETAPPL_PWRSV_CUSTMODE_STATUS, !old_status);
595 setting_retm_if(0 != ret, "Failed to set vconf [%s]",
596 VCONFKEY_SETAPPL_PWRSV_CUSTMODE_STATUS);
598 list_item->chk_status = !old_status;
599 elm_check_state_set(list_item->eo_check, list_item->chk_status);
600 if (0 == list_item->chk_status) {
602 if (ad->data_customed_setting) {
603 setting_disable_genlist_item(ad->data_customed_setting->item);
606 //Powersavings actived
607 if (ad->data_customed_setting) {
608 setting_enable_genlist_item(ad->data_customed_setting->item);
612 else if (!safeStrCmp(KeyStr_Powersaving_Customed, list_item->keyStr)) {
613 setting_view_change(&setting_view_powersaving_main,
614 &setting_view_powersaving_customed, ad);
615 } else if (!safeStrCmp(KeyStr_Powersaving_About, list_item->keyStr)) {
616 setting_view_change(&setting_view_powersaving_main,
617 &setting_view_powersaving_about, ad);
619 else if(!safeStrCmp(KeyStr_CPU_PS, list_item->keyStr))
621 list_item->chk_status =
622 !elm_check_state_get(list_item->eo_check);
623 elm_check_state_set(list_item->eo_check, list_item->chk_status);
624 int err = vconf_set_bool(VCONFKEY_SETAPPL_PWRSV_CUSTMODE_CPU, list_item->chk_status);
627 SETTING_TRACE_ERROR("Set vconf Failed");
628 list_item->chk_status = !list_item->chk_status;
629 elm_check_state_set(obj, list_item->chk_status);
633 else if(!safeStrCmp(KeyStr_DISPLAY_PS, list_item->keyStr))
635 list_item->chk_status =
636 !elm_check_state_get(list_item->eo_check);
637 elm_check_state_set(list_item->eo_check, list_item->chk_status);
638 int err = vconf_set_bool(VCONFKEY_SETAPPL_PWRSV_CUSTMODE_DISPLAY, list_item->chk_status);
641 SETTING_TRACE_ERROR("Set vconf Failed");
642 list_item->chk_status = !list_item->chk_status;
643 elm_check_state_set(obj, list_item->chk_status);
647 else if(!safeStrCmp(KeyStr_BG_COLOR, list_item->keyStr))
649 list_item->chk_status =
650 !elm_check_state_get(list_item->eo_check);
651 elm_check_state_set(list_item->eo_check, list_item->chk_status);
652 int err = vconf_set_bool(VCONFKEY_SETAPPL_PWRSV_CUSTMODE_BG_COLOR, list_item->chk_status);
655 SETTING_TRACE_ERROR("Set vconf Failed");
656 list_item->chk_status = !list_item->chk_status;
657 elm_check_state_set(obj, list_item->chk_status);
661 else if(!safeStrCmp(KeyStr_SCREEN_VIB, list_item->keyStr))
663 list_item->chk_status =
664 !elm_check_state_get(list_item->eo_check);
665 elm_check_state_set(list_item->eo_check, list_item->chk_status);
666 int err = vconf_set_bool(VCONFKEY_SETAPPL_PWRSV_CUSTMODE_SCREEN_VIB, list_item->chk_status);
669 SETTING_TRACE_ERROR("Set vconf Failed");
670 list_item->chk_status = !list_item->chk_status;
671 elm_check_state_set(obj, list_item->chk_status);
675 //take it into effect
677 if (list_item->chk_status){
678 //touch feedback virbration
679 vconf_get_int(VCONFKEY_SETAPPL_TOUCH_FEEDBACK_VIBRATION_LEVEL_INT, &value);
680 vconf_set_int(VCONFKEY_SETAPPL_TOUCH_FEEDBACK_VIBRATION_LEVEL_BAK_INT, value);//backup
681 vconf_set_int(VCONFKEY_SETAPPL_TOUCH_FEEDBACK_VIBRATION_LEVEL_INT, 0);
683 //touch feedback virbration
684 vconf_get_int(VCONFKEY_SETAPPL_TOUCH_FEEDBACK_VIBRATION_LEVEL_BAK_INT, &value);
685 vconf_set_int(VCONFKEY_SETAPPL_TOUCH_FEEDBACK_VIBRATION_LEVEL_INT, value);
690 static void __setting_powersaving_main_popup_rsp_cb(void *data, Evas_Object *obj, void *event_info)
693 setting_retm_if(data == NULL, "Data parameter is NULL");
694 SettingPowersavingUG *ad = (SettingPowersavingUG *) data;
697 evas_object_del(obj);
702 int ret = vconf_set_bool(VCONFKEY_SETAPPL_PWRSV_SYSMODE_STATUS, 0);
703 setting_retm_if(0 != ret, "Failed to set vconf value");
707 setting_powersaving_main_click_softkey_back_cb(void *data, Evas_Object *obj,
712 setting_retm_if(data == NULL, "[Setting > Powersaving] Data parameter is NULL");
713 SettingPowersavingUG *ad = (SettingPowersavingUG *) data;
717 ret = vconf_get_bool(VCONFKEY_SETAPPL_PWRSV_SYSMODE_STATUS, &value);
718 setting_retm_if(0 != ret, "Failed to get vconf value");
721 int sub_item_value = 0;
723 /* check VCONFKEY_SETAPPL_PWRSV_CUSTMODE_CPU */
724 ret = vconf_get_bool(VCONFKEY_SETAPPL_PWRSV_CUSTMODE_CPU, &sub_item_value);
725 setting_retm_if(0 != ret, "Failed to get vconf value");
726 if (sub_item_value) {
727 ug_destroy_me(ad->ug);
731 /* check VCONFKEY_SETAPPL_PWRSV_CUSTMODE_DISPLAY */
732 ret = vconf_get_bool(VCONFKEY_SETAPPL_PWRSV_CUSTMODE_DISPLAY, &sub_item_value);
733 setting_retm_if(0 != ret, "Failed to get vconf value");
734 if (sub_item_value) {
735 ug_destroy_me(ad->ug);
739 /* check VCONFKEY_SETAPPL_PWRSV_CUSTMODE_BG_COLOR */
740 ret = vconf_get_bool(VCONFKEY_SETAPPL_PWRSV_CUSTMODE_BG_COLOR, &sub_item_value);
741 setting_retm_if(0 != ret, "Failed to get vconf value");
742 if (sub_item_value) {
743 ug_destroy_me(ad->ug);
747 /* check VCONFKEY_SETAPPL_PWRSV_CUSTMODE_SCREEN_VIB */
748 ret = vconf_get_bool(VCONFKEY_SETAPPL_PWRSV_CUSTMODE_SCREEN_VIB, &sub_item_value);
749 setting_retm_if(0 != ret, "Failed to get vconf value");
750 if (sub_item_value) {
751 ug_destroy_me(ad->ug);
756 evas_object_del(ad->popup);
759 ad->popup = setting_create_popup_without_btn(ad, ad->win_get, NULL, _(SETTING_POWERSAVING_ALL_SUB_ITEMS_OFF),
760 __setting_powersaving_main_popup_rsp_cb, POPUP_INTERVAL, TRUE, TRUE);
762 /* Send destroy request */
763 ug_destroy_me(ad->ug);
768 setting_powersaving_main_motion_active_chk_btn_cb(void *data, Evas_Object *obj,
773 retm_if(data == NULL, "Data parameter is NULL");
774 Setting_GenGroupItem_Data *list_item =
775 (Setting_GenGroupItem_Data *) data;
776 SettingPowersavingUG *ad = list_item->userdata;
777 list_item->chk_status = elm_check_state_get(obj); /* for genlist update status */
778 if (!safeStrCmp(KeyStr_Powersaving_Mode, list_item->keyStr)) {
779 setting_powersaving_view_disable(ad, !list_item->chk_status);
780 int reminder_flag = TRUE;
782 vconf_get_bool(VCONFKEY_SETAPPL_PWRSV_SYSMODE_STATUS_REMINDER,
785 SETTING_TRACE_ERROR("Failed to get vconf value");
787 SETTING_TRACE("reminder_flag:%d", reminder_flag);
788 if (list_item->chk_status && reminder_flag) {
790 setting_create_popup_with_image_check(ad, ad->win_get,
792 _(POWERSAVING_REMINDER), NULL,NULL,
795 __powersaving_on_resp_cb,
797 2, _("IDS_COM_SK_OK"),
798 _("IDS_COM_SK_CANCEL"));
803 vconf_set_bool(VCONFKEY_SETAPPL_PWRSV_SYSMODE_STATUS,
804 list_item->chk_status);
805 if (0 != ret) { /* rollback */
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);
811 if (list_item->chk_status) {//powersaving is on
813 vconf_get_bool(VCONFKEY_SETAPPL_PWRSV_CUSTMODE_SCREEN_VIB, &pwrsv_vib);
815 //touch feedback virbration
817 vconf_get_int(VCONFKEY_SETAPPL_TOUCH_FEEDBACK_VIBRATION_LEVEL_INT, &value);
818 vconf_set_int(VCONFKEY_SETAPPL_TOUCH_FEEDBACK_VIBRATION_LEVEL_BAK_INT, value);//backup
819 vconf_set_int(VCONFKEY_SETAPPL_TOUCH_FEEDBACK_VIBRATION_LEVEL_INT, 0);
821 } else {//powersaving is off
822 //touch feedback virbration
824 vconf_get_int(VCONFKEY_SETAPPL_TOUCH_FEEDBACK_VIBRATION_LEVEL_BAK_INT, &value);
825 vconf_set_int(VCONFKEY_SETAPPL_TOUCH_FEEDBACK_VIBRATION_LEVEL_INT, value);
828 else if(!safeStrCmp(KeyStr_Powersaving_Customed_Mode, list_item->keyStr))
830 int err = vconf_set_bool(VCONFKEY_SETAPPL_PWRSV_CUSTMODE_STATUS,
831 list_item->chk_status);
834 SETTING_TRACE_ERROR("Set vconf Failed");
835 list_item->chk_status = !list_item->chk_status;
836 elm_check_state_set(obj, list_item->chk_status);
839 if (0 == list_item->chk_status) {
841 if (ad->data_customed_setting)
843 setting_disable_genlist_item(ad->data_customed_setting->item);
846 //Powersavings actived
847 if (ad->data_customed_setting) {
848 setting_enable_genlist_item(ad->data_customed_setting->item);
852 else if(!safeStrCmp(KeyStr_CPU_PS, list_item->keyStr))
854 int err = vconf_set_bool(VCONFKEY_SETAPPL_PWRSV_CUSTMODE_CPU, list_item->chk_status);
857 SETTING_TRACE_ERROR("Set vconf Failed");
858 list_item->chk_status = !list_item->chk_status;
859 elm_check_state_set(obj, list_item->chk_status);
863 else if(!safeStrCmp(KeyStr_DISPLAY_PS, list_item->keyStr))
865 int err = vconf_set_bool(VCONFKEY_SETAPPL_PWRSV_CUSTMODE_DISPLAY, list_item->chk_status);
868 SETTING_TRACE_ERROR("Set vconf Failed");
869 list_item->chk_status = !list_item->chk_status;
870 elm_check_state_set(obj, list_item->chk_status);
874 else if(!safeStrCmp(KeyStr_BG_COLOR, list_item->keyStr))
876 int err = vconf_set_bool(VCONFKEY_SETAPPL_PWRSV_CUSTMODE_BG_COLOR, list_item->chk_status);
879 SETTING_TRACE_ERROR("Set vconf Failed");
880 list_item->chk_status = !list_item->chk_status;
881 elm_check_state_set(obj, list_item->chk_status);
884 if (list_item->chk_status)
889 else if(!safeStrCmp(KeyStr_SCREEN_VIB, list_item->keyStr))
891 int err = vconf_set_bool(VCONFKEY_SETAPPL_PWRSV_CUSTMODE_SCREEN_VIB, list_item->chk_status);
894 SETTING_TRACE_ERROR("Set vconf Failed");
895 list_item->chk_status = !list_item->chk_status;
896 elm_check_state_set(obj, list_item->chk_status);
900 //take it into effect
902 if (list_item->chk_status){
903 //touch feedback virbration
904 vconf_get_int(VCONFKEY_SETAPPL_TOUCH_FEEDBACK_VIBRATION_LEVEL_INT, &value);
905 vconf_set_int(VCONFKEY_SETAPPL_TOUCH_FEEDBACK_VIBRATION_LEVEL_BAK_INT, value);//backup
906 vconf_set_int(VCONFKEY_SETAPPL_TOUCH_FEEDBACK_VIBRATION_LEVEL_INT, 0);
908 //touch feedback virbration
909 vconf_get_int(VCONFKEY_SETAPPL_TOUCH_FEEDBACK_VIBRATION_LEVEL_BAK_INT, &value);
910 vconf_set_int(VCONFKEY_SETAPPL_TOUCH_FEEDBACK_VIBRATION_LEVEL_INT, value);
917 static void setting_powersaving_view_disable(void *data, bool disable)
921 ret_if(data == NULL);
922 SettingPowersavingUG *ad = (SettingPowersavingUG *) data;
925 if (ad->data_cpu_ps) setting_disable_genlist_item(ad->data_cpu_ps->item);
926 if (ad->data_display_ps) setting_disable_genlist_item(ad->data_display_ps->item);
927 if (ad->data_bg_color) setting_disable_genlist_item(ad->data_bg_color->item);
928 if (ad->data_screen_vib) setting_disable_genlist_item(ad->data_screen_vib->item);
932 if (ad->data_cpu_ps) setting_enable_genlist_item(ad->data_cpu_ps->item);
933 if (ad->data_display_ps) setting_enable_genlist_item(ad->data_display_ps->item);
934 if (ad->data_bg_color) setting_enable_genlist_item(ad->data_bg_color->item);
935 if (ad->data_screen_vib) setting_enable_genlist_item(ad->data_screen_vib->item);