Make Data#toByteArray() an instance method.

* This is based on API council feedback.

Test: Updated unit tests.
Fixes: b/138990025
Change-Id: I5dc3fde0ade4810ce0c20800b5011e0b71c09dd7
diff --git a/work/workmanager/api/2.3.0-alpha01.txt b/work/workmanager/api/2.3.0-alpha01.txt
index 0e3b058..d007563 100644
--- a/work/workmanager/api/2.3.0-alpha01.txt
+++ b/work/workmanager/api/2.3.0-alpha01.txt
@@ -80,7 +80,7 @@
     method public long[]? getLongArray(String);
     method public String? getString(String);
     method public String![]? getStringArray(String);
-    method public static byte[] toByteArray(androidx.work.Data);
+    method public byte[] toByteArray();
     field public static final androidx.work.Data! EMPTY;
     field public static final int MAX_DATA_BYTES = 10240; // 0x2800
   }
diff --git a/work/workmanager/api/current.txt b/work/workmanager/api/current.txt
index 0e3b058..d007563 100644
--- a/work/workmanager/api/current.txt
+++ b/work/workmanager/api/current.txt
@@ -80,7 +80,7 @@
     method public long[]? getLongArray(String);
     method public String? getString(String);
     method public String![]? getStringArray(String);
-    method public static byte[] toByteArray(androidx.work.Data);
+    method public byte[] toByteArray();
     field public static final androidx.work.Data! EMPTY;
     field public static final int MAX_DATA_BYTES = 10240; // 0x2800
   }
diff --git a/work/workmanager/src/androidTest/java/androidx/work/WorkDatabaseMigrationTest.java b/work/workmanager/src/androidTest/java/androidx/work/WorkDatabaseMigrationTest.java
index d44bdf5..780ee56 100644
--- a/work/workmanager/src/androidTest/java/androidx/work/WorkDatabaseMigrationTest.java
+++ b/work/workmanager/src/androidTest/java/androidx/work/WorkDatabaseMigrationTest.java
@@ -307,8 +307,8 @@
         contentValues.put("state", WorkTypeConverters.StateIds.ENQUEUED);
         contentValues.put("worker_class_name", TestWorker.class.getName());
         contentValues.put("input_merger_class_name", OverwritingInputMerger.class.getName());
-        contentValues.put("input", Data.toByteArray(Data.EMPTY));
-        contentValues.put("output", Data.toByteArray(Data.EMPTY));
+        contentValues.put("input", Data.EMPTY.toByteArray());
+        contentValues.put("output", Data.EMPTY.toByteArray());
         contentValues.put("initial_delay", 0L);
         contentValues.put("interval_duration", 0L);
         contentValues.put("flex_duration", 0L);
diff --git a/work/workmanager/src/main/java/androidx/work/Data.java b/work/workmanager/src/main/java/androidx/work/Data.java
index 8febaf8..4fafd31 100644
--- a/work/workmanager/src/main/java/androidx/work/Data.java
+++ b/work/workmanager/src/main/java/androidx/work/Data.java
@@ -330,6 +330,20 @@
     }
 
     /**
+     * Converts this Data to a byte array suitable for sending to other processes in your
+     * application.  There are no versioning guarantees with this byte array, so you should not
+     * use this for IPCs between applications or persistence.
+     *
+     * @return The byte array representation of the input
+     * @throws IllegalStateException if the serialized payload is bigger than
+     *                               {@link #MAX_DATA_BYTES}
+     */
+    @NonNull
+    public byte[] toByteArray() {
+        return Data.toByteArray(this);
+    }
+
+    /**
      * @return The number of elements in this Data object.
      * @hide
      */
@@ -345,8 +359,10 @@
      * @param data The {@link Data} object to convert
      * @return The byte array representation of the input
      * @throws IllegalStateException if the serialized payload is bigger than
-     *         {@link #MAX_DATA_BYTES}
+     *                               {@link #MAX_DATA_BYTES}
+     * @hide
      */
+    @RestrictTo(RestrictTo.Scope.LIBRARY_GROUP)
     @TypeConverter
     public static @NonNull byte[] toByteArray(@NonNull Data data) {
         ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
diff --git a/work/workmanager/src/test/java/androidx/work/DataTest.java b/work/workmanager/src/test/java/androidx/work/DataTest.java
index 9bb2466..80740e8 100644
--- a/work/workmanager/src/test/java/androidx/work/DataTest.java
+++ b/work/workmanager/src/test/java/androidx/work/DataTest.java
@@ -47,7 +47,7 @@
     public void testSerializeEmpty() {
         Data data = Data.EMPTY;
 
-        byte[] byteArray = Data.toByteArray(data);
+        byte[] byteArray = data.toByteArray();
         Data restoredData = Data.fromByteArray(byteArray);
 
         assertThat(restoredData, is(data));
@@ -62,7 +62,7 @@
                 .putString(KEY2, expectedValue2)
                 .build();
 
-        byte[] byteArray = Data.toByteArray(data);
+        byte[] byteArray = data.toByteArray();
         Data restoredData = Data.fromByteArray(byteArray);
 
         assertThat(restoredData, is(data));