package com.oreilly.android.otweet.tasks;
import java.io.IOException;
import java.net.URL;
import android.graphics.drawable.Drawable;
import android.os.AsyncTask;
import android.util.Log;
public class LoadImageAsyncTask extends AsyncTask<URL, Void, Drawable> {
public interface LoadImageAsyncTaskResponder {
public void imageLoading();
public void imageLoadCancelled();
public void imageLoaded(Drawable drawable);
}
private LoadImageAsyncTaskResponder responder;
public LoadImageAsyncTask(LoadImageAsyncTaskResponder responder) {
this.responder = responder;
}
@Override
protected Drawable doInBackground(URL... args) {
try {
return Drawable.createFromStream(args[0].openStream(), args[0].toString());
} catch (IOException e) {
Log.e(getClass().getName(), "Could not load image.", e);
return null;
}
}
@Override
protected void onPreExecute() {
super.onPreExecute();
responder.imageLoading();
}
@Override
protected void onCancelled() {
super.onCancelled();
responder.imageLoadCancelled();
}
@Override
protected void onPostExecute(Drawable result) {
super.onPostExecute(result);
responder.imageLoaded(result);
}
}