Skip to content

Instantly share code, notes, and snippets.

@myaaaaa-chan
Created August 1, 2013 07:07
Show Gist options
  • Save myaaaaa-chan/6129071 to your computer and use it in GitHub Desktop.
Save myaaaaa-chan/6129071 to your computer and use it in GitHub Desktop.
Volley Gson Request Wrapper
import java.util.HashMap;
import android.app.ProgressDialog;
import com.android.volley.Request.Method;
import com.android.volley.RequestQueue;
import com.android.volley.VolleyError;
/**
* The Class VolleyGsonRequest.
*
* @param <Response>
* the generic type
*/
public class VolleyGsonRequest<Response> {
/** Load complete Listener. */
private OnLoadCompleteListener<Response> mOnLoadCompleteListener;
/** progress dialog. */
private ProgressDialog mProgressDialog;
/**
* send request to server.
*
* @param url server url
* @param responceClass class type of response
* @param params request paramter
*/
public void startLoad(String url, Class<Response> responceClass, HashMap<String, String> params) {
if (mOnLoadCompleteListener == null) {
throw new IllegalArgumentException(
"OnLoadCompleteListener is null. You must call setOnLoadCompleteListener before.");
}
if (mProgressDialog != null) {
mProgressDialog.show();
}
// send request to server
GsonRequest<Response> request = new GsonRequest<Response>(Method.POST, url, responceClass, params,
successListener, errorListener);
RequestQueue queue = VolleyRequestQueue.getInstance().getRequestQueue();
queue.add(request);
}
/**
* on success. (receive response from server)
*/
private com.android.volley.Response.Listener<Response> successListener = new com.android.volley.Response.Listener<Response>() {
@Override
public void onResponse(Response response) {
if (mOnLoadCompleteListener != null) {
mOnLoadCompleteListener.onLoadComplete(response);
}
if (mProgressDialog != null) {
mProgressDialog.dismiss();
}
}
};
/**
* on error. (ex)can't connect to server)
*/
private com.android.volley.Response.ErrorListener errorListener = new com.android.volley.Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
if (mOnLoadCompleteListener != null) {
mOnLoadCompleteListener.onLoadComplete(null);
}
if (mProgressDialog != null) {
mProgressDialog.dismiss();
}
}
};
/**
* The listener interface for receiving onLoadComplete events.
* The class that is interested in processing a onLoadComplete
* event implements this interface, and the object created
* with that class is registered with a component using the
* component's <code>addOnLoadCompleteListener<code> method. When
* the onLoadComplete event occurs, that object's appropriate
* method is invoked.
*
* @param <Response> the generic type
* @see OnLoadCompleteEvent
*/
public interface OnLoadCompleteListener<Response> {
/**
* On load complete.
*
* @param response the response
*/
void onLoadComplete(Response response);
}
/**
* Gets the on load complete listener.
*
* @return the on load complete listener
*/
public OnLoadCompleteListener<Response> getOnLoadCompleteListener() {
return mOnLoadCompleteListener;
}
/**
* Sets the on load complete listener.
*
* @param onLoadCompleteListener
* the new on load complete listener
*/
public void setOnLoadCompleteListener(OnLoadCompleteListener<Response> onLoadCompleteListener) {
mOnLoadCompleteListener = onLoadCompleteListener;
}
/**
* Gets the progress dialog.
*
* @return the progress dialog
*/
public ProgressDialog getProgressDialog() {
return mProgressDialog;
}
/**
* Sets the progress dialog.
*
* @param progressDialog
* the new progress dialog
*/
public void setProgressDialog(ProgressDialog progressDialog) {
mProgressDialog = progressDialog;
}
}
@LOG-TAG
Copy link

LOG-TAG commented Aug 19, 2013

can you share the VolleyRequestQueue class?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment