diff options
Diffstat (limited to 'core/java/android/os/BatteryUsageStats.java')
| -rw-r--r-- | core/java/android/os/BatteryUsageStats.java | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/core/java/android/os/BatteryUsageStats.java b/core/java/android/os/BatteryUsageStats.java index 0f94cbef3886..86e6db1dc625 100644 --- a/core/java/android/os/BatteryUsageStats.java +++ b/core/java/android/os/BatteryUsageStats.java @@ -127,6 +127,7 @@ public final class BatteryUsageStats implements Parcelable { private final AggregateBatteryConsumer[] mAggregateBatteryConsumers; private final Parcel mHistoryBuffer; private final List<BatteryStats.HistoryTag> mHistoryTagPool; + private final BatteryStatsHistory mBatteryStatsHistory; private BatteryUsageStats(@NonNull Builder builder) { mStatsStartTimestampMs = builder.mStatsStartTimestampMs; @@ -138,6 +139,7 @@ public final class BatteryUsageStats implements Parcelable { mDischargedPowerUpperBound = builder.mDischargedPowerUpperBoundMah; mHistoryBuffer = builder.mHistoryBuffer; mHistoryTagPool = builder.mHistoryTagPool; + mBatteryStatsHistory = builder.mBatteryStatsHistory; mBatteryTimeRemainingMs = builder.mBatteryTimeRemainingMs; mChargeTimeRemainingMs = builder.mChargeTimeRemainingMs; mCustomPowerComponentNames = builder.mCustomPowerComponentNames; @@ -289,8 +291,8 @@ public final class BatteryUsageStats implements Parcelable { throw new IllegalStateException( "Battery history was not requested in the BatteryUsageStatsQuery"); } - return new BatteryStatsHistoryIterator(new BatteryStatsHistory(mHistoryBuffer), - mHistoryTagPool); + + return new BatteryStatsHistoryIterator(mBatteryStatsHistory, mHistoryTagPool); } @Override @@ -356,7 +358,10 @@ public final class BatteryUsageStats implements Parcelable { tag.poolIdx = source.readInt(); mHistoryTagPool.add(tag); } + mBatteryStatsHistory = new BatteryStatsHistory(mHistoryBuffer); + mBatteryStatsHistory.readFromBatteryUsageStatsParcel(source); } else { + mBatteryStatsHistory = null; mHistoryBuffer = null; mHistoryTagPool = null; } @@ -404,6 +409,7 @@ public final class BatteryUsageStats implements Parcelable { dest.writeInt(tag.uid); dest.writeInt(tag.poolIdx); } + mBatteryStatsHistory.writeToBatteryUsageStatsParcel(dest); } else { dest.writeBoolean(false); } @@ -757,6 +763,7 @@ public final class BatteryUsageStats implements Parcelable { new SparseArray<>(); private Parcel mHistoryBuffer; private List<BatteryStats.HistoryTag> mHistoryTagPool; + private BatteryStatsHistory mBatteryStatsHistory; public Builder(@NonNull String[] customPowerComponentNames) { this(customPowerComponentNames, false); @@ -865,10 +872,12 @@ public final class BatteryUsageStats implements Parcelable { * Sets the parceled recent history. */ @NonNull - public Builder setBatteryHistory(Parcel historyBuffer, - List<BatteryStats.HistoryTag> historyTagPool) { + public Builder setBatteryHistory(@NonNull Parcel historyBuffer, + @NonNull List<BatteryStats.HistoryTag> historyTagPool, + @NonNull BatteryStatsHistory batteryStatsHistory) { mHistoryBuffer = historyBuffer; mHistoryTagPool = historyTagPool; + mBatteryStatsHistory = batteryStatsHistory; return this; } |
