diff options
| -rw-r--r-- | core/java/com/android/internal/os/BatteryStatsImpl.java | 35 |
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); |