Added error checking for network connection issues - MainActivity logic needs correcting though - Airoplane mode shows as ok
This commit is contained in:
@@ -577,20 +577,38 @@ public class MainActivity extends AppCompatActivity {
|
|||||||
if (!mConnection.mSdServer.mLogDataRemoteMobile) {
|
if (!mConnection.mSdServer.mLogDataRemoteMobile) {
|
||||||
Log.v(TAG,"mLogDataRemoteMobile="+mConnection.mSdServer.mLogDataRemoteMobile);
|
Log.v(TAG,"mLogDataRemoteMobile="+mConnection.mSdServer.mLogDataRemoteMobile);
|
||||||
Log.v(TAG,"mUtil.isMobileDataActive="+mUtil.isMobileDataActive());
|
Log.v(TAG,"mUtil.isMobileDataActive="+mUtil.isMobileDataActive());
|
||||||
if (mUtil.isMobileDataActive()) {
|
if (mUtil.isNetworkConnected()) {
|
||||||
tv = (TextView) findViewById(R.id.remoteDbTv);
|
if (mUtil.isMobileDataActive()) {
|
||||||
tv.setText(getString(R.string.data_sharing_status)
|
tv = (TextView) findViewById(R.id.remoteDbTv);
|
||||||
+ ": "
|
tv.setText(getString(R.string.data_sharing_status)
|
||||||
+ getString(R.string.not_updating_mobile));
|
+ ": "
|
||||||
tv.setBackgroundColor(warnColour);
|
+ getString(R.string.not_updating_mobile));
|
||||||
tv.setTextColor(warnTextColour);
|
tv.setBackgroundColor(warnColour);
|
||||||
|
tv.setTextColor(warnTextColour);
|
||||||
|
} else {
|
||||||
|
if (mConnection.mSdServer.mLm.mWac.mServerConnectionOk) {
|
||||||
|
tv = (TextView) findViewById(R.id.remoteDbTv);
|
||||||
|
tv.setText(getString(R.string.data_sharing_status)
|
||||||
|
+ ": "
|
||||||
|
+ getString(R.string.data_sharing_setup_ok));
|
||||||
|
tv.setBackgroundColor(okColour);
|
||||||
|
tv.setTextColor(okTextColour);
|
||||||
|
} else {
|
||||||
|
tv = (TextView) findViewById(R.id.remoteDbTv);
|
||||||
|
tv.setText(getString(R.string.data_sharing_status)
|
||||||
|
+ ": "
|
||||||
|
+ getString(R.string.error_connecting_to_server));
|
||||||
|
tv.setBackgroundColor(warnColour);
|
||||||
|
tv.setTextColor(warnTextColour);
|
||||||
|
}
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
tv = (TextView) findViewById(R.id.remoteDbTv);
|
tv = (TextView) findViewById(R.id.remoteDbTv);
|
||||||
tv.setText(getString(R.string.data_sharing_status)
|
tv.setText(getString(R.string.data_sharing_status)
|
||||||
+ ": "
|
+ ": "
|
||||||
+ getString(R.string.data_sharing_setup_ok));
|
+ getString(R.string.not_updating_no_network));
|
||||||
tv.setBackgroundColor(okColour);
|
tv.setBackgroundColor(warnColour);
|
||||||
tv.setTextColor(okTextColour);
|
tv.setTextColor(warnTextColour);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
tv = (TextView) findViewById(R.id.remoteDbTv);
|
tv = (TextView) findViewById(R.id.remoteDbTv);
|
||||||
|
|||||||
@@ -302,6 +302,7 @@ public class OsdUtil implements ActivityCompat.OnRequestPermissionsResultCallbac
|
|||||||
// return true if we are using mobile data, otherwise return false
|
// return true if we are using mobile data, otherwise return false
|
||||||
ConnectivityManager cm = (ConnectivityManager) mContext.getSystemService(Context.CONNECTIVITY_SERVICE);
|
ConnectivityManager cm = (ConnectivityManager) mContext.getSystemService(Context.CONNECTIVITY_SERVICE);
|
||||||
NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
|
NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
|
||||||
|
if (activeNetwork == null) return false;
|
||||||
if (activeNetwork.getType() == ConnectivityManager.TYPE_MOBILE) {
|
if (activeNetwork.getType() == ConnectivityManager.TYPE_MOBILE) {
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
@@ -313,7 +314,11 @@ public class OsdUtil implements ActivityCompat.OnRequestPermissionsResultCallbac
|
|||||||
// return true if we have a network connection, otherwise false.
|
// return true if we have a network connection, otherwise false.
|
||||||
ConnectivityManager cm = (ConnectivityManager) mContext.getSystemService(Context.CONNECTIVITY_SERVICE);
|
ConnectivityManager cm = (ConnectivityManager) mContext.getSystemService(Context.CONNECTIVITY_SERVICE);
|
||||||
NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
|
NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
|
||||||
return (activeNetwork.isConnected());
|
if (activeNetwork != null) {
|
||||||
|
return (activeNetwork.isConnected());
|
||||||
|
} else {
|
||||||
|
return (false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -36,6 +36,7 @@ import java.util.function.Consumer;
|
|||||||
public class WebApiConnection {
|
public class WebApiConnection {
|
||||||
public String retVal;
|
public String retVal;
|
||||||
public int retCode;
|
public int retCode;
|
||||||
|
public boolean mServerConnectionOk = false;
|
||||||
private String mUrlBase = "https://osdApi.ddns.net";
|
private String mUrlBase = "https://osdApi.ddns.net";
|
||||||
private String TAG = "WebApiConnection";
|
private String TAG = "WebApiConnection";
|
||||||
private String mAuthToken;
|
private String mAuthToken;
|
||||||
@@ -76,6 +77,7 @@ public class WebApiConnection {
|
|||||||
try {
|
try {
|
||||||
JSONObject jo = new JSONObject(response);
|
JSONObject jo = new JSONObject(response);
|
||||||
tokenStr = jo.getString("token");
|
tokenStr = jo.getString("token");
|
||||||
|
mServerConnectionOk = true;
|
||||||
} catch (JSONException e) {
|
} catch (JSONException e) {
|
||||||
tokenStr = "Error Parsing Rsponse";
|
tokenStr = "Error Parsing Rsponse";
|
||||||
}
|
}
|
||||||
@@ -92,6 +94,7 @@ public class WebApiConnection {
|
|||||||
} else {
|
} else {
|
||||||
Log.e(TAG, "Login Error: Returned null response");
|
Log.e(TAG, "Login Error: Returned null response");
|
||||||
}
|
}
|
||||||
|
mServerConnectionOk = false;
|
||||||
setStoredToken(null);
|
setStoredToken(null);
|
||||||
callback.accept(null);
|
callback.accept(null);
|
||||||
}
|
}
|
||||||
@@ -167,12 +170,14 @@ public class WebApiConnection {
|
|||||||
@Override
|
@Override
|
||||||
public void onResponse(String response) {
|
public void onResponse(String response) {
|
||||||
Log.v(TAG, "Response is: " + response);
|
Log.v(TAG, "Response is: " + response);
|
||||||
|
mServerConnectionOk = true;
|
||||||
callback.accept(response);
|
callback.accept(response);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
new Response.ErrorListener() {
|
new Response.ErrorListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onErrorResponse(VolleyError error) {
|
public void onErrorResponse(VolleyError error) {
|
||||||
|
mServerConnectionOk = false;
|
||||||
if (error != null) {
|
if (error != null) {
|
||||||
String responseBody = new String(error.networkResponse.data);
|
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);
|
Log.e(TAG, "Create Event Error: " + error.toString() + ", message:" + error.getMessage() + ", Response Code:" + error.networkResponse.statusCode + ", Response: " + responseBody);
|
||||||
@@ -242,6 +247,7 @@ public class WebApiConnection {
|
|||||||
Log.e(TAG, "getEventTypes.onRespons(): Error: " + e.getMessage() + "," + e.toString());
|
Log.e(TAG, "getEventTypes.onRespons(): Error: " + e.getMessage() + "," + e.toString());
|
||||||
callback.accept(null);
|
callback.accept(null);
|
||||||
}
|
}
|
||||||
|
mServerConnectionOk = true;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
new Response.ErrorListener() {
|
new Response.ErrorListener() {
|
||||||
@@ -253,6 +259,7 @@ public class WebApiConnection {
|
|||||||
} else {
|
} else {
|
||||||
Log.e(TAG, "Create Event Error: returned null response");
|
Log.e(TAG, "Create Event Error: returned null response");
|
||||||
}
|
}
|
||||||
|
mServerConnectionOk = false;
|
||||||
callback.accept(null);
|
callback.accept(null);
|
||||||
}
|
}
|
||||||
}) {
|
}) {
|
||||||
@@ -292,6 +299,7 @@ public class WebApiConnection {
|
|||||||
@Override
|
@Override
|
||||||
public void onResponse(String response) {
|
public void onResponse(String response) {
|
||||||
Log.v(TAG, "Response is: " + response);
|
Log.v(TAG, "Response is: " + response);
|
||||||
|
mServerConnectionOk = true;
|
||||||
try {
|
try {
|
||||||
JSONObject retObj = new JSONObject();
|
JSONObject retObj = new JSONObject();
|
||||||
JSONArray eventArray = new JSONArray(response);
|
JSONArray eventArray = new JSONArray(response);
|
||||||
@@ -306,10 +314,15 @@ public class WebApiConnection {
|
|||||||
new Response.ErrorListener() {
|
new Response.ErrorListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onErrorResponse(VolleyError error) {
|
public void onErrorResponse(VolleyError error) {
|
||||||
//if ((error != null) && (error.networkResponse != null) && (error.networkResponse.data != null)) {
|
//if ((error != null) && (error.networkResponse != null) && (error.networkResponse.data != null)) {#
|
||||||
|
mServerConnectionOk = false;
|
||||||
if (error != null) {
|
if (error != null) {
|
||||||
String responseBody = new String(error.networkResponse.data);
|
if (error.networkResponse != null) {
|
||||||
Log.e(TAG, "getEvents(): Error: " + error.toString() + ", message:" + error.getMessage() + ", Response Code:" + error.networkResponse.statusCode + ", Response: " + responseBody);
|
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 networkResponse");
|
||||||
|
}
|
||||||
} else{
|
} else{
|
||||||
Log.e(TAG, "getEvents(): Error: - request returned null response");
|
Log.e(TAG, "getEvents(): Error: - request returned null response");
|
||||||
}
|
}
|
||||||
@@ -368,6 +381,7 @@ public class WebApiConnection {
|
|||||||
@Override
|
@Override
|
||||||
public void onResponse(String response) {
|
public void onResponse(String response) {
|
||||||
Log.v(TAG, "Response is: " + response);
|
Log.v(TAG, "Response is: " + response);
|
||||||
|
mServerConnectionOk = true;
|
||||||
try {
|
try {
|
||||||
JSONObject retObj = new JSONObject(response);
|
JSONObject retObj = new JSONObject(response);
|
||||||
callback.accept(retObj);
|
callback.accept(retObj);
|
||||||
@@ -380,6 +394,7 @@ public class WebApiConnection {
|
|||||||
new Response.ErrorListener() {
|
new Response.ErrorListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onErrorResponse(VolleyError error) {
|
public void onErrorResponse(VolleyError error) {
|
||||||
|
mServerConnectionOk = false;
|
||||||
if (error != null) {
|
if (error != null) {
|
||||||
String responseBody = new String(error.networkResponse.data);
|
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);
|
Log.e(TAG, "Create Event Error: " + error.toString() + ", message:" + error.getMessage() + ", Response Code:" + error.networkResponse.statusCode + ", Response: " + responseBody);
|
||||||
@@ -458,12 +473,14 @@ public class WebApiConnection {
|
|||||||
@Override
|
@Override
|
||||||
public void onResponse(String response) {
|
public void onResponse(String response) {
|
||||||
Log.v(TAG, "Response is: " + response);
|
Log.v(TAG, "Response is: " + response);
|
||||||
|
mServerConnectionOk = true;
|
||||||
callback.accept(response);
|
callback.accept(response);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
new Response.ErrorListener() {
|
new Response.ErrorListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onErrorResponse(VolleyError error) {
|
public void onErrorResponse(VolleyError error) {
|
||||||
|
mServerConnectionOk = false;
|
||||||
if (error != null) {
|
if (error != null) {
|
||||||
// Fixme = are we sure that networResponse.data is not null???
|
// Fixme = are we sure that networResponse.data is not null???
|
||||||
String responseBody = new String(error.networkResponse.data);
|
String responseBody = new String(error.networkResponse.data);
|
||||||
@@ -534,6 +551,7 @@ public class WebApiConnection {
|
|||||||
@Override
|
@Override
|
||||||
public void onResponse(String response) {
|
public void onResponse(String response) {
|
||||||
Log.v(TAG, "getEventTypes.onResponse(): Response is: " + response);
|
Log.v(TAG, "getEventTypes.onResponse(): Response is: " + response);
|
||||||
|
mServerConnectionOk = true;
|
||||||
try {
|
try {
|
||||||
JSONObject retObj = new JSONObject(response);
|
JSONObject retObj = new JSONObject(response);
|
||||||
callback.accept(retObj);
|
callback.accept(retObj);
|
||||||
@@ -546,6 +564,7 @@ public class WebApiConnection {
|
|||||||
new Response.ErrorListener() {
|
new Response.ErrorListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onErrorResponse(VolleyError error) {
|
public void onErrorResponse(VolleyError error) {
|
||||||
|
mServerConnectionOk = false;
|
||||||
if (error != null) {
|
if (error != null) {
|
||||||
String responseBody = new String(error.networkResponse.data);
|
String responseBody = new String(error.networkResponse.data);
|
||||||
Log.e(TAG, "getEventTypes.onErrorResponse(): " + error.toString() + ", message:" + error.getMessage() + ", Response Code:" + error.networkResponse.statusCode + ", Response: " + responseBody);
|
Log.e(TAG, "getEventTypes.onErrorResponse(): " + error.toString() + ", message:" + error.getMessage() + ", Response Code:" + error.networkResponse.statusCode + ", Response: " + responseBody);
|
||||||
@@ -570,5 +589,35 @@ public class WebApiConnection {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Retrieve a trivial file from the server to check we have a good server connection.
|
||||||
|
* sets mServerConnectionOk.
|
||||||
|
* @return true if request sent successfully or else false.
|
||||||
|
*/
|
||||||
|
public boolean checkServerConnection() {
|
||||||
|
Log.v(TAG, "checkServerConnection()");
|
||||||
|
String urlStr = mUrlBase + "/static/test.txt";
|
||||||
|
Log.v(TAG, "urlStr=" + urlStr);
|
||||||
|
|
||||||
|
StringRequest req = new StringRequest(Request.Method.GET, urlStr,
|
||||||
|
new Response.Listener<String>() {
|
||||||
|
@Override
|
||||||
|
public void onResponse(String response) {
|
||||||
|
Log.v(TAG, "checkServerConnection.onResponse(): Response is: " + response);
|
||||||
|
mServerConnectionOk = true;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
new Response.ErrorListener() {
|
||||||
|
@Override
|
||||||
|
public void onErrorResponse(VolleyError error) {
|
||||||
|
Log.v(TAG, "checkServerConnection.onErrorResponse");
|
||||||
|
mServerConnectionOk = false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
mQueue.add(req);
|
||||||
|
return (true);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -339,4 +339,6 @@
|
|||||||
<string name="please_confirm_seizure_events">Please Check your Shared Seizure Events</string>
|
<string name="please_confirm_seizure_events">Please Check your Shared Seizure Events</string>
|
||||||
<string name="data_sharing_log_in">Data Sharing Log-In</string>
|
<string name="data_sharing_log_in">Data Sharing Log-In</string>
|
||||||
<string name="not_updating_mobile">Not Updating using Mobile Internet</string>
|
<string name="not_updating_mobile">Not Updating using Mobile Internet</string>
|
||||||
|
<string name="not_updating_no_network">Not Updating - No Network Connection</string>
|
||||||
|
<string name="error_connecting_to_server">Error Connecting to Server</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
Reference in New Issue
Block a user