diff options
| -rw-r--r-- | services/core/java/com/android/server/power/stats/BatteryExternalStatsWorker.java | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/services/core/java/com/android/server/power/stats/BatteryExternalStatsWorker.java b/services/core/java/com/android/server/power/stats/BatteryExternalStatsWorker.java index 46e779fb0c45..8311034c0298 100644 --- a/services/core/java/com/android/server/power/stats/BatteryExternalStatsWorker.java +++ b/services/core/java/com/android/server/power/stats/BatteryExternalStatsWorker.java @@ -120,7 +120,7 @@ public class BatteryExternalStatsWorker implements BatteryStatsImpl.ExternalStat private int mScreenState; @GuardedBy("this") - private int[] mPerDisplayScreenStates = null; + private int[] mPerDisplayScreenStates; @GuardedBy("this") private boolean mUseLatestStates = true; @@ -243,6 +243,7 @@ public class BatteryExternalStatsWorker implements BatteryStatsImpl.ExternalStat } synchronized (mStats) { mStats.initEnergyConsumerStatsLocked(supportedStdBuckets, customBucketNames); + mPerDisplayScreenStates = new int[mStats.getDisplayCount()]; } } } @@ -490,6 +491,12 @@ public class BatteryExternalStatsWorker implements BatteryStatsImpl.ExternalStat onBatteryScreenOff, screenState, displayScreenStates, useLatestStates); } finally { + if ((updateFlags & UPDATE_ALL) == UPDATE_ALL) { + synchronized (mStats) { + // This helps mStats deal with ignoring data from prior to resets. + mStats.informThatAllExternalStatsAreFlushed(); + } + } if (DEBUG) { Slog.d(TAG, "end updateExternalStatsSync"); } @@ -767,7 +774,6 @@ public class BatteryExternalStatsWorker implements BatteryStatsImpl.ExternalStat // WiFi and Modem state are updated without the mStats lock held, because they // do some network stats retrieval before internally grabbing the mStats lock. - if (wifiInfo != null) { if (wifiInfo.isValid()) { final long wifiChargeUC = @@ -790,11 +796,6 @@ public class BatteryExternalStatsWorker implements BatteryStatsImpl.ExternalStat mStats.noteModemControllerActivity(modemInfo, mobileRadioChargeUC, elapsedRealtime, uptime, networkStatsManager); } - - if ((updateFlags & UPDATE_ALL) == UPDATE_ALL) { - // This helps mStats deal with ignoring data from prior to resets. - mStats.informThatAllExternalStatsAreFlushed(); - } } /** |