package com.newsrob.download;
import java.net.URISyntaxException;
import java.net.URL;
import java.util.concurrent.Callable;
import android.content.Context;
import com.newsrob.PL;
import com.newsrob.jobs.Job;
import com.newsrob.util.Timing;
import com.newsrob.util.U;
public class DownloadImageTask implements Callable<Asset> {
private WebPageDownloadDirector wpdd;
private NewsRobHttpClient httpClient;
private Asset asset;
private long started;
private URL pageUrl;
private Job job;
private Context context;
DownloadImageTask(Context context, WebPageDownloadDirector wpdd, NewsRobHttpClient httpClient, Job job,
URL pageUrl, long started, Asset asset) {
this.context = context;
this.httpClient = httpClient;
this.wpdd = wpdd;
this.job = job;
this.pageUrl = pageUrl;
this.asset = asset;
this.started = started;
PL.log("DownloadImageTask " + asset.remoteUrl + " as part of " + pageUrl + " created", context);
}
@Override
public Asset call() throws Exception {
try {
U.setLowPrio();
PL.log("DownloadImageTask " + asset.remoteUrl + " started", context);
Timing t = new Timing("DownloadImageTask " + asset.remoteUrl + " as part of " + pageUrl, context);
try {
wpdd.downloadBinaryAsset(httpClient, asset, started, job, pageUrl);
} catch (URISyntaxException e) {
asset.exception = e;
}
t.stop();
PL.log("DownloadImageTask " + asset.remoteUrl + " done", context);
} catch (Exception e) {
throw e;
}
return asset;
}
}