From 5425fd2b183bf95f4ef2af3bf83f33abf2581704 Mon Sep 17 00:00:00 2001 From: Beginning Android Date: Fri, 20 May 2016 14:19:47 -0700 Subject: [PATCH 1/5] 1.1 Add internet permission --- app/src/main/AndroidManifest.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 2c11909..064a4be 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -16,6 +16,8 @@ + + Date: Fri, 20 May 2016 14:36:16 -0700 Subject: [PATCH 2/5] 1.2 Modify query URL --- app/src/main/java/com/example/android/soonami/MainActivity.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/com/example/android/soonami/MainActivity.java b/app/src/main/java/com/example/android/soonami/MainActivity.java index 9d202b1..6026f4a 100644 --- a/app/src/main/java/com/example/android/soonami/MainActivity.java +++ b/app/src/main/java/com/example/android/soonami/MainActivity.java @@ -45,7 +45,7 @@ public class MainActivity extends AppCompatActivity { /** URL to query the USGS dataset for earthquake information */ private static final String USGS_REQUEST_URL = - "http://earthquake.usgs.gov/fdsnws/event/1/query?format=geojson&starttime=2012-01-01&endtime=2012-12-01&minmagnitude=6"; + "http://earthquake.usgs.gov/fdsnws/event/1/query?format=geojson&starttime=2014-01-01&endtime=2014-12-01&minmagnitude=7"; @Override protected void onCreate(Bundle savedInstanceState) { From 12ed6d31a55b24ecfc01069ee302719febb5014e Mon Sep 17 00:00:00 2001 From: Beginning Android Date: Fri, 20 May 2016 14:51:57 -0700 Subject: [PATCH 3/5] 1.3 Check for 200 response code before parsing the result --- .../example/android/soonami/MainActivity.java | 21 +++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/example/android/soonami/MainActivity.java b/app/src/main/java/com/example/android/soonami/MainActivity.java index 6026f4a..9c34d4d 100644 --- a/app/src/main/java/com/example/android/soonami/MainActivity.java +++ b/app/src/main/java/com/example/android/soonami/MainActivity.java @@ -18,6 +18,7 @@ import android.os.AsyncTask; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; +import android.text.TextUtils; import android.util.Log; import android.widget.TextView; @@ -154,6 +155,12 @@ private URL createUrl(String stringUrl) { */ private String makeHttpRequest(URL url) throws IOException { String jsonResponse = ""; + + // If the URL is null, then return early. + if (url == null) { + return jsonResponse; + } + HttpURLConnection urlConnection = null; InputStream inputStream = null; try { @@ -162,8 +169,13 @@ private String makeHttpRequest(URL url) throws IOException { urlConnection.setReadTimeout(10000 /* milliseconds */); urlConnection.setConnectTimeout(15000 /* milliseconds */); urlConnection.connect(); - inputStream = urlConnection.getInputStream(); - jsonResponse = readFromStream(inputStream); + + // If the request was successful (response code 200), + // then read the input stream and parse the response. + if (urlConnection.getResponseCode() == 200) { + inputStream = urlConnection.getInputStream(); + jsonResponse = readFromStream(inputStream); + } } catch (IOException e) { // TODO: Handle the exception } finally { @@ -201,6 +213,11 @@ private String readFromStream(InputStream inputStream) throws IOException { * about the first earthquake from the input earthquakeJSON string. */ private Event extractFeatureFromJson(String earthquakeJSON) { + // If the JSON string is empty or null, then return early. + if (TextUtils.isEmpty(earthquakeJSON)) { + return null; + } + try { JSONObject baseJsonResponse = new JSONObject(earthquakeJSON); JSONArray featureArray = baseJsonResponse.getJSONArray("features"); From 1c8cfb6b6922285d6feda752b3839ce719fc1cac Mon Sep 17 00:00:00 2001 From: Beginning Android Date: Fri, 20 May 2016 15:11:37 -0700 Subject: [PATCH 4/5] 1.4 Log error response code --- .../main/java/com/example/android/soonami/MainActivity.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/example/android/soonami/MainActivity.java b/app/src/main/java/com/example/android/soonami/MainActivity.java index 9c34d4d..b6d9cef 100644 --- a/app/src/main/java/com/example/android/soonami/MainActivity.java +++ b/app/src/main/java/com/example/android/soonami/MainActivity.java @@ -113,7 +113,7 @@ protected Event doInBackground(URL... urls) { try { jsonResponse = makeHttpRequest(url); } catch (IOException e) { - // TODO Handle the IOException + Log.e(LOG_TAG, "Problem making the HTTP request.", e); } // Extract relevant fields from the JSON response and create an {@link Event} object @@ -175,9 +175,11 @@ private String makeHttpRequest(URL url) throws IOException { if (urlConnection.getResponseCode() == 200) { inputStream = urlConnection.getInputStream(); jsonResponse = readFromStream(inputStream); + } else { + Log.e(LOG_TAG, "Error response code: " + urlConnection.getResponseCode()); } } catch (IOException e) { - // TODO: Handle the exception + Log.e(LOG_TAG, "Problem retrieving the earthquake JSON results.", e); } finally { if (urlConnection != null) { urlConnection.disconnect(); From ffd59da4b8aa9b755e2aa249ca2322222927f6df Mon Sep 17 00:00:00 2001 From: NTN Labs Date: Sun, 19 Mar 2017 22:37:13 +0100 Subject: [PATCH 5/5] Update MainActivity.java Changed http to https in the url... --- app/src/main/java/com/example/android/soonami/MainActivity.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/com/example/android/soonami/MainActivity.java b/app/src/main/java/com/example/android/soonami/MainActivity.java index b6d9cef..ae83d06 100644 --- a/app/src/main/java/com/example/android/soonami/MainActivity.java +++ b/app/src/main/java/com/example/android/soonami/MainActivity.java @@ -46,7 +46,7 @@ public class MainActivity extends AppCompatActivity { /** URL to query the USGS dataset for earthquake information */ private static final String USGS_REQUEST_URL = - "http://earthquake.usgs.gov/fdsnws/event/1/query?format=geojson&starttime=2014-01-01&endtime=2014-12-01&minmagnitude=7"; + "https://earthquake.usgs.gov/fdsnws/event/1/query?format=geojson&starttime=2014-01-01&endtime=2014-12-01&minmagnitude=7"; @Override protected void onCreate(Bundle savedInstanceState) {