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

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

Add missing BatteryUsageStatsQuery fields to parceling

Bug: 380347154
Test: adb shell dumpsys batterystats --usage
Flag: EXEMPT bugfix
Change-Id: Id61b739af221d94aba4de90fd3adf74408d1fe58
parent 27c859fa
Loading
Loading
Loading
Loading
+20 −0
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@ import com.android.internal.os.MonotonicClock;

import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.util.Arrays;

/**
 * Query parameters for the {@link BatteryStatsManager#getBatteryUsageStats()} call.
@@ -196,7 +197,24 @@ public final class BatteryUsageStatsQuery implements Parcelable {
        return mAggregatedToTimestamp;
    }

    @Override
    public String toString() {
        return "BatteryUsageStatsQuery{"
                + "mFlags=" + Integer.toHexString(mFlags)
                + ", mUserIds=" + Arrays.toString(mUserIds)
                + ", mMaxStatsAgeMs=" + mMaxStatsAgeMs
                + ", mAggregatedFromTimestamp=" + mAggregatedFromTimestamp
                + ", mAggregatedToTimestamp=" + mAggregatedToTimestamp
                + ", mMonotonicStartTime=" + mMonotonicStartTime
                + ", mMonotonicEndTime=" + mMonotonicEndTime
                + ", mMinConsumedPowerThreshold=" + mMinConsumedPowerThreshold
                + ", mPowerComponents=" + Arrays.toString(mPowerComponents)
                + '}';
    }

    private BatteryUsageStatsQuery(Parcel in) {
        mMonotonicStartTime = in.readLong();
        mMonotonicEndTime = in.readLong();
        mFlags = in.readInt();
        mUserIds = new int[in.readInt()];
        in.readIntArray(mUserIds);
@@ -209,6 +227,8 @@ public final class BatteryUsageStatsQuery implements Parcelable {

    @Override
    public void writeToParcel(Parcel dest, int flags) {
        dest.writeLong(mMonotonicStartTime);
        dest.writeLong(mMonotonicEndTime);
        dest.writeInt(mFlags);
        dest.writeInt(mUserIds.length);
        dest.writeIntArray(mUserIds);
+15 −3
Original line number Diff line number Diff line
@@ -26,6 +26,7 @@ import android.os.BatteryUsageStatsQuery;
import android.os.Handler;
import android.os.Process;
import android.util.Log;
import android.util.LogWriter;
import android.util.Slog;
import android.util.SparseArray;

@@ -34,6 +35,7 @@ import com.android.internal.os.CpuScalingPolicies;
import com.android.internal.os.MonotonicClock;
import com.android.internal.os.PowerProfile;

import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@@ -44,6 +46,8 @@ import java.util.List;
 */
public class BatteryUsageStatsProvider {
    private static final String TAG = "BatteryUsageStatsProv";
    private static final boolean DEBUG = false;

    private final Context mContext;
    private final PowerAttributor mPowerAttributor;
    private final PowerStatsStore mPowerStatsStore;
@@ -262,17 +266,25 @@ public class BatteryUsageStatsProvider {

    private BatteryUsageStats getBatteryUsageStats(BatteryStatsImpl stats,
            BatteryUsageStatsQuery query, long currentTimeMs) {
        BatteryUsageStats batteryUsageStats;
        if ((query.getFlags()
                & BatteryUsageStatsQuery.FLAG_BATTERY_USAGE_STATS_ACCUMULATED) != 0) {
            return getAccumulatedBatteryUsageStats(stats, query, currentTimeMs);
            batteryUsageStats = getAccumulatedBatteryUsageStats(stats, query, currentTimeMs);
        } else if (query.getAggregatedToTimestamp() == 0) {
            BatteryUsageStats.Builder builder = computeBatteryUsageStats(stats, query,
                    query.getMonotonicStartTime(),
                    query.getMonotonicEndTime(), currentTimeMs);
            return builder.build();
            batteryUsageStats = builder.build();
        } else {
            return getAggregatedBatteryUsageStats(stats, query);
            batteryUsageStats = getAggregatedBatteryUsageStats(stats, query);
        }
        if (DEBUG) {
            Slog.d(TAG, "query = " + query);
            PrintWriter pw = new PrintWriter(new LogWriter(Log.DEBUG, TAG));
            batteryUsageStats.dump(pw, "");
            pw.flush();
        }
        return batteryUsageStats;
    }

    private BatteryUsageStats getAccumulatedBatteryUsageStats(BatteryStatsImpl stats,