Created
August 1, 2013 07:07
-
-
Save myaaaaa-chan/6129071 to your computer and use it in GitHub Desktop.
Volley Gson Request Wrapper
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
can you share the VolleyRequestQueue class?