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

Commit df0e4104 authored by zhouwenjie's avatar zhouwenjie Committed by Wenjie Zhou
Browse files

Make sure mTransmitPowerInfo is always populated

Currently mTransmitPowerInfo could be empty, which ends up with a
IndexOutOfBoundsException.

Bug: 141382585
Change-Id: I97417f539b2bfba98499cbf4b609ea7c088b808f
Test: atest CtsIncidentHostTestCases:com.android.server.cts.BatteryStatsValidationTest
parent c9c0b9f2
Loading
Loading
Loading
Loading
+8 −6
Original line number Diff line number Diff line
@@ -20,11 +20,10 @@ import android.annotation.NonNull;
import android.annotation.SystemApi;
import android.os.Parcel;
import android.os.Parcelable;

import android.os.SystemClock;
import android.util.Range;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

/**
@@ -64,17 +63,20 @@ public final class ModemActivityInfo implements Parcelable {
        mTimestamp = timestamp;
        mSleepTimeMs = sleepTimeMs;
        mIdleTimeMs = idleTimeMs;
        if (txTimeMs != null) {
        populateTransmitPowerRange(txTimeMs);
        }
        mRxTimeMs = rxTimeMs;
    }

    /** helper API to populate tx power range for each bucket **/
    private void populateTransmitPowerRange(@NonNull int[] transmitPowerMs) {
        for (int i = 0; i < Math.min(transmitPowerMs.length, TX_POWER_LEVELS); i++) {
        int i = 0;
        for ( ; i < Math.min(transmitPowerMs.length, TX_POWER_LEVELS); i++) {
            mTransmitPowerInfo.add(i, new TransmitPower(TX_POWER_RANGES[i], transmitPowerMs[i]));
        }
        // Make sure that mTransmitPowerInfo is fully initialized.
        for ( ; i < TX_POWER_LEVELS; i++) {
            mTransmitPowerInfo.add(i, new TransmitPower(TX_POWER_RANGES[i], 0));
        }
    }

    @Override