*basic func
*
***************************************************/
-#if DISABLED_CODE
-static Eina_Bool setting_display_brightness_on_idle(void *data)
+#define LOW_BATTERY_NOTIFY "Battery is too low, you cannot change brightness"
+#define NORMAL_BATTERY_NOTIFY "Battery becomes normal, now you can change brightness.."
+
+static void
+__low_battery_on_resp_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ SETTING_TRACE_BEGIN;
+ setting_retm_if(NULL == data, "NULL == data");
+ SettingDisplayUG *ad = (SettingDisplayUG *) data;
+ evas_object_del(ad->popup);
+ ad->popup = NULL;
+}
+
+static Eina_Bool __disable_on_idle(void *data)
{
SETTING_TRACE_BEGIN;
SettingDisplayUG *ad = (SettingDisplayUG *) data;
- int auto_value, err;
- setting_get_int_slp_key(INT_SLP_SETTING_AUTOMATIC_BRIGHTNESS,
- &auto_value, &err);
- __toggle_automatic_chk(ad, auto_value);
+ if (ad->popup)
+ {
+ evas_object_del(ad->popup);
+ ad->popup = NULL;
+ }
+ ad->popup = setting_create_popup_without_btn(ad, ad->win_get, NULL, _(LOW_BATTERY_NOTIFY),
+ __low_battery_on_resp_cb, POPUP_INTERVAL, FALSE, FALSE);
+ if (ad->data_br_sli) setting_disable_genlist_item(ad->data_br_sli->item);
+ if (ad->data_br_auto) setting_disable_genlist_item(ad->data_br_auto->item);
return FALSE;
}
-#endif
// low battery
static void setting_display_brightness_lowbat_cb(keynode_t *key, void* data)
char* vconf_key = vconf_keynode_get_name(key);
SETTING_TRACE("the value of [ %s ] just changed", vconf_key);
- // VCONFKEY_SYSMAN_BATTERY_STATUS_LOW
-
- int battery_value;
- vconf_get_int(VCONFKEY_SYSMAN_BATTERY_STATUS_LOW, &battery_value);
- ad->low_bat = battery_value;
-
- int automatic_val, err;
- setting_get_int_slp_key(INT_SLP_SETTING_AUTOMATIC_BRIGHTNESS, &automatic_val, &err);
-
- if (battery_value < VCONFKEY_SYSMAN_BAT_WARNING_LOW)
+ ad->low_bat = vconf_keynode_get_int(key);
+ if (ad->low_bat <= VCONFKEY_SYSMAN_BAT_CRITICAL_LOW)
{
+ SETTING_TRACE("Battery becomes ctitical low !");
+ //popup was showed by system FW
// disabled
- if (ad->data_br_sli) {
- setting_disable_genlist_item(ad->data_br_sli->item);
- setting_disable_genlist_item(ad->data_br_auto->item);
- }
+ if (ad->data_br_sli) setting_disable_genlist_item(ad->data_br_sli->item);
+ if (ad->data_br_auto) setting_disable_genlist_item(ad->data_br_auto->item);
} else {
+ SETTING_TRACE("Battery becomes normal!");
if (ad->data_br_sli) {
+ int automatic_val, err;
+ setting_get_int_slp_key(INT_SLP_SETTING_AUTOMATIC_BRIGHTNESS, &automatic_val, &err);
+ if (ad->data_br_auto) setting_enable_genlist_item(ad->data_br_auto->item);
if (automatic_val == SETTING_BRIGHTNESS_AUTOMATIC_OFF) // not automatic
{
- setting_enable_genlist_item(ad->data_br_auto->item);
- setting_enable_genlist_item(ad->data_br_sli->item);
- } else { // automatic
- setting_enable_genlist_item(ad->data_br_auto->item);
- //setting_enable_genlist_item(ad->data_br_sli->item);
+ if (ad->data_br_sli) setting_enable_genlist_item(ad->data_br_sli->item);
}
}
}
- return;
}
static int setting_display_brightness_create(void *cb)
elm_object_part_content_set(sub_layout, "search_list2", genlist);
- int auto_value;
- int err;
- Elm_Object_Item *item = NULL;;
-
- item = elm_genlist_item_append(genlist, &(ad->itc_seperator), NULL, NULL,
- ELM_GENLIST_ITEM_NONE, NULL, NULL);
+ Elm_Object_Item *item = elm_genlist_item_append(genlist, &(ad->itc_seperator), NULL, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
// [control] AUTOMATIC - boolean - vconf
- setting_get_int_slp_key(INT_SLP_SETTING_AUTOMATIC_BRIGHTNESS, &auto_value, &err);
+ int auto_value = SETTING_BRIGHTNESS_AUTOMATIC_ON;
+ int err;
+ int ret = setting_get_int_slp_key(INT_SLP_SETTING_AUTOMATIC_BRIGHTNESS, &auto_value, &err);//if get failed,to hold value SETTING_BRIGHTNESS_AUTOMATIC_ON
SETTING_TRACE("auto_value:%d", auto_value);
-
- if(auto_value == SETTING_BRIGHTNESS_AUTOMATIC_PAUSE)
- auto_value = SETTING_BRIGHTNESS_AUTOMATIC_ON;
+ if (0 != ret) //add error handle,due to different target env..
+ SETTING_TRACE_ERROR("Failed to get value of [%s]", VCONFKEY_SETAPPL_BRIGHTNESS_AUTOMATIC_INT);
// [UI] AUTOMATIC - boolean
ad->data_br_auto =
}
- int battery_value;
- vconf_get_int(VCONFKEY_SYSMAN_BATTERY_STATUS_LOW, &battery_value);
- ad->low_bat = battery_value;
-
- if (ad->low_bat < VCONFKEY_SYSMAN_BAT_WARNING_LOW) {
- }
-
/* check manual */
- int max_brt;
- if (DEVICE_ERROR_NONE != device_get_max_brightness(BRIGHTNESS_DISPLAY, &max_brt)) {
- SETTING_TRACE("Fail to get the max brightness of the display.\n");
- max_brt = 10;
- } else {
- SETTING_TRACE("Max brightness of the display is %d\n", max_brt);
- }
-
- // get initial value from vconf
- int value = SETTING_BRIGHTNESS_LEVEL7;
- int ret = setting_get_int_slp_key(INT_SLP_SETTING_LCD_BRIGHTNESS, &value, &err);
- if (ret == SETTING_RETURN_FAIL) {
- value = SETTING_BRIGHTNESS_LEVEL5;
- SETTING_TRACE("******* value = %d ", value);
- }
+ int value = SETTING_BRIGHTNESS_LEVEL5;
+ ret = setting_get_int_slp_key(INT_SLP_SETTING_LCD_BRIGHTNESS, &value, &err);
+ SETTING_TRACE("******* value = %d ", value);
+ if (0 != ret) //add error handle,due to different target env..
+ SETTING_TRACE_ERROR("Failed to get value of [%s]", VCONFKEY_SETAPPL_LCD_BRIGHTNESS);
// [UI] Slider control for Bightness
ad->data_br_sli =
ad->data_br_sli->evas = ad->evas;
ad->data_br_sli->isIndicatorVisible = false;
ad->data_br_sli->slider_min = 1;
+
+ int max_brt = 10;
+ device_get_max_brightness(BRIGHTNESS_DISPLAY, &max_brt);
+ SETTING_TRACE("******* max_brt = %d ", max_brt);
ad->data_br_sli->slider_max = max_brt;
ad->data_br_sli->userdata = ad;
SETTING_TRACE_ERROR("ad->data_br_sli is NULL");
}
- vconf_get_int(VCONFKEY_SYSMAN_BATTERY_STATUS_LOW, &battery_value);
- ad->low_bat = battery_value;
-
- if (ad->low_bat < VCONFKEY_SYSMAN_BAT_WARNING_LOW) {
- if (ad->data_br_sli) {
- setting_disable_genlist_item(ad->data_br_sli->item);
- setting_disable_genlist_item(ad->data_br_auto->item);
- }
+ ad->low_bat = VCONFKEY_SYSMAN_BAT_NORMAL;
+ vconf_get_int(VCONFKEY_SYSMAN_BATTERY_STATUS_LOW, &ad->low_bat);
+ if (0 != ret) //add error handle,due to different target env..
+ SETTING_TRACE_ERROR("Failed to get value of [%s]", VCONFKEY_SYSMAN_BATTERY_STATUS_LOW);
+
+ if (ad->low_bat <= VCONFKEY_SYSMAN_BAT_CRITICAL_LOW) {
+ SETTING_TRACE("battery is ctitical low");
+ //have time delay to show all the item out,so user idler to disable
+ //if (ad->data_br_sli) setting_disable_genlist_item(ad->data_br_sli->item);
+ //if (ad->data_br_auto) setting_disable_genlist_item(ad->data_br_auto->item);
+ ecore_idler_add(__disable_on_idle, ad);
}
// low battery handler - registration
vconf_notify_key_changed(VCONFKEY_SYSMAN_BATTERY_STATUS_LOW, setting_display_brightness_lowbat_cb, ad);
-
setting_view_display_brightness.is_create = 1;
- //ecore_idler_add(setting_display_brightness_on_idle, ad);
return SETTING_RETURN_SUCCESS;
}
SettingDisplayUG *ad = (SettingDisplayUG *) cb;
elm_naviframe_item_pop(ad->navi_bar);
+ if (ad->popup)
+ {
+ evas_object_del(ad->popup);
+ ad->popup = NULL;
+ }
setting_view_display_brightness.is_create = 0;
return SETTING_RETURN_SUCCESS;
{
int err;
SettingDisplayUG *ad = (SettingDisplayUG *) data;
+ int ret = setting_set_int_slp_key(INT_SLP_SETTING_AUTOMATIC_BRIGHTNESS, chk_status, &err);
+ if (0 != ret) //add error handle,due to different target env..
+ {
+ SETTING_TRACE("Operation failed");
+ setting_create_popup_without_btn(ad, ad->win_get, NULL, _("IDS_COM_POP_FAILED"),
+ NULL, POPUP_INTERVAL, FALSE, FALSE);
+ return;
+ }
if (chk_status) {
// TOGGLE ON
setting_disable_genlist_item(ad->data_br_sli->item);
} else {
// TOGGLE OFF
- int value = SETTING_BRIGHTNESS_LEVEL7;
- //device_get_brightness(BRIGHTNESS_DISPLAY, &value);
- value = elm_slider_value_get(ad->data_br_sli->eo_check);
-
- SETTING_TRACE(" SENOSR :: %d ", value);
-
- setting_set_int_slp_key(INT_SLP_SETTING_LCD_BRIGHTNESS, value, &err);
+ //to get value every time
+ ad->low_bat = VCONFKEY_SYSMAN_BAT_NORMAL;
+ ret = vconf_get_int(VCONFKEY_SYSMAN_BATTERY_STATUS_LOW, &ad->low_bat);
+ if (0 != ret) //add error handle,due to different target env..
+ {
+ SETTING_TRACE("Operation failed");
+ setting_create_popup_without_btn(ad, ad->win_get, NULL, _("IDS_COM_POP_FAILED"),
+ NULL, POPUP_INTERVAL, FALSE, FALSE);
+ return;
+ }
- if (ad->low_bat < VCONFKEY_SYSMAN_BAT_WARNING_LOW) {
+ if (ad->low_bat <= VCONFKEY_SYSMAN_BAT_CRITICAL_LOW)
+ {
setting_disable_genlist_item(ad->data_br_sli->item);
setting_disable_genlist_item(ad->data_br_auto->item);
- setting_set_int_slp_key(INT_SLP_SETTING_AUTOMATIC_BRIGHTNESS, chk_status, &err);
- return;
}
-
- ad->data_br_sli->chk_status = value;
- setting_set_int_slp_key(INT_SLP_SETTING_LCD_BRIGHTNESS, value, &err);
- elm_slider_value_set(ad->data_br_sli->eo_check, value);
-
- setting_enable_genlist_item(ad->data_br_sli->item);
+ else
+ {
+ int value = SETTING_BRIGHTNESS_LEVEL5;
+ //device_get_brightness(BRIGHTNESS_DISPLAY, &value);
+ if (ad->data_br_sli) value = elm_slider_value_get(ad->data_br_sli->eo_check);
+ SETTING_TRACE(" value of ad->data_br_sli->eo_check: %d ", value);
+ setting_enable_genlist_item(ad->data_br_sli->item);
+ ret = setting_set_int_slp_key(INT_SLP_SETTING_LCD_BRIGHTNESS, value, &err);
+ if (0 != ret) //add error handle,due to different target env..
+ {
+ SETTING_TRACE("Operation failed");
+ setting_create_popup_without_btn(ad, ad->win_get, NULL, _("IDS_COM_POP_FAILED"),
+ NULL, POPUP_INTERVAL, FALSE, FALSE);
+ return;
+ }
+ }
}
-
- setting_set_int_slp_key(INT_SLP_SETTING_AUTOMATIC_BRIGHTNESS, chk_status, &err);
}
static void
SettingDisplayUG *ad = data;
int ret, err;
-
-#ifdef USE_DEVICE_SET_DISPLAY_BRT
ret = device_set_brightness(BRIGHTNESS_DISPLAY, value);
if (ret == DEVICE_ERROR_NONE) {
ad->data_br_sli->chk_status = value;
ret = setting_set_int_slp_key(INT_SLP_SETTING_LCD_BRIGHTNESS, value, &err);
+ //add error handle..
+ if (0 != ret) setting_create_popup_without_btn(ad, ad->win_get, NULL, _("IDS_COM_POP_FAILED"),
+ NULL, POPUP_INTERVAL, FALSE, FALSE);
} else {
/* SETTING_TRACE("device_set_brightness : failed"); */
+ //rollback..
+ int tmp = SETTING_BRIGHTNESS_LEVEL5;
+ setting_get_int_slp_key(INT_SLP_SETTING_LCD_BRIGHTNESS, &tmp, &err);
+ elm_slider_value_set(obj, tmp);
+ setting_create_popup_without_btn(ad, ad->win_get, NULL, _("IDS_COM_POP_FAILED"),
+ NULL, POPUP_INTERVAL, FALSE, FALSE);
}
-#endif
}