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

Commit dfc06ad7 authored by Dmitri Plotnikov's avatar Dmitri Plotnikov Committed by Automerger Merge Worker
Browse files

Merge "Calculate total power for a BatteryConsumer by adding up...

Merge "Calculate total power for a BatteryConsumer by adding up PowerComponents" into sc-dev am: df5ebd7e

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

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I957360f8e0886b8f4cef2ceef3888d69dc0fee21
parents 33e65ee3 df5ebd7e
Loading
Loading
Loading
Loading
+0 −10
Original line number Diff line number Diff line
@@ -215,16 +215,6 @@ public abstract class BatteryConsumer {
            return (T) this;
        }

        /**
         * Sets the total amount of power consumed since BatteryStats reset, mAh.
         */
        @SuppressWarnings("unchecked")
        @NonNull
        public T setConsumedPower(double consumedPower) {
            mPowerComponentsBuilder.setTotalPowerConsumed(consumedPower);
            return (T) this;
        }

        /**
         * Sets the amount of time used by the specified component, e.g. CPU, WiFi etc.
         *
+5 −11
Original line number Diff line number Diff line
@@ -36,11 +36,15 @@ class PowerComponents {
    private final int mModeledPowerComponentOffset;

    PowerComponents(@NonNull Builder builder) {
        mTotalPowerConsumed = builder.mTotalPowerConsumed;
        mCustomPowerComponentCount = builder.mCustomPowerComponentCount;
        mModeledPowerComponentOffset = builder.mModeledPowerComponentOffset;
        mPowerComponents = builder.mPowerComponents;
        mTimeComponents = builder.mTimeComponents;
        double totalPower = 0;
        for (int i = mPowerComponents.length - 1; i >= 0; i--) {
            totalPower += mPowerComponents[i];
        }
        mTotalPowerConsumed = totalPower;
    }

    PowerComponents(@NonNull Parcel source) {
@@ -158,7 +162,6 @@ class PowerComponents {
     * Builder for PowerComponents.
     */
    static final class Builder {
        private double mTotalPowerConsumed;
        private final double[] mPowerComponents;
        private final int mCustomPowerComponentCount;
        private final long[] mTimeComponents;
@@ -180,15 +183,6 @@ class PowerComponents {
                    new long[BatteryConsumer.TIME_COMPONENT_COUNT + customTimeComponentCount];
        }

        /**
         * Sets the sum amount of power consumed since BatteryStats reset.
         */
        @NonNull
        public Builder setTotalPowerConsumed(double totalPowerConsumed) {
            mTotalPowerConsumed = totalPowerConsumed;
            return this;
        }

        /**
         * Sets the amount of drain attributed to the specified drain type, e.g. CPU, WiFi etc.
         *
+3 −8
Original line number Diff line number Diff line
@@ -114,14 +114,9 @@ public class BatteryUsageStatsProvider {
                        .setDischargePercentage(batteryStatsHelper.getStats().getDischargeAmount(0))
                        .setConsumedPower(batteryStatsHelper.getTotalPower());

        final List<BatterySipper> usageList = batteryStatsHelper.getUsageList();
        for (int i = 0; i < usageList.size(); i++) {
            final BatterySipper sipper = usageList.get(i);
            if (sipper.drainType == BatterySipper.DrainType.APP) {
                batteryUsageStatsBuilder.getOrCreateUidBatteryConsumerBuilder(sipper.uidObj)
                        .setPackageWithHighestDrain(sipper.packageWithHighestDrain)
                        .setConsumedPower(sipper.sumPower());
            }
        SparseArray<? extends BatteryStats.Uid> uidStats = mStats.getUidStats();
        for (int i = uidStats.size() - 1; i >= 0; i--) {
            batteryUsageStatsBuilder.getOrCreateUidBatteryConsumerBuilder(uidStats.valueAt(i));
        }

        final long realtimeUs = SystemClock.elapsedRealtime() * 1000;
+2 −4
Original line number Diff line number Diff line
@@ -73,7 +73,6 @@ public class BatteryUsageStatsTest {
        final UidBatteryConsumer.Builder uidBatteryConsumerBuilder =
                builder.getOrCreateUidBatteryConsumerBuilder(batteryStatsUid);
        uidBatteryConsumerBuilder.setPackageWithHighestDrain("foo");
        uidBatteryConsumerBuilder.setConsumedPower(200);
        uidBatteryConsumerBuilder.setConsumedPower(BatteryConsumer.POWER_COMPONENT_USAGE, 300);
        uidBatteryConsumerBuilder.setConsumedPower(BatteryConsumer.POWER_COMPONENT_CPU, 400);
        uidBatteryConsumerBuilder.setConsumedPowerForCustomComponent(
@@ -90,7 +89,6 @@ public class BatteryUsageStatsTest {
        final SystemBatteryConsumer.Builder systemBatteryConsumerBuilder =
                builder.getOrCreateSystemBatteryConsumerBuilder(
                        SystemBatteryConsumer.DRAIN_TYPE_CAMERA);
        systemBatteryConsumerBuilder.setConsumedPower(10000);
        systemBatteryConsumerBuilder.setConsumedPower(BatteryConsumer.POWER_COMPONENT_CPU, 10100);
        systemBatteryConsumerBuilder.setConsumedPowerForCustomComponent(
                BatteryConsumer.FIRST_CUSTOM_POWER_COMPONENT_ID, 10200);
@@ -114,7 +112,6 @@ public class BatteryUsageStatsTest {
        for (UidBatteryConsumer uidBatteryConsumer : uidBatteryConsumers) {
            if (uidBatteryConsumer.getUid() == 2000) {
                assertThat(uidBatteryConsumer.getPackageWithHighestDrain()).isEqualTo("foo");
                assertThat(uidBatteryConsumer.getConsumedPower()).isEqualTo(200);
                assertThat(uidBatteryConsumer.getConsumedPower(
                        BatteryConsumer.POWER_COMPONENT_USAGE)).isEqualTo(300);
                assertThat(uidBatteryConsumer.getConsumedPower(
@@ -130,6 +127,7 @@ public class BatteryUsageStatsTest {
                        BatteryConsumer.TIME_COMPONENT_CPU_FOREGROUND)).isEqualTo(700);
                assertThat(uidBatteryConsumer.getUsageDurationForCustomComponentMillis(
                        BatteryConsumer.FIRST_CUSTOM_TIME_COMPONENT_ID)).isEqualTo(800);
                assertThat(uidBatteryConsumer.getConsumedPower()).isEqualTo(1710);
            } else {
                fail("Unexpected UID " + uidBatteryConsumer.getUid());
            }
@@ -139,7 +137,6 @@ public class BatteryUsageStatsTest {
                batteryUsageStats.getSystemBatteryConsumers();
        for (SystemBatteryConsumer systemBatteryConsumer : systemBatteryConsumers) {
            if (systemBatteryConsumer.getDrainType() == SystemBatteryConsumer.DRAIN_TYPE_CAMERA) {
                assertThat(systemBatteryConsumer.getConsumedPower()).isEqualTo(10000);
                assertThat(systemBatteryConsumer.getConsumedPower(
                        BatteryConsumer.POWER_COMPONENT_CPU)).isEqualTo(10100);
                assertThat(systemBatteryConsumer.getConsumedPowerForCustomComponent(
@@ -151,6 +148,7 @@ public class BatteryUsageStatsTest {
                        BatteryConsumer.TIME_COMPONENT_CPU)).isEqualTo(10300);
                assertThat(systemBatteryConsumer.getUsageDurationForCustomComponentMillis(
                        BatteryConsumer.FIRST_CUSTOM_TIME_COMPONENT_ID)).isEqualTo(10400);
                assertThat(systemBatteryConsumer.getConsumedPower()).isEqualTo(30510);
            } else {
                fail("Unexpected drain type " + systemBatteryConsumer.getDrainType());
            }