/**
* galaxy inc.
* meetup client for android
*/
package com.galaxy.meetup.client.android.service;
import android.net.Uri;
import android.util.Log;
import com.android.volley.NetworkResponse;
import com.android.volley.Request;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.galaxy.meetup.client.android.EsApplication;
/**
*
* @author sihai
*
*/
public abstract class VolleyRequest extends Request {
private static final int MAX_GIF_DOWNLOAD;
private Uri mContentUri;
static {
if (EsApplication.sMemoryClass >= 48)
MAX_GIF_DOWNLOAD = 0x800000;
else
MAX_GIF_DOWNLOAD = 0x200000;
}
public VolleyRequest(String s, Uri uri) {
super(null, null);
mContentUri = uri;
}
public void deliverResponse(Object obj) {
deliverResponse((byte[]) obj);
}
public abstract void deliverResponse(byte abyte0[]);
public final Uri getContentUri() {
return mContentUri;
}
protected final Response parseNetworkResponse(
NetworkResponse networkresponse) {
int i = -1;
String s;
Response response;
if (networkresponse.headers.containsKey("Content-Type"))
s = (String) networkresponse.headers.get("Content-Type");
else if (networkresponse.headers.containsKey("content-type"))
s = (String) networkresponse.headers.get("content-type");
else
s = null;
if (s != null && s.equals("image/gif"))
i = MAX_GIF_DOWNLOAD;
if (Log.isLoggable("VolleyRequest", 3))
Log.d("VolleyRequest",
(new StringBuilder("Download: "))
.append(networkresponse.data.length)
.append(", allowed: ").append(i).append(", type: ")
.append(s).toString());
if (i > 0 && networkresponse.data.length > i)
response = Response.error(new VolleyError((new StringBuilder(
"Download is too large: "))
.append(networkresponse.data.length).append(", allowed: ")
.append(i).append(", type: ").append(s).toString()));
else
response = Response.success(networkresponse.data, null);
return response;
}
}