Change visibility of members in StatsEvent

- Rename writeAttributionNode to writeAttributionChain
- Make Type Id, size limit constants public and @hide for testing
- Change visibility of StatsEvent package protected functions to public

Bug: 141696033
Test: m -j
Change-Id: Ia4818f621672d469390bf7654bdd317f0cd11692
diff --git a/core/java/android/util/StatsEvent.java b/core/java/android/util/StatsEvent.java
index 10c9d87..d7ec30c 100644
--- a/core/java/android/util/StatsEvent.java
+++ b/core/java/android/util/StatsEvent.java
@@ -45,6 +45,166 @@
  * @hide
  **/
 public final class StatsEvent implements Parcelable {
+    // Type Ids.
+    /**
+     * @hide
+     **/
+    @VisibleForTesting
+    public static final byte TYPE_INT = 0x00;
+
+    /**
+     * @hide
+     **/
+    @VisibleForTesting
+    public static final byte TYPE_LONG = 0x01;
+
+    /**
+     * @hide
+     **/
+    @VisibleForTesting
+    public static final byte TYPE_STRING = 0x02;
+
+    /**
+     * @hide
+     **/
+    @VisibleForTesting
+    public static final byte TYPE_LIST = 0x03;
+
+    /**
+     * @hide
+     **/
+    @VisibleForTesting
+    public static final byte TYPE_FLOAT = 0x04;
+
+    /**
+     * @hide
+     **/
+    @VisibleForTesting
+    public static final byte TYPE_BOOLEAN = 0x05;
+
+    /**
+     * @hide
+     **/
+    @VisibleForTesting
+    public static final byte TYPE_BYTE_ARRAY = 0x06;
+
+    /**
+     * @hide
+     **/
+    @VisibleForTesting
+    public static final byte TYPE_OBJECT = 0x07;
+
+    /**
+     * @hide
+     **/
+    @VisibleForTesting
+    public static final byte TYPE_KEY_VALUE_PAIRS = 0x08;
+
+    /**
+     * @hide
+     **/
+    @VisibleForTesting
+    public static final byte TYPE_ATTRIBUTION_CHAIN = 0x09;
+
+    /**
+     * @hide
+     **/
+    @VisibleForTesting
+    public static final byte TYPE_ERRORS = 0x0F;
+
+    // Error flags.
+    /**
+     * @hide
+     **/
+    @VisibleForTesting
+    public static final int ERROR_NO_TIMESTAMP = 0x1;
+
+    /**
+     * @hide
+     **/
+    @VisibleForTesting
+    public static final int ERROR_NO_ATOM_ID = 0x2;
+
+    /**
+     * @hide
+     **/
+    @VisibleForTesting
+    public static final int ERROR_OVERFLOW = 0x4;
+
+    /**
+     * @hide
+     **/
+    @VisibleForTesting
+    public static final int ERROR_ATTRIBUTION_CHAIN_TOO_LONG = 0x8;
+
+    /**
+     * @hide
+     **/
+    @VisibleForTesting
+    public static final int ERROR_TOO_MANY_KEY_VALUE_PAIRS = 0x10;
+
+    /**
+     * @hide
+     **/
+    @VisibleForTesting
+    public static final int ERROR_ANNOTATION_DOES_NOT_FOLLOW_FIELD = 0x20;
+
+    /**
+     * @hide
+     **/
+    @VisibleForTesting
+    public static final int ERROR_INVALID_ANNOTATION_ID = 0x40;
+
+    /**
+     * @hide
+     **/
+    @VisibleForTesting
+    public static final int ERROR_ANNOTATION_ID_TOO_LARGE = 0x80;
+
+    /**
+     * @hide
+     **/
+    @VisibleForTesting
+    public static final int ERROR_TOO_MANY_ANNOTATIONS = 0x100;
+
+    /**
+     * @hide
+     **/
+    @VisibleForTesting
+    public static final int ERROR_TOO_MANY_FIELDS = 0x200;
+
+    /**
+     * @hide
+     **/
+    @VisibleForTesting
+    public static final int ERROR_ATTRIBUTION_UIDS_TAGS_SIZES_NOT_EQUAL = 0x400;
+
+    // Size limits.
+
+    /**
+     * @hide
+     **/
+    @VisibleForTesting
+    public static final int MAX_ANNOTATION_COUNT = 15;
+
+    /**
+     * @hide
+     **/
+    @VisibleForTesting
+    public static final int MAX_ATTRIBUTION_NODES = 127;
+
+    /**
+     * @hide
+     **/
+    @VisibleForTesting
+    public static final int MAX_NUM_ELEMENTS = 127;
+
+    /**
+     * @hide
+     **/
+    @VisibleForTesting
+    public static final int MAX_KEY_VALUE_PAIRS = 127;
+
     private static final int LOGGER_ENTRY_MAX_PAYLOAD = 4068;
 
     // Max payload size is 4 bytes less as 4 bytes are reserved for statsEventTag.
@@ -69,24 +229,75 @@
         return new StatsEvent.Builder(Buffer.obtain());
     }
 
-    int getAtomId() {
+    /**
+     * Get the atom Id of the atom encoded in this StatsEvent object.
+     *
+     * @hide
+     **/
+    public int getAtomId() {
         return mAtomId;
     }
 
+    /**
+     * Get the byte array that contains the encoded payload that can be sent to statsd.
+     *
+     * @hide
+     **/
     @NonNull
-    byte[] getBytes() {
+    public byte[] getBytes() {
         return mBuffer.getBytes();
     }
 
-    int getNumBytes() {
+    /**
+     * Get the number of bytes used to encode the StatsEvent payload.
+     *
+     * @hide
+     **/
+    public int getNumBytes() {
         return mNumBytes;
     }
 
-    void release() {
+    /**
+     * Recycle this StatsEvent object.
+     **/
+    public void release() {
         mBuffer.release();
     }
 
     /**
+     * Boilerplate for Parcel.
+     */
+    public static final @NonNull Parcelable.Creator<StatsEvent> CREATOR =
+            new Parcelable.Creator<StatsEvent>() {
+                public StatsEvent createFromParcel(Parcel in) {
+                    // Purposefully leaving this method not implemented.
+                    throw new RuntimeException("Not implemented");
+                }
+
+                public StatsEvent[] newArray(int size) {
+                    // Purposefully leaving this method not implemented.
+                    throw new RuntimeException("Not implemented");
+                }
+            };
+
+    /**
+     * Boilerplate for Parcel.
+     */
+    public void writeToParcel(Parcel out, int flags) {
+        out.writeInt(mAtomId);
+        out.writeInt(getNumBytes());
+        out.writeByteArray(getBytes());
+    }
+
+    /**
+     * Boilerplate for Parcel.
+     */
+    public int describeContents() {
+        return 0;
+    }
+
+
+    /**
      * Builder for constructing a StatsEvent object.
      *
      * <p>This class defines and encapsulates the socket encoding for the buffer.
@@ -114,41 +325,8 @@
      *         .addBooleanAnnotation(annotation1Id, true)
      *         .build();
      * </pre>
-     * @hide
      **/
     public static final class Builder {
-        // Type Ids.
-        private static final byte TYPE_INT = 0x00;
-        private static final byte TYPE_LONG = 0x01;
-        private static final byte TYPE_STRING = 0x02;
-        private static final byte TYPE_LIST = 0x03;
-        private static final byte TYPE_FLOAT = 0x04;
-        private static final byte TYPE_BOOLEAN = 0x05;
-        private static final byte TYPE_BYTE_ARRAY = 0x06;
-        private static final byte TYPE_OBJECT = 0x07;
-        private static final byte TYPE_KEY_VALUE_PAIRS = 0x08;
-        private static final byte TYPE_ATTRIBUTION_CHAIN = 0x09;
-        private static final byte TYPE_ERRORS = 0x0F;
-
-        // Error flags.
-        private static final int ERROR_NO_TIMESTAMP = 0x1;
-        private static final int ERROR_NO_ATOM_ID = 0x2;
-        private static final int ERROR_OVERFLOW = 0x4;
-        private static final int ERROR_ATTRIBUTION_CHAIN_TOO_LONG = 0x8;
-        private static final int ERROR_TOO_MANY_KEY_VALUE_PAIRS = 0x10;
-        private static final int ERROR_ANNOTATION_DOES_NOT_FOLLOW_FIELD = 0x20;
-        private static final int ERROR_INVALID_ANNOTATION_ID = 0x40;
-        private static final int ERROR_ANNOTATION_ID_TOO_LARGE = 0x80;
-        private static final int ERROR_TOO_MANY_ANNOTATIONS = 0x100;
-        private static final int ERROR_TOO_MANY_FIELDS = 0x200;
-        private static final int ERROR_ATTRIBUTION_UIDS_TAGS_SIZES_NOT_EQUAL = 0x400;
-
-        // Size limits.
-        private static final int MAX_ANNOTATION_COUNT = 15;
-        private static final int MAX_ATTRIBUTION_NODES = 127;
-        private static final int MAX_NUM_ELEMENTS = 127;
-        private static final int MAX_KEY_VALUE_PAIRS = 127;
-
         // Fixed positions.
         private static final int POS_NUM_ELEMENTS = 1;
         private static final int POS_TIMESTAMP_NS = POS_NUM_ELEMENTS + Byte.BYTES;
@@ -290,7 +468,7 @@
          * @param tags array of tags in the attribution nodes.
          **/
         @NonNull
-        public Builder writeAttributionNode(
+        public Builder writeAttributionChain(
                 @NonNull final int[] uids, @NonNull final String[] tags) {
             final byte numUids = (byte) uids.length;
             final byte numTags = (byte) tags.length;
@@ -633,39 +811,4 @@
             return 0;
         }
     }
-
-    /**
-     * Boilerplate for Parcel.
-     *
-     * @hide
-     */
-    public static final @NonNull Parcelable.Creator<StatsEvent> CREATOR =
-            new Parcelable.Creator<StatsEvent>() {
-                public StatsEvent createFromParcel(Parcel in) {
-                    // Purposefully leaving this method not implemented.
-                    throw new RuntimeException("Not implemented");
-                }
-
-                public StatsEvent[] newArray(int size) {
-                    // Purposefully leaving this method not implemented.
-                    throw new RuntimeException("Not implemented");
-                }
-            };
-
-    /**
-     * @hide
-     */
-    public void writeToParcel(Parcel out, int flags) {
-        out.writeInt(mAtomId);
-        out.writeInt(getNumBytes());
-        out.writeByteArray(getBytes());
-    }
-
-    /**
-     * Boilerplate for Parcel.
-     */
-    public int describeContents() {
-        return 0;
-    }
-
 }