package com.bwx.bequick.handlers; import android.app.Activity; import android.content.ContentResolver; import android.provider.Settings; import android.view.Window; import android.view.WindowManager.LayoutParams; import com.bwx.bequick.fwk.RangeSetting; import com.bwx.bequick.fwk.Setting; public class BrightnessSettingHandlerX10 extends BrightnessSettingHandler { public static final String DEVICE = "SonyEricssonX10i"; public static final int SDK_VERSION = 4; private static final int MAXIMUM = 254; private static final int MINIMUM = 18; private static final int RANGE = MAXIMUM - MINIMUM; public BrightnessSettingHandlerX10(Setting setting) { super(setting); } protected int getMinimum() { return MINIMUM; } protected int getMaximum() { return MAXIMUM; } protected int getRange() { return RANGE; } protected void setAutobrightness(Activity activity, ContentResolver resolver, boolean on) { super.setAutobrightness(activity, resolver, on); // set auto brightness on/off int value = on ? 255 : 128; // auto or middle brightness Settings.System.putInt(resolver, Settings.System.SCREEN_BRIGHTNESS, value); if (!on) { // update slider RangeSetting setting = (RangeSetting) mSetting; setting.value = getPercentValue(value); setting.descr = null; setting.enabled = false; setting.checked = false; setting.updateView(); } // update current view's brightness LayoutParams attrs = mActivity.getWindow().getAttributes(); attrs.screenBrightness = on ? 1f : value / (float) getMaximum(); // request brightness update Window window = mActivity.getWindow(); window.setAttributes(attrs); } }