Rename WorkContinuation join to combine.

As per API council, this better matches CompletableFuture.

Change-Id: I6b93896d385734244ffd7b3b45573c32ca28d8dc
Fixes: 78287319
Test: Ran tests.
diff --git a/work/workmanager/src/androidTest/java/androidx/work/impl/WorkContinuationImplTest.java b/work/workmanager/src/androidTest/java/androidx/work/impl/WorkContinuationImplTest.java
index 6851c91..ede0624 100644
--- a/work/workmanager/src/androidTest/java/androidx/work/impl/WorkContinuationImplTest.java
+++ b/work/workmanager/src/androidTest/java/androidx/work/impl/WorkContinuationImplTest.java
@@ -192,7 +192,7 @@
         WorkContinuationImpl second = new WorkContinuationImpl(mWorkManagerImpl,
                 createTestWorkerList());
 
-        WorkContinuationImpl dependent = (WorkContinuationImpl) WorkContinuation.join(first,
+        WorkContinuationImpl dependent = (WorkContinuationImpl) WorkContinuation.combine(first,
                 second);
         assertThat(dependent.getParents(), is(notNullValue()));
         assertThat(dependent.getParents(), containsInAnyOrder(first, second));
@@ -206,8 +206,8 @@
 
         OneTimeWorkRequest work = createTestWorker();
 
-        WorkContinuationImpl dependent = (WorkContinuationImpl) WorkContinuation.join(work, first,
-                second);
+        WorkContinuationImpl dependent = (WorkContinuationImpl) WorkContinuation.combine(
+                work, first, second);
 
         assertThat(dependent.getIds(), containsInAnyOrder(work.getId()));
         assertThat(dependent.getParents(), is(notNullValue()));
@@ -226,11 +226,11 @@
         WorkContinuationImpl fourth = new WorkContinuationImpl(mWorkManagerImpl,
                 createTestWorkerList());
 
-        WorkContinuationImpl firstDependent = (WorkContinuationImpl) WorkContinuation.join(first,
-                second);
-        WorkContinuationImpl secondDependent = (WorkContinuationImpl) WorkContinuation.join(third,
-                fourth);
-        WorkContinuationImpl dependent = (WorkContinuationImpl) WorkContinuation.join(
+        WorkContinuationImpl firstDependent = (WorkContinuationImpl) WorkContinuation.combine(
+                first, second);
+        WorkContinuationImpl secondDependent = (WorkContinuationImpl) WorkContinuation.combine(
+                third, fourth);
+        WorkContinuationImpl dependent = (WorkContinuationImpl) WorkContinuation.combine(
                 firstDependent, secondDependent);
         dependent.enqueueSync();
         verifyEnqueued(dependent);
@@ -245,11 +245,11 @@
                 createTestWorkerList());
         WorkContinuationImpl third = new WorkContinuationImpl(mWorkManagerImpl,
                 createTestWorkerList());
-        WorkContinuationImpl firstDependent = (WorkContinuationImpl) WorkContinuation.join(first,
-                second);
-        WorkContinuationImpl secondDependent = (WorkContinuationImpl) WorkContinuation.join(first,
-                third);
-        WorkContinuationImpl dependent = (WorkContinuationImpl) WorkContinuation.join(
+        WorkContinuationImpl firstDependent = (WorkContinuationImpl) WorkContinuation.combine(
+                first, second);
+        WorkContinuationImpl secondDependent = (WorkContinuationImpl) WorkContinuation.combine(
+                first, third);
+        WorkContinuationImpl dependent = (WorkContinuationImpl) WorkContinuation.combine(
                 firstDependent, secondDependent);
         dependent.enqueueSync();
         verifyEnqueued(dependent);
@@ -286,7 +286,8 @@
         WorkContinuationImpl secondContinuation =
                 new WorkContinuationImpl(mWorkManagerImpl, Collections.singletonList(secondWork));
         WorkContinuationImpl dependentContinuation =
-                (WorkContinuationImpl) WorkContinuation.join(firstContinuation, secondContinuation);
+                (WorkContinuationImpl) WorkContinuation.combine(
+                        firstContinuation, secondContinuation);
         dependentContinuation.enqueueSync();
 
         String joinId = null;
@@ -324,7 +325,7 @@
 
     @Test
     @SmallTest
-    public void testContinuation_hasCycles() throws InterruptedException {
+    public void testContinuation_hasCycles() {
         OneTimeWorkRequest aWork = createTestWorker(); // A
         OneTimeWorkRequest bWork = createTestWorker(); // B
         OneTimeWorkRequest cWork = createTestWorker(); // C
@@ -338,8 +339,8 @@
         // B -> C
         WorkContinuation continuationBC = continuationB.then(cWork);
 
-        // join -> A, C
-        WorkContinuation join = WorkContinuation.join(continuationA, continuationBC);
+        // combine -> A, C
+        WorkContinuation join = WorkContinuation.combine(continuationA, continuationBC);
 
         // withCycles -> B
         WorkContinuationImpl withCycles = (WorkContinuationImpl) join.then(bWork);
@@ -348,7 +349,7 @@
 
     @Test
     @SmallTest
-    public void testContinuation_hasCycles2() throws InterruptedException {
+    public void testContinuation_hasCycles2() {
         OneTimeWorkRequest aWork = createTestWorker(); // A
         WorkContinuation continuationA = new WorkContinuationImpl(
                 mWorkManagerImpl, Collections.singletonList(aWork));
@@ -360,7 +361,7 @@
 
     @Test
     @SmallTest
-    public void testContinuation_hasCycles3() throws InterruptedException {
+    public void testContinuation_hasCycles3() {
         OneTimeWorkRequest aWork = createTestWorker(); // A
         WorkContinuation continuationA = new WorkContinuationImpl(
                 mWorkManagerImpl, Collections.singletonList(aWork));
@@ -372,13 +373,14 @@
         //   A
         //  A A
         //   A
-        WorkContinuationImpl joined = (WorkContinuationImpl) WorkContinuation.join(first, second);
+        WorkContinuationImpl joined = (WorkContinuationImpl) WorkContinuation.combine(
+                first, second);
         assertThat(joined.hasCycles(), is(true));
     }
 
     @Test
     @SmallTest
-    public void testContinuation_hasCycles4() throws InterruptedException {
+    public void testContinuation_hasCycles4() {
         OneTimeWorkRequest aWork = createTestWorker(); // A
         OneTimeWorkRequest cWork = createTestWorker(); // C
 
@@ -387,7 +389,7 @@
 
         // A   A
         //   B
-        WorkContinuation continuationB = WorkContinuation.join(continuationA, continuationA);
+        WorkContinuation continuationB = WorkContinuation.combine(continuationA, continuationA);
         // A   A
         //   B
         //   C
@@ -402,7 +404,7 @@
 
     @Test
     @SmallTest
-    public void testContinuation_hasNoCycles() throws InterruptedException {
+    public void testContinuation_hasNoCycles() {
         OneTimeWorkRequest aWork = createTestWorker(); // A
         OneTimeWorkRequest bWork = createTestWorker(); // B
         OneTimeWorkRequest cWork = createTestWorker(); // C
@@ -414,14 +416,14 @@
                 mWorkManagerImpl, Arrays.asList(bWork, cWork));
 
         WorkContinuationImpl joined =
-                (WorkContinuationImpl) WorkContinuation.join(continuationAB, continuationBC);
+                (WorkContinuationImpl) WorkContinuation.combine(continuationAB, continuationBC);
 
         assertThat(joined.hasCycles(), is(false));
     }
 
     @Test
     @SmallTest
-    public void testContinuation_hasNoCycles2() throws InterruptedException {
+    public void testContinuation_hasNoCycles2() {
         OneTimeWorkRequest aWork = createTestWorker(); // A
         OneTimeWorkRequest bWork = createTestWorker(); // B
         OneTimeWorkRequest cWork = createTestWorker(); // C
@@ -444,15 +446,15 @@
         //    A      A
         //  B   C  B   C
         //       D
-        WorkContinuationImpl joined = (WorkContinuationImpl)
-                WorkContinuation.join(continuationB, continuationC, continuationB2, continuationC2);
+        WorkContinuationImpl joined = (WorkContinuationImpl) WorkContinuation.combine(
+                continuationB, continuationC, continuationB2, continuationC2);
 
         assertThat(joined.hasCycles(), is(false));
     }
 
     @Test
     @SmallTest
-    public void testContinuation_hasNoCycles3() throws InterruptedException {
+    public void testContinuation_hasNoCycles3() {
         OneTimeWorkRequest aWork = createTestWorker(); // A
         OneTimeWorkRequest bWork = createTestWorker(); // B
         OneTimeWorkRequest cWork = createTestWorker(); // C
@@ -466,10 +468,11 @@
         WorkContinuation continuationC = new WorkContinuationImpl(
                 mWorkManagerImpl, Collections.singletonList(cWork));
 
-        WorkContinuation first = WorkContinuation.join(continuationA, continuationB);
-        WorkContinuation second = WorkContinuation.join(continuationA, continuationC);
+        WorkContinuation first = WorkContinuation.combine(continuationA, continuationB);
+        WorkContinuation second = WorkContinuation.combine(continuationA, continuationC);
 
-        WorkContinuationImpl joined = (WorkContinuationImpl) WorkContinuation.join(first, second);
+        WorkContinuationImpl joined = (WorkContinuationImpl) WorkContinuation.combine(
+                first, second);
         assertThat(joined.hasCycles(), is(false));
     }
 
diff --git a/work/workmanager/src/main/java/androidx/work/WorkContinuation.java b/work/workmanager/src/main/java/androidx/work/WorkContinuation.java
index d95c451..80acc82 100644
--- a/work/workmanager/src/main/java/androidx/work/WorkContinuation.java
+++ b/work/workmanager/src/main/java/androidx/work/WorkContinuation.java
@@ -73,34 +73,34 @@
     public abstract SynchronousWorkContinuation synchronous();
 
     /**
-     * Joins multiple {@link WorkContinuation}s to allow for complex chaining.
+     * Combines multiple {@link WorkContinuation}s to allow for complex chaining.
      *
      * @param continuations Two or more {@link WorkContinuation}s that are prerequisites for the
      *                      return value
      * @return A {@link WorkContinuation} that allows further chaining
      */
-    public static WorkContinuation join(@NonNull WorkContinuation... continuations) {
-        return join(Arrays.asList(continuations));
+    public static WorkContinuation combine(@NonNull WorkContinuation... continuations) {
+        return combine(Arrays.asList(continuations));
     }
 
     /**
-     * Joins multiple {@link WorkContinuation}s to allow for complex chaining.
+     * Combines multiple {@link WorkContinuation}s to allow for complex chaining.
      *
      * @param continuations Two or more {@link WorkContinuation}s that are prerequisites for the
      *                      return value
      * @return A {@link WorkContinuation} that allows further chaining
      */
-    public static WorkContinuation join(@NonNull List<WorkContinuation> continuations) {
+    public static WorkContinuation combine(@NonNull List<WorkContinuation> continuations) {
         if (continuations.size() < 2) {
             throw new IllegalArgumentException(
-                    "WorkContinuation.join() needs at least 2 continuations.");
+                    "WorkContinuation.combine() needs at least 2 continuations.");
         }
 
-        return continuations.get(0).joinInternal(null, continuations);
+        return continuations.get(0).combineInternal(null, continuations);
     }
 
     /**
-     * Joins multiple {@link WorkContinuation}s to allow for complex chaining using the
+     * Combines multiple {@link WorkContinuation}s to allow for complex chaining using the
      * {@link OneTimeWorkRequest} provided.
      *
      * @param work The {@link OneTimeWorkRequest} which depends on the successful completion of the
@@ -109,14 +109,14 @@
      *                      {@link OneTimeWorkRequest} provided.
      * @return A {@link WorkContinuation} that allows further chaining
      */
-    public static WorkContinuation join(
+    public static WorkContinuation combine(
             @NonNull OneTimeWorkRequest work,
             @NonNull WorkContinuation... continuations) {
-        return join(work, Arrays.asList(continuations));
+        return combine(work, Arrays.asList(continuations));
     }
 
     /**
-     * Joins multiple {@link WorkContinuation}s to allow for complex chaining using the
+     * Combines multiple {@link WorkContinuation}s to allow for complex chaining using the
      * {@link OneTimeWorkRequest} provided.
      *
      * @param work The {@link OneTimeWorkRequest} which depends on the successful completion of the
@@ -125,17 +125,17 @@
      *                      {@link OneTimeWorkRequest} provided.
      * @return A {@link WorkContinuation} that allows further chaining
      */
-    public static WorkContinuation join(
+    public static WorkContinuation combine(
             @NonNull OneTimeWorkRequest work,
             @NonNull List<WorkContinuation> continuations) {
-        return continuations.get(0).joinInternal(work, continuations);
+        return continuations.get(0).combineInternal(work, continuations);
     }
 
     /**
      * @hide
      */
     @RestrictTo(RestrictTo.Scope.LIBRARY_GROUP)
-    protected abstract WorkContinuation joinInternal(
+    protected abstract WorkContinuation combineInternal(
             @Nullable OneTimeWorkRequest work,
             @NonNull List<WorkContinuation> continuations);
 }
diff --git a/work/workmanager/src/main/java/androidx/work/impl/WorkContinuationImpl.java b/work/workmanager/src/main/java/androidx/work/impl/WorkContinuationImpl.java
index 6b26d74..159e473 100644
--- a/work/workmanager/src/main/java/androidx/work/impl/WorkContinuationImpl.java
+++ b/work/workmanager/src/main/java/androidx/work/impl/WorkContinuationImpl.java
@@ -33,7 +33,7 @@
 import androidx.work.WorkRequest;
 import androidx.work.WorkStatus;
 import androidx.work.impl.utils.EnqueueRunnable;
-import androidx.work.impl.workers.JoinWorker;
+import androidx.work.impl.workers.CombineContinuationsWorker;
 
 import java.util.ArrayList;
 import java.util.Collections;
@@ -197,12 +197,12 @@
     }
 
     @Override
-    protected WorkContinuation joinInternal(
+    protected WorkContinuation combineInternal(
             @Nullable OneTimeWorkRequest work,
             @NonNull List<WorkContinuation> continuations) {
 
         if (work == null) {
-            work = new OneTimeWorkRequest.Builder(JoinWorker.class)
+            work = new OneTimeWorkRequest.Builder(CombineContinuationsWorker.class)
                     .withInputMerger(ArrayCreatingInputMerger.class)
                     .build();
         }
diff --git a/work/workmanager/src/main/java/androidx/work/impl/workers/JoinWorker.java b/work/workmanager/src/main/java/androidx/work/impl/workers/CombineContinuationsWorker.java
similarity index 88%
rename from work/workmanager/src/main/java/androidx/work/impl/workers/JoinWorker.java
rename to work/workmanager/src/main/java/androidx/work/impl/workers/CombineContinuationsWorker.java
index 5943246..b884ada 100644
--- a/work/workmanager/src/main/java/androidx/work/impl/workers/JoinWorker.java
+++ b/work/workmanager/src/main/java/androidx/work/impl/workers/CombineContinuationsWorker.java
@@ -22,13 +22,12 @@
 import androidx.work.Worker;
 
 /**
- * Is a implementation of the {@link Worker} that helps join
- * work continuations.
+ * A {@link Worker} that helps combine work continuations.
  *
  * @hide
  */
 @RestrictTo(RestrictTo.Scope.LIBRARY_GROUP)
-public class JoinWorker extends Worker {
+public class CombineContinuationsWorker extends Worker {
     @Override
     public @NonNull WorkerResult doWork() {
         setOutputData(getInputData());