package com.zulip.android.networking;
import android.database.Cursor;
import android.os.AsyncTask;
import android.support.v4.widget.SimpleCursorAdapter;
import com.zulip.android.util.ZLog;
import java.util.concurrent.Callable;
/**
* A background task which asynchronously updates data.
* Used here{@link com.zulip.android.activities.RefreshableCursorAdapter} for updating the
* online people in the person (right) drawer.
*/
public class AsyncCursorAdapterUpdater extends
AsyncTask<String, String, Cursor> {
private SimpleCursorAdapter adapter;
private Callable<Cursor> cursorGenerator;
public void execute(Callable<Cursor> cursorGenerator,
SimpleCursorAdapter adapter) {
this.adapter = adapter;
this.cursorGenerator = cursorGenerator;
this.execute();
}
@Override
protected Cursor doInBackground(String... params) {
try {
return this.cursorGenerator.call();
} catch (Exception e) {
ZLog.logException(e);
}
return null;
}
@Override
protected void onPostExecute(Cursor result) {
this.adapter.changeCursor(result);
}
}