Add an atom to log TextClassifier API latency and result

Bug: 169042373

Test: m TextClassifierService

Merged-In: If37cfefbc0e0714acc698ecb3bbd54a51b052e28

Change-Id: If37cfefbc0e0714acc698ecb3bbd54a51b052e28
(cherry picked from commit 5359aa7a86fd98b68500954b350d00d1dda301fe)
diff --git a/atoms.proto b/atoms.proto
index aba1613..fa68b79 100644
--- a/atoms.proto
+++ b/atoms.proto
@@ -488,6 +488,8 @@
 
         MediametricsMediaParserReported mediametrics_mediaparser_reported = 316;
 
+        TextClassifierApiUsageReported text_classifier_api_usage_reported = 318  [(module) = "textclassifier"];
+
         // StatsdStats tracks platform atoms with ids upto 500.
         // Update StatsdStats::kMaxPushedAtomId when atom ids here approach that value.
     }
@@ -11245,3 +11247,29 @@
     // List of leasees of this Blob
     optional BlobLeaseeListProto leasees = 5;
 }
+
+/**
+ * Logs when a TextClassifier API is invoked.
+ *
+ * See frameworks/base/core/java/android/view/textclassifier/TextClassifier.java
+ * Logged from: external/libtextclassifier/java/
+ */
+message TextClassifierApiUsageReported {
+    enum ApiType {
+        UNKNOWN_API = 0;
+        SUGGEST_SELECTION = 1;
+        CLASSIFY_TEXT = 2;
+        GENERATE_LINKS = 3;
+        DETECT_LANGUAGES = 4;
+        SUGGEST_CONVERSATION_ACTIONS = 5;
+    }
+    optional ApiType api_type = 1;
+
+    enum ResultType {
+        UNKNOWN_RESULT = 0;
+        SUCCESS = 1;
+        FAIL = 2;
+    }
+    optional ResultType result_type = 2;
+    optional int64 latency_millis = 3;
+}