OSDN Git Service

Fix issue where max idle time > total idle time
authorAdam Lesinski <adamlesinski@google.com>
Thu, 26 May 2016 23:05:35 +0000 (16:05 -0700)
committerAdam Lesinski <adamlesinski@google.com>
Thu, 26 May 2016 23:05:35 +0000 (16:05 -0700)
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

core/java/com/android/internal/os/BatteryStatsImpl.java

index 93dc625..8b02352 100644 (file)
@@ -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);