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 | |
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
-rw-r--r-- | core/res/res/values/config.xml | 3 | ||||
-rw-r--r-- | services/java/com/android/server/PowerManagerService.java | 13 |
2 files changed, 14 insertions, 2 deletions
diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml index 4556740..048e214 100644 --- a/core/res/res/values/config.xml +++ b/core/res/res/values/config.xml @@ -278,6 +278,9 @@ will not debounce light sensor readings --> <integer name="config_lightSensorWarmupTime">0</integer> + <!-- Allows the light sensor to be ignored when flashlight is on --> + <bool name="config_flashlight_affects_lightsensor">false</bool> + <!-- Enables swipe versus poly-finger touch disambiguation in the KeyboardView --> <bool name="config_swipeDisambiguation">true</bool> 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; } |