diff --git a/app/build.gradle b/app/build.gradle index 77d1bde228..d7f83ead97 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -44,7 +44,7 @@ def generateGitBuild = { -> stringBuilder.append('NoGitSystemAvailable') } stringBuilder.append('-') - stringBuilder.append((new Date()).format('yyyy.MM.dd')) + stringBuilder.append((new Date()).format('yyyy.MM.dd-HH:mm')) stringBuilder.append('"') return stringBuilder.toString() } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Actions/dialogs/FillDialog.java b/app/src/main/java/info/nightscout/androidaps/plugins/Actions/dialogs/FillDialog.java index dda2e61006..7b9b8570d6 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Actions/dialogs/FillDialog.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Actions/dialogs/FillDialog.java @@ -179,10 +179,10 @@ public class FillDialog extends DialogFragment implements OnClickListener { } if (pumpSiteChangeCheckbox.isChecked()) - confirmMessage.add("" + "" + MainApp.gs(R.string.record_pump_site_change) + ""); + confirmMessage.add("" + "" + MainApp.gs(R.string.record_pump_site_change) + ""); if (insulinCartridgeChangeCheckbox.isChecked()) - confirmMessage.add("" + "" + MainApp.gs(R.string.record_insulin_cartridge_change) + ""); + confirmMessage.add("" + "" + MainApp.gs(R.string.record_insulin_cartridge_change) + ""); final String notes = notesEdit.getText().toString(); if (!notes.isEmpty()) { diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/BolusProgressDialog.java b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/BolusProgressDialog.java index 8ef6ec2fc6..9974471528 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/BolusProgressDialog.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/BolusProgressDialog.java @@ -112,7 +112,7 @@ public class BolusProgressDialog extends DialogFragment implements View.OnClickL stopPressed = true; stopPressedView.setVisibility(View.VISIBLE); stopButton.setVisibility(View.INVISIBLE); - ConfigBuilderPlugin.getActivePump().stopBolusDelivering(); + ConfigBuilderPlugin.getCommandQueue().cancelAllBoluses(); break; } } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/NewCarbsDialog.java b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/NewCarbsDialog.java index 4360e2ed34..3951b8415f 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/NewCarbsDialog.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/NewCarbsDialog.java @@ -303,21 +303,21 @@ public class NewCarbsDialog extends DialogFragment implements OnClickListener, C if (currentProfile.getUnits().equals(Constants.MMOL)) { unitLabel = "mmol/l"; } - - actions.add(MainApp.gs(R.string.temptargetshort) + ": " + "" + DecimalFormatter.to1Decimal(activityTT) + " " + unitLabel + " (" + activityTTDuration + " min)"); - + actions.add(MainApp.gs(R.string.temptargetshort) + ": " + "" + DecimalFormatter.to1Decimal(activityTT) + " " + unitLabel + " (" + activityTTDuration + " min)"); } if (startEatingSoonTTCheckbox.isChecked()) { if (currentProfile.getUnits().equals(Constants.MMOL)) { - actions.add(MainApp.gs(R.string.temptargetshort) + ": " + "" + DecimalFormatter.to1Decimal(eatingSoonTT) + " mmol/l (" + eatingSoonTTDuration + " min)"); - } else - actions.add(MainApp.gs(R.string.temptargetshort) + ": " + "" + DecimalFormatter.to0Decimal(eatingSoonTT) + " mg/dl (" + eatingSoonTTDuration + " min)"); + actions.add(MainApp.gs(R.string.temptargetshort) + ": " + "" + DecimalFormatter.to1Decimal(eatingSoonTT) + " mmol/l (" + eatingSoonTTDuration + " min)"); + } else { + actions.add(MainApp.gs(R.string.temptargetshort) + ": " + "" + DecimalFormatter.to0Decimal(eatingSoonTT) + " mg/dl (" + eatingSoonTTDuration + " min)"); + } } if (startHypoTTCheckbox.isChecked()) { if (currentProfile.getUnits().equals(Constants.MMOL)) { - actions.add(MainApp.gs(R.string.temptargetshort) + ": " + "" + DecimalFormatter.to1Decimal(hypoTT) + " mmol/l (" + hypoTTDuration + " min)"); - } else - actions.add(MainApp.gs(R.string.temptargetshort) + ": " + "" + DecimalFormatter.to0Decimal(hypoTT) + " mg/dl (" + hypoTTDuration + " min)"); + actions.add(MainApp.gs(R.string.temptargetshort) + ": " + "" + DecimalFormatter.to1Decimal(hypoTT) + " mmol/l (" + hypoTTDuration + " min)"); + } else { + actions.add(MainApp.gs(R.string.temptargetshort) + ": " + "" + DecimalFormatter.to0Decimal(hypoTT) + " mg/dl (" + hypoTTDuration + " min)"); + } } int timeOffset = editTime.getValue().intValue(); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/NewInsulinDialog.java b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/NewInsulinDialog.java index 875d207352..c4aba7004a 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/NewInsulinDialog.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/NewInsulinDialog.java @@ -217,9 +217,9 @@ public class NewInsulinDialog extends DialogFragment implements OnClickListener if (startEatingSoonTTCheckbox.isChecked()) { if (currentProfile.getUnits().equals(Constants.MMOL)) { - actions.add(MainApp.gs(R.string.temptargetshort) + ": " + "" + DecimalFormatter.to1Decimal(eatingSoonTT) + " mmol/l (" + eatingSoonTTDuration + " min)"); + actions.add(MainApp.gs(R.string.temptargetshort) + ": " + "" + DecimalFormatter.to1Decimal(eatingSoonTT) + " mmol/l (" + eatingSoonTTDuration + " min)"); } else - actions.add(MainApp.gs(R.string.temptargetshort) + ": " + "" + DecimalFormatter.to0Decimal(eatingSoonTT) + " mg/dl (" + eatingSoonTTDuration + " min)"); + actions.add(MainApp.gs(R.string.temptargetshort) + ": " + "" + DecimalFormatter.to0Decimal(eatingSoonTT) + " mg/dl (" + eatingSoonTTDuration + " min)"); } int timeOffset = editTime.getValue().intValue(); 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 3cf4557e54..eb06d4055d 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 @@ -56,6 +56,7 @@ import info.nightscout.androidaps.plugins.PumpCombo.ruffyscripter.history.Bolus; import info.nightscout.androidaps.plugins.PumpCombo.ruffyscripter.history.PumpHistory; import info.nightscout.androidaps.plugins.PumpCombo.ruffyscripter.history.PumpHistoryRequest; import info.nightscout.androidaps.plugins.PumpCombo.ruffyscripter.history.Tdd; +import info.nightscout.androidaps.plugins.Treatments.Treatment; import info.nightscout.androidaps.plugins.Treatments.TreatmentsPlugin; import info.nightscout.androidaps.queue.Callback; import info.nightscout.androidaps.queue.CommandQueue; @@ -421,9 +422,6 @@ public class ComboPlugin extends PluginBase implements PumpInterface, Constraint return pump.basalProfile.hourlyRates[currentHour]; } - private static BolusProgressReporter nullBolusProgressReporter = (state, percent, delivered) -> { - }; - private static BolusProgressReporter bolusProgressReporter = (state, percent, delivered) -> { EventOverviewBolusProgress event = EventOverviewBolusProgress.getInstance(); switch (state) { @@ -549,12 +547,14 @@ public class ComboPlugin extends PluginBase implements PumpInterface, Constraint return new PumpEnactResult().success(true).enacted(false); } - BolusProgressReporter progressReporter = detailedBolusInfo.isSMB ? nullBolusProgressReporter : bolusProgressReporter; + Treatment treatment = new Treatment(); + treatment.isSMB = detailedBolusInfo.isSMB; + EventOverviewBolusProgress.getInstance().t = treatment; // start bolus delivery scripterIsBolusing = true; runCommand(null, 0, - () -> ruffyScripter.deliverBolus(detailedBolusInfo.insulin, progressReporter)); + () -> ruffyScripter.deliverBolus(detailedBolusInfo.insulin, bolusProgressReporter)); scripterIsBolusing = false; // Note that the result of the issued bolus command is not checked. If there was diff --git a/app/src/main/java/info/nightscout/androidaps/queue/CommandQueue.java b/app/src/main/java/info/nightscout/androidaps/queue/CommandQueue.java index d2fd2a5e24..cc28eb28a0 100644 --- a/app/src/main/java/info/nightscout/androidaps/queue/CommandQueue.java +++ b/app/src/main/java/info/nightscout/androidaps/queue/CommandQueue.java @@ -213,6 +213,12 @@ public class CommandQueue { return true; } + public synchronized void cancelAllBoluses() { + removeAll(Command.CommandType.BOLUS); + removeAll(Command.CommandType.SMB_BOLUS); + ConfigBuilderPlugin.getActivePump().stopBolusDelivering(); + } + // returns true if command is queued public boolean tempBasalAbsolute(double absoluteRate, int durationInMinutes, boolean enforceNew, Profile profile, Callback callback) { if (!enforceNew && isRunning(Command.CommandType.TEMPBASAL)) { diff --git a/app/src/main/java/info/nightscout/utils/T.java b/app/src/main/java/info/nightscout/utils/T.java index ce8541dd8c..99f4e573c3 100644 --- a/app/src/main/java/info/nightscout/utils/T.java +++ b/app/src/main/java/info/nightscout/utils/T.java @@ -7,6 +7,12 @@ package info.nightscout.utils; public class T { private long time; // in msec + public static T now() { + T t = new T(); + t.time = System.currentTimeMillis(); + return t; + } + public static T msecs(long msec) { T t = new T(); t.time = msec; @@ -56,4 +62,12 @@ public class T { public long days() { return time / 24 / 60 / 60 / 1000L; } + + public T plus(T plus) { + return T.msecs(time + plus.time); + } + + public T minus(T minus) { + return T.msecs(time - minus.time); + } } diff --git a/app/src/main/res/layout/actions_fill_dialog.xml b/app/src/main/res/layout/actions_fill_dialog.xml index 2883485bf7..21fb5d3c66 100644 --- a/app/src/main/res/layout/actions_fill_dialog.xml +++ b/app/src/main/res/layout/actions_fill_dialog.xml @@ -11,27 +11,24 @@ android:padding="10dp"> diff --git a/app/src/main/res/layout/overview_calibration_dialog.xml b/app/src/main/res/layout/overview_calibration_dialog.xml index 3a51ecec3c..85f8e82317 100644 --- a/app/src/main/res/layout/overview_calibration_dialog.xml +++ b/app/src/main/res/layout/overview_calibration_dialog.xml @@ -11,8 +11,8 @@ android:layout_height="match_parent"> @@ -20,10 +20,16 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" - android:padding="10dp" - android:text="@string/overview_calibration_bg_label" + android:text="@string/overview_calibration" + android:textColor="@color/colorCalibrationButton" android:textAppearance="?android:attr/textAppearanceLarge" /> + + diff --git a/app/src/main/res/layout/overview_newinsulin_dialog.xml b/app/src/main/res/layout/overview_newinsulin_dialog.xml index 8103f4378b..e4647fac38 100644 --- a/app/src/main/res/layout/overview_newinsulin_dialog.xml +++ b/app/src/main/res/layout/overview_newinsulin_dialog.xml @@ -17,26 +17,23 @@ android:padding="10dp"> @@ -59,7 +56,7 @@ android:id="@+id/newinsulin_record_only" android:layout_width="wrap_content" android:layout_height="match_parent" - android:text="@string/don_t_bolus_record_only" /> + android:text="@string/do_not_bolus_record_only" /> @@ -124,6 +121,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" + android:layout_marginRight="5dp" android:text="@string/insulin_unit_shortname" /> diff --git a/app/src/main/res/layout/overview_newtreatment_dialog.xml b/app/src/main/res/layout/overview_newtreatment_dialog.xml index a332cece9a..348c182a7a 100644 --- a/app/src/main/res/layout/overview_newtreatment_dialog.xml +++ b/app/src/main/res/layout/overview_newtreatment_dialog.xml @@ -29,7 +29,7 @@ android:id="@+id/newtreatment_record_only" android:layout_width="wrap_content" android:layout_height="match_parent" - android:text="@string/don_t_bolus_record_only" /> + android:text="@string/do_not_bolus_record_only" /> Избор на данни Позволява автоматично изпращане на данни за грешки и статистически данни до разработчиците чрез fabric.io service. Моля обновете G5 приложението до поддържана версия. - Не доставяй болус, само запис + Не доставяй болус, само запис Категория Подкатегория Болусът ще бъде само записан diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index d4b1a0f9dc..bfe0605b44 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -810,7 +810,7 @@ Spustit Dočasný cíl Blížící se jídlo DoCíl min - Nepouštět bolus, jen zaznamenat + Nepouštět bolus, jen zaznamenat Podkategorie Kategorie Bolus bude pouze zaznamenán diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 9d990334ff..10d46dd495 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -797,4 +797,6 @@ Verbindungs-Einstellungen Zielsetzung %d nicht gestartet Zielsetzung %d nicht abgeschlossen + Bolus nur erfassen + Bolus wird nur erfasst diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index a39ab1ce48..dc96612c1c 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -744,7 +744,7 @@ El Bolo solo será anotado Categoría Subcategoría - No administrar Bolo, solo anotar + No administrar Bolo, solo anotar min TT Inicio TT Actividad diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index 6a32c1dd18..684a401a30 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -557,7 +557,7 @@ Czas sensora Czas wkłucia Czas insuliny - godziny + godzin Typ bazy Nieważny profil !!! ZmieńProfil @@ -835,7 +835,7 @@ Rozpocznij TT Ćwiczenia Rozpocznij TT WkrótcePosiłek TT - Nie podawaj bolusa, tylko zapisz rekord + Nie podawaj bolusa, tylko zapisz rekord Kategoria Podkategoria Bolus zostanie tylko zapisany w rekordach @@ -934,4 +934,4 @@ Obliczenia uwzględnione w wynikach kreatora: Ustawienia wyświetlania Ustawienia ogólne - \ No newline at end of file + diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index 0c7c0bb55e..520ad59437 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -53,19 +53,19 @@ KH KH-tid Duration - Infört av + Loggat av Tid Händelsetyp Insulin Mätare - Notering + Anteckning Annat Procent Profil Sensor Delad - Notering - Offline + Anteckning + OpenAPS Offline Pumpbatteri ålder Byt profil Byte pumpkanyl @@ -89,7 +89,7 @@ APS BG-källa Begränsningar - Generell + Generella inställningar Insulin Loop Nightscoutversion: @@ -229,7 +229,7 @@ Exportera inställningar Importera inställningar Inställningar - Uppdatera behandlingar från NS + Uppdatera från Nightscout Återställ databaserna Visa logg Testa alarm @@ -243,10 +243,10 @@ misslyckat - kontrollera telefonen Ej tillgängligt NS Client har inga skrivrättigheter. Fel API secret? - Alarm inställningar + Larminställningar Slå på sändning av data till alla appar i telefonen (ex xDrip). Aktivera lokala broadcasts - Markera app start till Nightscout + Markera appstart till Nightscout Ingen uppladdning till Nightscout Ingen data sänds till Nightscout. AAPS ansluter till Nightscout men inga ändringar görs i Nightscout. Använd alltid absoluta värden i basal @@ -254,19 +254,19 @@ Endast uppladdning till Nightscout. Kommer inte få BG-data om inte lokal källa som xDrip används. Kommer heller inte att kunna hämta basalprofiler från Nightscout. Hög Låg - Gammal data + BG-data saknas NSClient Ange enhetens namn Enhetens namn - Ange NS API secret (min 12 tecken) - NS API secret + Ange Nightscout API secret (min 12 tecken) + Nightscout API secret NSClient är inte installerad. Data förlorad! Nightscout URL Ange Nightscout URL URL: NSClient NSCI - NS API secret + Nightscout API secret Aktiv profil Basal DIA @@ -318,7 +318,7 @@ Osupportad version av NSClient Lås upp inställningar Enheter: - Säkerhet vid behandling + Säkerhetsbegränsingar Max tillåtna KH [g] Max tillåten bolus [E] E @@ -333,21 +333,21 @@ Beh Insulin KH - Total IOB: - Totalt aktiverat IOB: + Total IOB (bolus): + Total aktivitet (5m): IOB: Insulin: KH: - Redan aktiverat: + 5m: Behandlingar Fel vid bolusleverans TT Temp mål TB Dur: - Kvot: + Tot: Ins: - Total IOB: + Total IOB (basal): IOB: Fel vid justering av tempbasal Temp basal @@ -409,19 +409,19 @@ Återuppta Resultat Avslutar appen för att inställningarna ska läsas in. - Omstart + Starta om Vill du verkligen återställa databaserna? Uppdatera klockans data Ta bort sparad data: Ladda om profil - Uppdatera händelser från Nightscout + Uppdatera från Nightscout Orsak RAT Hastighet Kalkylatorinställningar Kalkylator Kö: - Pump pausad. Klicka för ladda om status. + Pump pausad. Klicka för att ladda om status. Pump pausad Pump avstängd Pumpfel @@ -457,7 +457,7 @@ Kalibrering Kalibrering Kalkylator - STOPP NEDTRYCKT + Stopp nedtryckt Stoppad Stopp Kommer tillföra %.2f enheter @@ -496,12 +496,13 @@ Antal timmar för beräkning av känslighet (Absorptionstid för KH är exkluderad). Intervall för autosens [tim] Standardvärde: 1.2 Med standarvärdet 1.2 kan autosens justera upp dina basaler, kvoter etc med upp till 20% för att kompensera för t ex tillfällig insulinresistens. - Standardvärde: sant Detta för att tillåta autosens justera BG målvärden, ISF och basaler. + Standardvärde: sant. Detta för att tillåta autosens justera mål-BG utöver ISF och basaler. + Autosens justerar även mål-BG OpenAPS AMA OpenAPS Öppna inställningar på klockan - Konstant infonotis i telefonen - GAMMAL DATA + Konstant avisering i telefonen + Aktuellt BG saknas! OK Ocklusion Mål @@ -525,7 +526,7 @@ Starta med open loop Starta med open loop och använd det några dagar. Försök att ge många föreslagna temp basaler. Tid i timmar när alla kolhydradet förväntas vara absorberade - Max absorptions tid för en måltid [tim] + Max absorptionstid för en måltid [tim] Absorptionsinställningar PUMP Byte pumpbatteri @@ -540,7 +541,7 @@ Lås skärm Lås mmol/l - %d min sedan + %d m mg/dl OK MDI @@ -550,9 +551,9 @@ Basaltyp SENS Genom att slå på Autosens funktionen, kom ihåg att skriva in alla KH. Annars kommer programmet göra fel i beräkningar av känslighet (ISF)!! - Känslighetsavkänning AAPS - Känslighetsavkänning Oref0 - Känslighetsavkänning WeightedAverage + AAPS + Oref0 + WeightedAverage Ställer in temp basal SP BG: @@ -560,12 +561,12 @@ Bolus: Delta: IOB: - %d min sedan - Tröskelvärde för \"Gammal data\" [min] - Tröskelvärde för \"Väldigt gammal data\" [min] + %d min + Första varning efter [min] + Akut varning efter [min] Akut hög Akut låg - Väldigt gammal data + BG-data saknas (akut larm) AndroidAPS TT Basal [%] @@ -586,7 +587,7 @@ Modell: %02X Protokoll: %02X Kod: %02X "Standardvärde: 4 Detta är en grundsten i OpenAPS säkerhet. Detta begränsar dina tempbasaler till maximalt 4x din nuvarande basal, oberoende av din max basalhastighet. Detta för att undvika att man av misstag gör farliga inställningar. Om man når taket i denna inställning så kanske ändringar i andra inställningar behövs. De flesta behöver inte ändra denna inställning. " Standardvärde: 0.7 Med standardvärdet 0.7 kan autosens justera ner dina basaler, kvoter etc med upp till 30% för att kompensera för t ex tillfällig hög insulinkänslighet. - "Det kommer att användas för att ange \"Inmatat av: \". " + "Det kommer att användas för att ange \"Loggat av: \". " Enheten verkar inte stöda vitlistning av appar för batteriförbrukning Tillåt %s behöver kunna kringgå batterisparfunktionerna för att fungera korrekt @@ -638,7 +639,7 @@ Kontroller från klockan Sätt tempmål och ange behandlingar från klockan. Anslutningen tog för lång tid - Mat + Matdatabas kJ En Pr @@ -676,7 +677,7 @@ Endast positiva Endast negativa Använd COB - Använd tempmål + Använd temp mål Loop aktiverad APS vald NSClient har skrivrättigheter @@ -813,7 +814,7 @@ Vänligen uppdatera din G5-app till en supportad version Starta \"Träning\" Starta \"Äta snart\" - Ge ingen bolus, logga bara + Ge ingen bolus, logga bara Kategori Underkategori Bolusen sparas bara i loggboken @@ -868,7 +869,7 @@ osäker användning Statuskontroll misslyckad Logga byte av kanyl - Logga byte a insulinreservoar + Logga byte av insulinreservoar SMB Alltid På och SMB Efter Kolhydrater är inaktiverat pga att den aktiva BG-källan inte stöder avancerad filtrering SMB inte tillåtet i Open Loop Mat @@ -885,7 +886,7 @@ Max absorptionstid för kolhydrater [tim] Efter denna tid anses alla kolhydrater vara absorberade. Om det fortfarande finns COB, kommer dessa att tas bort ur beräkningen. Tid - Visa noteringsrutan i behandlingsdialogerna + Visa anteckningar i behandlingsdialogerna Angivet: %.2f enheter. Levererat: %.2f enheter. Felkod: %d Första snabbknabben för insulin Andra snabbknabben för insulin @@ -925,4 +926,9 @@ KOLHYDRATER & BOLUS CGM & LOGGNING Övrigt + Initierar + Max antal minuter som kan bli SMB + t + m + DanaR v2 diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 32df48e57c..6ae1ed06e1 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -14,6 +14,7 @@ #00FF00 #FF0000 #FFFF00 + #FFFF00 #505050 #f0003f59 #FF33B5E5 @@ -28,6 +29,7 @@ #424242 #77dd77 + #77dd77 #303F9F diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index a80e75483b..2a8b75f33b 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -922,7 +922,7 @@ Start Activity TT Start Eating soon TT TT - Don\'t bolus, record only + Do not bolus, record only Category Subcategory Bolus will be recorded only diff --git a/app/src/test/java/info/nightscout/androidaps/queue/CommandQueueTest.java b/app/src/test/java/info/nightscout/androidaps/queue/CommandQueueTest.java index c4a73ccd04..dd6493fd66 100644 --- a/app/src/test/java/info/nightscout/androidaps/queue/CommandQueueTest.java +++ b/app/src/test/java/info/nightscout/androidaps/queue/CommandQueueTest.java @@ -156,4 +156,24 @@ public class CommandQueueTest extends CommandQueue { public boolean isThisProfileSet(Profile profile) { return false; } + + @Test + public void callingCancelAllBolusesClearsQueue() throws Exception { + prepareMock(0d, 0); + + // add normal and SMB-bolus to queue + Assert.assertEquals(0, size()); + + bolus(new DetailedBolusInfo(), null); + + DetailedBolusInfo smb = new DetailedBolusInfo(); + smb.isSMB = true; + bolus(smb, null); + + Assert.assertEquals(2, size()); + + // cancelling all boluses clear all boluses from the queue + cancelAllBoluses(); + Assert.assertEquals(0, size()); + } } diff --git a/app/src/test/java/info/nightscout/utils/TTest.java b/app/src/test/java/info/nightscout/utils/TTest.java index ca7bb7cdaf..764754623e 100644 --- a/app/src/test/java/info/nightscout/utils/TTest.java +++ b/app/src/test/java/info/nightscout/utils/TTest.java @@ -9,11 +9,11 @@ import org.powermock.modules.junit4.PowerMockRunner; * Created by mike on 26.03.2018. */ -@RunWith(PowerMockRunner.class) +//@RunWith(PowerMockRunner.class) public class TTest { @Test - public void doTests() { + public void toUnits() { Assert.assertEquals(1, T.msecs(1000).secs()); Assert.assertEquals(1, T.secs(60).mins()); Assert.assertEquals(1, T.mins(60).hours()); @@ -21,4 +21,31 @@ public class TTest { Assert.assertEquals(24, T.days(1).hours()); Assert.assertEquals(60000, T.mins(1).msecs()); } + + @Test + public void now() { + Assert.assertTrue(Math.abs(T.now().msecs() - System.currentTimeMillis()) < 5000); + } + + @Test + public void additions() { + long nowMsecs = System.currentTimeMillis(); + T now = T.msecs(nowMsecs); + + Assert.assertEquals(now.plus(T.secs(5)).msecs(), nowMsecs + 5 * 1000); + Assert.assertEquals(now.plus(T.mins(5)).msecs(), nowMsecs + 5 * 60 * 1000); + Assert.assertEquals(now.plus(T.hours(5)).msecs(), nowMsecs + 5 * 60 * 60 * 1000); + Assert.assertEquals(now.plus(T.days(5)).msecs(), nowMsecs + 5 * 24 * 60 * 60 * 1000); + } + + @Test + public void subtractions() { + long nowMsecs = System.currentTimeMillis(); + T now = T.msecs(nowMsecs); + + Assert.assertEquals(now.minus(T.secs(5)).msecs(), nowMsecs - 5 * 1000); + Assert.assertEquals(now.minus(T.mins(5)).msecs(), nowMsecs - 5 * 60 * 1000); + Assert.assertEquals(now.minus(T.hours(5)).msecs(), nowMsecs - 5 * 60 * 60 * 1000); + Assert.assertEquals(now.minus(T.days(5)).msecs(), nowMsecs - 5 * 24 * 60 * 60 * 1000); + } }