package com.vaguehope.onosendai.util.exec;
import android.os.AsyncTask;
public abstract class TrackingAsyncTask<Params, Progress, Result> extends AsyncTask<Params, Progress, Result> { // NOSONAR Ignore generic names must match pattern '^[A-Z]$' to copy Android SDK.
private final ExecutorEventListener eventListener;
public TrackingAsyncTask (final ExecutorEventListener eventListener) {
super();
this.eventListener = eventListener;
}
public ExecutorEventListener getEventListener () {
return this.eventListener;
}
@Override
protected final Result doInBackground (final Params... params) {
if (this.eventListener != null) this.eventListener.execStart(this);
try {
return this.doInBackgroundWithTracking(params);
}
finally {
if (this.eventListener != null) this.eventListener.execEnd(this);
}
}
protected abstract Result doInBackgroundWithTracking (final Params... params);
}