summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Adam Lesinski <adamlesinski@google.com> 2016-05-26 16:05:35 -0700
committer Adam Lesinski <adamlesinski@google.com> 2016-05-26 16:05:35 -0700
commit8ce3694181f853701d31ee4eb1dc46dbfab044d7 (patch)
treed8952e1e6eb017a12703edc06ba82c09e5a90688
parent28bdf2907aa5448f455475fde399870c22c4180a (diff)
Fix issue where max idle time > total idle time
If the batterystats were reset while the device was idling (via command line most likely), then also reset the last time the device started idling so that the max idle time calculation is correct. Bug:28452600 Change-Id: I8a3d5dc3081deda76356c03d891e098baa85f88a
-rw-r--r--core/java/com/android/internal/os/BatteryStatsImpl.java5
1 files changed, 4 insertions, 1 deletions
diff --git a/core/java/com/android/internal/os/BatteryStatsImpl.java b/core/java/com/android/internal/os/BatteryStatsImpl.java
index 93dc625f8846..8b0235249436 100644
--- a/core/java/com/android/internal/os/BatteryStatsImpl.java
+++ b/core/java/com/android/internal/os/BatteryStatsImpl.java
@@ -8153,14 +8153,17 @@ public class BatteryStatsImpl extends BatteryStats {
}
private void resetAllStatsLocked() {
+ final long uptimeMillis = mClocks.uptimeMillis();
+ final long elapsedRealtimeMillis = mClocks.elapsedRealtime();
mStartCount = 0;
- initTimes(mClocks.uptimeMillis() * 1000, mClocks.elapsedRealtime() * 1000);
+ initTimes(uptimeMillis * 1000, elapsedRealtimeMillis * 1000);
mScreenOnTimer.reset(false);
for (int i=0; i<NUM_SCREEN_BRIGHTNESS_BINS; i++) {
mScreenBrightnessTimer[i].reset(false);
}
mInteractiveTimer.reset(false);
mPowerSaveModeEnabledTimer.reset(false);
+ mLastIdleTimeStart = elapsedRealtimeMillis;
mLongestLightIdleTime = 0;
mLongestFullIdleTime = 0;
mDeviceIdleModeLightTimer.reset(false);