Loading services/java/com/android/server/PowerManagerService.java +19 −8 Original line number Original line Diff line number Diff line Loading @@ -244,6 +244,7 @@ public class PowerManagerService extends IPowerManager.Stub private Handler mHandler; private Handler mHandler; private final TimeoutTask mTimeoutTask = new TimeoutTask(); private final TimeoutTask mTimeoutTask = new TimeoutTask(); private ScreenBrightnessAnimator mScreenBrightnessAnimator; private ScreenBrightnessAnimator mScreenBrightnessAnimator; private boolean mWaitingForFirstLightSensor = false; private boolean mStillNeedSleepNotification; private boolean mStillNeedSleepNotification; private boolean mIsPowered = false; private boolean mIsPowered = false; private IActivityManager mActivityService; private IActivityManager mActivityService; Loading Loading @@ -1755,7 +1756,11 @@ public class PowerManagerService extends IPowerManager.Stub mLastScreenOnTime = (on ? SystemClock.elapsedRealtime() : 0); mLastScreenOnTime = (on ? SystemClock.elapsedRealtime() : 0); if (mUseSoftwareAutoBrightness) { if (mUseSoftwareAutoBrightness) { enableLightSensorLocked(on); enableLightSensorLocked(on); if (!on) { if (on) { // If AutoBrightness is enabled, set the brightness immediately after the // next sensor value is received. mWaitingForFirstLightSensor = mAutoBrightessEnabled; } else { // make sure button and key backlights are off too // make sure button and key backlights are off too mButtonLight.turnOff(); mButtonLight.turnOff(); mKeyboardLight.turnOff(); mKeyboardLight.turnOff(); Loading Loading @@ -2636,7 +2641,7 @@ public class PowerManagerService extends IPowerManager.Stub private void lightSensorChangedLocked(int value, boolean immediate) { private void lightSensorChangedLocked(int value, boolean immediate) { if (mDebugLightSensor) { if (mDebugLightSensor) { Slog.d(TAG, "lightSensorChangedLocked " + value); Slog.d(TAG, "lightSensorChangedLocked value=" + value + " immediate=" + immediate); } } // Don't do anything if the screen is off. // Don't do anything if the screen is off. Loading Loading @@ -3212,7 +3217,9 @@ public class PowerManagerService extends IPowerManager.Stub private void enableLightSensorLocked(boolean enable) { private void enableLightSensorLocked(boolean enable) { if (mDebugLightSensor) { if (mDebugLightSensor) { Slog.d(TAG, "enableLightSensorLocked enable=" + enable Slog.d(TAG, "enableLightSensorLocked enable=" + enable + " mAutoBrightessEnabled=" + mAutoBrightessEnabled); + " mLightSensorEnabled=" + mLightSensorEnabled + " mAutoBrightessEnabled=" + mAutoBrightessEnabled + " mWaitingForFirstLightSensor=" + mWaitingForFirstLightSensor); } } if (!mAutoBrightessEnabled) { if (!mAutoBrightessEnabled) { enable = false; enable = false; Loading @@ -3226,8 +3233,8 @@ public class PowerManagerService extends IPowerManager.Stub // reset our highest value when reenabling // reset our highest value when reenabling mHighestLightSensorValue = -1; mHighestLightSensorValue = -1; // force recompute of backlight values // force recompute of backlight values if (mLightSensorValue >= 0) { final int value = (int)mLightSensorValue; int value = (int)mLightSensorValue; if (value >= 0) { mLightSensorValue = -1; mLightSensorValue = -1; handleLightSensorValue(value, true); handleLightSensorValue(value, true); } } Loading Loading @@ -3291,8 +3298,9 @@ public class PowerManagerService extends IPowerManager.Stub private void handleLightSensorValue(int value, boolean immediate) { private void handleLightSensorValue(int value, boolean immediate) { long milliseconds = SystemClock.elapsedRealtime(); long milliseconds = SystemClock.elapsedRealtime(); if (mLightSensorValue == -1 || if (mLightSensorValue == -1 milliseconds < mLastScreenOnTime + mLightSensorWarmupTime) { || milliseconds < mLastScreenOnTime + mLightSensorWarmupTime || mWaitingForFirstLightSensor) { // process the value immediately if screen has just turned on // process the value immediately if screen has just turned on mHandler.removeCallbacks(mAutoBrightnessTask); mHandler.removeCallbacks(mAutoBrightnessTask); mLightSensorPendingDecrease = false; mLightSensorPendingDecrease = false; Loading Loading @@ -3327,7 +3335,10 @@ public class PowerManagerService extends IPowerManager.Stub if (isScreenTurningOffLocked()) { if (isScreenTurningOffLocked()) { return; return; } } handleLightSensorValue((int)event.values[0], false); handleLightSensorValue((int)event.values[0], mWaitingForFirstLightSensor); if (mWaitingForFirstLightSensor) { mWaitingForFirstLightSensor = false; } } } } } Loading Loading
services/java/com/android/server/PowerManagerService.java +19 −8 Original line number Original line Diff line number Diff line Loading @@ -244,6 +244,7 @@ public class PowerManagerService extends IPowerManager.Stub private Handler mHandler; private Handler mHandler; private final TimeoutTask mTimeoutTask = new TimeoutTask(); private final TimeoutTask mTimeoutTask = new TimeoutTask(); private ScreenBrightnessAnimator mScreenBrightnessAnimator; private ScreenBrightnessAnimator mScreenBrightnessAnimator; private boolean mWaitingForFirstLightSensor = false; private boolean mStillNeedSleepNotification; private boolean mStillNeedSleepNotification; private boolean mIsPowered = false; private boolean mIsPowered = false; private IActivityManager mActivityService; private IActivityManager mActivityService; Loading Loading @@ -1755,7 +1756,11 @@ public class PowerManagerService extends IPowerManager.Stub mLastScreenOnTime = (on ? SystemClock.elapsedRealtime() : 0); mLastScreenOnTime = (on ? SystemClock.elapsedRealtime() : 0); if (mUseSoftwareAutoBrightness) { if (mUseSoftwareAutoBrightness) { enableLightSensorLocked(on); enableLightSensorLocked(on); if (!on) { if (on) { // If AutoBrightness is enabled, set the brightness immediately after the // next sensor value is received. mWaitingForFirstLightSensor = mAutoBrightessEnabled; } else { // make sure button and key backlights are off too // make sure button and key backlights are off too mButtonLight.turnOff(); mButtonLight.turnOff(); mKeyboardLight.turnOff(); mKeyboardLight.turnOff(); Loading Loading @@ -2636,7 +2641,7 @@ public class PowerManagerService extends IPowerManager.Stub private void lightSensorChangedLocked(int value, boolean immediate) { private void lightSensorChangedLocked(int value, boolean immediate) { if (mDebugLightSensor) { if (mDebugLightSensor) { Slog.d(TAG, "lightSensorChangedLocked " + value); Slog.d(TAG, "lightSensorChangedLocked value=" + value + " immediate=" + immediate); } } // Don't do anything if the screen is off. // Don't do anything if the screen is off. Loading Loading @@ -3212,7 +3217,9 @@ public class PowerManagerService extends IPowerManager.Stub private void enableLightSensorLocked(boolean enable) { private void enableLightSensorLocked(boolean enable) { if (mDebugLightSensor) { if (mDebugLightSensor) { Slog.d(TAG, "enableLightSensorLocked enable=" + enable Slog.d(TAG, "enableLightSensorLocked enable=" + enable + " mAutoBrightessEnabled=" + mAutoBrightessEnabled); + " mLightSensorEnabled=" + mLightSensorEnabled + " mAutoBrightessEnabled=" + mAutoBrightessEnabled + " mWaitingForFirstLightSensor=" + mWaitingForFirstLightSensor); } } if (!mAutoBrightessEnabled) { if (!mAutoBrightessEnabled) { enable = false; enable = false; Loading @@ -3226,8 +3233,8 @@ public class PowerManagerService extends IPowerManager.Stub // reset our highest value when reenabling // reset our highest value when reenabling mHighestLightSensorValue = -1; mHighestLightSensorValue = -1; // force recompute of backlight values // force recompute of backlight values if (mLightSensorValue >= 0) { final int value = (int)mLightSensorValue; int value = (int)mLightSensorValue; if (value >= 0) { mLightSensorValue = -1; mLightSensorValue = -1; handleLightSensorValue(value, true); handleLightSensorValue(value, true); } } Loading Loading @@ -3291,8 +3298,9 @@ public class PowerManagerService extends IPowerManager.Stub private void handleLightSensorValue(int value, boolean immediate) { private void handleLightSensorValue(int value, boolean immediate) { long milliseconds = SystemClock.elapsedRealtime(); long milliseconds = SystemClock.elapsedRealtime(); if (mLightSensorValue == -1 || if (mLightSensorValue == -1 milliseconds < mLastScreenOnTime + mLightSensorWarmupTime) { || milliseconds < mLastScreenOnTime + mLightSensorWarmupTime || mWaitingForFirstLightSensor) { // process the value immediately if screen has just turned on // process the value immediately if screen has just turned on mHandler.removeCallbacks(mAutoBrightnessTask); mHandler.removeCallbacks(mAutoBrightnessTask); mLightSensorPendingDecrease = false; mLightSensorPendingDecrease = false; Loading Loading @@ -3327,7 +3335,10 @@ public class PowerManagerService extends IPowerManager.Stub if (isScreenTurningOffLocked()) { if (isScreenTurningOffLocked()) { return; return; } } handleLightSensorValue((int)event.values[0], false); handleLightSensorValue((int)event.values[0], mWaitingForFirstLightSensor); if (mWaitingForFirstLightSensor) { mWaitingForFirstLightSensor = false; } } } } } Loading