docs: @NotNull public static <T> Observable<Response<T>> from(@NotNull final ApolloCall<T> call) {
      checkNotNull(call, "call == null");
  
      return Observable.create(new ObservableOnSubscribe<Response<T>>() {
        @Override public void subscribe(final ObservableEmitter<Response<T>> emitter) throws Exception {
          cancelOnObservableDisposed(emitter, call);
          call.enqueue(new ApolloCall.Callback<T>() {
            @Override public void onResponse(@NotNull Response<T> response) {
              if (!emitter.isDisposed()) {
                emitter.onNext(response);
              }
            }
  
            @Override public void onFailure(@NotNull ApolloException e) {
              Exceptions.throwIfFatal(e);
              if (!emitter.isDisposed()) {
                emitter.onError(e);
              }
            }
  
            @Override public void onStatusEvent(@NotNull ApolloCall.StatusEvent event) {
              if (event == ApolloCall.StatusEvent.COMPLETED && !emitter.isDisposed()) {
                emitter.onComplete();
              }
            }
          });
        }
      });
    }