summaryrefslogtreecommitdiffstats
path: root/services/java/com/android/server/PowerManagerService.java
diff options
context:
space:
mode:
authornadlabak <pavel@doshaska.net>2010-12-05 08:47:32 -0800
committernadlabak <pavel@doshaska.net>2010-12-05 08:47:32 -0800
commitab3fc3dc83e71a2e34adf55bd9a46df2e7e1fed5 (patch)
treec47c8a562380c579e1e7eede59419c13d5bbee56 /services/java/com/android/server/PowerManagerService.java
parent04d8fc705dcd80dd0a91f9f811c6aa8fe7329ba6 (diff)
downloadframeworks_base-ab3fc3dc83e71a2e34adf55bd9a46df2e7e1fed5.zip
frameworks_base-ab3fc3dc83e71a2e34adf55bd9a46df2e7e1fed5.tar.gz
frameworks_base-ab3fc3dc83e71a2e34adf55bd9a46df2e7e1fed5.tar.bz2
allow the light sensor to be ignored when flashlight is on
on certain devices, the flashlight affects the light sensor, causing the display autobrightness to switch to the maximum level when flashlight is on Change-Id: I22d623ce5457fc3ae177b609da8b51904bc73e83
Diffstat (limited to 'services/java/com/android/server/PowerManagerService.java')
-rw-r--r--services/java/com/android/server/PowerManagerService.java13
1 files changed, 11 insertions, 2 deletions
diff --git a/services/java/com/android/server/PowerManagerService.java b/services/java/com/android/server/PowerManagerService.java
index 8373be0..457622e 100644
--- a/services/java/com/android/server/PowerManagerService.java
+++ b/services/java/com/android/server/PowerManagerService.java
@@ -62,6 +62,7 @@ import static android.provider.Settings.System.SCREEN_BRIGHTNESS_MODE;
import static android.provider.Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC;
import static android.provider.Settings.System.SCREEN_OFF_TIMEOUT;
import static android.provider.Settings.System.STAY_ON_WHILE_PLUGGED_IN;
+import static android.provider.Settings.System.TORCH_STATE;
import java.io.FileDescriptor;
import java.io.IOException;
@@ -240,6 +241,8 @@ class PowerManagerService extends IPowerManager.Stub
private int[] mButtonBacklightValues;
private int[] mKeyboardBacklightValues;
private int mLightSensorWarmupTime;
+ private boolean mFlashlightAffectsLightSensor;
+ private boolean mIgnoreLightSensor;
// Custom light housekeeping
private long mLightSettingsTag = -1;
@@ -455,6 +458,8 @@ class PowerManagerService extends IPowerManager.Stub
// DIM_SCREEN
//mDimScreen = getInt(DIM_SCREEN) != 0;
+ mIgnoreLightSensor = (getInt(TORCH_STATE) != 0) && mFlashlightAffectsLightSensor;
+
updateLightSettings();
// SCREEN_BRIGHTNESS_MODE
@@ -542,6 +547,8 @@ class PowerManagerService extends IPowerManager.Stub
Resources resources = mContext.getResources();
// read settings for auto-brightness
+ mFlashlightAffectsLightSensor = resources.getBoolean(
+ com.android.internal.R.bool.config_flashlight_affects_lightsensor);
mUseSoftwareAutoBrightness = resources.getBoolean(
com.android.internal.R.bool.config_automatic_brightness_available);
if (mUseSoftwareAutoBrightness) {
@@ -563,9 +570,10 @@ class PowerManagerService extends IPowerManager.Stub
+ Settings.System.NAME + "=?) or ("
+ Settings.System.NAME + "=?) or ("
+ Settings.System.NAME + "=?) or ("
+ + Settings.System.NAME + "=?) or ("
+ Settings.System.NAME + "=?)",
new String[]{STAY_ON_WHILE_PLUGGED_IN, SCREEN_OFF_TIMEOUT, DIM_SCREEN,
- SCREEN_BRIGHTNESS_MODE, Settings.System.LIGHTS_CHANGED},
+ SCREEN_BRIGHTNESS_MODE, TORCH_STATE, Settings.System.LIGHTS_CHANGED},
null);
mSettings = new ContentQueryMap(settingsCursor, Settings.System.NAME, true, mHandler);
SettingsObserver settingsObserver = new SettingsObserver();
@@ -3149,7 +3157,8 @@ class PowerManagerService extends IPowerManager.Stub
public void onSensorChanged(SensorEvent event) {
synchronized (mLocks) {
// ignore light sensor while screen is turning off
- if (isScreenTurningOffLocked()) {
+ // or when flashlight would affect it
+ if (isScreenTurningOffLocked() || mIgnoreLightSensor) {
return;
}