Definition of GenericAtom

Test: no test is necessary as it only adds a field to atoms.proto
Change-Id: If4e7c9497d1a4a8ba0fda3e8fb1ef67c525d6e64
Bug: 110537998
diff --git a/cmds/statsd/src/atoms.proto b/cmds/statsd/src/atoms.proto
index e23676f..279ed02 100644
--- a/cmds/statsd/src/atoms.proto
+++ b/cmds/statsd/src/atoms.proto
@@ -29,6 +29,7 @@
 import "frameworks/base/core/proto/android/telecomm/enums.proto";
 import "frameworks/base/core/proto/android/telephony/enums.proto";
 import "frameworks/base/core/proto/android/view/enums.proto";
+import "frameworks/base/proto/src/metrics_constants.proto";
 
 /**
  * The master atom class. This message defines all of the available
@@ -121,8 +122,7 @@
         ANROccurred anr_occurred = 79;
         WTFOccurred wtf_occurred = 80;
         LowMemReported low_mem_reported = 81;
-
-
+        GenericAtom generic_atom = 82;
     }
 
     // Pulled events will start at field 10000.
@@ -2012,3 +2012,14 @@
    // Maximum parcel request size of one API call.
    optional int64 max_request_size_bytes = 11;
 }
+
+/**
+ * An atom for generic metrics logging. Available from Android Q.
+ * One has to add an enum to frameworks/base/proto/src/metrics_constants.proto
+ * to extend another metric.
+ */
+message GenericAtom {
+  // Type of event. Previously it only indicated visual elements but now it
+  // is expanded to describe any type of event.
+  optional com_android_internal_logging.MetricsEvent.View view = 1;
+}