diff options
| author | 2012-08-23 15:32:28 -0400 | |
|---|---|---|
| committer | 2012-08-23 16:23:18 -0400 | |
| commit | 10fb224623eae3a99a4fc68424eb876eb20c3f90 (patch) | |
| tree | 97639632f4baa7dc3d9e7e18ded021af3886e525 /services/java/com | |
| parent | 21b53df7c3fc7501c9c9e238eb820a6dcf992650 (diff) | |
Disable screensavers if below first battery warning level.
Don't activate on sleep if below the threshold, and quit any currently
running dream when the threshold is reached.
Bug:6999949
Change-Id: I961b350d24ee6f95e502228aaa57312b0ffbadc1
Diffstat (limited to 'services/java/com')
| -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(); } /** |