docs: @NotNull public static <T> Observable<Response<T>> from(@NotNull final ApolloQueryWatcher<T> watcher,
        @NotNull Emitter.BackpressureMode backpressureMode) {
      checkNotNull(backpressureMode, "backpressureMode == null");
      checkNotNull(watcher, "watcher == null");
      return Observable.create(new Action1<Emitter<Response<T>>>() {
        @Override public void call(final Emitter<Response<T>> emitter) {
          final AtomicBoolean canceled = new AtomicBoolean();
          emitter.setCancellation(new Cancellable() {
            @Override public void cancel() throws Exception {
              canceled.set(true);
              watcher.cancel();
            }
          });
          watcher.enqueueAndWatch(new ApolloCall.Callback<T>() {
            @Override public void onResponse(@NotNull Response<T> response) {
              if (!canceled.get()) {
                emitter.onNext(response);
              }
            }
  
            @Override public void onFailure(@NotNull ApolloException e) {
              Exceptions.throwIfFatal(e);
              if (!canceled.get()) {
                emitter.onError(e);
              }
            }
          });
        }
      }, backpressureMode);
    }