diff options
author | nadlabak <pavel@doshaska.net> | 2010-12-05 08:47:32 -0800 |
---|---|---|
committer | nadlabak <pavel@doshaska.net> | 2010-12-05 08:47:32 -0800 |
commit | ab3fc3dc83e71a2e34adf55bd9a46df2e7e1fed5 (patch) | |
tree | c47c8a562380c579e1e7eede59419c13d5bbee56 /services/java/com/android/server/PowerManagerService.java | |
parent | 04d8fc705dcd80dd0a91f9f811c6aa8fe7329ba6 (diff) | |
download | frameworks_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.java | 13 |
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; } |