package org.qii.weiciyuan.support.asyncdrawable; import org.qii.weiciyuan.support.file.FileDownloaderHttpHelper; import org.qii.weiciyuan.support.file.FileLocationMethod; import org.qii.weiciyuan.support.file.FileManager; import org.qii.weiciyuan.support.imageutility.ImageUtility; import org.qii.weiciyuan.support.lib.MyAsyncTask; import java.util.concurrent.CopyOnWriteArrayList; /** * User: qii * Date: 13-2-9 * support to insert progressbar update */ @Deprecated public class DownloadWorker extends MyAsyncTask<String, Integer, Boolean> implements IPictureWorker { private String url = ""; private CopyOnWriteArrayList<FileDownloaderHttpHelper.DownloadListener> downloadListenerList = new CopyOnWriteArrayList<FileDownloaderHttpHelper.DownloadListener>(); private FileLocationMethod method; public String getUrl() { return url; } public DownloadWorker(String url, FileLocationMethod method) { this.url = url; this.method = method; } public void addDownloadListener(FileDownloaderHttpHelper.DownloadListener listener) { downloadListenerList.addIfAbsent(listener); } @Override protected Boolean doInBackground(String... d) { synchronized (TimeLineBitmapDownloader.pauseDownloadWorkLock) { while (TimeLineBitmapDownloader.pauseDownloadWork && !isCancelled()) { try { TimeLineBitmapDownloader.pauseDownloadWorkLock.wait(); } catch (InterruptedException e) { Thread.currentThread().interrupt(); } } } if (isCancelled()) { return false; } String filePath = FileManager.getFilePathFromUrl(url, method); String actualDownloadUrl = url; switch (method) { case picture_thumbnail: actualDownloadUrl = url.replace("thumbnail", "webp180"); break; case picture_bmiddle: actualDownloadUrl = url.replace("bmiddle", "webp720"); break; case picture_large: actualDownloadUrl = url.replace("large", "woriginal"); break; } boolean result = ImageUtility.getBitmapFromNetWork(actualDownloadUrl, filePath, new FileDownloaderHttpHelper.DownloadListener() { @Override public void pushProgress(int progress, int max) { for (FileDownloaderHttpHelper.DownloadListener downloadListener : downloadListenerList) { if (downloadListener != null) { downloadListener.pushProgress(progress, max); } } } }); // TaskCache.removeDownloadTask(url, DownloadWorker.this); return result; } }