private void op()

in metrics/src/main/java/com/facebook/battery/metrics/sensor/SensorMetrics.java [109:145]


  private void op(
      int sign,
      SparseArray<Consumption> a,
      SparseArray<Consumption> b,
      SparseArray<Consumption> output) {
    output.clear();

    for (int i = 0, l = a.size(); i < l; i++) {
      int key = a.keyAt(i);
      Consumption result;
      if (sign > 0) {
        result = a.valueAt(i).sum(b.get(key, ZERO));
      } else {
        result = a.valueAt(i).diff(b.get(key, ZERO));
      }

      if (!ZERO.equals(result)) {
        output.put(key, result);
      }
    }

    for (int j = 0, l = b.size(); j < l; j++) {
      int key = b.keyAt(j);
      if (a.get(key) == null) {
        Consumption result;
        if (sign > 0) {
          result = ZERO.sum(b.valueAt(j));
        } else {
          result = ZERO.diff(b.valueAt(j));
        }

        if (!ZERO.equals(result)) {
          output.put(key, result);
        }
      }
    }
  }