use of com.android.volley.NetworkResponse in project TaEmCasa by Dionen.
the class ImageRequestTest method parseNetworkResponse_resizing.
@Test
public void parseNetworkResponse_resizing() throws Exception {
// This is a horrible hack but Robolectric doesn't have a way to provide
// width and height hints for decodeByteArray. It works because the byte array
// "file:fake" is ASCII encodable and thus the name in Robolectric's fake
// bitmap creator survives as-is, and provideWidthAndHeightHints puts
// "file:" + name in its lookaside map. I write all this because it will
// probably break mysteriously at some point and I feel terrible about your
// having to debug it.
byte[] jpegBytes = "file:fake".getBytes();
ShadowBitmapFactory.provideWidthAndHeightHints("fake", 1024, 500);
NetworkResponse jpeg = new NetworkResponse(jpegBytes);
// Scale the image uniformly (maintain the image's aspect ratio) so that
// both dimensions (width and height) of the image will be equal to or
// less than the corresponding dimension of the view.
ScaleType scalteType = ScaleType.CENTER_INSIDE;
// Exact sizes
// exactly half
verifyResize(jpeg, 512, 250, scalteType, 512, 250);
// just under half
verifyResize(jpeg, 511, 249, scalteType, 509, 249);
// larger
verifyResize(jpeg, 1080, 500, scalteType, 1024, 500);
// keep same ratio
verifyResize(jpeg, 500, 500, scalteType, 500, 244);
// Specify only width, preserve aspect ratio
verifyResize(jpeg, 512, 0, scalteType, 512, 250);
verifyResize(jpeg, 800, 0, scalteType, 800, 390);
verifyResize(jpeg, 1024, 0, scalteType, 1024, 500);
// Specify only height, preserve aspect ratio
verifyResize(jpeg, 0, 250, scalteType, 512, 250);
verifyResize(jpeg, 0, 391, scalteType, 800, 391);
verifyResize(jpeg, 0, 500, scalteType, 1024, 500);
// No resize
verifyResize(jpeg, 0, 0, scalteType, 1024, 500);
// Scale the image uniformly (maintain the image's aspect ratio) so that
// both dimensions (width and height) of the image will be equal to or
// larger than the corresponding dimension of the view.
scalteType = ScaleType.CENTER_CROP;
// Exact sizes
verifyResize(jpeg, 512, 250, scalteType, 512, 250);
verifyResize(jpeg, 511, 249, scalteType, 511, 249);
verifyResize(jpeg, 1080, 500, scalteType, 1024, 500);
verifyResize(jpeg, 500, 500, scalteType, 1024, 500);
// Specify only width
verifyResize(jpeg, 512, 0, scalteType, 512, 250);
verifyResize(jpeg, 800, 0, scalteType, 800, 390);
verifyResize(jpeg, 1024, 0, scalteType, 1024, 500);
// Specify only height
verifyResize(jpeg, 0, 250, scalteType, 512, 250);
verifyResize(jpeg, 0, 391, scalteType, 800, 391);
verifyResize(jpeg, 0, 500, scalteType, 1024, 500);
// No resize
verifyResize(jpeg, 0, 0, scalteType, 1024, 500);
// Scale in X and Y independently, so that src matches dst exactly. This
// may change the aspect ratio of the src.
scalteType = ScaleType.FIT_XY;
// Exact sizes
verifyResize(jpeg, 512, 250, scalteType, 512, 250);
verifyResize(jpeg, 511, 249, scalteType, 511, 249);
verifyResize(jpeg, 1080, 500, scalteType, 1024, 500);
verifyResize(jpeg, 500, 500, scalteType, 500, 500);
// Specify only width
verifyResize(jpeg, 512, 0, scalteType, 512, 500);
verifyResize(jpeg, 800, 0, scalteType, 800, 500);
verifyResize(jpeg, 1024, 0, scalteType, 1024, 500);
// Specify only height
verifyResize(jpeg, 0, 250, scalteType, 1024, 250);
verifyResize(jpeg, 0, 391, scalteType, 1024, 391);
verifyResize(jpeg, 0, 500, scalteType, 1024, 500);
// No resize
verifyResize(jpeg, 0, 0, scalteType, 1024, 500);
}
use of com.android.volley.NetworkResponse in project TaEmCasa by Dionen.
the class JsonRequestCharsetTest method defaultCharsetJsonArray.
@Test
public void defaultCharsetJsonArray() throws Exception {
// UTF-8 is default charset for JSON
byte[] data = jsonArrayString().getBytes(Charset.forName("UTF-8"));
NetworkResponse network = new NetworkResponse(data);
JsonArrayRequest arrayRequest = new JsonArrayRequest("", null, null);
Response<JSONArray> arrayResponse = arrayRequest.parseNetworkResponse(network);
assertNotNull(arrayResponse);
assertTrue(arrayResponse.isSuccess());
assertEquals(TEXT_VALUE, arrayResponse.result.getString(TEXT_INDEX));
assertEquals(COPY_VALUE, arrayResponse.result.getString(COPY_INDEX));
}
use of com.android.volley.NetworkResponse in project TaEmCasa by Dionen.
the class JsonRequestCharsetTest method defaultCharsetJsonObject.
@Test
public void defaultCharsetJsonObject() throws Exception {
// UTF-8 is default charset for JSON
byte[] data = jsonObjectString().getBytes(Charset.forName("UTF-8"));
NetworkResponse network = new NetworkResponse(data);
JsonObjectRequest objectRequest = new JsonObjectRequest("", null, null, null);
Response<JSONObject> objectResponse = objectRequest.parseNetworkResponse(network);
assertNotNull(objectResponse);
assertTrue(objectResponse.isSuccess());
assertEquals(TEXT_VALUE, objectResponse.result.getString(TEXT_NAME));
assertEquals(COPY_VALUE, objectResponse.result.getString(COPY_NAME));
}
use of com.android.volley.NetworkResponse in project saga-android by AnandChowdhary.
the class BasicNetwork method performRequest.
@Override
public NetworkResponse performRequest(Request<?> request) throws VolleyError {
long requestStart = SystemClock.elapsedRealtime();
while (true) {
HttpResponse httpResponse = null;
byte[] responseContents = null;
Map<String, String> responseHeaders = new HashMap<String, String>();
try {
// Gather headers.
Map<String, String> headers = new HashMap<String, String>();
addCacheHeaders(headers, request.getCacheEntry());
httpResponse = mHttpStack.performRequest(request, headers);
StatusLine statusLine = httpResponse.getStatusLine();
int statusCode = statusLine.getStatusCode();
responseHeaders = convertHeaders(httpResponse.getAllHeaders());
// Handle cache validation.
if (statusCode == HttpStatus.SC_NOT_MODIFIED) {
return new NetworkResponse(HttpStatus.SC_NOT_MODIFIED, request.getCacheEntry().data, responseHeaders, true);
}
responseContents = entityToBytes(httpResponse.getEntity());
// if the request is slow, log it.
long requestLifetime = SystemClock.elapsedRealtime() - requestStart;
logSlowRequests(requestLifetime, request, responseContents, statusLine);
if (statusCode != HttpStatus.SC_OK && statusCode != HttpStatus.SC_NO_CONTENT) {
throw new IOException();
}
return new NetworkResponse(statusCode, responseContents, responseHeaders, false);
} catch (SocketTimeoutException e) {
attemptRetryOnException("socket", request, new TimeoutError());
} catch (ConnectTimeoutException e) {
attemptRetryOnException("connection", request, new TimeoutError());
} catch (MalformedURLException e) {
throw new RuntimeException("Bad URL " + request.getUrl(), e);
} catch (IOException e) {
int statusCode = 0;
NetworkResponse networkResponse = null;
if (httpResponse != null) {
statusCode = httpResponse.getStatusLine().getStatusCode();
} else {
if (request.getCacheEntry() != null && request.getCacheEntry().data != null) {
return new NetworkResponse(HttpStatus.SC_NOT_MODIFIED, request.getCacheEntry().data, responseHeaders, true);
} else {
throw new NoConnectionError(e);
}
}
VolleyLog.e("Unexpected response code %d for %s", statusCode, request.getUrl());
if (responseContents != null) {
networkResponse = new NetworkResponse(statusCode, responseContents, responseHeaders, false);
if (statusCode == HttpStatus.SC_UNAUTHORIZED || statusCode == HttpStatus.SC_FORBIDDEN) {
attemptRetryOnException("auth", request, new AuthFailureError(networkResponse));
} else {
// TODO: Only throw ServerError for 5xx status codes.
throw new ServerError(networkResponse);
}
} else {
throw new NetworkError(networkResponse);
}
}
}
}
use of com.android.volley.NetworkResponse in project IceNet by anton46.
the class NetworkManager method fromJsonObject.
private void fromJsonObject(final HashMap<String, String> headers, HashMap<String, Object> bodyRequest, String requestTag, final RequestCallback requestCallback) {
JsonObjectRequest request = new JsonObjectRequest(method, getUrlConnection(pathUrl), createBodyRequest(bodyRequest), new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject jsonObject) {
Object t = new Gson().fromJson(jsonObject.toString(), classTarget.getType());
if (requestCallback != null)
requestCallback.onRequestSuccess(t);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
if (requestCallback != null) {
NetworkResponse response = error.networkResponse;
if (response != null)
requestCallback.onRequestError(new RequestError(response));
}
}
}) {
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
return headers != null ? headers : super.getHeaders();
}
};
networkHelper.addToRequestQueue(request, requestTag);
}
Aggregations