From 253edc9ca8e28adda76494d7fdc33c4832524de0 Mon Sep 17 00:00:00 2001 From: Scott Anderson Date: Wed, 14 Dec 2011 16:08:25 -0500 Subject: [PATCH 1/3] Fix classpath for new ADT --- .classpath | 2 +- build.xml | 4 ++-- default.properties | 2 -- project.properties | 12 ++++++++++++ 4 files changed, 15 insertions(+), 5 deletions(-) delete mode 100644 default.properties create mode 100644 project.properties diff --git a/.classpath b/.classpath index 311998ec7..14fcf527f 100644 --- a/.classpath +++ b/.classpath @@ -4,5 +4,5 @@ - + diff --git a/build.xml b/build.xml index 9129325a2..bd3a519cf 100644 --- a/build.xml +++ b/build.xml @@ -1,6 +1,6 @@ - + @@ -68,4 +68,4 @@ - \ No newline at end of file + diff --git a/default.properties b/default.properties deleted file mode 100644 index 3f34fe87c..000000000 --- a/default.properties +++ /dev/null @@ -1,2 +0,0 @@ -target=android-3 -android.library=true diff --git a/project.properties b/project.properties new file mode 100644 index 000000000..1880987e2 --- /dev/null +++ b/project.properties @@ -0,0 +1,12 @@ +# This file is automatically generated by Android Tools. +# Do not modify this file -- YOUR CHANGES WILL BE ERASED! +# +# This file must be checked in Version Control Systems. +# +# To customize properties used by the Ant build system use, +# "ant.properties", and override values to adapt the script to your +# project structure. + +android.library=true +# Project target. +target=android-3 From da76755b67ee26cef47fcf5de5729d693cef419f Mon Sep 17 00:00:00 2001 From: Scott Anderson Date: Thu, 3 Nov 2011 12:08:11 -0400 Subject: [PATCH 2/3] Call onFailure() when response is not valid JSON --- src/com/loopj/android/http/JsonHttpResponseHandler.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/com/loopj/android/http/JsonHttpResponseHandler.java b/src/com/loopj/android/http/JsonHttpResponseHandler.java index 59afc1bc4..9ceb6f5b9 100644 --- a/src/com/loopj/android/http/JsonHttpResponseHandler.java +++ b/src/com/loopj/android/http/JsonHttpResponseHandler.java @@ -69,6 +69,8 @@ protected void handleSuccessMessage(String responseBody) { onSuccess((JSONObject)jsonResponse); } else if(jsonResponse instanceof JSONArray) { onSuccess((JSONArray)jsonResponse); + } else { + throw new JSONException("Unexpected type " + jsonResponse.getClass().getName()); } } catch(JSONException e) { onFailure(e, responseBody); From 22b48997a2be07a847545656235b7cfc063a17f3 Mon Sep 17 00:00:00 2001 From: Scott Anderson Date: Wed, 14 Dec 2011 16:19:47 -0500 Subject: [PATCH 3/3] Abstract ResponseHandlers, inline unneeded code Added final keyword to methods that are not allowed to be overrided. --- .../http/AsyncHttpResponseHandler.java | 26 +++++-------------- .../android/http/JsonHttpResponseHandler.java | 12 +++------ 2 files changed, 9 insertions(+), 29 deletions(-) diff --git a/src/com/loopj/android/http/AsyncHttpResponseHandler.java b/src/com/loopj/android/http/AsyncHttpResponseHandler.java index 6eddad6a2..050b92d00 100644 --- a/src/com/loopj/android/http/AsyncHttpResponseHandler.java +++ b/src/com/loopj/android/http/AsyncHttpResponseHandler.java @@ -66,7 +66,7 @@ * }); * */ -public class AsyncHttpResponseHandler { +public abstract class AsyncHttpResponseHandler { private static final int SUCCESS_MESSAGE = 0; private static final int FAILURE_MESSAGE = 1; private static final int START_MESSAGE = 2; @@ -148,29 +148,15 @@ protected void sendFinishMessage() { } - // - // Pre-processing of messages (in original calling thread, typically the UI thread) - // - - protected void handleSuccessMessage(String responseBody) { - onSuccess(responseBody); - } - - protected void handleFailureMessage(Throwable e, String responseBody) { - onFailure(e, responseBody); - } - - - // Methods which emulate android's Handler and Message methods protected void handleMessage(Message msg) { switch(msg.what) { case SUCCESS_MESSAGE: - handleSuccessMessage((String)msg.obj); + onSuccess((String)msg.obj); break; case FAILURE_MESSAGE: Object[] repsonse = (Object[])msg.obj; - handleFailureMessage((Throwable)repsonse[0], (String)repsonse[1]); + onFailure((Throwable)repsonse[0], (String)repsonse[1]); break; case START_MESSAGE: onStart(); @@ -181,7 +167,7 @@ protected void handleMessage(Message msg) { } } - protected void sendMessage(Message msg) { + protected final void sendMessage(Message msg) { if(handler != null){ handler.sendMessage(msg); } else { @@ -189,7 +175,7 @@ protected void sendMessage(Message msg) { } } - protected Message obtainMessage(int responseMessage, Object response) { + protected final Message obtainMessage(int responseMessage, Object response) { Message msg = null; if(handler != null){ msg = this.handler.obtainMessage(responseMessage, response); @@ -203,7 +189,7 @@ protected Message obtainMessage(int responseMessage, Object response) { // Interface to AsyncHttpRequest - void sendResponseMessage(HttpResponse response) { + final void sendResponseMessage(HttpResponse response) { StatusLine status = response.getStatusLine(); String responseBody = null; try { diff --git a/src/com/loopj/android/http/JsonHttpResponseHandler.java b/src/com/loopj/android/http/JsonHttpResponseHandler.java index 9ceb6f5b9..546493c59 100644 --- a/src/com/loopj/android/http/JsonHttpResponseHandler.java +++ b/src/com/loopj/android/http/JsonHttpResponseHandler.java @@ -35,7 +35,7 @@ * Additionally, you can override the other event methods from the * parent class. */ -public class JsonHttpResponseHandler extends AsyncHttpResponseHandler { +public abstract class JsonHttpResponseHandler extends AsyncHttpResponseHandler { // // Callbacks to be overridden, typically anonymously // @@ -60,11 +60,9 @@ public void onSuccess(JSONArray response) {} // Utility methods @Override - protected void handleSuccessMessage(String responseBody) { - super.handleSuccessMessage(responseBody); - + public final void onSuccess(String responseBody) { try { - Object jsonResponse = parseResponse(responseBody); + Object jsonResponse = new JSONTokener(responseBody).nextValue(); if(jsonResponse instanceof JSONObject) { onSuccess((JSONObject)jsonResponse); } else if(jsonResponse instanceof JSONArray) { @@ -76,8 +74,4 @@ protected void handleSuccessMessage(String responseBody) { onFailure(e, responseBody); } } - - protected Object parseResponse(String responseBody) throws JSONException { - return new JSONTokener(responseBody).nextValue(); - } } \ No newline at end of file