diff options
-rw-r--r-- | src/com/android/settings/BrightnessPreference.java | 25 | ||||
-rw-r--r-- | src/com/android/settings/widget/SettingsAppWidgetProvider.java | 58 |
2 files changed, 39 insertions, 44 deletions
diff --git a/src/com/android/settings/BrightnessPreference.java b/src/com/android/settings/BrightnessPreference.java index eff5c50..a80ceb9 100644 --- a/src/com/android/settings/BrightnessPreference.java +++ b/src/com/android/settings/BrightnessPreference.java @@ -24,6 +24,7 @@ import android.os.Handler; import android.os.IPowerManager; import android.os.Parcel; import android.os.Parcelable; +import android.os.PowerManager; import android.os.RemoteException; import android.os.ServiceManager; import android.preference.SeekBarDialogPreference; @@ -37,6 +38,8 @@ import android.widget.SeekBar; public class BrightnessPreference extends SeekBarDialogPreference implements SeekBar.OnSeekBarChangeListener, CheckBox.OnCheckedChangeListener { + private final int mScreenBrightnessMinimum; + private final int mScreenBrightnessMaximum; private SeekBar mSeekBar; private CheckBox mCheckBox; @@ -51,12 +54,6 @@ public class BrightnessPreference extends SeekBarDialogPreference implements private boolean mRestoredOldState; - // Backlight range is from 0 - 255. Need to make sure that user - // doesn't set the backlight to 0 and get stuck - private int mScreenBrightnessDim = - getContext().getResources().getInteger(com.android.internal.R.integer.config_screenBrightnessDim); - private static final int MAXIMUM_BACKLIGHT = android.os.PowerManager.BRIGHTNESS_ON; - private static final int SEEK_BAR_RANGE = 10000; private ContentObserver mBrightnessObserver = new ContentObserver(new Handler()) { @@ -77,6 +74,10 @@ public class BrightnessPreference extends SeekBarDialogPreference implements public BrightnessPreference(Context context, AttributeSet attrs) { super(context, attrs); + PowerManager pm = (PowerManager)context.getSystemService(Context.POWER_SERVICE); + mScreenBrightnessMinimum = pm.getMinimumScreenBrightnessSetting(); + mScreenBrightnessMaximum = pm.getMaximumScreenBrightnessSetting(); + mAutomaticAvailable = context.getResources().getBoolean( com.android.internal.R.bool.config_automatic_brightness_available); @@ -155,8 +156,8 @@ public class BrightnessPreference extends SeekBarDialogPreference implements } else { brightness = mCurBrightness; } - brightness = (brightness - mScreenBrightnessDim) - / (MAXIMUM_BACKLIGHT - mScreenBrightnessDim); + brightness = (brightness - mScreenBrightnessMinimum) + / (mScreenBrightnessMaximum - mScreenBrightnessMinimum); } return (int)(brightness*SEEK_BAR_RANGE); } @@ -218,7 +219,7 @@ public class BrightnessPreference extends SeekBarDialogPreference implements IPowerManager power = IPowerManager.Stub.asInterface( ServiceManager.getService("power")); if (power != null) { - power.setAutoBrightnessAdjustment(valf); + power.setTemporaryScreenAutoBrightnessAdjustmentSettingOverride(valf); } if (write) { final ContentResolver resolver = getContext().getContentResolver(); @@ -229,13 +230,13 @@ public class BrightnessPreference extends SeekBarDialogPreference implements } } } else { - int range = (MAXIMUM_BACKLIGHT - mScreenBrightnessDim); - brightness = (brightness*range)/SEEK_BAR_RANGE + mScreenBrightnessDim; + int range = (mScreenBrightnessMaximum - mScreenBrightnessMinimum); + brightness = (brightness * range)/SEEK_BAR_RANGE + mScreenBrightnessMinimum; try { IPowerManager power = IPowerManager.Stub.asInterface( ServiceManager.getService("power")); if (power != null) { - power.setBacklightBrightness(brightness); + power.setTemporaryScreenBrightnessSettingOverride(brightness); } if (write) { mCurBrightness = -1; diff --git a/src/com/android/settings/widget/SettingsAppWidgetProvider.java b/src/com/android/settings/widget/SettingsAppWidgetProvider.java index 1d411f7..3fe5b39 100644 --- a/src/com/android/settings/widget/SettingsAppWidgetProvider.java +++ b/src/com/android/settings/widget/SettingsAppWidgetProvider.java @@ -34,6 +34,7 @@ import android.net.wifi.WifiManager; import android.os.AsyncTask; import android.os.Handler; import android.os.IPowerManager; +import android.os.PowerManager; import android.os.RemoteException; import android.os.ServiceManager; import android.provider.Settings; @@ -94,16 +95,10 @@ public class SettingsAppWidgetProvider extends AppWidgetProvider { R.drawable.appwidget_settings_ind_on_r_holo }; - /** - * Minimum and maximum brightnesses. Don't go to 0 since that makes the display unusable - */ - private static final int MINIMUM_BACKLIGHT = android.os.PowerManager.BRIGHTNESS_DIM + 10; - private static final int MAXIMUM_BACKLIGHT = android.os.PowerManager.BRIGHTNESS_ON; - private static final int DEFAULT_BACKLIGHT = (int) (android.os.PowerManager.BRIGHTNESS_ON * 0.4f); /** Minimum brightness at which the indicator is shown at half-full and ON */ - private static final int HALF_BRIGHTNESS_THRESHOLD = (int) (0.3 * MAXIMUM_BACKLIGHT); + private static final float HALF_BRIGHTNESS_THRESHOLD = 0.3f; /** Minimum brightness at which the indicator is shown at full */ - private static final int FULL_BRIGHTNESS_THRESHOLD = (int) (0.8 * MAXIMUM_BACKLIGHT); + private static final float FULL_BRIGHTNESS_THRESHOLD = 0.8f; private static final StateTracker sWifiState = new WifiStateTracker(); private static final StateTracker sBluetoothState = new BluetoothStateTracker(); @@ -684,11 +679,16 @@ public class SettingsAppWidgetProvider extends AppWidgetProvider { R.drawable.appwidget_settings_ind_on_r_holo); } else { final int brightness = getBrightness(context); + final PowerManager pm = (PowerManager)context.getSystemService(Context.POWER_SERVICE); // Set the icon - if (brightness > FULL_BRIGHTNESS_THRESHOLD) { + final int full = (int)(pm.getMaximumScreenBrightnessSetting() + * FULL_BRIGHTNESS_THRESHOLD); + final int half = (int)(pm.getMaximumScreenBrightnessSetting() + * HALF_BRIGHTNESS_THRESHOLD); + if (brightness > full) { views.setImageViewResource(R.id.img_brightness, R.drawable.ic_appwidget_settings_brightness_full_holo); - } else if (brightness > HALF_BRIGHTNESS_THRESHOLD) { + } else if (brightness > half) { views.setImageViewResource(R.id.img_brightness, R.drawable.ic_appwidget_settings_brightness_half_holo); } else { @@ -696,7 +696,7 @@ public class SettingsAppWidgetProvider extends AppWidgetProvider { R.drawable.ic_appwidget_settings_brightness_off_holo); } // Set the ON state - if (brightness > HALF_BRIGHTNESS_THRESHOLD) { + if (brightness > half) { views.setImageViewResource(R.id.ind_brightness, R.drawable.appwidget_settings_ind_on_r_holo); } else { @@ -775,13 +775,9 @@ public class SettingsAppWidgetProvider extends AppWidgetProvider { */ private static int getBrightness(Context context) { try { - IPowerManager power = IPowerManager.Stub.asInterface( - ServiceManager.getService("power")); - if (power != null) { - int brightness = Settings.System.getInt(context.getContentResolver(), - Settings.System.SCREEN_BRIGHTNESS); - return brightness; - } + int brightness = Settings.System.getInt(context.getContentResolver(), + Settings.System.SCREEN_BRIGHTNESS); + return brightness; } catch (Exception e) { } return 0; @@ -795,13 +791,9 @@ public class SettingsAppWidgetProvider extends AppWidgetProvider { */ private static boolean getBrightnessMode(Context context) { try { - IPowerManager power = IPowerManager.Stub.asInterface( - ServiceManager.getService("power")); - if (power != null) { - int brightnessMode = Settings.System.getInt(context.getContentResolver(), - Settings.System.SCREEN_BRIGHTNESS_MODE); - return brightnessMode == Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC; - } + int brightnessMode = Settings.System.getInt(context.getContentResolver(), + Settings.System.SCREEN_BRIGHTNESS_MODE); + return brightnessMode == Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC; } catch (Exception e) { Log.d(TAG, "getBrightnessMode: " + e); } @@ -818,6 +810,8 @@ public class SettingsAppWidgetProvider extends AppWidgetProvider { IPowerManager power = IPowerManager.Stub.asInterface( ServiceManager.getService("power")); if (power != null) { + PowerManager pm = (PowerManager)context.getSystemService(Context.POWER_SERVICE); + ContentResolver cr = context.getContentResolver(); int brightness = Settings.System.getInt(cr, Settings.System.SCREEN_BRIGHTNESS); @@ -832,15 +826,15 @@ public class SettingsAppWidgetProvider extends AppWidgetProvider { // Rotate AUTO -> MINIMUM -> DEFAULT -> MAXIMUM // Technically, not a toggle... if (brightnessMode == Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC) { - brightness = MINIMUM_BACKLIGHT; + brightness = pm.getMinimumScreenBrightnessSetting(); brightnessMode = Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL; - } else if (brightness < DEFAULT_BACKLIGHT) { - brightness = DEFAULT_BACKLIGHT; - } else if (brightness < MAXIMUM_BACKLIGHT) { - brightness = MAXIMUM_BACKLIGHT; + } else if (brightness < pm.getDefaultScreenBrightnessSetting()) { + brightness = pm.getDefaultScreenBrightnessSetting(); + } else if (brightness < pm.getMaximumScreenBrightnessSetting()) { + brightness = pm.getMaximumScreenBrightnessSetting(); } else { brightnessMode = Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC; - brightness = MINIMUM_BACKLIGHT; + brightness = pm.getMinimumScreenBrightnessSetting(); } if (context.getResources().getBoolean( @@ -854,7 +848,7 @@ public class SettingsAppWidgetProvider extends AppWidgetProvider { brightnessMode = Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL; } if (brightnessMode == Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL) { - power.setBacklightBrightness(brightness); + power.setTemporaryScreenBrightnessSettingOverride(brightness); Settings.System.putInt(cr, Settings.System.SCREEN_BRIGHTNESS, brightness); } } |