in metrics/src/main/java/com/facebook/battery/metrics/wakelock/WakeLockMetrics.java [48:76]
public WakeLockMetrics sum(@Nullable WakeLockMetrics b, @Nullable WakeLockMetrics output) {
if (output == null) {
output = new WakeLockMetrics(isAttributionEnabled);
}
if (b == null) {
output.set(this);
} else {
output.heldTimeMs = heldTimeMs + b.heldTimeMs;
output.acquiredCount = acquiredCount + b.acquiredCount;
if (output.isAttributionEnabled) {
output.tagTimeMs.clear();
for (int i = 0, size = tagTimeMs.size(); i < size; i++) {
String tag = tagTimeMs.keyAt(i);
Long currentTimeMs = b.tagTimeMs.get(tag);
output.tagTimeMs.put(
tag, tagTimeMs.valueAt(i) + (currentTimeMs == null ? 0 : currentTimeMs));
}
for (int i = 0, size = b.tagTimeMs.size(); i < size; i++) {
String tag = b.tagTimeMs.keyAt(i);
if (tagTimeMs.get(tag) == null) {
output.tagTimeMs.put(tag, b.tagTimeMs.valueAt(i));
}
}
}
}
return output;
}