Merge "Fix the missing history event problem." into tm-dev am: 25019b3782 am: f6743c032c am: 9e578ed3ac
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/18582121 Change-Id: Ifdcc7b3a444773a428bdc8361c358aac62f2151a Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -4503,10 +4503,13 @@ public class BatteryStatsImpl extends BatteryStats {
|
||||
for (Map.Entry<HistoryTag, Integer> entry: mHistoryTagPool.entrySet()) {
|
||||
entry.setValue(entry.getValue() | TAG_FIRST_OCCURRENCE_FLAG);
|
||||
}
|
||||
// Make a copy of mHistoryCur.
|
||||
HistoryItem copy = new HistoryItem();
|
||||
copy.setTo(cur);
|
||||
// startRecordingHistory will reset mHistoryCur.
|
||||
startRecordingHistory(elapsedRealtimeMs, uptimeMs, false);
|
||||
HistoryItem newItem = new HistoryItem();
|
||||
newItem.setTo(cur);
|
||||
addHistoryBufferLocked(elapsedRealtimeMs, HistoryItem.CMD_UPDATE, newItem);
|
||||
// Add the copy into history buffer.
|
||||
addHistoryBufferLocked(elapsedRealtimeMs, HistoryItem.CMD_UPDATE, copy);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -154,19 +154,21 @@ public class BatteryStatsHistoryIteratorTest {
|
||||
|
||||
for (int i = 0; i < eventCount; i++) {
|
||||
String name = "a" + (i % 10);
|
||||
assertThat(iterator.next(item)).isTrue();
|
||||
// Skip a blank event inserted at the start of every buffer
|
||||
if (item.eventCode == BatteryStats.HistoryItem.EVENT_NONE) {
|
||||
do {
|
||||
assertThat(iterator.next(item)).isTrue();
|
||||
}
|
||||
// Skip a blank event inserted at the start of every buffer
|
||||
} while (item.cmd != BatteryStats.HistoryItem.CMD_UPDATE
|
||||
|| item.eventCode == BatteryStats.HistoryItem.EVENT_NONE);
|
||||
|
||||
assertThat(item.eventCode).isEqualTo(BatteryStats.HistoryItem.EVENT_ALARM
|
||||
| BatteryStats.HistoryItem.EVENT_FLAG_START);
|
||||
assertThat(item.eventTag.string).isEqualTo(name);
|
||||
|
||||
assertThat(iterator.next(item)).isTrue();
|
||||
if (item.eventCode == BatteryStats.HistoryItem.EVENT_NONE) {
|
||||
do {
|
||||
assertThat(iterator.next(item)).isTrue();
|
||||
}
|
||||
} while (item.cmd != BatteryStats.HistoryItem.CMD_UPDATE
|
||||
|| item.eventCode == BatteryStats.HistoryItem.EVENT_NONE);
|
||||
|
||||
assertThat(item.eventCode).isEqualTo(BatteryStats.HistoryItem.EVENT_ALARM
|
||||
| BatteryStats.HistoryItem.EVENT_FLAG_FINISH);
|
||||
assertThat(item.eventTag.string).isEqualTo(name);
|
||||
|
||||
Reference in New Issue
Block a user