From d591e5405f85336d559259bac8565389b6ec6292 Mon Sep 17 00:00:00 2001 From: Dmitri Plotnikov Date: Tue, 21 Feb 2023 17:41:33 -0800 Subject: [PATCH] Initialize max history buffer size when reading checkin file Bug: 270174129 Test: reboot phone, "adb shell dumpsys batterystats --checkin --proto", check logcat Change-Id: Ib127c12a17eceba721b250ad47f97814cb68a1c6 --- .../com/android/internal/os/BatteryStatsHistory.java | 5 ++++- .../android/server/power/stats/BatteryStatsImpl.java | 12 ++++++++---- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/core/java/com/android/internal/os/BatteryStatsHistory.java b/core/java/com/android/internal/os/BatteryStatsHistory.java index f7e1d57c79fb0..617519b1b540d 100644 --- a/core/java/com/android/internal/os/BatteryStatsHistory.java +++ b/core/java/com/android/internal/os/BatteryStatsHistory.java @@ -330,7 +330,10 @@ public class BatteryStatsHistory { } } - public BatteryStatsHistory(HistoryStepDetailsCalculator stepDetailsCalculator, Clock clock) { + public BatteryStatsHistory(int maxHistoryFiles, int maxHistoryBufferSize, + HistoryStepDetailsCalculator stepDetailsCalculator, Clock clock) { + mMaxHistoryFiles = maxHistoryFiles; + mMaxHistoryBufferSize = maxHistoryBufferSize; mStepDetailsCalculator = stepDetailsCalculator; mTracer = new TraceDelegate(); mClock = clock; diff --git a/services/core/java/com/android/server/power/stats/BatteryStatsImpl.java b/services/core/java/com/android/server/power/stats/BatteryStatsImpl.java index 3d3c5e26e4f7c..f11c864edba0e 100644 --- a/services/core/java/com/android/server/power/stats/BatteryStatsImpl.java +++ b/services/core/java/com/android/server/power/stats/BatteryStatsImpl.java @@ -1743,7 +1743,8 @@ public class BatteryStatsImpl extends BatteryStats { if (historyDirectory == null) { mCheckinFile = null; mStatsFile = null; - mHistory = new BatteryStatsHistory(mStepDetailsCalculator, mClock); + mHistory = new BatteryStatsHistory(mConstants.MAX_HISTORY_FILES, + mConstants.MAX_HISTORY_BUFFER, mStepDetailsCalculator, mClock); } else { mCheckinFile = new AtomicFile(new File(historyDirectory, "batterystats-checkin.bin")); mStatsFile = new AtomicFile(new File(historyDirectory, "batterystats.bin")); @@ -10881,14 +10882,17 @@ public class BatteryStatsImpl extends BatteryStats { if (systemDir == null) { mStatsFile = null; - mHistory = new BatteryStatsHistory(mStepDetailsCalculator, mClock); + mCheckinFile = null; + mDailyFile = null; + mHistory = new BatteryStatsHistory(mConstants.MAX_HISTORY_FILES, + mConstants.MAX_HISTORY_BUFFER, mStepDetailsCalculator, mClock); } else { mStatsFile = new AtomicFile(new File(systemDir, "batterystats.bin")); + mCheckinFile = new AtomicFile(new File(systemDir, "batterystats-checkin.bin")); + mDailyFile = new AtomicFile(new File(systemDir, "batterystats-daily.xml")); mHistory = new BatteryStatsHistory(systemDir, mConstants.MAX_HISTORY_FILES, mConstants.MAX_HISTORY_BUFFER, mStepDetailsCalculator, mClock); } - mCheckinFile = new AtomicFile(new File(systemDir, "batterystats-checkin.bin")); - mDailyFile = new AtomicFile(new File(systemDir, "batterystats-daily.xml")); mStartCount++; initTimersAndCounters(); mOnBattery = mOnBatteryInternal = false;