package org.goodev.discourse.api; import android.app.Activity; import android.os.ResultReceiver; import android.util.SparseArray; import com.android.volley.Response.Listener; import org.json.JSONObject; public class JsonObjectListener implements Listener<JSONObject> { protected final int mType; private final SparseArray<ResultReceiver> mCallbacks; protected String mUrl; public JsonObjectListener(int type, String url, SparseArray<ResultReceiver> callbacks) { mType = type; mUrl = url; mCallbacks = callbacks; } @Override public void onResponse(JSONObject response) { switch (mType) { case Api.TYPE_LATEST: Api.parseLatestTopics(response); break; case Api.TYPE_CATEGORIES: Api.parseCategories(response); break; } ResultReceiver rr = mCallbacks.get(mType); if (rr != null) { rr.send(Activity.RESULT_OK, null); mCallbacks.delete(mType); } } }