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); 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..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,16 +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) { + 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 (!stateResult.state.tbrActive) { + return new PumpEnactResult().success(true).enacted(false); + } 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.state.tbrActive) { + 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); 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 4a1473c449..f305538bcf 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