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

Commit fa84b666 authored by Dmitri Plotnikov's avatar Dmitri Plotnikov Committed by Android (Google) Code Review
Browse files

Merge "Fix MeasuredEnergyStats.reset() for per-process-state counters"

parents 255e26e8 2cb00ccc
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -589,6 +589,10 @@ public class MeasuredEnergyStats {
        final int numIndices = mConfig.getNumberOfBuckets();
        for (int index = 0; index < numIndices; index++) {
            setValueIfSupported(index, 0L);
            if (mAccumulatedMultiStateChargeMicroCoulomb != null
                    && mAccumulatedMultiStateChargeMicroCoulomb[index] != null) {
                mAccumulatedMultiStateChargeMicroCoulomb[index].reset();
            }
        }
    }

+16 −3
Original line number Diff line number Diff line
@@ -465,16 +465,23 @@ public class MeasuredEnergyStatsTest {
        supportedStandardBuckets[POWER_BUCKET_SCREEN_DOZE] = false;
        supportedStandardBuckets[POWER_BUCKET_SCREEN_OTHER] = true;

        final int[] supportedMultiStateBuckets = new int[]{POWER_BUCKET_SCREEN_ON};
        final MeasuredEnergyStats.Config config =
                new MeasuredEnergyStats.Config(supportedStandardBuckets, customBucketNames,
                        new int[0], new String[]{"s"});
                        supportedMultiStateBuckets, new String[]{"s1", "s2"});
        final MeasuredEnergyStats stats = new MeasuredEnergyStats(config);
        stats.updateStandardBucket(POWER_BUCKET_SCREEN_ON, 10);
        stats.updateStandardBucket(POWER_BUCKET_SCREEN_ON, 5);
        stats.setState(1, 0);
        stats.updateStandardBucket(POWER_BUCKET_SCREEN_ON, 10, 1000);
        stats.updateStandardBucket(POWER_BUCKET_SCREEN_ON, 5, 2000);
        stats.updateStandardBucket(POWER_BUCKET_SCREEN_OTHER, 40);
        stats.updateCustomBucket(0, 50);
        stats.updateCustomBucket(1, 60);

        assertThat(stats.getAccumulatedStandardBucketCharge(POWER_BUCKET_SCREEN_ON, 0))
                .isEqualTo(0);
        assertThat(stats.getAccumulatedStandardBucketCharge(POWER_BUCKET_SCREEN_ON, 1))
                .isEqualTo(15);

        MeasuredEnergyStats.resetIfNotNull(stats);
        // All charges should be reset to 0
        for (int i = 0; i < NUMBER_STANDARD_POWER_BUCKETS; i++) {
@@ -485,7 +492,13 @@ public class MeasuredEnergyStatsTest {
                assertFalse(stats.isStandardBucketSupported(i));
                assertEquals(POWER_DATA_UNAVAILABLE, stats.getAccumulatedStandardBucketCharge(i));
            }

        }
        assertThat(stats.getAccumulatedStandardBucketCharge(POWER_BUCKET_SCREEN_ON, 0))
                .isEqualTo(0);
        assertThat(stats.getAccumulatedStandardBucketCharge(POWER_BUCKET_SCREEN_ON, 1))
                .isEqualTo(0);

        for (int i = 0; i < customBucketNames.length; i++) {
            assertEquals(0, stats.getAccumulatedCustomBucketCharge(i));
        }