code: @NonNull
      @Override
      public ListenerToken addChangeListener(@NonNull QueryChangeListener listener) {
          if (listener == null) { throw new IllegalArgumentException("listener cannot be null."); }
          return addChangeListener(null, listener);
      }
docs: Adds a query change listener. Changes will be posted on the main queue.
  
  @param listener The listener to post changes.
  @return An opaque listener token object for removing the listener.