summaryrefslogtreecommitdiff
path: root/services/java
diff options
context:
space:
mode:
author John Spurlock <jspurlock@google.com> 2012-08-23 15:32:28 -0400
committer John Spurlock <jspurlock@google.com> 2012-08-23 16:23:18 -0400
commit10fb224623eae3a99a4fc68424eb876eb20c3f90 (patch)
tree97639632f4baa7dc3d9e7e18ded021af3886e525 /services/java
parent21b53df7c3fc7501c9c9e238eb820a6dcf992650 (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')
-rw-r--r--services/java/com/android/server/BatteryService.java5
-rw-r--r--services/java/com/android/server/power/PowerManagerService.java15
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();
}
/**