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

Commit f5c55985 authored by Adam Bookatz's avatar Adam Bookatz Committed by Automerger Merge Worker
Browse files

Merge "BatteryUsageStats - use bus end time" into sc-dev am: fdf919fb

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

Change-Id: Ie73227507c498910f3448143bbbddebf8f3fcaa3
parents 3b0aa385 fdf919fb
Loading
Loading
Loading
Loading
+7 −15
Original line number Diff line number Diff line
@@ -368,27 +368,19 @@ public final class BatteryUsageStats implements Parcelable {
    };

    /** Returns a proto (as used for atoms.proto) corresponding to this BatteryUsageStats. */
    public byte[] getStatsProto(long sessionEndTimestampMs) {

        final long sessionStartMillis = getStatsStartTimestamp();
        // TODO(b/187223764): Use the getStatsEndTimestamp() instead, once that is added.
        final long sessionEndMillis = sessionEndTimestampMs;
        final long sessionDurationMillis = sessionEndTimestampMs - getStatsStartTimestamp();

    public byte[] getStatsProto() {
        final BatteryConsumer deviceBatteryConsumer = getAggregateBatteryConsumer(
                AGGREGATE_BATTERY_CONSUMER_SCOPE_DEVICE);

        final int sessionDischargePercentage = getDischargePercentage();

        final ProtoOutputStream proto = new ProtoOutputStream();
        proto.write(BatteryUsageStatsAtomsProto.SESSION_START_MILLIS, sessionStartMillis);
        proto.write(BatteryUsageStatsAtomsProto.SESSION_END_MILLIS, sessionEndMillis);
        proto.write(BatteryUsageStatsAtomsProto.SESSION_DURATION_MILLIS, sessionDurationMillis);
        proto.write(BatteryUsageStatsAtomsProto.SESSION_START_MILLIS, getStatsStartTimestamp());
        proto.write(BatteryUsageStatsAtomsProto.SESSION_END_MILLIS, getStatsEndTimestamp());
        proto.write(BatteryUsageStatsAtomsProto.SESSION_DURATION_MILLIS, getStatsDuration());
        deviceBatteryConsumer.writeStatsProto(proto,
                BatteryUsageStatsAtomsProto.DEVICE_BATTERY_CONSUMER);
        writeUidBatteryConsumersProto(proto);
        proto.write(BatteryUsageStatsAtomsProto.SESSION_DISCHARGE_PERCENTAGE,
                sessionDischargePercentage);
                getDischargePercentage());
        return proto.getBytes();
    }

@@ -399,8 +391,8 @@ public final class BatteryUsageStats implements Parcelable {
    private void writeUidBatteryConsumersProto(ProtoOutputStream proto) {
        final List<UidBatteryConsumer> consumers = getUidBatteryConsumers();

        // TODO: Sort the list by power consumption. If during the for, proto.getRawSize() > 45kb,
        //       truncate the remainder of the list.
        // TODO(b/189225426): Sort the list by power consumption. If during the for,
        //                    proto.getRawSize() > 45kb, truncate the remainder of the list.
        final int size = consumers.size();
        for (int i = 0; i < size; i++) {
            final UidBatteryConsumer consumer = consumers.get(i);
+3 −4
Original line number Diff line number Diff line
@@ -48,9 +48,8 @@ public class BatteryUsageStatsPulledTest {

    @Test
    public void testGetStatsProto() {
        final long sessionEndTimestampMs = 1050;
        final BatteryUsageStats bus = buildBatteryUsageStats();
        final byte[] bytes = bus.getStatsProto(sessionEndTimestampMs);
        final byte[] bytes = bus.getStatsProto();
        BatteryUsageStatsAtomsProto proto;
        try {
            proto = BatteryUsageStatsAtomsProto.parseFrom(bytes);
@@ -60,9 +59,9 @@ public class BatteryUsageStatsPulledTest {
        }

        assertEquals(bus.getStatsStartTimestamp(), proto.sessionStartMillis);
        assertEquals(sessionEndTimestampMs, proto.sessionEndMillis);
        assertEquals(bus.getStatsEndTimestamp(), proto.sessionEndMillis);
        assertEquals(
                sessionEndTimestampMs - bus.getStatsStartTimestamp(),
                bus.getStatsEndTimestamp() - bus.getStatsStartTimestamp(),
                proto.sessionDurationMillis);
        assertEquals(bus.getDischargePercentage(), proto.sessionDischargePercentage);

+1 −3
Original line number Diff line number Diff line
@@ -771,9 +771,7 @@ public final class BatteryStatsService extends IBatteryStats.Stub
                default:
                    throw new UnsupportedOperationException("Unknown tagId=" + atomTag);
            }
            // TODO(b/187223764): busTime won't be needed once end_session is a field in BUS.
            final long busTime = System.currentTimeMillis();
            final byte[] statsProto = bus.getStatsProto(busTime);
            final byte[] statsProto = bus.getStatsProto();

            data.add(FrameworkStatsLog.buildStatsEvent(atomTag, statsProto));