code: @Override
      public int add(DownloadRequest request) throws IllegalArgumentException {
          checkReleased("add(...) called on a released ThinDownloadManager.");
          if (request == null) {
              throw new IllegalArgumentException("DownloadRequest cannot be null");
          }
          return mRequestQueue.add(request);
      }
docs: Add a new download.  The download will start automatically once the download manager is
  ready to execute it and connectivity is available.
  
  @param request the parameters specifying this download
  @return an ID for the download, unique across the application.  This ID is used to make future
  calls related to this download.
  @throws IllegalArgumentException