docs: public static <TResult> Task<Task<TResult>> whenAnyResult(Collection<? extends Task<TResult>> tasks) {
      if (tasks.size() == 0) {
        return Task.forResult(null);
      }
  
      final bolts.TaskCompletionSource<Task<TResult>> firstCompleted = new bolts.TaskCompletionSource<>();
      final AtomicBoolean isAnyTaskComplete = new AtomicBoolean(false);
  
      for (Task<TResult> task : tasks) {
        task.continueWith(new Continuation<TResult, Void>() {
          @Override
          public Void then(Task<TResult> task) {
            if (isAnyTaskComplete.compareAndSet(false, true)) {
              firstCompleted.setResult(task);
            } else {
              Throwable ensureObserved = task.getError();
            }
            return null;
          }
        });
      }
      return firstCompleted.getTask();
    }