Added checks for null response in volly error callbacks to stop it crashing if there is no network connection.

This commit is contained in:
Graham Jones
2022-01-23 06:43:57 +00:00
parent 990b9e345c
commit 9f870e69af
2 changed files with 49 additions and 27 deletions

View File

@@ -84,8 +84,12 @@ public class WebApiConnection {
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
String responseBody = new String(error.networkResponse.data);
Log.v(TAG, "Login Error: " + error.toString() + ", message:" + error.getMessage() + ", Response Code:" + error.networkResponse.statusCode + ", Response: " + responseBody);
if (error != null) {
String responseBody = new String(error.networkResponse.data);
Log.e(TAG, "Login Error: " + error.toString() + ", message:" + error.getMessage() + ", Response Code:" + error.networkResponse.statusCode + ", Response: " + responseBody);
} else {
Log.e(TAG,"Login Error: Returned null response");
}
saveStoredToken(null);
mAuthCallback.authCallback(false, new String(error.networkResponse.data));
}
@@ -138,15 +142,6 @@ public class WebApiConnection {
// Create a new event in the remote database, based on the provided parameters.
// FIXME - eventType info below is wrong!
// EventType is defined by the WebAPI in https://github.com/OpenSeizureDetector/webApi/blob/master/api/events/models.py
// We currently use:
// 0: Unvalidated Alarm
// 1: Unvalidated Warning
// 2: Unvalidated Fall
// 6: TC Seizure
// 7: Other Seizure
// 9: Other Medical Issue
public boolean createEvent(final int osdAlarmState, final Date eventDate, final String eventDesc) {
Log.v(TAG, "createEvent()");
String urlStr = mUrlBase + "/api/events/";
@@ -180,9 +175,14 @@ public class WebApiConnection {
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
String responseBody = new String(error.networkResponse.data);
Log.v(TAG, "Create Event Error: " + error.toString() + ", message:" + error.getMessage() + ", Response Code:" + error.networkResponse.statusCode + ", Response: " + responseBody);
mEventCallback.eventCallback(false, new String(error.networkResponse.data));
if (error != null) {
String responseBody = new String(error.networkResponse.data);
Log.e(TAG, "Create Event Error: " + error.toString() + ", message:" + error.getMessage() + ", Response Code:" + error.networkResponse.statusCode + ", Response: " + responseBody);
mEventCallback.eventCallback(false, new String(error.networkResponse.data));
} else {
Log.e(TAG,"Create Event Error - null respones");
mEventCallback.eventCallback(false, null);
}
}
}) {
// Note, this is overriding part of StringRequest, not one of the sub-classes above!
@@ -249,8 +249,12 @@ public class WebApiConnection {
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
String responseBody = new String(error.networkResponse.data);
Log.v(TAG, "Create Event Error: " + error.toString() + ", message:" + error.getMessage() + ", Response Code:" + error.networkResponse.statusCode + ", Response: " + responseBody);
if (error != null) {
String responseBody = new String(error.networkResponse.data);
Log.e(TAG, "Create Event Error: " + error.toString() + ", message:" + error.getMessage() + ", Response Code:" + error.networkResponse.statusCode + ", Response: " + responseBody);
} else {
Log.e(TAG, "Create Event Error: returned null response");
}
callback.accept(null);
}
}) {
@@ -303,8 +307,12 @@ public class WebApiConnection {
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
String responseBody = new String(error.networkResponse.data);
Log.v(TAG, "getEvents(): Error: " + error.toString() + ", message:" + error.getMessage() + ", Response Code:" + error.networkResponse.statusCode + ", Response: " + responseBody);
if (error != null) {
String responseBody = new String(error.networkResponse.data);
Log.e(TAG, "getEvents(): Error: " + error.toString() + ", message:" + error.getMessage() + ", Response Code:" + error.networkResponse.statusCode + ", Response: " + responseBody);
} else {
Log.e(TAG,"getEvents(): Error: - request returned null response");
}
callback.accept(null);
}
}) {
@@ -371,8 +379,12 @@ public class WebApiConnection {
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
String responseBody = new String(error.networkResponse.data);
Log.v(TAG, "Create Event Error: " + error.toString() + ", message:" + error.getMessage() + ", Response Code:" + error.networkResponse.statusCode + ", Response: " + responseBody);
if (error != null) {
String responseBody = new String(error.networkResponse.data);
Log.e(TAG, "Create Event Error: " + error.toString() + ", message:" + error.getMessage() + ", Response Code:" + error.networkResponse.statusCode + ", Response: " + responseBody);
} else {
Log.e(TAG,"Create Event Error - returned null response");
}
callback.accept(null);
}
}) {
@@ -453,9 +465,15 @@ public class WebApiConnection {
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
String responseBody = new String(error.networkResponse.data);
Log.v(TAG, "Create Datapoint Error: " + error.toString() + ", message:" + error.getMessage() + ", Response Code:" + error.networkResponse.statusCode + ", Response: " + responseBody);
mDatapointCallback.datapointCallback(false, new String(error.networkResponse.data));
if (error != null) {
// Fixme = are we sure that networResponse.data is not null???
String responseBody = new String(error.networkResponse.data);
Log.e(TAG, "Create Datapoint Error: " + error.toString() + ", message:" + error.getMessage() + ", Response Code:" + error.networkResponse.statusCode + ", Response: " + responseBody);
mDatapointCallback.datapointCallback(false, new String(error.networkResponse.data));
} else {
Log.e(TAG,"Create Datapoint Error - returned null respones");
mDatapointCallback.datapointCallback(false, null);
}
}
}) {
// Note, this is overriding part of StringRequest, not one of the sub-classes above!
@@ -531,8 +549,12 @@ public class WebApiConnection {
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
String responseBody = new String(error.networkResponse.data);
Log.e(TAG, "getEventTypes.onErrorResponse(): " + error.toString() + ", message:" + error.getMessage() + ", Response Code:" + error.networkResponse.statusCode + ", Response: " + responseBody);
if (error != null) {
String responseBody = new String(error.networkResponse.data);
Log.e(TAG, "getEventTypes.onErrorResponse(): " + error.toString() + ", message:" + error.getMessage() + ", Response Code:" + error.networkResponse.statusCode + ", Response: " + responseBody);
} else {
Log.e(TAG,"getEventTypes.onErrorResponse() - returned null response");
}
callback.accept(null);
}
}) {