From fc070c95a7d741ffdbff29774637950723168cca Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Mon, 12 Mar 2018 11:22:19 +0100 Subject: [PATCH] use safeGetString --- .../NSClientInternal/services/NSClientService.java | 7 +++---- .../main/java/info/nightscout/utils/JsonHelper.java | 10 ++++++++++ .../java/info/nightscout/utils/JsonHelperTest.java | 2 ++ 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/services/NSClientService.java b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/services/NSClientService.java index c9c56a18ac..1b1b2884d6 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/services/NSClientService.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/services/NSClientService.java @@ -63,6 +63,7 @@ import info.nightscout.androidaps.plugins.Overview.events.EventNewNotification; import info.nightscout.androidaps.plugins.Overview.notifications.Notification; import info.nightscout.utils.DateUtil; import info.nightscout.utils.FabricPrivacy; +import info.nightscout.utils.JsonHelper; import info.nightscout.utils.SP; import io.socket.client.IO; import io.socket.client.Socket; @@ -351,7 +352,7 @@ public class NSClientService extends Service { } if (Config.detailedLog) try { - MainApp.bus().post(new EventNSClientNewLog("ANNOUNCEMENT", data.has("message") ? data.getString("message") : "received")); + MainApp.bus().post(new EventNSClientNewLog("ANNOUNCEMENT", JsonHelper.safeGetString(data, "message", "received"))); } catch (Exception e) { FabricPrivacy.logException(e); } @@ -577,9 +578,7 @@ public class NSClientService extends Service { // remove from upload queue if Ack is failing UploadQueue.removeID(jsonFood); - String action = null; - if (jsonFood.has("action")) - action = jsonFood.getString("action"); + String action = JsonHelper.safeGetString(jsonFood, "action"); if (action == null) { addedFoods.put(jsonFood); diff --git a/app/src/main/java/info/nightscout/utils/JsonHelper.java b/app/src/main/java/info/nightscout/utils/JsonHelper.java index 5068b08671..3cc9a3c8a0 100644 --- a/app/src/main/java/info/nightscout/utils/JsonHelper.java +++ b/app/src/main/java/info/nightscout/utils/JsonHelper.java @@ -27,6 +27,16 @@ public class JsonHelper { return result; } + public static String safeGetString(JSONObject json, String fieldName, String defaultValue) throws JSONException { + String result = defaultValue; + + if (json.has(fieldName)) { + result = json.getString(fieldName); + } + + return result; + } + public static double safeGetDouble(JSONObject json, String fieldName) throws JSONException { double result = 0d; diff --git a/app/src/test/java/info/nightscout/utils/JsonHelperTest.java b/app/src/test/java/info/nightscout/utils/JsonHelperTest.java index 3f5f8fd6e7..fd911672eb 100644 --- a/app/src/test/java/info/nightscout/utils/JsonHelperTest.java +++ b/app/src/test/java/info/nightscout/utils/JsonHelperTest.java @@ -19,6 +19,8 @@ public class JsonHelperTest { JSONObject object = new JSONObject(jsonString); assertEquals(null, JsonHelper.safeGetString(object, "notexisting")); assertEquals("5", JsonHelper.safeGetString(object, "s")); + assertEquals("default", JsonHelper.safeGetString(object, "notexisting", "default")); + assertEquals("5", JsonHelper.safeGetString(object, "s", "default")); assertEquals(0.0d, JsonHelper.safeGetDouble(object, "notexisting"), 0.0d); assertEquals(3.0d, JsonHelper.safeGetDouble(object, "d"), 0.000001d);