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

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

Merge "Revert "Save power component names in the summary parcel for...

Merge "Revert "Save power component names in the summary parcel for MeasuredEnergySnapshot"" into sc-dev am: 82a0d368

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

Change-Id: Ic716fcb9ab2f2a8186ab6a53c10f933d51cb0578
parents d1a9e684 82a0d368
Loading
Loading
Loading
Loading
+3 −3
Original line number Original line Diff line number Diff line
@@ -161,7 +161,7 @@ public class BatteryStatsImpl extends BatteryStats {
    private static final int MAGIC = 0xBA757475; // 'BATSTATS'
    private static final int MAGIC = 0xBA757475; // 'BATSTATS'
    // Current on-disk Parcel version
    // Current on-disk Parcel version
    static final int VERSION = 198;
    static final int VERSION = 197;
    // The maximum number of names wakelocks we will keep track of
    // The maximum number of names wakelocks we will keep track of
    // per uid; once the limit is reached, we batch the remaining wakelocks
    // per uid; once the limit is reached, we batch the remaining wakelocks
@@ -15603,7 +15603,7 @@ public class BatteryStatsImpl extends BatteryStats {
        out.writeLong(mNextMaxDailyDeadlineMs);
        out.writeLong(mNextMaxDailyDeadlineMs);
        out.writeLong(mBatteryTimeToFullSeconds);
        out.writeLong(mBatteryTimeToFullSeconds);
        MeasuredEnergyStats.writeSummaryToParcel(mGlobalMeasuredEnergyStats, out, false, false);
        MeasuredEnergyStats.writeSummaryToParcel(mGlobalMeasuredEnergyStats, out, false);
        mScreenOnTimer.writeSummaryFromParcelLocked(out, NOWREAL_SYS);
        mScreenOnTimer.writeSummaryFromParcelLocked(out, NOWREAL_SYS);
        mScreenDozeTimer.writeSummaryFromParcelLocked(out, NOWREAL_SYS);
        mScreenDozeTimer.writeSummaryFromParcelLocked(out, NOWREAL_SYS);
@@ -15928,7 +15928,7 @@ public class BatteryStatsImpl extends BatteryStats {
                out.writeInt(0);
                out.writeInt(0);
            }
            }
            MeasuredEnergyStats.writeSummaryToParcel(u.mUidMeasuredEnergyStats, out, true, true);
            MeasuredEnergyStats.writeSummaryToParcel(u.mUidMeasuredEnergyStats, out, true);
            final ArrayMap<String, Uid.Wakelock> wakeStats = u.mWakelockStats.getMap();
            final ArrayMap<String, Uid.Wakelock> wakeStats = u.mWakelockStats.getMap();
            int NW = wakeStats.size();
            int NW = wakeStats.size();
+6 −9
Original line number Original line Diff line number Diff line
@@ -140,7 +140,7 @@ public class MeasuredEnergyStats {
     */
     */
    private MeasuredEnergyStats(int numIndices) {
    private MeasuredEnergyStats(int numIndices) {
        mAccumulatedChargeMicroCoulomb = new long[numIndices];
        mAccumulatedChargeMicroCoulomb = new long[numIndices];
        mCustomBucketNames = new String[numIndices - NUMBER_STANDARD_POWER_BUCKETS];
        mCustomBucketNames = new String[0];
    }
    }


    /** Construct from parcel. */
    /** Construct from parcel. */
@@ -290,7 +290,7 @@ public class MeasuredEnergyStats {
     * Create a MeasuredEnergyStats object from a summary parcel.
     * Create a MeasuredEnergyStats object from a summary parcel.
     *
     *
     * Corresponding write performed by
     * Corresponding write performed by
     * {@link #writeSummaryToParcel(MeasuredEnergyStats, Parcel, boolean, boolean)}.
     * {@link #writeSummaryToParcel(MeasuredEnergyStats, Parcel, boolean)}.
     *
     *
     * @return a new MeasuredEnergyStats object as described.
     * @return a new MeasuredEnergyStats object as described.
     *         Returns null if the parcel indicates there is no data to populate.
     *         Returns null if the parcel indicates there is no data to populate.
@@ -300,9 +300,9 @@ public class MeasuredEnergyStats {
        // Check if any MeasuredEnergyStats exists on the parcel
        // Check if any MeasuredEnergyStats exists on the parcel
        if (arraySize == 0) return null;
        if (arraySize == 0) return null;


        final String[] customBucketNames = in.readStringArray();
        final int numCustomBuckets = arraySize - NUMBER_STANDARD_POWER_BUCKETS;
        final MeasuredEnergyStats stats = new MeasuredEnergyStats(
        final MeasuredEnergyStats stats = new MeasuredEnergyStats(
                new boolean[NUMBER_STANDARD_POWER_BUCKETS], customBucketNames);
                new boolean[NUMBER_STANDARD_POWER_BUCKETS], new String[numCustomBuckets]);
        stats.readSummaryFromParcel(in, true);
        stats.readSummaryFromParcel(in, true);
        return stats;
        return stats;
    }
    }
@@ -315,7 +315,7 @@ public class MeasuredEnergyStats {
     * possible (not necessarily supported) standard and custom buckets.
     * possible (not necessarily supported) standard and custom buckets.
     *
     *
     * Corresponding write performed by
     * Corresponding write performed by
     * {@link #writeSummaryToParcel(MeasuredEnergyStats, Parcel, boolean, boolean)}.
     * {@link #writeSummaryToParcel(MeasuredEnergyStats, Parcel, boolean)}.
     *
     *
     * @return a new MeasuredEnergyStats object as described.
     * @return a new MeasuredEnergyStats object as described.
     *         Returns null if the stats contain no non-0 information (such as if template is null
     *         Returns null if the stats contain no non-0 information (such as if template is null
@@ -370,15 +370,12 @@ public class MeasuredEnergyStats {
     * and {@link #createAndReadSummaryFromParcel(Parcel, MeasuredEnergyStats)}.
     * and {@link #createAndReadSummaryFromParcel(Parcel, MeasuredEnergyStats)}.
     */
     */
    public static void writeSummaryToParcel(@Nullable MeasuredEnergyStats stats,
    public static void writeSummaryToParcel(@Nullable MeasuredEnergyStats stats,
            Parcel dest, boolean skipZero, boolean skipCustomBucketNames) {
            Parcel dest, boolean skipZero) {
        if (stats == null) {
        if (stats == null) {
            dest.writeInt(0);
            dest.writeInt(0);
            return;
            return;
        }
        }
        dest.writeInt(stats.getNumberOfIndices());
        dest.writeInt(stats.getNumberOfIndices());
        if (!skipCustomBucketNames) {
            dest.writeStringArray(stats.getCustomBucketNames());
        }
        stats.writeSummaryToParcel(dest, skipZero);
        stats.writeSummaryToParcel(dest, skipZero);
    }
    }


+6 −8
Original line number Original line Diff line number Diff line
@@ -159,7 +159,7 @@ public class MeasuredEnergyStatsTest {
        stats.updateCustomBucket(1, 60);
        stats.updateCustomBucket(1, 60);


        final Parcel parcel = Parcel.obtain();
        final Parcel parcel = Parcel.obtain();
        MeasuredEnergyStats.writeSummaryToParcel(stats, parcel, false, false);
        MeasuredEnergyStats.writeSummaryToParcel(stats, parcel, false);
        parcel.setDataPosition(0);
        parcel.setDataPosition(0);
        MeasuredEnergyStats newStats = MeasuredEnergyStats.createAndReadSummaryFromParcel(parcel);
        MeasuredEnergyStats newStats = MeasuredEnergyStats.createAndReadSummaryFromParcel(parcel);


@@ -175,7 +175,6 @@ public class MeasuredEnergyStatsTest {
        }
        }
        assertEquals(POWER_DATA_UNAVAILABLE,
        assertEquals(POWER_DATA_UNAVAILABLE,
                newStats.getAccumulatedCustomBucketCharge(customBucketNames.length + 1));
                newStats.getAccumulatedCustomBucketCharge(customBucketNames.length + 1));
        assertThat(newStats.getCustomBucketNames()).asList().containsExactly("A", "B");
        parcel.recycle();
        parcel.recycle();
    }
    }


@@ -202,7 +201,7 @@ public class MeasuredEnergyStatsTest {
        stats.updateCustomBucket(1, 316);
        stats.updateCustomBucket(1, 316);


        final Parcel parcel = Parcel.obtain();
        final Parcel parcel = Parcel.obtain();
        MeasuredEnergyStats.writeSummaryToParcel(stats, parcel, false, false);
        MeasuredEnergyStats.writeSummaryToParcel(stats, parcel, false);


        final boolean[] newsupportedStandardBuckets = new boolean[NUMBER_STANDARD_POWER_BUCKETS];
        final boolean[] newsupportedStandardBuckets = new boolean[NUMBER_STANDARD_POWER_BUCKETS];
        newsupportedStandardBuckets[POWER_BUCKET_SCREEN_ON] = true;
        newsupportedStandardBuckets[POWER_BUCKET_SCREEN_ON] = true;
@@ -235,7 +234,6 @@ public class MeasuredEnergyStatsTest {
        }
        }
        assertEquals(POWER_DATA_UNAVAILABLE,
        assertEquals(POWER_DATA_UNAVAILABLE,
                newStats.getAccumulatedCustomBucketCharge(customBucketNames.length + 1));
                newStats.getAccumulatedCustomBucketCharge(customBucketNames.length + 1));
        assertThat(newStats.getCustomBucketNames()).asList().containsExactly("A", "B");
        parcel.recycle();
        parcel.recycle();
    }
    }


@@ -253,7 +251,7 @@ public class MeasuredEnergyStatsTest {


        // Let's try parcelling with including zeros
        // Let's try parcelling with including zeros
        final Parcel includeZerosParcel = Parcel.obtain();
        final Parcel includeZerosParcel = Parcel.obtain();
        MeasuredEnergyStats.writeSummaryToParcel(stats, includeZerosParcel, false, false);
        MeasuredEnergyStats.writeSummaryToParcel(stats, includeZerosParcel, false);
        includeZerosParcel.setDataPosition(0);
        includeZerosParcel.setDataPosition(0);


        MeasuredEnergyStats newStats = MeasuredEnergyStats.createAndReadSummaryFromParcel(
        MeasuredEnergyStats newStats = MeasuredEnergyStats.createAndReadSummaryFromParcel(
@@ -277,7 +275,7 @@ public class MeasuredEnergyStatsTest {


        // Now let's try parcelling with skipping zeros
        // Now let's try parcelling with skipping zeros
        final Parcel skipZerosParcel = Parcel.obtain();
        final Parcel skipZerosParcel = Parcel.obtain();
        MeasuredEnergyStats.writeSummaryToParcel(stats, skipZerosParcel, true, true);
        MeasuredEnergyStats.writeSummaryToParcel(stats, skipZerosParcel, true);
        skipZerosParcel.setDataPosition(0);
        skipZerosParcel.setDataPosition(0);


        newStats = MeasuredEnergyStats.createAndReadSummaryFromParcel(skipZerosParcel);
        newStats = MeasuredEnergyStats.createAndReadSummaryFromParcel(skipZerosParcel);
@@ -317,7 +315,7 @@ public class MeasuredEnergyStatsTest {
        stats.updateCustomBucket(1, 60);
        stats.updateCustomBucket(1, 60);


        final Parcel parcel = Parcel.obtain();
        final Parcel parcel = Parcel.obtain();
        MeasuredEnergyStats.writeSummaryToParcel(stats, parcel, false, false);
        MeasuredEnergyStats.writeSummaryToParcel(stats, parcel, false);
        parcel.setDataPosition(0);
        parcel.setDataPosition(0);


        MeasuredEnergyStats newStats =
        MeasuredEnergyStats newStats =
@@ -346,7 +344,7 @@ public class MeasuredEnergyStatsTest {
        stats.updateStandardBucket(POWER_BUCKET_SCREEN_OTHER, 7L);
        stats.updateStandardBucket(POWER_BUCKET_SCREEN_OTHER, 7L);


        final Parcel parcel = Parcel.obtain();
        final Parcel parcel = Parcel.obtain();
        MeasuredEnergyStats.writeSummaryToParcel(stats, parcel, false, false);
        MeasuredEnergyStats.writeSummaryToParcel(stats, parcel, false);


        final boolean[] newSupportedStandardBuckets = new boolean[NUMBER_STANDARD_POWER_BUCKETS];
        final boolean[] newSupportedStandardBuckets = new boolean[NUMBER_STANDARD_POWER_BUCKETS];
        newSupportedStandardBuckets[POWER_BUCKET_SCREEN_ON] = true;
        newSupportedStandardBuckets[POWER_BUCKET_SCREEN_ON] = true;
+1 −18
Original line number Original line Diff line number Diff line
@@ -345,29 +345,12 @@ public class MeasuredEnergySnapshot {
        for (int idx = 0; idx < size; idx++) {
        for (int idx = 0; idx < size; idx++) {
            final EnergyConsumer consumer = mEnergyConsumers.valueAt(idx);
            final EnergyConsumer consumer = mEnergyConsumers.valueAt(idx);
            if (consumer.type == (int) EnergyConsumerType.OTHER) {
            if (consumer.type == (int) EnergyConsumerType.OTHER) {
                names[consumerIndex++] = sanitizeCustomBucketName(consumer.name);
                names[consumerIndex++] = consumer.name;
            }
            }
        }
        }
        return names;
        return names;
    }
    }


    private String sanitizeCustomBucketName(String bucketName) {
        if (bucketName == null) {
            return "";
        }
        StringBuilder sb = new StringBuilder(bucketName.length());
        for (char c : bucketName.toCharArray()) {
            if (Character.isWhitespace(c)) {
                sb.append(' ');
            } else if (Character.isISOControl(c)) {
                sb.append('_');
            } else {
                sb.append(c);
            }
        }
        return sb.toString();
    }

    /** Determines the number of ordinals for a given {@link EnergyConsumerType}. */
    /** Determines the number of ordinals for a given {@link EnergyConsumerType}. */
    private static int calculateNumOrdinals(@EnergyConsumerType int type,
    private static int calculateNumOrdinals(@EnergyConsumerType int type,
            SparseArray<EnergyConsumer> idToConsumer) {
            SparseArray<EnergyConsumer> idToConsumer) {
+2 −3
Original line number Original line Diff line number Diff line
@@ -52,7 +52,7 @@ public final class MeasuredEnergySnapshotTest {
    private static final  EnergyConsumer CONSUMER_OTHER_1 = createEnergyConsumer(
    private static final  EnergyConsumer CONSUMER_OTHER_1 = createEnergyConsumer(
            1, 1, EnergyConsumerType.OTHER, "HPU");
            1, 1, EnergyConsumerType.OTHER, "HPU");
    private static final  EnergyConsumer CONSUMER_OTHER_2 = createEnergyConsumer(
    private static final  EnergyConsumer CONSUMER_OTHER_2 = createEnergyConsumer(
            436, 2, EnergyConsumerType.OTHER, "IPU\n&\005");
            436, 2, EnergyConsumerType.OTHER, "IPU");


    private static final SparseArray<EnergyConsumer> ALL_ID_CONSUMER_MAP = createIdToConsumerMap(
    private static final SparseArray<EnergyConsumer> ALL_ID_CONSUMER_MAP = createIdToConsumerMap(
            CONSUMER_DISPLAY, CONSUMER_OTHER_0, CONSUMER_OTHER_1, CONSUMER_OTHER_2);
            CONSUMER_DISPLAY, CONSUMER_OTHER_0, CONSUMER_OTHER_1, CONSUMER_OTHER_2);
@@ -228,8 +228,7 @@ public final class MeasuredEnergySnapshotTest {
    @Test
    @Test
    public void testGetOtherOrdinalNames() {
    public void testGetOtherOrdinalNames() {
        final MeasuredEnergySnapshot snapshot = new MeasuredEnergySnapshot(ALL_ID_CONSUMER_MAP);
        final MeasuredEnergySnapshot snapshot = new MeasuredEnergySnapshot(ALL_ID_CONSUMER_MAP);
        assertThat(snapshot.getOtherOrdinalNames()).asList()
        assertThat(snapshot.getOtherOrdinalNames()).asList().containsExactly("GPU", "HPU", "IPU");
                .containsExactly("GPU", "HPU", "IPU &_");
    }
    }


    @Test
    @Test