summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/java/com/android/internal/os/BatteryStatsImpl.java35
1 files changed, 33 insertions, 2 deletions
diff --git a/core/java/com/android/internal/os/BatteryStatsImpl.java b/core/java/com/android/internal/os/BatteryStatsImpl.java
index 98d4c5976adc..ac57d6934f18 100644
--- a/core/java/com/android/internal/os/BatteryStatsImpl.java
+++ b/core/java/com/android/internal/os/BatteryStatsImpl.java
@@ -166,8 +166,8 @@ public class BatteryStatsImpl extends BatteryStats {
// In-memory Parcel magic number, used to detect attempts to unmarshall bad data
private static final int MAGIC = 0xBA757475; // 'BATSTATS'
- // Current on-disk Parcel version
- static final int VERSION = 208;
+ // Current on-disk Parcel version. Must be updated when the format of the parcelable changes
+ public static final int VERSION = 209;
// The maximum number of names wakelocks we will keep track of
// per uid; once the limit is reached, we batch the remaining wakelocks
@@ -884,6 +884,28 @@ public class BatteryStatsImpl extends BatteryStats {
screenBrightnessTimers[i].reset(false, elapsedRealtimeUs);
}
}
+
+ /**
+ * Write data to summary parcel
+ */
+ public void writeSummaryToParcel(Parcel out, long elapsedRealtimeUs) {
+ screenOnTimer.writeSummaryFromParcelLocked(out, elapsedRealtimeUs);
+ screenDozeTimer.writeSummaryFromParcelLocked(out, elapsedRealtimeUs);
+ for (int i = 0; i < NUM_SCREEN_BRIGHTNESS_BINS; i++) {
+ screenBrightnessTimers[i].writeSummaryFromParcelLocked(out, elapsedRealtimeUs);
+ }
+ }
+
+ /**
+ * Read data from summary parcel
+ */
+ public void readSummaryFromParcel(Parcel in) {
+ screenOnTimer.readSummaryFromParcelLocked(in);
+ screenDozeTimer.readSummaryFromParcelLocked(in);
+ for (int i = 0; i < NUM_SCREEN_BRIGHTNESS_BINS; i++) {
+ screenBrightnessTimers[i].readSummaryFromParcelLocked(in);
+ }
+ }
}
DisplayBatteryStats[] mPerDisplayBatteryStats;
@@ -17275,6 +17297,10 @@ public class BatteryStatsImpl extends BatteryStats {
for (int i=0; i<NUM_SCREEN_BRIGHTNESS_BINS; i++) {
mScreenBrightnessTimer[i].readSummaryFromParcelLocked(in);
}
+ final int numDisplays = in.readInt();
+ for (int i = 0; i < numDisplays; i++) {
+ mPerDisplayBatteryStats[i].readSummaryFromParcel(in);
+ }
mInteractive = false;
mInteractiveTimer.readSummaryFromParcelLocked(in);
mPhoneOn = false;
@@ -17784,6 +17810,11 @@ public class BatteryStatsImpl extends BatteryStats {
for (int i=0; i<NUM_SCREEN_BRIGHTNESS_BINS; i++) {
mScreenBrightnessTimer[i].writeSummaryFromParcelLocked(out, nowRealtime);
}
+ final int numDisplays = mPerDisplayBatteryStats.length;
+ out.writeInt(numDisplays);
+ for (int i = 0; i < numDisplays; i++) {
+ mPerDisplayBatteryStats[i].writeSummaryToParcel(out, nowRealtime);
+ }
mInteractiveTimer.writeSummaryFromParcelLocked(out, nowRealtime);
mPowerSaveModeEnabledTimer.writeSummaryFromParcelLocked(out, nowRealtime);
out.writeLong(mLongestLightIdleTimeMs);