code: public int add(DownloadRequest request) {
      request = checkNotNull(request, "request == null");
      if (isDownloading(request.uri().toString())) {
        return -1;
      }
  
      request.context(context);
      request.downloader(downloader.copy());
  
      /* add download request into download request queue */
      return downloadRequestQueue.add(request) ? request.downloadId() : -1;
    }
docs: Add one download request into the queue.
  
  @param request download request
  @return download id, if the id is not set, then manager will generate one.
  if the request is in downloading, then -1 will be returned