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

Commit 085e7726 authored by zhouwenjie's avatar zhouwenjie Committed by Daniel Bright
Browse files

Make sure mTransmitPowerInfo is always populated

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

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

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

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


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


    /** helper API to populate tx power range for each bucket **/
    /** helper API to populate tx power range for each bucket **/
    private void populateTransmitPowerRange(@NonNull int[] transmitPowerMs) {
    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]));
            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
    @Override