Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 65ff3763 authored by Hui Yu's avatar Hui Yu Committed by Automerger Merge Worker
Browse files

Merge "Fix the missing history event problem." into tm-dev am: 25019b37 am:...

Merge "Fix the missing history event problem." into tm-dev am: 25019b37 am: f6743c03 am: 9e578ed3

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/18582121



Change-Id: Ifdcc7b3a444773a428bdc8361c358aac62f2151a
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 98823820 9e578ed3
Loading
Loading
Loading
Loading
+6 −3
Original line number Original line Diff line number Diff line
@@ -4503,10 +4503,13 @@ public class BatteryStatsImpl extends BatteryStats {
            for (Map.Entry<HistoryTag, Integer> entry: mHistoryTagPool.entrySet()) {
            for (Map.Entry<HistoryTag, Integer> entry: mHistoryTagPool.entrySet()) {
                entry.setValue(entry.getValue() | TAG_FIRST_OCCURRENCE_FLAG);
                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);
            startRecordingHistory(elapsedRealtimeMs, uptimeMs, false);
            HistoryItem newItem = new HistoryItem();
            // Add the copy into history buffer.
            newItem.setTo(cur);
            addHistoryBufferLocked(elapsedRealtimeMs, HistoryItem.CMD_UPDATE, copy);
            addHistoryBufferLocked(elapsedRealtimeMs, HistoryItem.CMD_UPDATE, newItem);
            return;
            return;
        }
        }
+9 −7
Original line number Original line Diff line number Diff line
@@ -154,19 +154,21 @@ public class BatteryStatsHistoryIteratorTest {


        for (int i = 0; i < eventCount; i++) {
        for (int i = 0; i < eventCount; i++) {
            String name = "a" + (i % 10);
            String name = "a" + (i % 10);
            do {
                assertThat(iterator.next(item)).isTrue();
                assertThat(iterator.next(item)).isTrue();
                // Skip a blank event inserted at the start of every buffer
                // Skip a blank event inserted at the start of every buffer
            if (item.eventCode == BatteryStats.HistoryItem.EVENT_NONE) {
            } while (item.cmd != BatteryStats.HistoryItem.CMD_UPDATE
                assertThat(iterator.next(item)).isTrue();
                    || item.eventCode == BatteryStats.HistoryItem.EVENT_NONE);
            }

            assertThat(item.eventCode).isEqualTo(BatteryStats.HistoryItem.EVENT_ALARM
            assertThat(item.eventCode).isEqualTo(BatteryStats.HistoryItem.EVENT_ALARM
                    | BatteryStats.HistoryItem.EVENT_FLAG_START);
                    | BatteryStats.HistoryItem.EVENT_FLAG_START);
            assertThat(item.eventTag.string).isEqualTo(name);
            assertThat(item.eventTag.string).isEqualTo(name);


            do {
                assertThat(iterator.next(item)).isTrue();
                assertThat(iterator.next(item)).isTrue();
            if (item.eventCode == BatteryStats.HistoryItem.EVENT_NONE) {
            } while (item.cmd != BatteryStats.HistoryItem.CMD_UPDATE
                assertThat(iterator.next(item)).isTrue();
                    || item.eventCode == BatteryStats.HistoryItem.EVENT_NONE);
            }

            assertThat(item.eventCode).isEqualTo(BatteryStats.HistoryItem.EVENT_ALARM
            assertThat(item.eventCode).isEqualTo(BatteryStats.HistoryItem.EVENT_ALARM
                    | BatteryStats.HistoryItem.EVENT_FLAG_FINISH);
                    | BatteryStats.HistoryItem.EVENT_FLAG_FINISH);
            assertThat(item.eventTag.string).isEqualTo(name);
            assertThat(item.eventTag.string).isEqualTo(name);