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

Commit ff6c7f86 authored by Dmitri Plotnikov's avatar Dmitri Plotnikov
Browse files

Adjust total consumed power to avoid double-counting

The definition of SystemBatteryConsumer.getConsumedPower()
has been changed to include power attributed to apps.
That power is also included in UidBatteryConsumers, so we
ended up double-counting power attributed to apps.

Bug: 183235836
Test: atest FrameworksCoreTests:com.android.internal.os.BatteryStatsTests
Change-Id: Ib99b3ce910b62528241e271bdb3b925a9ac01830
parent 68037c9a
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -74,7 +74,7 @@ public final class BatteryUsageStats implements Parcelable {
        for (int i = 0; i < systemBatteryConsumerCount; i++) {
            final SystemBatteryConsumer consumer =
                    builder.mSystemBatteryConsumerBuilders.valueAt(i).build();
            totalPower += consumer.getConsumedPower();
            totalPower += consumer.getConsumedPower() - consumer.getPowerConsumedByApps();
            mSystemBatteryConsumers.add(consumer);
        }

+4 −1
Original line number Diff line number Diff line
@@ -103,7 +103,10 @@ public class BatteryUsageStatsTest {
    }

    public void validateBatteryUsageStats(BatteryUsageStats batteryUsageStats) {
        assertThat(batteryUsageStats.getConsumedPower()).isEqualTo(21500);
        // Camera: (10100 + 10200) - 20000 (consumed by apps) = 300
        // App: 300 + 400 + 500 = 1200
        // Total: 1500
        assertThat(batteryUsageStats.getConsumedPower()).isEqualTo(1500);
        assertThat(batteryUsageStats.getDischargePercentage()).isEqualTo(20);
        assertThat(batteryUsageStats.getDischargedPowerRange().getLower()).isEqualTo(1000);
        assertThat(batteryUsageStats.getDischargedPowerRange().getUpper()).isEqualTo(2000);