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

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

Merge "Check build flag before registering PowerStatsProcessors" into main

parents f30a1bb9 2cf5892e
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);
    }
}