Merge "Add SparseLongArray.incrementValue()"
This commit is contained in:
committed by
Android (Google) Code Review
commit
c830547fd1
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user