package net.reichholf.dreamdroid.asynctask;
import android.content.Context;
import android.os.AsyncTask;
import net.reichholf.dreamdroid.R;
import net.reichholf.dreamdroid.helpers.SimpleHttpClient;
import java.lang.ref.WeakReference;
/**
* Created by Stephan on 27.12.2015.
*/
public abstract class AsyncHttpTaskBase<Params, Progress, Result> extends AsyncTask<Params, Progress, Result> {
protected WeakReference<AsyncHttpTaskBaseHandler> mTaskHandler;
private SimpleHttpClient mShc;
public AsyncHttpTaskBase(AsyncHttpTaskBaseHandler taskHandler) {
mTaskHandler = new WeakReference<>(taskHandler);
}
protected SimpleHttpClient getHttpClient() {
if (mShc == null)
mShc = SimpleHttpClient.getInstance();
return mShc;
}
protected String getErrorText() {
AsyncHttpTaskBaseHandler resultHandler = mTaskHandler.get();
if (resultHandler == null)
return null;
String errorText;
if (getHttpClient().hasError())
errorText = resultHandler.getString(R.string.get_content_error) + "\n" + getHttpClient().getErrorText(resultHandler.getContext());
else
errorText = resultHandler.getString(R.string.get_content_error);
return errorText;
}
public interface AsyncHttpTaskBaseHandler {
String getString(int resId);
Context getContext();
}
}