summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/core/java/com/android/server/power/stats/BatteryExternalStatsWorker.java15
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();
- }
}
/**