Loading core/res/res/values/config.xml +5 −0 Original line number Diff line number Diff line Loading @@ -200,6 +200,11 @@ <integer-array name="config_autoBrightnessKeyboardBacklightValues"> </integer-array> <!-- Amount of time it takes for the light sensor to warm up in milliseconds. For this time after the screen turns on, the Power Manager will not debounce light sensor readings --> <integer name="config_lightSensorWarmupTime">0</integer> <!-- Enables swipe versus poly-finger touch disambiguation in the KeyboardView --> <bool name="config_swipeDisambiguation">true</bool> </resources> services/java/com/android/server/PowerManagerService.java +24 −11 Original line number Diff line number Diff line Loading @@ -212,8 +212,12 @@ class PowerManagerService extends IPowerManager.Stub private volatile boolean mPokeAwakeOnSet = false; private volatile boolean mInitComplete = false; private HashMap<IBinder,PokeLock> mPokeLocks = new HashMap<IBinder,PokeLock>(); // mScreenOnTime and mScreenOnStartTime are used for computing total time screen // has been on since boot private long mScreenOnTime; private long mScreenOnStartTime; // mLastScreenOnTime is the time the screen was last turned on private long mLastScreenOnTime; private boolean mPreventScreenOn; private int mScreenBrightnessOverride = -1; private boolean mUseSoftwareAutoBrightness; Loading @@ -222,6 +226,7 @@ class PowerManagerService extends IPowerManager.Stub private int[] mLcdBacklightValues; private int[] mButtonBacklightValues; private int[] mKeyboardBacklightValues; private int mLightSensorWarmupTime; // Used when logging number and duration of touch-down cycles private long mTotalTouchDownTime; Loading Loading @@ -456,6 +461,8 @@ class PowerManagerService extends IPowerManager.Stub com.android.internal.R.array.config_autoBrightnessButtonBacklightValues); mKeyboardBacklightValues = resources.getIntArray( com.android.internal.R.array.config_autoBrightnessKeyboardBacklightValues); mLightSensorWarmupTime = resources.getInteger( com.android.internal.R.integer.config_lightSensorWarmupTime); } ContentResolver resolver = mContext.getContentResolver(); Loading Loading @@ -886,6 +893,7 @@ class PowerManagerService extends IPowerManager.Stub pw.println(" mPreventScreenOn=" + mPreventScreenOn + " mScreenBrightnessOverride=" + mScreenBrightnessOverride); pw.println(" mTotalDelaySetting=" + mTotalDelaySetting); pw.println(" mLastScreenOnTime=" + mLastScreenOnTime); pw.println(" mBroadcastWakeLock=" + mBroadcastWakeLock); pw.println(" mStayOnWhilePluggedInScreenDimLock=" + mStayOnWhilePluggedInScreenDimLock); pw.println(" mStayOnWhilePluggedInPartialLock=" + mStayOnWhilePluggedInPartialLock); Loading Loading @@ -1299,7 +1307,9 @@ class PowerManagerService extends IPowerManager.Stub private int setScreenStateLocked(boolean on) { int err = Power.setScreenState(on); if (err == 0 && mUseSoftwareAutoBrightness) { if (err == 0) { mLastScreenOnTime = (on ? SystemClock.elapsedRealtime() : 0); if (mUseSoftwareAutoBrightness) { enableLightSensor(on); if (!on) { // make sure button and key backlights are off too Loading @@ -1310,6 +1320,7 @@ class PowerManagerService extends IPowerManager.Stub mLightSensorValue = -1; } } } return err; } Loading Loading @@ -2431,13 +2442,15 @@ class PowerManagerService extends IPowerManager.Stub public void onSensorChanged(SensorEvent event) { synchronized (mLocks) { int value = (int)event.values[0]; long milliseconds = event.timestamp / 1000000; if (mDebugLightSensor) { Log.d(TAG, "onSensorChanged: light value: " + value); } mHandler.removeCallbacks(mAutoBrightnessTask); if (mLightSensorValue != value) { if (mLightSensorValue == -1) { // process the value immediately if (mLightSensorValue == -1 || milliseconds < mLastScreenOnTime + mLightSensorWarmupTime) { // process the value immediately if screen has just turned on lightSensorChangedLocked(value); } else { // delay processing to debounce the sensor Loading Loading
core/res/res/values/config.xml +5 −0 Original line number Diff line number Diff line Loading @@ -200,6 +200,11 @@ <integer-array name="config_autoBrightnessKeyboardBacklightValues"> </integer-array> <!-- Amount of time it takes for the light sensor to warm up in milliseconds. For this time after the screen turns on, the Power Manager will not debounce light sensor readings --> <integer name="config_lightSensorWarmupTime">0</integer> <!-- Enables swipe versus poly-finger touch disambiguation in the KeyboardView --> <bool name="config_swipeDisambiguation">true</bool> </resources>
services/java/com/android/server/PowerManagerService.java +24 −11 Original line number Diff line number Diff line Loading @@ -212,8 +212,12 @@ class PowerManagerService extends IPowerManager.Stub private volatile boolean mPokeAwakeOnSet = false; private volatile boolean mInitComplete = false; private HashMap<IBinder,PokeLock> mPokeLocks = new HashMap<IBinder,PokeLock>(); // mScreenOnTime and mScreenOnStartTime are used for computing total time screen // has been on since boot private long mScreenOnTime; private long mScreenOnStartTime; // mLastScreenOnTime is the time the screen was last turned on private long mLastScreenOnTime; private boolean mPreventScreenOn; private int mScreenBrightnessOverride = -1; private boolean mUseSoftwareAutoBrightness; Loading @@ -222,6 +226,7 @@ class PowerManagerService extends IPowerManager.Stub private int[] mLcdBacklightValues; private int[] mButtonBacklightValues; private int[] mKeyboardBacklightValues; private int mLightSensorWarmupTime; // Used when logging number and duration of touch-down cycles private long mTotalTouchDownTime; Loading Loading @@ -456,6 +461,8 @@ class PowerManagerService extends IPowerManager.Stub com.android.internal.R.array.config_autoBrightnessButtonBacklightValues); mKeyboardBacklightValues = resources.getIntArray( com.android.internal.R.array.config_autoBrightnessKeyboardBacklightValues); mLightSensorWarmupTime = resources.getInteger( com.android.internal.R.integer.config_lightSensorWarmupTime); } ContentResolver resolver = mContext.getContentResolver(); Loading Loading @@ -886,6 +893,7 @@ class PowerManagerService extends IPowerManager.Stub pw.println(" mPreventScreenOn=" + mPreventScreenOn + " mScreenBrightnessOverride=" + mScreenBrightnessOverride); pw.println(" mTotalDelaySetting=" + mTotalDelaySetting); pw.println(" mLastScreenOnTime=" + mLastScreenOnTime); pw.println(" mBroadcastWakeLock=" + mBroadcastWakeLock); pw.println(" mStayOnWhilePluggedInScreenDimLock=" + mStayOnWhilePluggedInScreenDimLock); pw.println(" mStayOnWhilePluggedInPartialLock=" + mStayOnWhilePluggedInPartialLock); Loading Loading @@ -1299,7 +1307,9 @@ class PowerManagerService extends IPowerManager.Stub private int setScreenStateLocked(boolean on) { int err = Power.setScreenState(on); if (err == 0 && mUseSoftwareAutoBrightness) { if (err == 0) { mLastScreenOnTime = (on ? SystemClock.elapsedRealtime() : 0); if (mUseSoftwareAutoBrightness) { enableLightSensor(on); if (!on) { // make sure button and key backlights are off too Loading @@ -1310,6 +1320,7 @@ class PowerManagerService extends IPowerManager.Stub mLightSensorValue = -1; } } } return err; } Loading Loading @@ -2431,13 +2442,15 @@ class PowerManagerService extends IPowerManager.Stub public void onSensorChanged(SensorEvent event) { synchronized (mLocks) { int value = (int)event.values[0]; long milliseconds = event.timestamp / 1000000; if (mDebugLightSensor) { Log.d(TAG, "onSensorChanged: light value: " + value); } mHandler.removeCallbacks(mAutoBrightnessTask); if (mLightSensorValue != value) { if (mLightSensorValue == -1) { // process the value immediately if (mLightSensorValue == -1 || milliseconds < mLastScreenOnTime + mLightSensorWarmupTime) { // process the value immediately if screen has just turned on lightSensorChangedLocked(value); } else { // delay processing to debounce the sensor Loading