Merge "Backfill atom tests for new event metric format" am: 9706e6072f am: 291820727f

Original change: https://android-review.googlesource.com/c/platform/external/libtextclassifier/+/1922001

Change-Id: If86ad1c9cefcd16a97f4e0109d15024859f95bd5
diff --git a/java/tests/instrumentation/src/com/android/textclassifier/common/statsd/StatsdTestUtils.java b/java/tests/instrumentation/src/com/android/textclassifier/common/statsd/StatsdTestUtils.java
index 1bcd7b7..ffd2ee4 100644
--- a/java/tests/instrumentation/src/com/android/textclassifier/common/statsd/StatsdTestUtils.java
+++ b/java/tests/instrumentation/src/com/android/textclassifier/common/statsd/StatsdTestUtils.java
@@ -28,6 +28,7 @@
 import com.android.internal.os.StatsdConfigProto.SimpleAtomMatcher;
 import com.android.internal.os.StatsdConfigProto.StatsdConfig;
 import com.android.os.AtomsProto.Atom;
+import com.android.os.StatsLog.AggregatedAtomInfo;
 import com.android.os.StatsLog.ConfigMetricsReport;
 import com.android.os.StatsLog.ConfigMetricsReportList;
 import com.android.os.StatsLog.EventMetricData;
@@ -85,6 +86,8 @@
     return ImmutableList.copyOf(
         metricsList.stream()
             .flatMap(statsLogReport -> statsLogReport.getEventMetrics().getDataList().stream())
+            .flatMap(eventMetricData -> backfillAggregatedAtomsinEventMetric(
+                    eventMetricData).stream())
             .sorted(Comparator.comparing(EventMetricData::getElapsedTimestampNanos))
             .map(EventMetricData::getAtom)
             .collect(Collectors.toList()));
@@ -131,4 +134,20 @@
             /*input=*/ null);
     return ConfigMetricsReportList.parser().parseFrom(new ByteArrayInputStream(output));
   }
+
+  private static ImmutableList<EventMetricData> backfillAggregatedAtomsinEventMetric(
+    EventMetricData metricData) {
+    if (metricData.hasAtom()) {
+      return ImmutableList.of(metricData);
+    }
+    ImmutableList.Builder<EventMetricData> data = ImmutableList.builder();
+    AggregatedAtomInfo atomInfo = metricData.getAggregatedAtomInfo();
+    for (long timestamp : atomInfo.getElapsedTimestampNanosList()) {
+      EventMetricData.Builder newMetricData = EventMetricData.newBuilder();
+      newMetricData.setAtom(atomInfo.getAtom());
+      newMetricData.setElapsedTimestampNanos(timestamp);
+      data.add(newMetricData.build());
+    }
+    return data.build();
+  }
 }