Exemplo n.º 1
0
  /**
   * has to be done before a new {@link PictureLoaderHandler.setLoadingNewURL(DownloadManager,
   * String, SimpleLogger)}
   *
   * @param loadHandler
   * @param URL TODO
   * @return true if there was a task loading
   */
  boolean cancelDownloadForLoader(PictureLoaderHandler loadHandler, String URL) {
    synchronized (mJobs) {
      if (DEBUG_DOWNLOADER)
        LogManager.logger.i(
            PictureCache.LOG_TAG,
            "cancelDownloadForLoader for " + URL + " loadHandler:" + loadHandler);
      if (!TextUtils.isEmpty(URL)) {
        BitmapDownloader downloader = mJobs.get(URL);
        if (DEBUG_DOWNLOADER)
          LogManager.logger.i(
              PictureCache.LOG_TAG,
              " cancelDownloadForLoader loadHandler:" + loadHandler + " found:" + downloader);
        if (downloader != null) {
          // LogManager.logger.d(PictureCache.TAG, "cancelDownloadForTarget for URL " + URL+" for
          // "+loader);
          return downloader.removeTarget(loadHandler);
        }
      }
    }

    // find the target by view
    // LogManager.logger.w(PictureCache.TAG, "cancelDownloadForTarget by key " + loader);
    Enumeration<BitmapDownloader> downloaders = mJobs.elements();
    while (downloaders.hasMoreElements()) {
      BitmapDownloader downloader = downloaders.nextElement();
      if (downloader.removeTarget(loadHandler)) {
        if (DEBUG_DOWNLOADER)
          LogManager.logger.i(
              PictureCache.LOG_TAG,
              " cancelDownloadForLoader loadHandler:"
                  + loadHandler
                  + " deleted on:"
                  + downloader /*+" url:"+url*/);
        return true;
      }
    }
    if (DEBUG_DOWNLOADER)
      LogManager.logger.w(
          PictureCache.LOG_TAG,
          "cancelDownloadForLoader do nothing for loadHandler:" + loadHandler);
    return false;
  }