@Inject
  public TorrentDownloadListener(
      DownloadManager downloadManager,
      ActivityCallback activityCallback,
      @GnutellaFiles FileCollection gnutellaFileList,
      TorrentManager torrentManager,
      @Assisted List<DownloadItem> downloadItems,
      @Assisted Downloader downloader) {
    this.downloader = Objects.nonNull(downloader, "downloader");
    this.downloadManager = Objects.nonNull(downloadManager, "downloadManager");
    this.torrentManager = Objects.nonNull(torrentManager, "torrentManager");
    this.gnutellaFileList = Objects.nonNull(gnutellaFileList, "gnutellaFileList");
    this.activityCallback = Objects.nonNull(activityCallback, "activityCallback");
    this.downloadItems = Objects.nonNull(downloadItems, "downloadItems");

    if (downloader.getState() == DownloadState.COMPLETE) {
      if (downloader instanceof CoreDownloader) {
        handleEvent(new DownloadStateEvent((CoreDownloader) downloader, DownloadState.COMPLETE));
      }
    }
  }