diff options
Diffstat (limited to 'services/java')
| -rw-r--r-- | services/java/com/android/server/BatteryService.java | 5 | ||||
| -rw-r--r-- | services/java/com/android/server/power/PowerManagerService.java | 15 |
2 files changed, 14 insertions, 6 deletions
diff --git a/services/java/com/android/server/BatteryService.java b/services/java/com/android/server/BatteryService.java index 6ae16a481dcd..4192a9349f40 100644 --- a/services/java/com/android/server/BatteryService.java +++ b/services/java/com/android/server/BatteryService.java @@ -204,6 +204,11 @@ public class BatteryService extends Binder { return mBatteryLevel; } + // true if battery level is below the first warning threshold + public final boolean isBatteryLow() { + return mBatteryPresent && mBatteryLevel <= mLowBatteryWarningLevel; + } + void systemReady() { // check our power situation now that it is safe to display the shutdown dialog. shutdownIfNoPower(); diff --git a/services/java/com/android/server/power/PowerManagerService.java b/services/java/com/android/server/power/PowerManagerService.java index a5cb55a73374..9f2b247d3106 100644 --- a/services/java/com/android/server/power/PowerManagerService.java +++ b/services/java/com/android/server/power/PowerManagerService.java @@ -1137,7 +1137,7 @@ public final class PowerManagerService extends IPowerManager.Stub */ private void updateDreamLocked(int dirty) { if ((dirty & (DIRTY_WAKEFULNESS | DIRTY_SETTINGS - | DIRTY_IS_POWERED | DIRTY_STAY_ON)) != 0) { + | DIRTY_IS_POWERED | DIRTY_STAY_ON | DIRTY_BATTERY_STATE)) != 0) { scheduleSandmanLocked(); } } @@ -1163,13 +1163,13 @@ public final class PowerManagerService extends IPowerManager.Stub boolean startDreaming = false; synchronized (mLock) { mSandmanScheduled = false; - + boolean canDream = canDreamLocked(); if (DEBUG_SPEW) { - Log.d(TAG, "handleSandman: canDream=" + canDreamLocked() + Log.d(TAG, "handleSandman: canDream=" + canDream + ", mWakefulness=" + wakefulnessToString(mWakefulness)); } - if (canDreamLocked() && mWakefulness == WAKEFULNESS_NAPPING) { + if (canDream && mWakefulness == WAKEFULNESS_NAPPING) { startDreaming = true; } } @@ -1253,8 +1253,11 @@ public final class PowerManagerService extends IPowerManager.Stub * assuming there has been no recent user activity and no wake locks are held. */ private boolean canDreamLocked() { - return mIsPowered && mDreamsSupportedConfig - && mDreamsEnabledSetting && mDreamsActivateOnSleepSetting; + return mIsPowered + && mDreamsSupportedConfig + && mDreamsEnabledSetting + && mDreamsActivateOnSleepSetting + && !mBatteryService.isBatteryLow(); } /** |