in metrics/src/main/java/com/facebook/battery/metrics/wakelock/WakeLockMetrics.java [79:103]
public WakeLockMetrics diff(@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);
long difference = tagTimeMs.valueAt(i) - (currentTimeMs == null ? 0 : currentTimeMs);
if (difference != 0) {
output.tagTimeMs.put(tag, difference);
}
}
}
}
return output;
}