From 0df796d3f4cc66e262bc07572e258c902e5fb6d3 Mon Sep 17 00:00:00 2001 From: Johannes Mockenhaupt Date: Mon, 12 Feb 2018 15:34:23 +0100 Subject: [PATCH 1/5] Create NS-anouncements for error dialogs and local alerts. --- .../java/info/nightscout/androidaps/Services/DataService.java | 3 ++- .../java/info/nightscout/androidaps/db/CareportalEvent.java | 3 ++- .../plugins/Overview/Dialogs/ErrorHelperActivity.java | 4 ++++ app/src/main/java/info/nightscout/utils/LocalAlertUtils.java | 3 +++ app/src/main/java/info/nightscout/utils/NSUpload.java | 1 + 5 files changed, 12 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/info/nightscout/androidaps/Services/DataService.java b/app/src/main/java/info/nightscout/androidaps/Services/DataService.java index b242c4c099..2bb7d8f9f0 100644 --- a/app/src/main/java/info/nightscout/androidaps/Services/DataService.java +++ b/app/src/main/java/info/nightscout/androidaps/Services/DataService.java @@ -600,7 +600,8 @@ public class DataService extends IntentService { if (trJson.has("eventType") && trJson.getString("eventType").equals(CareportalEvent.ANNOUNCEMENT)) { long date = trJson.getLong("mills"); long now = System.currentTimeMillis(); - if (date > now - 15 * 60 * 1000L && trJson.has("notes")) { + if (date > now - 15 * 60 * 1000L && trJson.has("notes") + && !(trJson.has("enteredBy") && trJson.getString("enteredBy").equals(SP.getString("careportal_enteredby", "AndroidAPS")))) { Notification announcement = new Notification(Notification.NSANNOUNCEMENT, trJson.getString("notes"), Notification.ANNOUNCEMENT, 60); MainApp.bus().post(new EventNewNotification(announcement)); } diff --git a/app/src/main/java/info/nightscout/androidaps/db/CareportalEvent.java b/app/src/main/java/info/nightscout/androidaps/db/CareportalEvent.java index 9f49b64280..e2e4e6d639 100644 --- a/app/src/main/java/info/nightscout/androidaps/db/CareportalEvent.java +++ b/app/src/main/java/info/nightscout/androidaps/db/CareportalEvent.java @@ -5,6 +5,7 @@ import android.graphics.Color; import com.j256.ormlite.field.DatabaseField; import com.j256.ormlite.table.DatabaseTable; +import org.apache.commons.lang3.StringUtils; import org.json.JSONException; import org.json.JSONObject; import org.slf4j.Logger; @@ -184,7 +185,7 @@ public class CareportalEvent implements DataPointWithLabelInterface { try { JSONObject object = new JSONObject(json); if (object.has("notes")) - return object.getString("notes"); + return StringUtils.abbreviate(object.getString("notes"), 40); } catch (JSONException e) { log.error("Unhandled exception", e); } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/ErrorHelperActivity.java b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/ErrorHelperActivity.java index 259c9c76eb..e11c57ba35 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/ErrorHelperActivity.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/ErrorHelperActivity.java @@ -3,6 +3,8 @@ package info.nightscout.androidaps.plugins.Overview.Dialogs; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; +import info.nightscout.utils.NSUpload; + public class ErrorHelperActivity extends AppCompatActivity { public ErrorHelperActivity() { super(); @@ -17,5 +19,7 @@ public class ErrorHelperActivity extends AppCompatActivity { errorDialog.setSound(getIntent().getIntExtra("soundid", 0)); errorDialog.setTitle(getIntent().getStringExtra("title")); errorDialog.show(this.getSupportFragmentManager(), "Error"); + + NSUpload.uploadError(getIntent().getStringExtra("status")); } } diff --git a/app/src/main/java/info/nightscout/utils/LocalAlertUtils.java b/app/src/main/java/info/nightscout/utils/LocalAlertUtils.java index e74818d447..2d41ed0ca8 100644 --- a/app/src/main/java/info/nightscout/utils/LocalAlertUtils.java +++ b/app/src/main/java/info/nightscout/utils/LocalAlertUtils.java @@ -18,6 +18,7 @@ import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin; import info.nightscout.androidaps.plugins.Overview.events.EventNewNotification; import info.nightscout.androidaps.plugins.Overview.notifications.Notification; import info.nightscout.androidaps.receivers.KeepAliveReceiver; +import info.nightscout.utils.NSUpload; /** * Created by adrian on 17/12/17. @@ -42,6 +43,7 @@ public class LocalAlertUtils { n.soundId = R.raw.alarm; SP.putLong("nextPumpDisconnectedAlarm", System.currentTimeMillis() + pumpUnreachableThreshold()); MainApp.bus().post(new EventNewNotification(n)); + NSUpload.uploadError(n.text); } } @@ -91,6 +93,7 @@ public class LocalAlertUtils { n.soundId = R.raw.alarm; SP.putLong("nextMissedReadingsAlarm", System.currentTimeMillis() + missedReadingsThreshold()); MainApp.bus().post(new EventNewNotification(n)); + NSUpload.uploadError(n.text); } } } diff --git a/app/src/main/java/info/nightscout/utils/NSUpload.java b/app/src/main/java/info/nightscout/utils/NSUpload.java index 2f8893aa7b..690b239128 100644 --- a/app/src/main/java/info/nightscout/utils/NSUpload.java +++ b/app/src/main/java/info/nightscout/utils/NSUpload.java @@ -399,6 +399,7 @@ public class NSUpload { try { data.put("eventType", "Announcement"); data.put("created_at", DateUtil.toISOString(new Date())); + data.put("enteredBy", SP.getString("careportal_enteredby", MainApp.gs(R.string.app_name))); data.put("notes", error); data.put("isAnnouncement", true); } catch (JSONException e) { From 52252762598e75376bc7640e2ea7bd95c8482669 Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Mon, 12 Feb 2018 20:15:47 +0100 Subject: [PATCH 2/5] Update strings.xml --- app/src/main/res/values-fr/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 269e7c9bcf..971d541a6a 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -144,7 +144,7 @@ Contrôle de Glycémie Notification Remarque - Question + Activité Physique Changement Zone D\'insertion Insertion Capteur CGM Début Capteur CGM @@ -839,4 +839,4 @@ Niveau Batterie Niveau Réservoir Taux du Débit de Base - \ No newline at end of file + From 6470f7a63e895692ee503b575b79481d0a2ac12f Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Mon, 12 Feb 2018 20:18:44 +0100 Subject: [PATCH 3/5] Update strings.xml --- app/src/main/res/values-fr/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 971d541a6a..e012234ce0 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -22,8 +22,8 @@ Unités Durée d’Action Profil actif - "I:G (Ratio Insuline/Glucides) " - "Facteur SI " + "I:G (Ratio Insuline/Glucides)" + "Facteur SI" Basal Cible Insuline: From f8075927f2d79b712bb4d5b3926d2fd9065c50d4 Mon Sep 17 00:00:00 2001 From: Johannes Mockenhaupt Date: Tue, 13 Feb 2018 00:34:24 +0100 Subject: [PATCH 4/5] Make new behaviour configurable, default on. --- .../plugins/Overview/Dialogs/ErrorHelperActivity.java | 6 +++++- .../main/java/info/nightscout/utils/LocalAlertUtils.java | 8 ++++++-- app/src/main/res/values/strings.xml | 3 +++ app/src/main/res/xml/pref_nsclientinternal.xml | 6 ++++++ 4 files changed, 20 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/ErrorHelperActivity.java b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/ErrorHelperActivity.java index e11c57ba35..90cf9aecd5 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/ErrorHelperActivity.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/ErrorHelperActivity.java @@ -3,7 +3,9 @@ package info.nightscout.androidaps.plugins.Overview.Dialogs; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; +import info.nightscout.androidaps.R; import info.nightscout.utils.NSUpload; +import info.nightscout.utils.SP; public class ErrorHelperActivity extends AppCompatActivity { public ErrorHelperActivity() { @@ -20,6 +22,8 @@ public class ErrorHelperActivity extends AppCompatActivity { errorDialog.setTitle(getIntent().getStringExtra("title")); errorDialog.show(this.getSupportFragmentManager(), "Error"); - NSUpload.uploadError(getIntent().getStringExtra("status")); + if (SP.getBoolean(R.string.key_ns_create_announcements_from_errors, true)) { + NSUpload.uploadError(getIntent().getStringExtra("status")); + } } } diff --git a/app/src/main/java/info/nightscout/utils/LocalAlertUtils.java b/app/src/main/java/info/nightscout/utils/LocalAlertUtils.java index 2d41ed0ca8..10bfa52013 100644 --- a/app/src/main/java/info/nightscout/utils/LocalAlertUtils.java +++ b/app/src/main/java/info/nightscout/utils/LocalAlertUtils.java @@ -43,7 +43,9 @@ public class LocalAlertUtils { n.soundId = R.raw.alarm; SP.putLong("nextPumpDisconnectedAlarm", System.currentTimeMillis() + pumpUnreachableThreshold()); MainApp.bus().post(new EventNewNotification(n)); - NSUpload.uploadError(n.text); + if (SP.getBoolean(R.string.key_ns_create_announcements_from_errors, true)) { + NSUpload.uploadError(n.text); + } } } @@ -93,7 +95,9 @@ public class LocalAlertUtils { n.soundId = R.raw.alarm; SP.putLong("nextMissedReadingsAlarm", System.currentTimeMillis() + missedReadingsThreshold()); MainApp.bus().post(new EventNewNotification(n)); - NSUpload.uploadError(n.text); + if (SP.getBoolean(R.string.key_ns_create_announcements_from_errors, true)) { + NSUpload.uploadError(n.text); + } } } } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index f035818105..5b8038ab52 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -929,5 +929,8 @@ Let current temp basal run Mute History browser + ns_create_announcements_from_errors + Create announcements from errors + Create Nightscout announcement for error dialogs and local alerts (also viewable in Careportal under Treatments) diff --git a/app/src/main/res/xml/pref_nsclientinternal.xml b/app/src/main/res/xml/pref_nsclientinternal.xml index 5f401d6c0e..bbfb9e6a2c 100644 --- a/app/src/main/res/xml/pref_nsclientinternal.xml +++ b/app/src/main/res/xml/pref_nsclientinternal.xml @@ -27,6 +27,12 @@ android:key="@string/key_ns_logappstartedevent" android:title="@string/ns_logappstartedevent" /> + + Date: Tue, 13 Feb 2018 18:06:26 +0100 Subject: [PATCH 5/5] Update strings.xml --- app/src/main/res/values-fr/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index e012234ce0..f75eedfb62 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -685,7 +685,7 @@ "Firmware pompe incompatible " Transmettre les données G sur xDrip+ Dans xDrip+ veuillez séléctionner 640g/Eversense comme source de données - "G NSClient " + "Glycémie NSClient" "Valeur du basal remplacée par la valeur minimale supportée " Calcul de G Calcul IR du Bolus