Expose APIs to query the state of an IpSecTransform

Bug: 308011229
Test: make update-api
Change-Id: I5ca6278305f814dbce6a7c41a4f4e491b1389b31
diff --git a/framework-t/api/current.txt b/framework-t/api/current.txt
index 86745d4..fb46ee7 100644
--- a/framework-t/api/current.txt
+++ b/framework-t/api/current.txt
@@ -127,6 +127,7 @@
 
   public final class IpSecTransform implements java.lang.AutoCloseable {
     method public void close();
+    method @FlaggedApi("com.android.net.flags.ipsec_transform_state") public void getIpSecTransformState(@NonNull java.util.concurrent.Executor, @NonNull android.os.OutcomeReceiver<android.net.IpSecTransformState,java.lang.RuntimeException>);
   }
 
   public static class IpSecTransform.Builder {
@@ -138,6 +139,29 @@
     method @NonNull public android.net.IpSecTransform.Builder setIpv4Encapsulation(@NonNull android.net.IpSecManager.UdpEncapsulationSocket, int);
   }
 
+  @FlaggedApi("com.android.net.flags.ipsec_transform_state") public final class IpSecTransformState implements android.os.Parcelable {
+    method public int describeContents();
+    method public long getByteCount();
+    method public long getPacketCount();
+    method @NonNull public byte[] getReplayBitmap();
+    method public long getRxHighestSequenceNumber();
+    method public long getTimestamp();
+    method public long getTxHighestSequenceNumber();
+    method public void writeToParcel(@NonNull android.os.Parcel, int);
+    field @NonNull public static final android.os.Parcelable.Creator<android.net.IpSecTransformState> CREATOR;
+  }
+
+  @FlaggedApi("com.android.net.flags.ipsec_transform_state") public static final class IpSecTransformState.Builder {
+    ctor public IpSecTransformState.Builder();
+    method @NonNull public android.net.IpSecTransformState build();
+    method @NonNull public android.net.IpSecTransformState.Builder setByteCount(long);
+    method @NonNull public android.net.IpSecTransformState.Builder setPacketCount(long);
+    method @NonNull public android.net.IpSecTransformState.Builder setReplayBitmap(@NonNull byte[]);
+    method @NonNull public android.net.IpSecTransformState.Builder setRxHighestSequenceNumber(long);
+    method @NonNull public android.net.IpSecTransformState.Builder setTimestamp(long);
+    method @NonNull public android.net.IpSecTransformState.Builder setTxHighestSequenceNumber(long);
+  }
+
   public class TrafficStats {
     ctor public TrafficStats();
     method public static void clearThreadStatsTag();
diff --git a/framework-t/src/android/net/IpSecTransform.java b/framework-t/src/android/net/IpSecTransform.java
index 0412a76..246a2dd 100644
--- a/framework-t/src/android/net/IpSecTransform.java
+++ b/framework-t/src/android/net/IpSecTransform.java
@@ -213,7 +213,6 @@
      * @param callback Callback that's called after the transform state is ready or when an error
      *     occurs.
      * @see IpSecTransformState
-     * @hide
      */
     @FlaggedApi(IPSEC_TRANSFORM_STATE)
     public void getIpSecTransformState(
diff --git a/framework-t/src/android/net/IpSecTransformState.java b/framework-t/src/android/net/IpSecTransformState.java
index daebbc4..b575dd5 100644
--- a/framework-t/src/android/net/IpSecTransformState.java
+++ b/framework-t/src/android/net/IpSecTransformState.java
@@ -37,8 +37,6 @@
  * well as observing out-of-order delivery by checking the bitmap. Additionally, callers can query
  * IpSecTransformStates at two timestamps. By comparing the changes in packet counts and sequence
  * numbers, callers can estimate IPsec data loss in the inbound direction.
- *
- * @hide
  */
 @FlaggedApi(IPSEC_TRANSFORM_STATE)
 public final class IpSecTransformState implements Parcelable {
@@ -125,7 +123,6 @@
      * Retrieve the epoch timestamp (milliseconds) for when this state was created
      *
      * @see Builder#setTimestamp(long)
-     * @hide
      */
     public long getTimestamp() {
         return mTimeStamp;
@@ -135,7 +132,6 @@
      * Retrieve the highest sequence number sent so far
      *
      * @see Builder#setTxHighestSequenceNumber(long)
-     * @hide
      */
     public long getTxHighestSequenceNumber() {
         return mTxHighestSequenceNumber;
@@ -145,7 +141,6 @@
      * Retrieve the highest sequence number received so far
      *
      * @see Builder#setRxHighestSequenceNumber(long)
-     * @hide
      */
     public long getRxHighestSequenceNumber() {
         return mRxHighestSequenceNumber;
@@ -155,7 +150,6 @@
      * Retrieve the number of packets received AND sent so far
      *
      * @see Builder#setPacketCount(long)
-     * @hide
      */
     public long getPacketCount() {
         return mPacketCount;
@@ -165,7 +159,6 @@
      * Retrieve the number of bytes received AND sent so far
      *
      * @see Builder#setByteCount(long)
-     * @hide
      */
     public long getByteCount() {
         return mByteCount;
@@ -184,18 +177,13 @@
      * IpSecTransforms, all bits will be unchecked.
      *
      * @see Builder#setReplayBitmap(byte[])
-     * @hide
      */
     @NonNull
     public byte[] getReplayBitmap() {
         return mReplayBitmap.clone();
     }
 
-    /**
-     * Builder class for testing purposes
-     *
-     * @hide
-     */
+    /** Builder class for testing purposes */
     @FlaggedApi(IPSEC_TRANSFORM_STATE)
     public static final class Builder {
         private long mTimeStamp;
@@ -205,7 +193,6 @@
         private long mByteCount;
         private byte[] mReplayBitmap;
 
-        /** @hide */
         public Builder() {
             mTimeStamp = System.currentTimeMillis();
         }
@@ -214,7 +201,6 @@
          * Set the epoch timestamp (milliseconds) for when this state was created
          *
          * @see IpSecTransformState#getTimestamp()
-         * @hide
          */
         @NonNull
         public Builder setTimestamp(long timeStamp) {
@@ -226,7 +212,6 @@
          * Set the highest sequence number sent so far
          *
          * @see IpSecTransformState#getTxHighestSequenceNumber()
-         * @hide
          */
         @NonNull
         public Builder setTxHighestSequenceNumber(long seqNum) {
@@ -238,7 +223,6 @@
          * Set the highest sequence number received so far
          *
          * @see IpSecTransformState#getRxHighestSequenceNumber()
-         * @hide
          */
         @NonNull
         public Builder setRxHighestSequenceNumber(long seqNum) {
@@ -250,7 +234,6 @@
          * Set the number of packets received AND sent so far
          *
          * @see IpSecTransformState#getPacketCount()
-         * @hide
          */
         @NonNull
         public Builder setPacketCount(long packetCount) {
@@ -262,7 +245,6 @@
          * Set the number of bytes received AND sent so far
          *
          * @see IpSecTransformState#getByteCount()
-         * @hide
          */
         @NonNull
         public Builder setByteCount(long byteCount) {
@@ -274,7 +256,6 @@
          * Set the replay bitmap
          *
          * @see IpSecTransformState#getReplayBitmap()
-         * @hide
          */
         @NonNull
         public Builder setReplayBitmap(@NonNull byte[] bitMap) {
@@ -286,7 +267,6 @@
          * Build and validate the IpSecTransformState
          *
          * @return an immutable IpSecTransformState instance
-         * @hide
          */
         @NonNull
         public IpSecTransformState build() {