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

Commit c830547f authored by Dmitri Plotnikov's avatar Dmitri Plotnikov Committed by Android (Google) Code Review
Browse files

Merge "Add SparseLongArray.incrementValue()"

parents 67965998 bb925fb0
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -105,7 +105,7 @@ public class SparseDoubleArray implements Cloneable {
     * <p>This differs from {@link #put} because instead of replacing any previous value, it adds
     * (in the numerical sense) to it.
     */
    public void add(int key, double summand) {
    public void incrementValue(int key, double summand) {
        final double oldValue = get(key);
        put(key, oldValue + summand);
    }
+24 −0
Original line number Diff line number Diff line
@@ -163,6 +163,30 @@ public class SparseLongArray implements Cloneable {
        }
    }

    /**
     * Adds a mapping from the specified key to the specified value,
     * <b>adding</b> its value to the previous mapping from the specified key if there
     * was one.
     *
     * <p>This differs from {@link #put} because instead of replacing any previous value, it adds
     * (in the numerical sense) to it.
     *
     * @hide
     */
    public void incrementValue(int key, long summand) {
        int i = ContainerHelpers.binarySearch(mKeys, mSize, key);

        if (i >= 0) {
            mValues[i] += summand;
        } else {
            i = ~i;

            mKeys = GrowingArrayUtils.insert(mKeys, mSize, i, key);
            mValues = GrowingArrayUtils.insert(mValues, mSize, i, summand);
            mSize++;
        }
    }

    /**
     * Returns the number of key-value mappings that this SparseLongArray
     * currently stores.
+8 −8
Original line number Diff line number Diff line
@@ -12828,7 +12828,7 @@ public class BatteryStatsImpl extends BatteryStats {
                            }
                        }
                        uidEstimatedConsumptionMah.add(u.getUid(),
                        uidEstimatedConsumptionMah.incrementValue(u.getUid(),
                                mWifiPowerCalculator.calcPowerWithoutControllerDataMah(
                                        entry.rxPackets, entry.txPackets,
                                        uidRunningMs, uidScanMs, uidBatchScanMs));
@@ -12955,7 +12955,7 @@ public class BatteryStatsImpl extends BatteryStats {
                    if (uidEstimatedConsumptionMah != null) {
                        double uidEstMah = mWifiPowerCalculator.calcPowerFromControllerDataMah(
                                scanRxTimeSinceMarkMs, scanTxTimeSinceMarkMs, myIdleTimeMs);
                        uidEstimatedConsumptionMah.add(uid.getUid(), uidEstMah);
                        uidEstimatedConsumptionMah.incrementValue(uid.getUid(), uidEstMah);
                    }
                }
@@ -12977,7 +12977,7 @@ public class BatteryStatsImpl extends BatteryStats {
                    uid.getOrCreateWifiControllerActivityLocked().getOrCreateTxTimeCounters()[0]
                            .increment(myTxTimeMs, elapsedRealtimeMs);
                    if (uidEstimatedConsumptionMah != null) {
                        uidEstimatedConsumptionMah.add(uid.getUid(),
                        uidEstimatedConsumptionMah.incrementValue(uid.getUid(),
                                mWifiPowerCalculator.calcPowerFromControllerDataMah(
                                        0, myTxTimeMs, 0));
                    }
@@ -12996,7 +12996,7 @@ public class BatteryStatsImpl extends BatteryStats {
                    uid.getOrCreateWifiControllerActivityLocked().getOrCreateRxTimeCounter()
                            .increment(myRxTimeMs, elapsedRealtimeMs);
                    if (uidEstimatedConsumptionMah != null) {
                        uidEstimatedConsumptionMah.add(uid.getUid(),
                        uidEstimatedConsumptionMah.incrementValue(uid.getUid(),
                                mWifiPowerCalculator.calcPowerFromControllerDataMah(
                                        myRxTimeMs, 0, 0));
                    }
@@ -13224,7 +13224,7 @@ public class BatteryStatsImpl extends BatteryStats {
                        // Distribute measured mobile radio charge consumption based on app radio
                        // active time
                        if (uidEstimatedConsumptionMah != null) {
                            uidEstimatedConsumptionMah.add(u.getUid(),
                            uidEstimatedConsumptionMah.incrementValue(u.getUid(),
                                    mMobileRadioPowerCalculator.calcPowerFromRadioActiveDurationMah(
                                            appRadioTimeUs / 1000));
                        }
@@ -13479,7 +13479,7 @@ public class BatteryStatsImpl extends BatteryStats {
                        .increment(scanTimeTxSinceMarkMs, elapsedRealtimeMs);
                if (uidEstimatedConsumptionMah != null) {
                    uidEstimatedConsumptionMah.add(u.getUid(),
                    uidEstimatedConsumptionMah.incrementValue(u.getUid(),
                            mBluetoothPowerCalculator.calculatePowerMah(
                                    scanTimeRxSinceMarkMs, scanTimeTxSinceMarkMs, 0));
                }
@@ -13546,7 +13546,7 @@ public class BatteryStatsImpl extends BatteryStats {
                    counter.getOrCreateRxTimeCounter().increment(timeRxMs, elapsedRealtimeMs);
                    if (uidEstimatedConsumptionMah != null) {
                        uidEstimatedConsumptionMah.add(u.getUid(),
                        uidEstimatedConsumptionMah.incrementValue(u.getUid(),
                                mBluetoothPowerCalculator.calculatePowerMah(timeRxMs, 0, 0));
                    }
                }
@@ -13560,7 +13560,7 @@ public class BatteryStatsImpl extends BatteryStats {
                            .increment(timeTxMs, elapsedRealtimeMs);
                    if (uidEstimatedConsumptionMah != null) {
                        uidEstimatedConsumptionMah.add(u.getUid(),
                        uidEstimatedConsumptionMah.incrementValue(u.getUid(),
                                mBluetoothPowerCalculator.calculatePowerMah(0, timeTxMs, 0));
                    }
                }
+3 −3
Original line number Diff line number Diff line
@@ -64,12 +64,12 @@ public class SparseDoubleArrayTest {
    }

    @Test
    public void testAdd() {
    public void testIncrementValue() {
        final SparseDoubleArray sda = new SparseDoubleArray();

        sda.put(4, 6.1);
        sda.add(4, -1.2);
        sda.add(2, -1.2);
        sda.incrementValue(4, -1.2);
        sda.incrementValue(2, -1.2);

        assertEquals(6.1 - 1.2, sda.get(4), PRECISION);
        assertEquals(-1.2, sda.get(2), PRECISION);
+12 −0
Original line number Diff line number Diff line
@@ -154,4 +154,16 @@ public class SparseLongArrayTest {
        assertRemoved(startIndex, endIndex);
        assertTrue(isSame(sparseLongArray2, mSparseLongArray));
    }

    @Test
    public void testIncrementValue() {
        final SparseLongArray sla = new SparseLongArray();

        sla.put(4, 6);
        sla.incrementValue(4, 4);
        sla.incrementValue(2, 5);

        assertEquals(6 + 4, sla.get(4));
        assertEquals(5, sla.get(2));
    }
}