From 6fb5f5bad4bd1b63d93b4163987422e13779156d Mon Sep 17 00:00:00 2001 From: Johannes Mockenhaupt Date: Wed, 7 Feb 2018 15:23:29 +0100 Subject: [PATCH 1/5] Check result.success when hard cancelling TBR. (cherry picked from commit 654f984) --- .../nightscout/androidaps/plugins/PumpCombo/ComboPlugin.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/PumpCombo/ComboPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/PumpCombo/ComboPlugin.java index ccbcf7f913..b0e7f0f376 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/PumpCombo/ComboPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/PumpCombo/ComboPlugin.java @@ -792,6 +792,9 @@ public class ComboPlugin implements PluginBase, PumpInterface, ConstraintsInterf if (enforceNew) { log.debug("cancelTempBasal: hard-cancelling TBR since force requested"); CommandResult commandResult = runCommand(MainApp.gs(R.string.combo_pump_action_cancelling_tbr), 2, ruffyScripter::cancelTbr); + if (!commandResult.success) { + return new PumpEnactResult().success(false).enacted(false); + } if (!commandResult.state.tbrActive) { TemporaryBasal tempBasal = new TemporaryBasal(); tempBasal.date = commandResult.state.timestamp; From 6b36dd27d8ece711ea82812f5fc37765a788dc6b Mon Sep 17 00:00:00 2001 From: Johannes Mockenhaupt Date: Wed, 7 Feb 2018 16:11:08 +0100 Subject: [PATCH 2/5] Don't create a cancel record for requests to cancel a TBR when none is running. (cherry picked from commit a46b475) --- .../plugins/PumpCombo/ComboPlugin.java | 24 +++++++++++++++---- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/PumpCombo/ComboPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/PumpCombo/ComboPlugin.java index b0e7f0f376..98f766c66a 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/PumpCombo/ComboPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/PumpCombo/ComboPlugin.java @@ -785,19 +785,33 @@ public class ComboPlugin implements PluginBase, PumpInterface, ConstraintsInterf return OPERATION_NOT_SUPPORTED; } + /** Cancel an active Temp Basal. Mostly sets a fake Temp Basal to avoid a TBR CANCELLED + * alert. This relies on TemporaryBasal objects to properly reflect the pumps state, + * which is ensured by {@link #checkAndResolveTbrMismatch(PumpState)}, which runs on each + * connect. When a hard cancel is requested, the pump is queried for it's TBR state to + * make absolutely sure no TBR is running (such a request is also made when resuming the + * loop, irregardless of whether a TBR is running or not). + */ @Override public PumpEnactResult cancelTempBasal(boolean enforceNew) { log.debug("cancelTempBasal called"); final TemporaryBasal activeTemp = MainApp.getConfigBuilder().getTempBasalFromHistory(System.currentTimeMillis()); if (enforceNew) { - log.debug("cancelTempBasal: hard-cancelling TBR since force requested"); - CommandResult commandResult = runCommand(MainApp.gs(R.string.combo_pump_action_cancelling_tbr), 2, ruffyScripter::cancelTbr); - if (!commandResult.success) { + CommandResult stateResult = runCommand(MainApp.gs(R.string.combo_pump_action_refreshing), 2, ruffyScripter::readPumpState); + if (!stateResult.success) { return new PumpEnactResult().success(false).enacted(false); } - if (!commandResult.state.tbrActive) { + if (!stateResult.state.tbrActive) { + return new PumpEnactResult().success(true).enacted(false); + } + log.debug("cancelTempBasal: hard-cancelling TBR since force requested"); + CommandResult cancelResult = runCommand(MainApp.gs(R.string.combo_pump_action_cancelling_tbr), 2, ruffyScripter::cancelTbr); + if (!cancelResult.success) { + return new PumpEnactResult().success(false).enacted(false); + } + if (!cancelResult.state.tbrActive) { TemporaryBasal tempBasal = new TemporaryBasal(); - tempBasal.date = commandResult.state.timestamp; + tempBasal.date = cancelResult.state.timestamp; tempBasal.durationInMinutes = 0; tempBasal.source = Source.USER; MainApp.getConfigBuilder().addToHistoryTempBasal(tempBasal); From 46ea4be4ebfce26a2c949f5b053eababb56c374d Mon Sep 17 00:00:00 2001 From: Johannes Mockenhaupt Date: Wed, 7 Feb 2018 22:50:40 +0100 Subject: [PATCH 3/5] ComboFragment: display last bolus regardless of age. (cherry picked from commit 197874e) --- .../nightscout/androidaps/plugins/PumpCombo/ComboFragment.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/PumpCombo/ComboFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/PumpCombo/ComboFragment.java index bebc5336d7..fbc0325020 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/PumpCombo/ComboFragment.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/PumpCombo/ComboFragment.java @@ -264,7 +264,7 @@ public class ComboFragment extends SubscriberFragment implements View.OnClickLis // last bolus Bolus bolus = plugin.getPump().lastBolus; - if (bolus != null && bolus.timestamp + 6 * 60 * 60 * 1000 >= System.currentTimeMillis()) { + if (bolus != null) { long agoMsc = System.currentTimeMillis() - bolus.timestamp; double bolusMinAgo = agoMsc / 60d / 1000d; String unit = MainApp.gs(R.string.treatments_wizard_unit_label); From 483ecadedea8f94582a9ae506ee3e19839dda033 Mon Sep 17 00:00:00 2001 From: Johannes Mockenhaupt Date: Wed, 7 Feb 2018 22:50:58 +0100 Subject: [PATCH 4/5] Fix dutch translation for Combo's last bolus, minor cleanup. (cherry picked from commit c0cf06a) --- app/src/main/java/info/nightscout/utils/DateUtil.java | 4 ++-- app/src/main/res/values-de/strings.xml | 1 - app/src/main/res/values-es/strings.xml | 1 - app/src/main/res/values-nl/strings.xml | 1 - 4 files changed, 2 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/info/nightscout/utils/DateUtil.java b/app/src/main/java/info/nightscout/utils/DateUtil.java index 1c3be368bf..102720ef1b 100644 --- a/app/src/main/java/info/nightscout/utils/DateUtil.java +++ b/app/src/main/java/info/nightscout/utils/DateUtil.java @@ -124,12 +124,12 @@ public class DateUtil { public static String minAgo(long time) { int mins = (int) ((System.currentTimeMillis() - time) / 1000 / 60); - return String.format(MainApp.sResources.getString(R.string.minago), mins); + return MainApp.gs(R.string.minago, mins); } public static String hourAgo(long time) { double hours = (System.currentTimeMillis() - time) / 1000d / 60 / 60; - return String.format(MainApp.sResources.getString(R.string.hoursago), hours); + return MainApp.gs(R.string.hoursago, hours); } private static LongSparseArray timeStrings = new LongSparseArray<>(); diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 2981f94cfe..e35e69cc38 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -722,7 +722,6 @@ Bolus (%.1f IE) wird abgegeben Bitte starte dein Telefon neu oder starte AndroidAPS in den System-Einstellungen neu. Andernfalls wird AndroidAPS nicht protokolliert (wichtig zum Nachverfolgen und Verifizieren, dass der Algorithmus korrekt funktioniert) TBR - %.1f %s (%s) Ein gleich großer Bolus wurde in den letzten zwei Minuten angefordert. Dies ist nicht zulässig, um ungewollte Doppelboli zu verhindern und vor eventuellen Bugs zu schützen. Historie wird gelesen Basalratenprofil wird aktualisiert diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index cdc7f74175..e40add1e7c 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -750,7 +750,6 @@ Actividad Ninguna coneccnion por %d min %d%% (%d min restan) - %.1f U (%s, %s) Iniciando Desconectado Apagado por error diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index 61bd323d73..9a5bd426ae 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -738,7 +738,6 @@ Status Geen verbinding gedurende %d minuten %d%% (%d min resterend) - %.1f E (%s, %s) Initialiseren Verbinding verbroken Herstel van verbroken verbindng From 9c95a75edea0e0ae9e1747be09d34eaab7ea9818 Mon Sep 17 00:00:00 2001 From: Simon Pauwels Date: Wed, 7 Feb 2018 23:17:50 +0100 Subject: [PATCH 5/5] Added dutch translations (#52) --- app/src/main/res/values-nl/strings.xml | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index 9a5bd426ae..f305538bcf 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -781,4 +781,22 @@ Niet genoeg insuline aanwezig in reservoir voor de bolus Combinatie-Bolus %.2f E/u + Laden van pomp + %.1fu geleden + Bolus gestopt + Stoppen van bolus + Basaal profiel wordt gelezen + Basale patroon niet geschikt op complete uren: %s + Ongeldig profiel: %s + Lang duwen op deze knop zal de volledige historiek en basaal profiel uit de pomp ophalen. Dit is normaal gezien niet nodig, daar de pomp historiek permanent wordt gelezen, maar kan nuttig zijn wanneer de pomp dat en tijd grote afwijkingen hadden of de pomp vervangen is. + Er kon geen verbinding met de pomp gemaakt worden. De Bolus is niet toegediend. + Vertraagde bolus toedien storing + De pomp historiek is gewijzigd nadat de bolus berend was. De bolus is NIET toegediend. Programmeer een nieuwe bolus indien nodig. Als dezelfde bolus hoeveelheid moet worden toegediend, gelieve 2 minuten te wachten. Gelijke bolussen worden geweigerd om veiligheidsredenen (toegediend of niet). + Bolus succesvol toegediend, maar toevoegend van de behandeling is gefaald. Dit kan voorvallen wanneer twee kleine bolussen van dezelfde grote gekozen waren gedurende de laatste 2 minuten. Controleer aub de pomphistoriek en de behandelingen, voeg de ontbrekende toe via het careportal. Let op dat je geen 2 dezelfde hoeveelheden hebt op hetzelfde ogenblik. + Tijdelijk basaal geweigerd doordat de berekeningen geen rekening hielden met de recente wijzigingen in de pomp historiek + Vernieuwen van pomp status + Het basaal patroon is op de pomp gewijzigd en zal binnenkort geupdate worden. + Basaal patroon op de pomp is gewijzigd, maar konnen niet worden uitgelezen + Controle van historiek op wijzigingen +