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

Commit 2cf5892e authored by Dmitri Plotnikov's avatar Dmitri Plotnikov
Browse files

Check build flag before registering PowerStatsProcessors

Bug: 356723894
Test: atest PowerStatsTests
Flag: com.android.server.power.optimization.streamlined_misc_battery_stats
Change-Id: I5fedad06e1c17ceb7726537cbdab983035c67815
parent 79441c08
Loading
Loading
Loading
Loading
+10 −2
Original line number Diff line number Diff line
@@ -27,6 +27,7 @@ import android.text.format.DateFormat;
import android.util.IndentingPrintWriter;
import android.util.Slog;
import android.util.SparseArray;
import android.util.SparseBooleanArray;
import android.util.TimeUtils;

import com.android.internal.os.PowerStats;
@@ -73,15 +74,22 @@ class AggregatedPowerStats {
    private long mDurationMs;

    AggregatedPowerStats(@NonNull AggregatedPowerStatsConfig aggregatedPowerStatsConfig) {
        this(aggregatedPowerStatsConfig, new SparseBooleanArray());
    }

    AggregatedPowerStats(@NonNull AggregatedPowerStatsConfig aggregatedPowerStatsConfig,
            @NonNull SparseBooleanArray enabledComponents) {
        mConfig = aggregatedPowerStatsConfig;
        List<PowerComponent> configs =
                aggregatedPowerStatsConfig.getPowerComponentsAggregatedStatsConfigs();
        mPowerComponentStats = new SparseArray<>(configs.size());
        for (int i = 0; i < configs.size(); i++) {
            PowerComponent powerComponent = configs.get(i);
            if (enabledComponents.get(powerComponent.getPowerComponentId(), true)) {
                mPowerComponentStats.put(powerComponent.getPowerComponentId(),
                        new PowerComponentAggregatedPowerStats(this, powerComponent));
            }
        }
        mGenericPowerComponent = createGenericPowerComponent();
        mPowerComponentStats.put(BatteryConsumer.POWER_COMPONENT_ANY, mGenericPowerComponent);
    }
+1 −0
Original line number Diff line number Diff line
@@ -428,5 +428,6 @@ public class BatteryUsageStatsProvider {
     */
    public void setPowerStatsExporterEnabled(int powerComponentId, boolean enabled) {
        mPowerStatsExporterEnabled.put(powerComponentId, enabled);
        mPowerStatsExporter.setPowerComponentEnabled(powerComponentId, enabled);
    }
}
+12 −3
Original line number Diff line number Diff line
@@ -16,7 +16,9 @@
package com.android.server.power.stats;

import android.annotation.NonNull;
import android.os.BatteryConsumer;
import android.os.BatteryStats;
import android.util.SparseBooleanArray;

import com.android.internal.os.BatteryStatsHistory;
import com.android.internal.os.BatteryStatsHistoryIterator;
@@ -32,6 +34,8 @@ public class PowerStatsAggregator {
    private static final long UNINITIALIZED = -1;
    private final AggregatedPowerStatsConfig mAggregatedPowerStatsConfig;
    private final BatteryStatsHistory mHistory;
    private final SparseBooleanArray mEnabledComponents =
            new SparseBooleanArray(BatteryConsumer.POWER_COMPONENT_COUNT + 10);
    private AggregatedPowerStats mStats;
    private int mCurrentBatteryState = AggregatedPowerStatsConfig.POWER_STATE_BATTERY;
    private int mCurrentScreenState = AggregatedPowerStatsConfig.SCREEN_STATE_OTHER;
@@ -42,8 +46,13 @@ public class PowerStatsAggregator {
        mHistory = history;
    }

    AggregatedPowerStatsConfig getConfig() {
        return mAggregatedPowerStatsConfig;
    void setPowerComponentEnabled(int powerComponentId, boolean enabled) {
        synchronized (this) {
            if (mStats != null) {
                mStats = null;
            }
            mEnabledComponents.put(powerComponentId, enabled);
        }
    }

    /**
@@ -62,7 +71,7 @@ public class PowerStatsAggregator {
            Consumer<AggregatedPowerStats> consumer) {
        synchronized (this) {
            if (mStats == null) {
                mStats = new AggregatedPowerStats(mAggregatedPowerStatsConfig);
                mStats = new AggregatedPowerStats(mAggregatedPowerStatsConfig, mEnabledComponents);
            }

            mStats.start(startTimeMs);
+4 −0
Original line number Diff line number Diff line
@@ -376,4 +376,8 @@ public class PowerStatsExporter {
        }
        return true;
    }

    void setPowerComponentEnabled(int powerComponentId, boolean enabled) {
        mPowerStatsAggregator.setPowerComponentEnabled(powerComponentId, enabled);
    }
}