Add an atom to log TextClassifier API latency and result

Bug: 169042373

Test: m TextClassifierService

Change-Id: If37cfefbc0e0714acc698ecb3bbd54a51b052e28
diff --git a/bin/src/atoms.proto b/bin/src/atoms.proto
index c53b2a7..16f46fe 100644
--- a/bin/src/atoms.proto
+++ b/bin/src/atoms.proto
@@ -501,6 +501,7 @@
         DataStallRecoveryReported data_stall_recovery_reported = 315 [(module) = "telephony"];
         MediametricsMediaParserReported mediametrics_mediaparser_reported = 316;
         TlsHandshakeReported tls_handshake_reported = 317 [(module) = "conscrypt"];
+        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.
@@ -11977,3 +11978,29 @@
 
     optional int32 handshake_duration_millis = 4;
 }
+
+/**
+ * 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;
+}