From faa09f8505acce77742540d45f174442940e668e Mon Sep 17 00:00:00 2001 From: AdrianLxM Date: Sat, 28 Apr 2018 19:49:55 +0200 Subject: [PATCH 01/46] 2.0 rc1 --- app/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle b/app/build.gradle index 16e3bfbe71..3da24de7a9 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -63,7 +63,7 @@ android { targetSdkVersion 25 multiDexEnabled true versionCode 1500 - version "1.60e-dev" + version "2.0-releasecandidate1" buildConfigField "String", "VERSION", '"' + version + '"' buildConfigField "String", "BUILDVERSION", generateGitBuild() testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" From 4789ac0616e813935ab430c17ee7fcf3af563f37 Mon Sep 17 00:00:00 2001 From: AdrianLxM Date: Tue, 1 May 2018 13:29:15 +0200 Subject: [PATCH 02/46] fix zeroTempIOB --- .../plugins/IobCobCalculator/IobCobCalculatorPlugin.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/IobCobCalculator/IobCobCalculatorPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/IobCobCalculator/IobCobCalculatorPlugin.java index 2081e43929..3552931586 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/IobCobCalculator/IobCobCalculatorPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/IobCobCalculator/IobCobCalculatorPlugin.java @@ -325,7 +325,7 @@ public class IobCobCalculatorPlugin extends PluginBase { basalIobWithZeroTemp.plus(calc); } - basalIob.iobWithZeroTemp = basalIobWithZeroTemp; + basalIob.iobWithZeroTemp = IobTotal.combine(bolusIob, basalIobWithZeroTemp).round(); } IobTotal iobTotal = IobTotal.combine(bolusIob, basalIob).round(); From e70791dc2f0d77a051d7b80c944b80ade6ae180a Mon Sep 17 00:00:00 2001 From: AdrianLxM Date: Tue, 1 May 2018 18:07:08 +0200 Subject: [PATCH 03/46] gradle rc2 --- app/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 3da24de7a9..73a9dc5ac3 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -63,7 +63,7 @@ android { targetSdkVersion 25 multiDexEnabled true versionCode 1500 - version "2.0-releasecandidate1" + version "2.0-releasecandidate2" buildConfigField "String", "VERSION", '"' + version + '"' buildConfigField "String", "BUILDVERSION", generateGitBuild() testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" @@ -263,4 +263,4 @@ task full_clean(type: Delete) { } clean.dependsOn full_clean -preBuild.dependsOn copyLibs \ No newline at end of file +preBuild.dependsOn copyLibs From 24dd4e1710b42e3a0fd1d56288a07bd927994c53 Mon Sep 17 00:00:00 2001 From: AdrianLxM Date: Thu, 3 May 2018 15:58:17 +0200 Subject: [PATCH 04/46] wearwizard cob --- .../androidaps/plugins/Wear/ActionStringHandler.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Wear/ActionStringHandler.java b/app/src/main/java/info/nightscout/androidaps/plugins/Wear/ActionStringHandler.java index aca5100fb6..715dc1163c 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Wear/ActionStringHandler.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Wear/ActionStringHandler.java @@ -31,6 +31,7 @@ import info.nightscout.androidaps.interfaces.PumpInterface; import info.nightscout.androidaps.plugins.Actions.dialogs.FillDialog; import info.nightscout.androidaps.plugins.Careportal.Dialogs.NewNSTreatmentDialog; import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin; +import info.nightscout.androidaps.plugins.IobCobCalculator.IobCobCalculatorPlugin; import info.nightscout.androidaps.plugins.Loop.APSResult; import info.nightscout.androidaps.plugins.Loop.LoopPlugin; import info.nightscout.androidaps.plugins.Overview.events.EventDismissNotification; @@ -191,6 +192,7 @@ public class ActionStringHandler { boolean useBG = Boolean.parseBoolean(act[2]); boolean useBolusIOB = Boolean.parseBoolean(act[3]); boolean useBasalIOB = Boolean.parseBoolean(act[4]); + boolean useCOB = true; int percentage = Integer.parseInt(act[5]); Profile profile = MainApp.getConfigBuilder().getProfile(); @@ -205,9 +207,12 @@ public class ActionStringHandler { return; } + double cob = IobCobCalculatorPlugin.getPlugin().getCobInfo(false, "Wizard wear").displayCob; + DecimalFormat format = new DecimalFormat("0.00"); + DecimalFormat formatInt = new DecimalFormat("0"); BolusWizard bolusWizard = new BolusWizard(); - bolusWizard.doCalc(profile, null, carbsAfterConstraints, 0d, useBG ? bgReading.valueToUnits(profile.getUnits()) : 0d, 0d, percentage, useBolusIOB, useBasalIOB, false, false); + bolusWizard.doCalc(profile, null, carbsAfterConstraints, useCOB?cob:0d, useBG ? bgReading.valueToUnits(profile.getUnits()) : 0d, 0d, percentage, useBolusIOB, useBasalIOB, false, false); Double insulinAfterConstraints = MainApp.getConstraintChecker().applyBolusConstraints(new Constraint<>(bolusWizard.calculatedTotalInsulin)).value(); if (insulinAfterConstraints - bolusWizard.calculatedTotalInsulin != 0) { @@ -232,6 +237,8 @@ public class ActionStringHandler { rMessage += "\n_____________"; rMessage += "\nCalc (IC:" + DecimalFormatter.to1Decimal(bolusWizard.ic) + ", " + "ISF:" + DecimalFormatter.to1Decimal(bolusWizard.sens) + "): "; rMessage += "\nFrom Carbs: " + format.format(bolusWizard.insulinFromCarbs) + "U"; + if (useCOB) + rMessage += "\nFrom" + formatInt.format(cob) + "g COB : " + format.format(bolusWizard.insulinFromCOB) + "U"; if (useBG) rMessage += "\nFrom BG: " + format.format(bolusWizard.insulinFromBG) + "U"; if (useBolusIOB) rMessage += "\nBolus IOB: " + format.format(bolusWizard.insulingFromBolusIOB) + "U"; From ec106726a7473a15e207b551875d1283279b7d9c Mon Sep 17 00:00:00 2001 From: AdrianLxM Date: Thu, 3 May 2018 16:05:04 +0200 Subject: [PATCH 05/46] wearwizard trend --- .../androidaps/plugins/Wear/ActionStringHandler.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Wear/ActionStringHandler.java b/app/src/main/java/info/nightscout/androidaps/plugins/Wear/ActionStringHandler.java index 715dc1163c..f95027a87c 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Wear/ActionStringHandler.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Wear/ActionStringHandler.java @@ -193,6 +193,7 @@ public class ActionStringHandler { boolean useBolusIOB = Boolean.parseBoolean(act[3]); boolean useBasalIOB = Boolean.parseBoolean(act[4]); boolean useCOB = true; + boolean useTrend = true; int percentage = Integer.parseInt(act[5]); Profile profile = MainApp.getConfigBuilder().getProfile(); @@ -212,7 +213,7 @@ public class ActionStringHandler { DecimalFormat format = new DecimalFormat("0.00"); DecimalFormat formatInt = new DecimalFormat("0"); BolusWizard bolusWizard = new BolusWizard(); - bolusWizard.doCalc(profile, null, carbsAfterConstraints, useCOB?cob:0d, useBG ? bgReading.valueToUnits(profile.getUnits()) : 0d, 0d, percentage, useBolusIOB, useBasalIOB, false, false); + bolusWizard.doCalc(profile, null, carbsAfterConstraints, useCOB?cob:0d, useBG ? bgReading.valueToUnits(profile.getUnits()) : 0d, 0d, percentage, useBolusIOB, useBasalIOB, false, useTrend); Double insulinAfterConstraints = MainApp.getConstraintChecker().applyBolusConstraints(new Constraint<>(bolusWizard.calculatedTotalInsulin)).value(); if (insulinAfterConstraints - bolusWizard.calculatedTotalInsulin != 0) { @@ -244,6 +245,8 @@ public class ActionStringHandler { rMessage += "\nBolus IOB: " + format.format(bolusWizard.insulingFromBolusIOB) + "U"; if (useBasalIOB) rMessage += "\nBasal IOB: " + format.format(bolusWizard.insulingFromBasalsIOB) + "U"; + if (useTrend) + rMessage += "\nFrom 15' trend: " + format.format(bolusWizard.insulinFromTrend) + "U"; if (percentage != 100) { rMessage += "\nPercentage: " + format.format(bolusWizard.totalBeforePercentageAdjustment) + "U * " + percentage + "% -> ~" + format.format(bolusWizard.calculatedTotalInsulin) + "U"; } From bdfce784c0514b85dbf0a8ce8ce1a8e936b9d7b2 Mon Sep 17 00:00:00 2001 From: AdrianLxM Date: Thu, 3 May 2018 16:08:48 +0200 Subject: [PATCH 06/46] wearwizard ensure watch apk is up to date --- .../androidaps/plugins/Wear/ActionStringHandler.java | 3 +++ .../androidaps/interaction/actions/WizardActivity.java | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Wear/ActionStringHandler.java b/app/src/main/java/info/nightscout/androidaps/plugins/Wear/ActionStringHandler.java index f95027a87c..8935a28f87 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Wear/ActionStringHandler.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Wear/ActionStringHandler.java @@ -180,6 +180,9 @@ public class ActionStringHandler { } } else if ("wizard".equals(act[0])) { + sendError("Update APP on Watch!"); + return; + } else if ("wizard2".equals(act[0])) { ////////////////////////////////////////////// WIZARD Integer carbsBeforeConstraints = SafeParse.stringToInt(act[1]); Integer carbsAfterConstraints = MainApp.getConstraintChecker().applyCarbsConstraints(new Constraint<>(carbsBeforeConstraints)).value(); diff --git a/wear/src/main/java/info/nightscout/androidaps/interaction/actions/WizardActivity.java b/wear/src/main/java/info/nightscout/androidaps/interaction/actions/WizardActivity.java index 7701b17d25..682a669cd8 100644 --- a/wear/src/main/java/info/nightscout/androidaps/interaction/actions/WizardActivity.java +++ b/wear/src/main/java/info/nightscout/androidaps/interaction/actions/WizardActivity.java @@ -184,7 +184,7 @@ public class WizardActivity extends ViewSelectorActivity { if (editPercentage != null) percentage = SafeParse.stringToInt(editPercentage.editText.getText().toString()); - String actionstring = "wizard " + SafeParse.stringToInt(editCarbs.editText.getText().toString()) + String actionstring = "wizard2 " + SafeParse.stringToInt(editCarbs.editText.getText().toString()) + " " + useBG + " " + includeBolusIOB + " " + includeBasalIOB From c394c045c92155457f8499a4585968dcb8ba60a1 Mon Sep 17 00:00:00 2001 From: AdrianLxM Date: Thu, 3 May 2018 16:31:55 +0200 Subject: [PATCH 07/46] wearwizard reduced watch settings --- .../plugins/Wear/ActionStringHandler.java | 8 +- .../interaction/actions/WizardActivity.java | 82 +------------------ 2 files changed, 6 insertions(+), 84 deletions(-) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Wear/ActionStringHandler.java b/app/src/main/java/info/nightscout/androidaps/plugins/Wear/ActionStringHandler.java index 8935a28f87..9f46e9e25c 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Wear/ActionStringHandler.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Wear/ActionStringHandler.java @@ -192,12 +192,12 @@ public class ActionStringHandler { return; } - boolean useBG = Boolean.parseBoolean(act[2]); - boolean useBolusIOB = Boolean.parseBoolean(act[3]); - boolean useBasalIOB = Boolean.parseBoolean(act[4]); + boolean useBG = true; + boolean useBolusIOB = true; + boolean useBasalIOB = true; boolean useCOB = true; boolean useTrend = true; - int percentage = Integer.parseInt(act[5]); + int percentage = Integer.parseInt(act[2]); Profile profile = MainApp.getConfigBuilder().getProfile(); if (profile == null) { diff --git a/wear/src/main/java/info/nightscout/androidaps/interaction/actions/WizardActivity.java b/wear/src/main/java/info/nightscout/androidaps/interaction/actions/WizardActivity.java index 682a669cd8..5c16063bb2 100644 --- a/wear/src/main/java/info/nightscout/androidaps/interaction/actions/WizardActivity.java +++ b/wear/src/main/java/info/nightscout/androidaps/interaction/actions/WizardActivity.java @@ -32,9 +32,6 @@ public class WizardActivity extends ViewSelectorActivity { PlusMinusEditText editCarbs; PlusMinusEditText editPercentage; - boolean useBG; - boolean includeBolusIOB; - boolean includeBasalIOB; boolean hasPercentage; @@ -63,7 +60,7 @@ public class WizardActivity extends ViewSelectorActivity { private class MyGridViewPagerAdapter extends GridPagerAdapter { @Override public int getColumnCount(int arg0) { - return hasPercentage?6:5; + return hasPercentage?3:2; } @Override @@ -86,79 +83,7 @@ public class WizardActivity extends ViewSelectorActivity { setLabelToPlusMinusView(view, "carbs"); container.addView(view); return view; - } else if(col == 1){ - final View view = LayoutInflater.from(getApplicationContext()).inflate(R.layout.action_toggle_item, container, false); - final TextView textView = (TextView) view.findViewById(R.id.label); - textView.setText("include BG?"); - - final ImageView togglebutton = (ImageView) view.findViewById(R.id.togglebutton); - if(useBG){ - togglebutton.setImageResource(R.drawable.ic_toggle_on); - } else { - togglebutton.setImageResource(R.drawable.ic_toggle_off); - } - togglebutton.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - useBG = !useBG; - if(useBG){ - togglebutton.setImageResource(R.drawable.ic_toggle_on); - } else { - togglebutton.setImageResource(R.drawable.ic_toggle_off); - } - } - }); - container.addView(view); - return view; - } else if(col == 2){ - final View view = LayoutInflater.from(getApplicationContext()).inflate(R.layout.action_toggle_item, container, false); - final TextView textView = (TextView) view.findViewById(R.id.label); - textView.setText("Bolus IOB?"); - - final ImageView togglebutton = (ImageView) view.findViewById(R.id.togglebutton); - if(includeBolusIOB){ - togglebutton.setImageResource(R.drawable.ic_toggle_on); - } else { - togglebutton.setImageResource(R.drawable.ic_toggle_off); - } - togglebutton.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - includeBolusIOB = !includeBolusIOB; - if(includeBolusIOB){ - togglebutton.setImageResource(R.drawable.ic_toggle_on); - } else { - togglebutton.setImageResource(R.drawable.ic_toggle_off); - } - } - }); - container.addView(view); - return view; - } else if(col == 3){ - final View view = LayoutInflater.from(getApplicationContext()).inflate(R.layout.action_toggle_item, container, false); - final TextView textView = (TextView) view.findViewById(R.id.label); - textView.setText("Basal IOB?"); - - final ImageView togglebutton = (ImageView) view.findViewById(R.id.togglebutton); - if(includeBasalIOB){ - togglebutton.setImageResource(R.drawable.ic_toggle_on); - } else { - togglebutton.setImageResource(R.drawable.ic_toggle_off); - } - togglebutton.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - includeBasalIOB = !includeBasalIOB; - if(includeBasalIOB){ - togglebutton.setImageResource(R.drawable.ic_toggle_on); - } else { - togglebutton.setImageResource(R.drawable.ic_toggle_off); - } - } - }); - container.addView(view); - return view; - } else if(col == 4 && hasPercentage){ + } else if(col == 1 && hasPercentage){ final View view = getInflatedPlusMinusView(container); if (editPercentage == null) { editPercentage = new PlusMinusEditText(view, R.id.amountfield, R.id.plusbutton, R.id.minusbutton, 100d, 50d, 150d, 1d, new DecimalFormat("0"), false); @@ -185,9 +110,6 @@ public class WizardActivity extends ViewSelectorActivity { if (editPercentage != null) percentage = SafeParse.stringToInt(editPercentage.editText.getText().toString()); String actionstring = "wizard2 " + SafeParse.stringToInt(editCarbs.editText.getText().toString()) - + " " + useBG - + " " + includeBolusIOB - + " " + includeBasalIOB + " " + percentage; ListenerService.initiateAction(WizardActivity.this, actionstring); finish(); From fe0f2e3ce68ebdc257938c611bc5c95cb519c7a8 Mon Sep 17 00:00:00 2001 From: AdrianLxM Date: Thu, 3 May 2018 17:15:36 +0200 Subject: [PATCH 08/46] wearwizard settings on phone --- .../plugins/Wear/ActionStringHandler.java | 10 +++--- app/src/main/res/values/strings.xml | 7 ++++ app/src/main/res/xml/pref_wear.xml | 36 +++++++++++++++++++ 3 files changed, 48 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Wear/ActionStringHandler.java b/app/src/main/java/info/nightscout/androidaps/plugins/Wear/ActionStringHandler.java index 9f46e9e25c..5c0af35135 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Wear/ActionStringHandler.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Wear/ActionStringHandler.java @@ -192,11 +192,11 @@ public class ActionStringHandler { return; } - boolean useBG = true; - boolean useBolusIOB = true; - boolean useBasalIOB = true; - boolean useCOB = true; - boolean useTrend = true; + boolean useBG = SP.getBoolean(R.string.key_wearwizard_bg, true); + boolean useBolusIOB = SP.getBoolean(R.string.key_wearwizard_bolusiob, true); + boolean useBasalIOB = SP.getBoolean(R.string.key_wearwizard_basaliob, true); + boolean useCOB = SP.getBoolean(R.string.key_wearwizard_cob, true); + boolean useTrend = SP.getBoolean(R.string.key_wearwizard_trend, false); int percentage = Integer.parseInt(act[2]); Profile profile = MainApp.getConfigBuilder().getProfile(); diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 84acd8205c..24b72693dc 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1035,4 +1035,11 @@ Current basal safety multiplier n/a Autobackfill BG + Wizard settings + wearwizard_bg + wearwizard_trend + wearwizard_cob + wearwizard_bolusiob + wearwizard_basaliob + Calculations included in the Wizard result: diff --git a/app/src/main/res/xml/pref_wear.xml b/app/src/main/res/xml/pref_wear.xml index 0dce661482..a8f2255d05 100644 --- a/app/src/main/res/xml/pref_wear.xml +++ b/app/src/main/res/xml/pref_wear.xml @@ -13,6 +13,42 @@ android:summary="@string/wearcontrol_summary" android:title="@string/wearcontrol_title" /> + + + + + + + + + + + + Date: Thu, 3 May 2018 17:22:00 +0200 Subject: [PATCH 09/46] wearwizard fix NPE when CobInfo not available --- .../androidaps/plugins/Wear/ActionStringHandler.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Wear/ActionStringHandler.java b/app/src/main/java/info/nightscout/androidaps/plugins/Wear/ActionStringHandler.java index 5c0af35135..c6e3aed81a 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Wear/ActionStringHandler.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Wear/ActionStringHandler.java @@ -31,6 +31,7 @@ import info.nightscout.androidaps.interfaces.PumpInterface; import info.nightscout.androidaps.plugins.Actions.dialogs.FillDialog; import info.nightscout.androidaps.plugins.Careportal.Dialogs.NewNSTreatmentDialog; import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin; +import info.nightscout.androidaps.plugins.IobCobCalculator.CobInfo; import info.nightscout.androidaps.plugins.IobCobCalculator.IobCobCalculatorPlugin; import info.nightscout.androidaps.plugins.Loop.APSResult; import info.nightscout.androidaps.plugins.Loop.LoopPlugin; @@ -211,7 +212,14 @@ public class ActionStringHandler { return; } - double cob = IobCobCalculatorPlugin.getPlugin().getCobInfo(false, "Wizard wear").displayCob; + double cob = 0; + CobInfo cobInfo = IobCobCalculatorPlugin.getPlugin().getCobInfo(false, "Wizard wear"); + if (cobInfo == null && useCOB) { + sendError("Unknown COB! BG reading missing or recent app restart?"); + return; + } else { + cob = cobInfo.displayCob; + } DecimalFormat format = new DecimalFormat("0.00"); DecimalFormat formatInt = new DecimalFormat("0"); From 62a38ed537e0495ffe47f14ddcb6a83ee3049451 Mon Sep 17 00:00:00 2001 From: AdrianLxM Date: Thu, 3 May 2018 17:23:38 +0200 Subject: [PATCH 10/46] wearwizard fix NPE when CobInfo not available - missing part --- .../androidaps/plugins/Wear/ActionStringHandler.java | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Wear/ActionStringHandler.java b/app/src/main/java/info/nightscout/androidaps/plugins/Wear/ActionStringHandler.java index c6e3aed81a..d64ee24a30 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Wear/ActionStringHandler.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Wear/ActionStringHandler.java @@ -212,19 +212,16 @@ public class ActionStringHandler { return; } - double cob = 0; CobInfo cobInfo = IobCobCalculatorPlugin.getPlugin().getCobInfo(false, "Wizard wear"); - if (cobInfo == null && useCOB) { + if (useCOB && (cobInfo == null || cobInfo.displayCob == null)) { sendError("Unknown COB! BG reading missing or recent app restart?"); return; - } else { - cob = cobInfo.displayCob; } DecimalFormat format = new DecimalFormat("0.00"); DecimalFormat formatInt = new DecimalFormat("0"); BolusWizard bolusWizard = new BolusWizard(); - bolusWizard.doCalc(profile, null, carbsAfterConstraints, useCOB?cob:0d, useBG ? bgReading.valueToUnits(profile.getUnits()) : 0d, 0d, percentage, useBolusIOB, useBasalIOB, false, useTrend); + bolusWizard.doCalc(profile, null, carbsAfterConstraints, useCOB?cobInfo.displayCob:0d, useBG ? bgReading.valueToUnits(profile.getUnits()) : 0d, 0d, percentage, useBolusIOB, useBasalIOB, false, useTrend); Double insulinAfterConstraints = MainApp.getConstraintChecker().applyBolusConstraints(new Constraint<>(bolusWizard.calculatedTotalInsulin)).value(); if (insulinAfterConstraints - bolusWizard.calculatedTotalInsulin != 0) { @@ -250,7 +247,7 @@ public class ActionStringHandler { rMessage += "\nCalc (IC:" + DecimalFormatter.to1Decimal(bolusWizard.ic) + ", " + "ISF:" + DecimalFormatter.to1Decimal(bolusWizard.sens) + "): "; rMessage += "\nFrom Carbs: " + format.format(bolusWizard.insulinFromCarbs) + "U"; if (useCOB) - rMessage += "\nFrom" + formatInt.format(cob) + "g COB : " + format.format(bolusWizard.insulinFromCOB) + "U"; + rMessage += "\nFrom" + formatInt.format(cobInfo.displayCob) + "g COB : " + format.format(bolusWizard.insulinFromCOB) + "U"; if (useBG) rMessage += "\nFrom BG: " + format.format(bolusWizard.insulinFromBG) + "U"; if (useBolusIOB) rMessage += "\nBolus IOB: " + format.format(bolusWizard.insulingFromBolusIOB) + "U"; From 917fcb595397446c5f99f8da11f83493c1e5a0c2 Mon Sep 17 00:00:00 2001 From: AdrianLxM Date: Thu, 3 May 2018 17:28:36 +0200 Subject: [PATCH 11/46] wearwizard reorder menu --- .../androidaps/interaction/menus/MainMenuActivity.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wear/src/main/java/info/nightscout/androidaps/interaction/menus/MainMenuActivity.java b/wear/src/main/java/info/nightscout/androidaps/interaction/menus/MainMenuActivity.java index 34dce7dd11..da627f93ab 100644 --- a/wear/src/main/java/info/nightscout/androidaps/interaction/menus/MainMenuActivity.java +++ b/wear/src/main/java/info/nightscout/androidaps/interaction/menus/MainMenuActivity.java @@ -46,8 +46,8 @@ public class MainMenuActivity extends MenuListActivity { Vector menuitems = new Vector(); menuitems.add("TempT"); - menuitems.add("Bolus"); if(showWizard) menuitems.add("Wizard"); + menuitems.add("Bolus"); menuitems.add("Settings"); menuitems.add("Status"); if (showPrimeFill) menuitems.add("Prime/Fill"); From 43dc7d184612793338b645df8c17d4d9b5a92ba4 Mon Sep 17 00:00:00 2001 From: AdrianLxM Date: Thu, 3 May 2018 17:42:21 +0200 Subject: [PATCH 12/46] wear cathegorize preferences --- app/src/main/res/values/strings.xml | 4 +- app/src/main/res/xml/pref_wear.xml | 59 ++++++++++++++++------------- 2 files changed, 36 insertions(+), 27 deletions(-) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 24b72693dc..f26e89a8e9 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1035,11 +1035,13 @@ Current basal safety multiplier n/a Autobackfill BG - Wizard settings + Wizard Settings wearwizard_bg wearwizard_trend wearwizard_cob wearwizard_bolusiob wearwizard_basaliob Calculations included in the Wizard result: + Display Settings + General Settings diff --git a/app/src/main/res/xml/pref_wear.xml b/app/src/main/res/xml/pref_wear.xml index a8f2255d05..46cbfd7e22 100644 --- a/app/src/main/res/xml/pref_wear.xml +++ b/app/src/main/res/xml/pref_wear.xml @@ -49,35 +49,42 @@ android:defaultValue="true" android:dependency="wearcontrol"/> - - + + - + - - - + + + + + + From 39e9448c67828783959cae72af5562f7a186246a Mon Sep 17 00:00:00 2001 From: McHoffi Date: Thu, 3 May 2018 21:20:54 +0200 Subject: [PATCH 13/46] Typo fix --- app/src/main/res/values/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index f26e89a8e9..e9482171b7 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -710,7 +710,7 @@ Getting extended bolus status Getting bolus status Getting temporary basal status - Gettings pump settings + Getting pump settings Getting pump time reuse Controls from Watch From 71db7b60c99c95d4f6bc852d3f4a99f57853eb7a Mon Sep 17 00:00:00 2001 From: AdrianLxM Date: Thu, 3 May 2018 20:48:50 +0200 Subject: [PATCH 14/46] ecarb first activity --- .../interaction/actions/ECarbActivity.java | 134 ++++++++++++++++++ 1 file changed, 134 insertions(+) create mode 100644 wear/src/main/java/info/nightscout/androidaps/interaction/actions/ECarbActivity.java diff --git a/wear/src/main/java/info/nightscout/androidaps/interaction/actions/ECarbActivity.java b/wear/src/main/java/info/nightscout/androidaps/interaction/actions/ECarbActivity.java new file mode 100644 index 0000000000..5871059de4 --- /dev/null +++ b/wear/src/main/java/info/nightscout/androidaps/interaction/actions/ECarbActivity.java @@ -0,0 +1,134 @@ +package info.nightscout.androidaps.interaction.actions; + + +import android.content.res.Resources; +import android.os.Bundle; +import android.support.wearable.view.DotsPageIndicator; +import android.support.wearable.view.GridPagerAdapter; +import android.support.wearable.view.GridViewPager; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageView; + +import java.text.DecimalFormat; + +import info.nightscout.androidaps.R; +import info.nightscout.androidaps.data.ListenerService; +import info.nightscout.androidaps.interaction.utils.PlusMinusEditText; +import info.nightscout.androidaps.interaction.utils.SafeParse; + +/** + * Created by adrian on 04/08/18. + */ + + +public class ECarbActivity extends ViewSelectorActivity { + + PlusMinusEditText editCarbs; + PlusMinusEditText editStartTime; + PlusMinusEditText editDuration; + + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.grid_layout); + final Resources res = getResources(); + final GridViewPager pager = (GridViewPager) findViewById(R.id.pager); + + pager.setAdapter(new MyGridViewPagerAdapter()); + DotsPageIndicator dotsPageIndicator = (DotsPageIndicator) findViewById(R.id.page_indicator); + dotsPageIndicator.setPager(pager); + } + + + @Override + protected void onPause() { + super.onPause(); + finish(); + } + + + private class MyGridViewPagerAdapter extends GridPagerAdapter { + @Override + public int getColumnCount(int arg0) { + return 4; + } + + @Override + public int getRowCount() { + return 1; + } + + @Override + public Object instantiateItem(ViewGroup container, int row, int col) { + + if(col == 0){ + final View view = getInflatedPlusMinusView(container); + double def = 0; + if (editCarbs != null){ + def = SafeParse.stringToDouble(editCarbs.editText.getText().toString()); + } + editCarbs = new PlusMinusEditText(view, R.id.amountfield, R.id.plusbutton, R.id.minusbutton, def, 0d, 150d, 1d, new DecimalFormat("0"), true); + setLabelToPlusMinusView(view, "carbs"); + container.addView(view); + return view; + } else if(col == 1){ + final View view = getInflatedPlusMinusView(container); + double def = 0; + if (editStartTime != null){ + def = SafeParse.stringToDouble(editStartTime.editText.getText().toString()); + } + editStartTime = new PlusMinusEditText(view, R.id.amountfield, R.id.plusbutton, R.id.minusbutton, def, 0d, 300d, 10d, new DecimalFormat("0"), true); + setLabelToPlusMinusView(view, "start [min]"); + container.addView(view); + return view; + } else if(col == 2){ + final View view = getInflatedPlusMinusView(container); + double def = 0; + if (editDuration != null){ + def = SafeParse.stringToDouble(editDuration.editText.getText().toString()); + } + editDuration = new PlusMinusEditText(view, R.id.amountfield, R.id.plusbutton, R.id.minusbutton, def, 0d, 8d, 1d, new DecimalFormat("0"), false); + setLabelToPlusMinusView(view, "duration [h]"); + container.addView(view); + return view; + } else { + + final View view = LayoutInflater.from(getApplicationContext()).inflate(R.layout.action_send_item, container, false); + final ImageView confirmbutton = (ImageView) view.findViewById(R.id.confirmbutton); + confirmbutton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + + //check if it can happen that the fagment is never created that hold data? + // (you have to swipe past them anyways - but still) + + String actionstring = "ecarbs " +SafeParse.stringToInt(editCarbs.editText.getText().toString()) + + " " + SafeParse.stringToInt(editStartTime.editText.getText().toString()) + + " " + SafeParse.stringToInt(editDuration.editText.getText().toString()); + ListenerService.initiateAction(ECarbActivity.this, actionstring); + finish(); + } + }); + container.addView(view); + return view; + } + } + + @Override + public void destroyItem(ViewGroup container, int row, int col, Object view) { + // Handle this to get the data before the view is destroyed? + // Object should still be kept by this, just setup for reinit? + container.removeView((View)view); + } + + @Override + public boolean isViewFromObject(View view, Object object) { + return view==object; + } + + + } +} \ No newline at end of file From 76277d11ad5363dfc499a7a8a0b6b9c0bc68ac71 Mon Sep 17 00:00:00 2001 From: AdrianLxM Date: Thu, 3 May 2018 20:49:40 +0200 Subject: [PATCH 15/46] ecarb hang in activity --- .../androidaps/interaction/menus/MainMenuActivity.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/wear/src/main/java/info/nightscout/androidaps/interaction/menus/MainMenuActivity.java b/wear/src/main/java/info/nightscout/androidaps/interaction/menus/MainMenuActivity.java index da627f93ab..fb8bb61e20 100644 --- a/wear/src/main/java/info/nightscout/androidaps/interaction/menus/MainMenuActivity.java +++ b/wear/src/main/java/info/nightscout/androidaps/interaction/menus/MainMenuActivity.java @@ -7,10 +7,10 @@ import android.preference.PreferenceManager; import java.util.Vector; -import info.nightscout.androidaps.BuildConfig; import info.nightscout.androidaps.data.ListenerService; import info.nightscout.androidaps.interaction.AAPSPreferences; import info.nightscout.androidaps.interaction.actions.BolusActivity; +import info.nightscout.androidaps.interaction.actions.ECarbActivity; import info.nightscout.androidaps.interaction.actions.TempTargetActivity; import info.nightscout.androidaps.interaction.utils.MenuListActivity; import info.nightscout.androidaps.interaction.actions.WizardActivity; @@ -47,6 +47,7 @@ public class MainMenuActivity extends MenuListActivity { Vector menuitems = new Vector(); menuitems.add("TempT"); if(showWizard) menuitems.add("Wizard"); + menuitems.add("eCarb"); menuitems.add("Bolus"); menuitems.add("Settings"); menuitems.add("Status"); @@ -86,6 +87,10 @@ public class MainMenuActivity extends MenuListActivity { intent = new Intent(this, FillMenuActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); this.startActivity(intent); - } + } else if ("eCarb".equals(action)) { + intent = new Intent(this, ECarbActivity.class); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + this.startActivity(intent); + } } } From f2168ff36bb98ba820543de835e3df46a918a013 Mon Sep 17 00:00:00 2001 From: AdrianLxM Date: Thu, 3 May 2018 20:50:35 +0200 Subject: [PATCH 16/46] ecarb hang in activity again --- wear/src/main/AndroidManifest.xml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/wear/src/main/AndroidManifest.xml b/wear/src/main/AndroidManifest.xml index 32cf7a5d1d..01423985d0 100644 --- a/wear/src/main/AndroidManifest.xml +++ b/wear/src/main/AndroidManifest.xml @@ -208,6 +208,10 @@ android:name=".interaction.actions.FillActivity" android:label="Fill"> + + From c69a541b756822a3dbec6ff7b004098961c3df9b Mon Sep 17 00:00:00 2001 From: AdrianLxM Date: Thu, 3 May 2018 20:58:49 +0200 Subject: [PATCH 17/46] ecarb ash first response --- .../plugins/Wear/ActionStringHandler.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Wear/ActionStringHandler.java b/app/src/main/java/info/nightscout/androidaps/plugins/Wear/ActionStringHandler.java index d64ee24a30..bc58f9e3f9 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Wear/ActionStringHandler.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Wear/ActionStringHandler.java @@ -326,6 +326,23 @@ public class ActionStringHandler { } } + } else if ("ecarbs".equals(act[0])) { + ////////////////////////////////////////////// ECARBS + int carbs = SafeParse.stringToInt(act[1]); + int starttime = SafeParse.stringToInt(act[2]); + int duration = SafeParse.stringToInt(act[3]); + long starttimestamp = System.currentTimeMillis() + starttime*60*1000; + Integer carbsAfterConstraints = MainApp.getConstraintChecker().applyCarbsConstraints(new Constraint<>(carbs)).value(); + rMessage += MainApp.gs(R.string.carbs) + ": " + carbsAfterConstraints + "g"; + rMessage += "\n" + MainApp.gs(R.string.time) + ": " + DateUtil.timeString(starttimestamp); + rMessage += "\n" + MainApp.gs(R.string.duration) + ": " + duration + "h"; + + + if ( (carbsAfterConstraints - carbs != 0)) { + rMessage += "\n" + MainApp.gs(R.string.constraintapllied); + } + rAction += "ecarbs " + carbsAfterConstraints + " " + starttimestamp + " " + duration; + } else return; From b05b300fafbacc952095f310cd5812a299972fc4 Mon Sep 17 00:00:00 2001 From: AdrianLxM Date: Thu, 3 May 2018 21:39:57 +0200 Subject: [PATCH 18/46] ecarb duration format --- .../androidaps/interaction/actions/ECarbActivity.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wear/src/main/java/info/nightscout/androidaps/interaction/actions/ECarbActivity.java b/wear/src/main/java/info/nightscout/androidaps/interaction/actions/ECarbActivity.java index 5871059de4..a598a39c2c 100644 --- a/wear/src/main/java/info/nightscout/androidaps/interaction/actions/ECarbActivity.java +++ b/wear/src/main/java/info/nightscout/androidaps/interaction/actions/ECarbActivity.java @@ -80,7 +80,7 @@ public class ECarbActivity extends ViewSelectorActivity { if (editStartTime != null){ def = SafeParse.stringToDouble(editStartTime.editText.getText().toString()); } - editStartTime = new PlusMinusEditText(view, R.id.amountfield, R.id.plusbutton, R.id.minusbutton, def, 0d, 300d, 10d, new DecimalFormat("0"), true); + editStartTime = new PlusMinusEditText(view, R.id.amountfield, R.id.plusbutton, R.id.minusbutton, def, 0d, 300d, 15d, new DecimalFormat("0"), false); setLabelToPlusMinusView(view, "start [min]"); container.addView(view); return view; From 61f07da1a22adf0b9f8210b953ff935e73cf056f Mon Sep 17 00:00:00 2001 From: AdrianLxM Date: Thu, 3 May 2018 21:53:46 +0200 Subject: [PATCH 19/46] ecarb doECarb --- .../plugins/Wear/ActionStringHandler.java | 58 +++++++++++++++++++ 1 file changed, 58 insertions(+) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Wear/ActionStringHandler.java b/app/src/main/java/info/nightscout/androidaps/plugins/Wear/ActionStringHandler.java index bc58f9e3f9..53998e0f90 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Wear/ActionStringHandler.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Wear/ActionStringHandler.java @@ -1,7 +1,9 @@ package info.nightscout.androidaps.plugins.Wear; +import android.content.Intent; import android.os.HandlerThread; import android.support.annotation.NonNull; +import android.support.annotation.Nullable; import java.text.DateFormat; import java.text.DecimalFormat; @@ -19,6 +21,7 @@ import info.nightscout.androidaps.R; import info.nightscout.androidaps.data.DetailedBolusInfo; import info.nightscout.androidaps.data.Profile; import info.nightscout.androidaps.db.BgReading; +import info.nightscout.androidaps.db.CareportalEvent; import info.nightscout.androidaps.db.DatabaseHelper; import info.nightscout.androidaps.db.ProfileSwitch; import info.nightscout.androidaps.db.Source; @@ -35,6 +38,7 @@ import info.nightscout.androidaps.plugins.IobCobCalculator.CobInfo; import info.nightscout.androidaps.plugins.IobCobCalculator.IobCobCalculatorPlugin; import info.nightscout.androidaps.plugins.Loop.APSResult; import info.nightscout.androidaps.plugins.Loop.LoopPlugin; +import info.nightscout.androidaps.plugins.Overview.Dialogs.ErrorHelperActivity; import info.nightscout.androidaps.plugins.Overview.events.EventDismissNotification; import info.nightscout.androidaps.plugins.PumpDanaR.DanaRPlugin; import info.nightscout.androidaps.plugins.PumpDanaR.DanaRPump; @@ -52,6 +56,8 @@ import info.nightscout.utils.SP; import info.nightscout.utils.SafeParse; import info.nightscout.utils.ToastUtils; +import static info.nightscout.utils.DateUtil.now; + /** * Created by adrian on 09/02/17. */ @@ -608,12 +614,64 @@ public class ActionStringHandler { int timeshift = SafeParse.stringToInt(act[1]); int percentage = SafeParse.stringToInt(act[2]); setCPP(timeshift, percentage); + } else if ("ecarbs".equals(act[0])) { + int carbs = SafeParse.stringToInt(act[1]); + long starttime = SafeParse.stringToLong(act[2]); + int duration = SafeParse.stringToInt(act[3]); + + doECarbs(carbs, starttime, duration); } else if ("dismissoverviewnotification".equals(act[0])) { MainApp.bus().post(new EventDismissNotification(SafeParse.stringToInt(act[1]))); } lastBolusWizard = null; } + private static void doECarbs(int carbs, long time, int duration) { + if (carbs > 0) { + if (duration == 0) { + createCarb(carbs, time, "watch"); + } else { + long remainingCarbs = carbs; + int ticks = (duration * 4); //duration guaranteed to be integer greater zero + for (int i = 0; i < ticks; i++){ + long carbTime = time + i * 15 * 60 * 1000; + long smallCarbAmount = Math.round((1d * remainingCarbs) / (ticks-i)); //on last iteration (ticks-i) is 1 -> smallCarbAmount == remainingCarbs + remainingCarbs -= smallCarbAmount; + if (smallCarbAmount > 0) + createCarb(smallCarbAmount, carbTime, "watch eCarbs"); + } + } + } + } + + private static void createCarb(long carbs, long time, @Nullable String notes) { + DetailedBolusInfo carbInfo = new DetailedBolusInfo(); + carbInfo.date = time; + carbInfo.eventType = CareportalEvent.CARBCORRECTION; + carbInfo.carbs = carbs; + carbInfo.context = MainApp.instance(); + carbInfo.source = Source.USER; + carbInfo.notes = notes; + if (ConfigBuilderPlugin.getActivePump().getPumpDescription().storesCarbInfo && carbInfo.date <= now()) { + ConfigBuilderPlugin.getCommandQueue().bolus(carbInfo, new Callback() { + @Override + public void run() { + if (!result.success) { + Intent i = new Intent(MainApp.instance(), ErrorHelperActivity.class); + i.putExtra("soundid", R.raw.boluserror); + i.putExtra("status", result.comment); + i.putExtra("title", MainApp.gs(R.string.treatmentdeliveryerror)); + i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + MainApp.instance().startActivity(i); + } + } + }); + } else { + TreatmentsPlugin.getPlugin().addToHistoryTreatment(carbInfo); + } + } + + private static void setCPP(int timeshift, int percentage) { String msg = ""; From fb75346bcd62464251cb6c3c36fef713a4685577 Mon Sep 17 00:00:00 2001 From: AdrianLxM Date: Thu, 3 May 2018 21:55:54 +0200 Subject: [PATCH 20/46] ecarb make settings consistent --- app/src/main/res/xml/pref_wear.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/xml/pref_wear.xml b/app/src/main/res/xml/pref_wear.xml index 46cbfd7e22..2c3c9f3435 100644 --- a/app/src/main/res/xml/pref_wear.xml +++ b/app/src/main/res/xml/pref_wear.xml @@ -54,7 +54,7 @@ android:key="wearplugin" android:title="@string/wear_display_settings"> From 8d6997f51973bd8195069f85dfe7f5a93f1ee482 Mon Sep 17 00:00:00 2001 From: AdrianLxM Date: Thu, 3 May 2018 21:58:21 +0200 Subject: [PATCH 21/46] ecarb ignore 0 carbs --- .../androidaps/plugins/Wear/ActionStringHandler.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Wear/ActionStringHandler.java b/app/src/main/java/info/nightscout/androidaps/plugins/Wear/ActionStringHandler.java index 53998e0f90..c147fef6b0 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Wear/ActionStringHandler.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Wear/ActionStringHandler.java @@ -347,6 +347,10 @@ public class ActionStringHandler { if ( (carbsAfterConstraints - carbs != 0)) { rMessage += "\n" + MainApp.gs(R.string.constraintapllied); } + if(carbsAfterConstraints <= 0){ + sendError("Carbs = 0! No action taken!"); + return; + } rAction += "ecarbs " + carbsAfterConstraints + " " + starttimestamp + " " + duration; } else return; From 52411f7afe6687775731fc8575ffc7fa9f31f9d4 Mon Sep 17 00:00:00 2001 From: Radoslav Radev Date: Thu, 3 May 2018 23:34:50 +0300 Subject: [PATCH 22/46] half of the Bulgarian translation --- app/src/main/res/values-bg/strings.xml | 73 ++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) diff --git a/app/src/main/res/values-bg/strings.xml b/app/src/main/res/values-bg/strings.xml index 3929d73dfc..81a1589e47 100644 --- a/app/src/main/res/values-bg/strings.xml +++ b/app/src/main/res/values-bg/strings.xml @@ -682,4 +682,77 @@ Няма достатъчно инсулин в резервоара Празен Обнови + И + един + вддв + шжо + Добавяне на допълнителни функции за използване през деня, като SMB + Пълнене + Избран APS + Няма базални стойности за някои часове: %s + Предупреждение W31: Ниско ниво в резервоара + Предупреждение W32: Слаба батерия + Предупреждение W33: Невалидно време/дата + Предупреждение W34: Край на гаранцията + Предупреждение W36: Временният базал е прекъснат + Предупреждение W38: Болусът е прекъснат + Временният базал е зададен от помпата + Румънски + Френски + Китайски + Болусът е спрян + Спиране на болус + Хипоглекимия + Настройка на целевата КЗ чрез аутосенс + Възрастни с по-голяма инсулинова резистентност + OpenAPS SMB + SMB + Разреши UAM + Разреши SMB + Използвай супер микро болуси вместо временен базал за по бързо действие + Детекция на необявено хранене (UAM) + Продължителност на вр. цел при хипоглекимия + Временна цел при хипоглекимия + мин. + ч. + Максимални минути за ограничаване на базала от SMB + Програмиране на помпа за болус + Състояние + Активност + Няма връзка от %d мин. + %d%% (%d мин. остават) + Инициализация + Прекратен поради грешка + Прекратен от потребителя + Изпълнява + Отказва временен базал + Задава временен базал (%d%% / %d min) + Болус (%.1f U) + Обновява + Исканата операция не се поддържа от помпата + Опасно използване: удължени или многовълнови болуси са активни. Помпата е изключена за само 6 часа. Само нормални болуси се поддържат. + Опасно използване: помпата използва различни базални нива от първоначалния профил. Loop е спрян. Изберете първоначалния профил и обновете. + Болуси с едно и също количество бяха поискани в последните две минути. За да се предотврати дублиране вече доставен болус, операцията е забранена. + Сега + Ниско ниво на резервоар на помпа + Батерията на помпата е слаба + Помпата отчита грешка E%d: %s + Необходимо е сверяване на часа в помпата + Отказването на временният базал беше потвърдено + Помпата е недостъпна. Не беше доставен болус. + Болусът беше неуспешен. За да сте сигурни, моля, проверете помпата, за да избегнете повторение на вече доставен болус. За да се избегнат бъгове болусите не се повтарят автоматично. + Само %.2f U от искания болус от %.2f U е доставен поради грешка. Моля, проверете помпата, за да потвърдите това и да предприемете съответните действия. + Insight + Insight помпа + Статус + Променено + ПОМПАТА Е СПРЯНА + Статуса е актуализиран + преди + с + Активен временен базал + мин. остават + История + Последно извършено действие + мин. From c34cc73b1e9e333e7456ed94aef6377cce412f18 Mon Sep 17 00:00:00 2001 From: AdrianLxM Date: Thu, 3 May 2018 23:08:16 +0200 Subject: [PATCH 23/46] fix wear wizard --- .../nightscout/androidaps/plugins/Wear/ActionStringHandler.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Wear/ActionStringHandler.java b/app/src/main/java/info/nightscout/androidaps/plugins/Wear/ActionStringHandler.java index c147fef6b0..fe6c655aa4 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Wear/ActionStringHandler.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Wear/ActionStringHandler.java @@ -605,7 +605,7 @@ public class ActionStringHandler { high *= Constants.MMOLL_TO_MGDL; } generateTempTarget(duration, low, high); - } else if ("wizard".equals(act[0])) { + } else if ("wizard2".equals(act[0])) { //use last calculation as confirmed string matches doBolus(lastBolusWizard.calculatedTotalInsulin, lastBolusWizard.carbs); From 010a2f3fd836834533e32a2ad8b1021b93a3ba0b Mon Sep 17 00:00:00 2001 From: swissalpine Date: Fri, 4 May 2018 10:04:45 +0200 Subject: [PATCH 24/46] Make deviation bars transparent --- .../androidaps/plugins/Overview/graphData/GraphData.java | 6 +++--- app/src/main/res/values/colors.xml | 4 ++++ 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/graphData/GraphData.java b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/graphData/GraphData.java index 177e7f9642..837a24d8aa 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/graphData/GraphData.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/graphData/GraphData.java @@ -437,9 +437,9 @@ public class GraphData { AutosensData autosensData = IobCobCalculatorPlugin.getPlugin().getAutosensData(time); if (autosensData != null) { int color = Color.BLACK; // "=" - if (autosensData.pastSensitivity.equals("C")) color = Color.GRAY; - if (autosensData.pastSensitivity.equals("+")) color = Color.GREEN; - if (autosensData.pastSensitivity.equals("-")) color = Color.RED; + if (autosensData.pastSensitivity.equals("C")) color = MainApp.gc(R.color.deviationgrey); + if (autosensData.pastSensitivity.equals("+")) color = MainApp.gc(R.color.deviationgreen); + if (autosensData.pastSensitivity.equals("-")) color = MainApp.gc(R.color.deviationred); devArray.add(new DeviationDataPoint(time, autosensData.deviation, color, devScale)); maxDevValueFound = Math.max(maxDevValueFound, Math.abs(autosensData.deviation)); } diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index a5e65e2eda..02d39fe91c 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -64,4 +64,8 @@ #ff827c #009705 + #FF666666 + #7200FF00 + #72FF0000 + From 5c8e99b191502e56b81c0ddad92cd258f5b03aaf Mon Sep 17 00:00:00 2001 From: AdrianLxM Date: Fri, 4 May 2018 12:23:51 +0200 Subject: [PATCH 25/46] dismiss bolus progress dialog when Queue is empty --- .../Overview/Dialogs/BolusProgressDialog.java | 3 +++ .../nightscout/androidaps/queue/CommandQueue.java | 12 +++++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) 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 2ca8e6961a..8ef6ec2fc6 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 @@ -70,6 +70,9 @@ public class BolusProgressDialog extends DialogFragment implements View.OnClickL @Override public void onResume() { super.onResume(); + if(!ConfigBuilderPlugin.getCommandQueue().bolusInQueue()) { + bolusEnded = true; + } if (bolusEnded) { dismiss(); } else { 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 9085e3f762..b42cc47f13 100644 --- a/app/src/main/java/info/nightscout/androidaps/queue/CommandQueue.java +++ b/app/src/main/java/info/nightscout/androidaps/queue/CommandQueue.java @@ -162,8 +162,18 @@ public class CommandQueue { tempCommandQueue.readStatus(reason, callback); } + public synchronized boolean bolusInQueue(){ + if(isRunning(Command.CommandType.BOLUS)) return true; + for (int i = 0; i < queue.size(); i++) { + if (queue.get(i).commandType == Command.CommandType.BOLUS) { + return true; + } + } + return false; + } + // returns true if command is queued - public boolean bolus(DetailedBolusInfo detailedBolusInfo, Callback callback) { + public synchronized boolean bolus(DetailedBolusInfo detailedBolusInfo, Callback callback) { Command.CommandType type = detailedBolusInfo.isSMB ? Command.CommandType.SMB_BOLUS : Command.CommandType.BOLUS; if(type.equals(Command.CommandType.BOLUS) && detailedBolusInfo.carbs > 0 && detailedBolusInfo.insulin == 0){ From 7312bf061adf5cb975f30703a24143a19f57f0e4 Mon Sep 17 00:00:00 2001 From: swissalpine Date: Fri, 4 May 2018 12:30:28 +0200 Subject: [PATCH 26/46] Update colors.xml --- app/src/main/res/values/colors.xml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 02d39fe91c..954184de6a 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -64,8 +64,9 @@ #ff827c #009705 - #FF666666 + #c8666666 #7200FF00 #72FF0000 + #72000000 From 10b67a0c11e3160dc70533e8007e048fe38f3b3c Mon Sep 17 00:00:00 2001 From: swissalpine Date: Fri, 4 May 2018 12:31:11 +0200 Subject: [PATCH 27/46] Update GraphData.java --- .../androidaps/plugins/Overview/graphData/GraphData.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/graphData/GraphData.java b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/graphData/GraphData.java index 837a24d8aa..8023e86ac0 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/graphData/GraphData.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/graphData/GraphData.java @@ -436,7 +436,7 @@ public class GraphData { for (long time = fromTime; time <= toTime; time += 5 * 60 * 1000L) { AutosensData autosensData = IobCobCalculatorPlugin.getPlugin().getAutosensData(time); if (autosensData != null) { - int color = Color.BLACK; // "=" + int color = MainApp.gc(R.color.deviationblack); // "=" if (autosensData.pastSensitivity.equals("C")) color = MainApp.gc(R.color.deviationgrey); if (autosensData.pastSensitivity.equals("+")) color = MainApp.gc(R.color.deviationgreen); if (autosensData.pastSensitivity.equals("-")) color = MainApp.gc(R.color.deviationred); From 43cc3c4908089e9dcad62823cc75cdfc4027ab48 Mon Sep 17 00:00:00 2001 From: Johannes Mockenhaupt Date: Fri, 4 May 2018 14:18:55 +0200 Subject: [PATCH 28/46] Extract CarbsGenerator class. --- .../Overview/Dialogs/NewCarbsDialog.java | 96 ++++++------------- .../plugins/Treatments/CarbsGenerator.java | 56 +++++++++++ .../plugins/Wear/ActionStringHandler.java | 41 +------- 3 files changed, 90 insertions(+), 103 deletions(-) create mode 100644 app/src/main/java/info/nightscout/androidaps/plugins/Treatments/CarbsGenerator.java 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 c60d237882..d591c880b9 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 @@ -40,6 +40,7 @@ import info.nightscout.androidaps.db.Source; import info.nightscout.androidaps.db.TempTarget; import info.nightscout.androidaps.interfaces.Constraint; import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin; +import info.nightscout.androidaps.plugins.Treatments.CarbsGenerator; import info.nightscout.androidaps.plugins.Treatments.TreatmentsPlugin; import info.nightscout.androidaps.queue.Callback; import info.nightscout.utils.DateUtil; @@ -364,48 +365,40 @@ public class NewCarbsDialog extends DialogFragment implements OnClickListener, C } accepted = true; - if (startActivityTTCheckbox.isChecked()) { - TempTarget tempTarget = new TempTarget() - .date(System.currentTimeMillis()) - .duration(finalActivityTTDuration) - .reason(MainApp.gs(R.string.activity)) - .source(Source.USER) - .low(Profile.toMgdl(finalActivityTT, currentProfile.getUnits())) - .high(Profile.toMgdl(finalActivityTT, currentProfile.getUnits())); - TreatmentsPlugin.getPlugin().addToHistoryTempTarget(tempTarget); - } else if (startEatingSoonTTCheckbox.isChecked()) { - TempTarget tempTarget = new TempTarget() - .date(System.currentTimeMillis()) - .duration(finalEatingSoonTTDuration) - .reason(MainApp.gs(R.string.eatingsoon)) - .source(Source.USER) - .low(Profile.toMgdl(finalEatigSoonTT, currentProfile.getUnits())) - .high(Profile.toMgdl(finalEatigSoonTT, currentProfile.getUnits())); - TreatmentsPlugin.getPlugin().addToHistoryTempTarget(tempTarget); - } else if (startHypoTTCheckbox.isChecked()) { - TempTarget tempTarget = new TempTarget() - .date(System.currentTimeMillis()) - .duration(finalHypoTTDuration) - .reason(MainApp.gs(R.string.hypo)) - .source(Source.USER) - .low(Profile.toMgdl(finalHypoTT, currentProfile.getUnits())) - .high(Profile.toMgdl(finalHypoTT, currentProfile.getUnits())); - TreatmentsPlugin.getPlugin().addToHistoryTempTarget(tempTarget); - } + if (startActivityTTCheckbox.isChecked()) { + TempTarget tempTarget = new TempTarget() + .date(System.currentTimeMillis()) + .duration(finalActivityTTDuration) + .reason(MainApp.gs(R.string.activity)) + .source(Source.USER) + .low(Profile.toMgdl(finalActivityTT, currentProfile.getUnits())) + .high(Profile.toMgdl(finalActivityTT, currentProfile.getUnits())); + TreatmentsPlugin.getPlugin().addToHistoryTempTarget(tempTarget); + } else if (startEatingSoonTTCheckbox.isChecked()) { + TempTarget tempTarget = new TempTarget() + .date(System.currentTimeMillis()) + .duration(finalEatingSoonTTDuration) + .reason(MainApp.gs(R.string.eatingsoon)) + .source(Source.USER) + .low(Profile.toMgdl(finalEatigSoonTT, currentProfile.getUnits())) + .high(Profile.toMgdl(finalEatigSoonTT, currentProfile.getUnits())); + TreatmentsPlugin.getPlugin().addToHistoryTempTarget(tempTarget); + } else if (startHypoTTCheckbox.isChecked()) { + TempTarget tempTarget = new TempTarget() + .date(System.currentTimeMillis()) + .duration(finalHypoTTDuration) + .reason(MainApp.gs(R.string.hypo)) + .source(Source.USER) + .low(Profile.toMgdl(finalHypoTT, currentProfile.getUnits())) + .high(Profile.toMgdl(finalHypoTT, currentProfile.getUnits())); + TreatmentsPlugin.getPlugin().addToHistoryTempTarget(tempTarget); + } if (carbsAfterConstraints > 0) { if (duration == 0) { - createCarb(carbsAfterConstraints, time, notes); + CarbsGenerator.createCarb(carbsAfterConstraints, time, notes); } else { - long remainingCarbs = carbsAfterConstraints; - int ticks = (duration * 4); //duration guaranteed to be integer greater zero - for (int i = 0; i < ticks; i++){ - long carbTime = time + i * 15 * 60 * 1000; - long smallCarbAmount = Math.round((1d * remainingCarbs) / (ticks-i)); //on last iteration (ticks-i) is 1 -> smallCarbAmount == remainingCarbs - remainingCarbs -= smallCarbAmount; - if (smallCarbAmount > 0) - createCarb(smallCarbAmount, carbTime, notes); - } + CarbsGenerator.generateCarbs(carbsAfterConstraints, time, duration, notes); } } } @@ -420,31 +413,4 @@ public class NewCarbsDialog extends DialogFragment implements OnClickListener, C log.error("Unhandled exception", e); } } - - private void createCarb(long carbs, long time, @Nullable String notes) { - DetailedBolusInfo carbInfo = new DetailedBolusInfo(); - carbInfo.date = time; - carbInfo.eventType = CareportalEvent.CARBCORRECTION; - carbInfo.carbs = carbs; - carbInfo.context = getContext(); - carbInfo.source = Source.USER; - carbInfo.notes = notes; - if (ConfigBuilderPlugin.getActivePump().getPumpDescription().storesCarbInfo && carbInfo.date <= now()) { - ConfigBuilderPlugin.getCommandQueue().bolus(carbInfo, new Callback() { - @Override - public void run() { - if (!result.success) { - Intent i = new Intent(MainApp.instance(), ErrorHelperActivity.class); - i.putExtra("soundid", R.raw.boluserror); - i.putExtra("status", result.comment); - i.putExtra("title", MainApp.gs(R.string.treatmentdeliveryerror)); - i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - MainApp.instance().startActivity(i); - } - } - }); - } else { - TreatmentsPlugin.getPlugin().addToHistoryTreatment(carbInfo); - } - } } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/CarbsGenerator.java b/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/CarbsGenerator.java new file mode 100644 index 0000000000..d270187eca --- /dev/null +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/CarbsGenerator.java @@ -0,0 +1,56 @@ +package info.nightscout.androidaps.plugins.Treatments; + +import android.content.Intent; +import android.support.annotation.Nullable; + +import info.nightscout.androidaps.MainApp; +import info.nightscout.androidaps.R; +import info.nightscout.androidaps.data.DetailedBolusInfo; +import info.nightscout.androidaps.db.CareportalEvent; +import info.nightscout.androidaps.db.Source; +import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin; +import info.nightscout.androidaps.plugins.Overview.Dialogs.ErrorHelperActivity; +import info.nightscout.androidaps.queue.Callback; + +import static info.nightscout.utils.DateUtil.now; + +public class CarbsGenerator { + public static void generateCarbs(int amount, long startTime, int duration, @Nullable String notes) { + long remainingCarbs = amount; + int ticks = (duration * 4); //duration guaranteed to be integer greater zero + for (int i = 0; i < ticks; i++){ + long carbTime = startTime + i * 15 * 60 * 1000; + int smallCarbAmount = (int) Math.round((1d * remainingCarbs) / (ticks-i)); //on last iteration (ticks-i) is 1 -> smallCarbAmount == remainingCarbs + remainingCarbs -= smallCarbAmount; + if (smallCarbAmount > 0) + createCarb(smallCarbAmount, carbTime, notes); + } + } + + public static void createCarb(int carbs, long time, @Nullable String notes) { + DetailedBolusInfo carbInfo = new DetailedBolusInfo(); + carbInfo.date = time; + carbInfo.eventType = CareportalEvent.CARBCORRECTION; + carbInfo.carbs = carbs; + carbInfo.context = MainApp.instance(); + carbInfo.source = Source.USER; + carbInfo.notes = notes; + if (ConfigBuilderPlugin.getActivePump().getPumpDescription().storesCarbInfo && carbInfo.date <= now()) { + ConfigBuilderPlugin.getCommandQueue().bolus(carbInfo, new Callback() { + @Override + public void run() { + if (!result.success) { + Intent i = new Intent(MainApp.instance(), ErrorHelperActivity.class); + i.putExtra("soundid", R.raw.boluserror); + i.putExtra("status", result.comment); + i.putExtra("title", MainApp.gs(R.string.treatmentdeliveryerror)); + i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + MainApp.instance().startActivity(i); + } + } + }); + } else { + TreatmentsPlugin.getPlugin().addToHistoryTreatment(carbInfo); + } + } +} diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Wear/ActionStringHandler.java b/app/src/main/java/info/nightscout/androidaps/plugins/Wear/ActionStringHandler.java index fe6c655aa4..35b8fe72c2 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Wear/ActionStringHandler.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Wear/ActionStringHandler.java @@ -46,6 +46,7 @@ import info.nightscout.androidaps.plugins.PumpDanaRKorean.DanaRKoreanPlugin; import info.nightscout.androidaps.plugins.PumpDanaRS.DanaRSPlugin; import info.nightscout.androidaps.plugins.PumpDanaRv2.DanaRv2Plugin; import info.nightscout.androidaps.plugins.PumpInsight.InsightPlugin; +import info.nightscout.androidaps.plugins.Treatments.CarbsGenerator; import info.nightscout.androidaps.plugins.Treatments.TreatmentsPlugin; import info.nightscout.androidaps.queue.Callback; import info.nightscout.utils.BolusWizard; @@ -633,49 +634,13 @@ public class ActionStringHandler { private static void doECarbs(int carbs, long time, int duration) { if (carbs > 0) { if (duration == 0) { - createCarb(carbs, time, "watch"); + CarbsGenerator.createCarb(carbs, time, "watch"); } else { - long remainingCarbs = carbs; - int ticks = (duration * 4); //duration guaranteed to be integer greater zero - for (int i = 0; i < ticks; i++){ - long carbTime = time + i * 15 * 60 * 1000; - long smallCarbAmount = Math.round((1d * remainingCarbs) / (ticks-i)); //on last iteration (ticks-i) is 1 -> smallCarbAmount == remainingCarbs - remainingCarbs -= smallCarbAmount; - if (smallCarbAmount > 0) - createCarb(smallCarbAmount, carbTime, "watch eCarbs"); - } + CarbsGenerator.generateCarbs(carbs, time, duration, "watch eCarbs"); } } } - private static void createCarb(long carbs, long time, @Nullable String notes) { - DetailedBolusInfo carbInfo = new DetailedBolusInfo(); - carbInfo.date = time; - carbInfo.eventType = CareportalEvent.CARBCORRECTION; - carbInfo.carbs = carbs; - carbInfo.context = MainApp.instance(); - carbInfo.source = Source.USER; - carbInfo.notes = notes; - if (ConfigBuilderPlugin.getActivePump().getPumpDescription().storesCarbInfo && carbInfo.date <= now()) { - ConfigBuilderPlugin.getCommandQueue().bolus(carbInfo, new Callback() { - @Override - public void run() { - if (!result.success) { - Intent i = new Intent(MainApp.instance(), ErrorHelperActivity.class); - i.putExtra("soundid", R.raw.boluserror); - i.putExtra("status", result.comment); - i.putExtra("title", MainApp.gs(R.string.treatmentdeliveryerror)); - i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - MainApp.instance().startActivity(i); - } - } - }); - } else { - TreatmentsPlugin.getPlugin().addToHistoryTreatment(carbInfo); - } - } - - private static void setCPP(int timeshift, int percentage) { String msg = ""; From 35a6bbb6a7be8613e5ca6b389ce6b87c48859db8 Mon Sep 17 00:00:00 2001 From: Johannes Mockenhaupt Date: Fri, 4 May 2018 14:22:43 +0200 Subject: [PATCH 29/46] Set CareportalEvent.MEALBOLUS for eCarbs. --- .../plugins/Overview/Dialogs/NewCarbsDialog.java | 7 +------ .../androidaps/plugins/Treatments/CarbsGenerator.java | 6 +++--- .../androidaps/plugins/Wear/ActionStringHandler.java | 7 +------ 3 files changed, 5 insertions(+), 15 deletions(-) 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 d591c880b9..2ebab6caab 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 @@ -1,9 +1,7 @@ package info.nightscout.androidaps.plugins.Overview.Dialogs; -import android.content.Intent; import android.os.Bundle; import android.os.HandlerThread; -import android.support.annotation.Nullable; import android.support.v4.app.DialogFragment; import android.support.v7.app.AlertDialog; import android.text.Editable; @@ -33,16 +31,13 @@ import java.util.List; import info.nightscout.androidaps.Constants; import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.R; -import info.nightscout.androidaps.data.DetailedBolusInfo; import info.nightscout.androidaps.data.Profile; import info.nightscout.androidaps.db.CareportalEvent; import info.nightscout.androidaps.db.Source; import info.nightscout.androidaps.db.TempTarget; import info.nightscout.androidaps.interfaces.Constraint; -import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin; import info.nightscout.androidaps.plugins.Treatments.CarbsGenerator; import info.nightscout.androidaps.plugins.Treatments.TreatmentsPlugin; -import info.nightscout.androidaps.queue.Callback; import info.nightscout.utils.DateUtil; import info.nightscout.utils.DecimalFormatter; import info.nightscout.utils.DefaultValueHelper; @@ -396,7 +391,7 @@ public class NewCarbsDialog extends DialogFragment implements OnClickListener, C if (carbsAfterConstraints > 0) { if (duration == 0) { - CarbsGenerator.createCarb(carbsAfterConstraints, time, notes); + CarbsGenerator.createCarb(carbsAfterConstraints, time, CareportalEvent.CARBCORRECTION, notes); } else { CarbsGenerator.generateCarbs(carbsAfterConstraints, time, duration, notes); } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/CarbsGenerator.java b/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/CarbsGenerator.java index d270187eca..99168a2776 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/CarbsGenerator.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/CarbsGenerator.java @@ -23,14 +23,14 @@ public class CarbsGenerator { int smallCarbAmount = (int) Math.round((1d * remainingCarbs) / (ticks-i)); //on last iteration (ticks-i) is 1 -> smallCarbAmount == remainingCarbs remainingCarbs -= smallCarbAmount; if (smallCarbAmount > 0) - createCarb(smallCarbAmount, carbTime, notes); + createCarb(smallCarbAmount, carbTime, CareportalEvent.MEALBOLUS, notes); } } - public static void createCarb(int carbs, long time, @Nullable String notes) { + public static void createCarb(int carbs, long time, String eventType, @Nullable String notes) { DetailedBolusInfo carbInfo = new DetailedBolusInfo(); carbInfo.date = time; - carbInfo.eventType = CareportalEvent.CARBCORRECTION; + carbInfo.eventType = eventType; carbInfo.carbs = carbs; carbInfo.context = MainApp.instance(); carbInfo.source = Source.USER; diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Wear/ActionStringHandler.java b/app/src/main/java/info/nightscout/androidaps/plugins/Wear/ActionStringHandler.java index 35b8fe72c2..5ec2723fa4 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Wear/ActionStringHandler.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Wear/ActionStringHandler.java @@ -1,9 +1,7 @@ package info.nightscout.androidaps.plugins.Wear; -import android.content.Intent; import android.os.HandlerThread; import android.support.annotation.NonNull; -import android.support.annotation.Nullable; import java.text.DateFormat; import java.text.DecimalFormat; @@ -38,7 +36,6 @@ import info.nightscout.androidaps.plugins.IobCobCalculator.CobInfo; import info.nightscout.androidaps.plugins.IobCobCalculator.IobCobCalculatorPlugin; import info.nightscout.androidaps.plugins.Loop.APSResult; import info.nightscout.androidaps.plugins.Loop.LoopPlugin; -import info.nightscout.androidaps.plugins.Overview.Dialogs.ErrorHelperActivity; import info.nightscout.androidaps.plugins.Overview.events.EventDismissNotification; import info.nightscout.androidaps.plugins.PumpDanaR.DanaRPlugin; import info.nightscout.androidaps.plugins.PumpDanaR.DanaRPump; @@ -57,8 +54,6 @@ import info.nightscout.utils.SP; import info.nightscout.utils.SafeParse; import info.nightscout.utils.ToastUtils; -import static info.nightscout.utils.DateUtil.now; - /** * Created by adrian on 09/02/17. */ @@ -634,7 +629,7 @@ public class ActionStringHandler { private static void doECarbs(int carbs, long time, int duration) { if (carbs > 0) { if (duration == 0) { - CarbsGenerator.createCarb(carbs, time, "watch"); + CarbsGenerator.createCarb(carbs, time, CareportalEvent.CARBCORRECTION, "watch"); } else { CarbsGenerator.generateCarbs(carbs, time, duration, "watch eCarbs"); } From 7190bccf20e7c37eb22ea306929b63103fab1fd8 Mon Sep 17 00:00:00 2001 From: AdrianLxM Date: Fri, 4 May 2018 19:24:05 +0200 Subject: [PATCH 30/46] release candidate 3 --- app/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle b/app/build.gradle index 82ac0b83f7..a009f8fbd9 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -63,7 +63,7 @@ android { targetSdkVersion 25 multiDexEnabled true versionCode 1500 - version "2.0-releasecandidate2" + version "2.0-releasecandidate3" buildConfigField "String", "VERSION", '"' + version + '"' buildConfigField "String", "BUILDVERSION", generateGitBuild() testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" From 5ff86e9c345a2eb9ac794ec4234e5085f3a3d397 Mon Sep 17 00:00:00 2001 From: pedroll Date: Fri, 4 May 2018 19:54:21 +0200 Subject: [PATCH 31/46] Spanish translation --- app/src/main/res/values-es/strings.xml | 466 ++++++++++++++++++------- 1 file changed, 344 insertions(+), 122 deletions(-) diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index c737dfa5aa..bb1b99f6c8 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -5,10 +5,12 @@ Preferencias Refrescar tratamientos desde NS Restablecer las bases de datos + ¿Realmente quiere resetear la base de datos? Salida Usar bolos extendidos para> 200% DanaR dispositivo Bluetooth Usar siempre valor basal absoluto + Por favor reinicia el teléfono o AndroidAPS desde ajustes de sistema, sino AndroidAPS no guardará registros (importantes para trazar y verificar que el algoritmo funcione correctamente) Objetivo: Meta: Inicio @@ -23,6 +25,7 @@ Insulina: Carbohidratos: IOB: + IOB: Actividad: Total IOB: Actividad total IOB: @@ -34,13 +37,14 @@ Insulina [U] Carbohidratos [g] Glucosa + TT Hidratos Carbono Corrección U Bolo IOB Ejecutar ahora BOMBA VIRTUAL - Dosis Basal Base + Dosis Basal Temporal Basal Temporal Bolo extendido Batería @@ -62,12 +66,14 @@ Razón Glucosa Delta + Delta: Config Builder Objetivos OpenAPS MA Sinopsis Perfil NS Perfil simple + Basal temporal Tratamientos Bomba virtual Careportal @@ -79,10 +85,11 @@ días Duración mínima Restricciones - Lazo - Lazo + Loop + Loop APS Tras procesar limitaciones + Basal temporal en la bomba Última aceptada OK Cancelar @@ -91,6 +98,7 @@ Plugin está desactivado Violación restricciones Error de administración del bolo + Basal Temporal no emitida Valor basal [%] % (100% = actual) Aceptar nueva basal temporal: @@ -100,22 +108,28 @@ Confirmación Introduzca nuevo tratamiento: Bolo + Bolo: Basal + Basal: Carbohidratos Cambiar datos! Establecer nuevo bolo extendido: Origen BG xDrip Modo APS - Lazo cerrado - Lazo abierto + Loop cerrado + Loop abierto + Loop Inactivo + Desactivar loop + Activar loop Nueva propuesta disponible Versión de NSClient no soportada + Versión no acceptada de Nightscout NSClient no instalado. Registro perdido! BG disponible en NS Estado de la bomba disponible en NS Aceptados - LAZO DESACTIVADO POR RESTRICCIONES + LOOP DESACTIVADO POR RESTRICCIONES Czech English Basal IOB @@ -167,9 +181,11 @@ Archivo no encontrado Exportar ajustes Importar ajustes + Frances + Chino German - Max valor U / hr en Basal temporal - Máximos basales IOB para OpenAPS [U] + Este valor es llamado max basal en el contexto OpenAPS + Este valor es llamado Max Iob en el contexto OpenAPS\nEsta es la máxima insulina en [U] APS puede entregar a la vez. Bulgarian DESCARTAR Idioma @@ -190,6 +206,7 @@ Bomba IOB Unidades diarias Último bolo: + Hace %.1fh Datos invalidos Valor no establecido correctamente Recargar Perfil @@ -204,10 +221,12 @@ Esperando resultado Números de teléfono permitidos XXXXXXXXXX +; + YYYYYYYYYY - Para entregar bolo %.2fU responder con código %s + Para entregar bolo %.2fU responder con código %s Bolo falló - Bolo %.2fU entregado con éxito - Entregando %.2fU + Bolo %.2fU entregado con éxito + Bolo %.2fU enviado correctamente + Entregando %.2fU + Permitir comandos remotos vía SMS Bolo remoto no permitido Dedo Sensor @@ -217,7 +236,6 @@ Configuración perfil DanaR DIA [h] No se pudo actualizar el perfil basal - Historial Recargar Subiendo E bolo @@ -229,7 +247,7 @@ glucosa carbohidratos alarma - Total %d registros subidos + Total %d registros subidos S bolo alarmas Basal Horas @@ -240,36 +258,38 @@ Glucosa Rellenar Suspender - Conexión de %d s + Conexión de %d s Contraseña de la bomba Contraseña de la bomba incorrecta! Bomba ocupada Entregado Detenido + Bolo interrumpido + Deteniendo bolo Oclusión Detener Parar pulsado - Se entregará %.2fU + Se entregará %.2fU Configuración de visualización y monitoreo, y el análisis de los basales y ratios Comprobar que los datos de BG están disponibles en Nightscout, y que los datos de la bomba de insulina se están subiendo Empezar con bucle abierto - Ejecutar en modo de lazo abierto durante unos días, y aceptar manualmente las basales temporales - Entender el lazo abierto, incluidas las recomendaciones de basales temporales + Ejecutar en modo de Loop abierto durante unos días, y aceptar manualmente las basales temporales + Entender el Loop abierto, incluidas las recomendaciones de basales temporales Sobre la base de esa experiencia, decidir valores de máximo basal, y ajustar la bomba y preferencias Iniciar el bucle cerrado con suspensión con baja glucosa - Ejecutar en lazo cerrado con max IOB=0 durante unos días sin demasiados valores bajos de glucosa + Ejecutar en Loop cerrado con max IOB=0 durante unos días sin demasiados valores bajos de glucosa Ajuste del bucle cerrado, aumento máximo IOB por encima de 0 y bajando gradualmente objetivos BG Funcionando unos cuantos días, y al menos una noche sin alarmas bajas BG, y bajar gradualmente BG Ajustar los basales y ratios, si es necesario, y luego activar auto-sens - 1 semana lazo cerrado completado con entrada regular de carbohidratos + 1 semana Loop cerrado completado con entrada regular de carbohidratos Habilitar funciones adicionales para su uso durante el día, como asistente de comida avanzado + Habilitar funciones adicionales para uso durante el día como SMB Alcanzado el límite permitido Sin perfil seleccionado - Korean - Acciones - Corr - Loop Inactivo - Bolo Comida + Loop se ha desactivado + Loop se ha activado + Loop inactivo + loop activo Valor %s fuera de limites Botón Texto: Carbs: @@ -278,79 +298,29 @@ Editar Eliminar Asistente - Ajustes asistente - Loop se ha desactivado - Loop se ha activado - Loop inactivo - loop activo + Asistente configuración + No permitidos ajustes basales remotos + Para iniciar basal %.2fU/h responder con código %s + Basal temporal %.2fU/h para %d min iniciada correctamente + Fallo inicio basal temporal + Para parar basal temporal responder con código %s Basal temporal cancelada Fallo cancelación basal temporal - Fallo inicio basal temporal - Basal temporal %.2fU/h para %d min iniciada correctamente - Permitir comandos SMS remotos - Para parar basal temporal responder con código %s + Comando desconocido o respuesta incorrecta + Bolo Comida + Corr + Korean + Acciones AndroidAPS iniciado - Español NS solo subida (sinc. inactiva) NS solo subida. No efectivo con SGV salvo que este seleccionada una fuente local como xDrip. No efectivo en perfiles usando perfiles NS - Otros ¡Bomba no iniciada! - No permitidos ajustes basales remotos - ¿Realmente quiere resetear la base de datos? - Comando desconocido o respuesta incorrecta + Bomba no iniciada, ¡perfil no ajustado! ¡Por favor asegurar que la cantidad coincide con la especificación del set de infusión! - Para iniciar basal %.2fU/h responder con código %s - "ACC" - "REL" - "BombaV" - "Trat" - "SMS" - "PerfSipmple" - "Perf" - "General" - "Obj" - "Oaps" - "Lazo" - "PerfLoc" - "Dana" - "Conf" - "CP" - Actividad - Por favor reinicia el teléfono o AndroidAPS desde ajustes de sistema, sino AndroidAPS no guardará registros (importantes para trazar y verificar que el algoritmo funcione correctamente) - Matriz de %d elementos. Valor actual: - Ratio Basal: - Valor basal menor del mínimo. Perfil no fijado. + Otros Botón 1 Botón 2 Botón 3 - Inhabilitar EasyUI modo en bomba - Habilitar bolos extendidos en bomba - Cambio de modo de U/d a U/h en bomba - Comida temprano - Marca ALTA - Iniciando . . . - Perfil Local - Media Larga Delta - Marca BAJO - Batería Baja - %dmin antes - Usar característica AMA autosens - Datos Autosens - Marcas Alta y Baja para graficos en Sinopsis y Smartwatch - Rango de visualización - Perfil basal actualizado en bomba - Error en ajuste de perfil basal - Bomba no iniciada, ¡perfil no ajustado! - Error en bomba - Apagando Bomba - Eliminar registro: - Enviar todos los datos - Media corta delta - Bolo: - Último BG: - %dmin antes - Bolo %.2fU enviado correctamente - Rango Objetivo: Unidades: Sólo se permiten caracteres numéricos Sólo se permiten dígitos en el rango %1$s - %2$s @@ -367,7 +337,6 @@ Para enviar calibracion %.2f responder con código %s Entregaré %.2fU Duración de acitividad de insulina - habilitar funciones adicionales para uso durante el día como SMB %.2f limitado a %.2f no permitido el mando remoto Para cancelar loop por %d minutos responde con código %s @@ -376,22 +345,51 @@ mg/dl mmol/l DIA: + Rango Objetivo: + Rango de visualización + Marcas Alta y Baja para graficos en Sinopsis y Smartwatch + Marca BAJO + Marca ALTA Reloj + Enviar todos los datos Abrir ajustes en reloj + Error en bomba + Batería Baja + Apagando Bomba Batería de la bomba descargada DanaR Korean + Ratio Basal: + Error en ajuste de perfil basal + Perfil basal actualizado en bomba + Inhabilitar EasyUI modo en bomba + Habilitar bolos extendidos en bomba + Cambio de modo de U/d a U/h en bomba + Valor Basal por debajo del mínimo. Perfil NO aplicado! BG: + Último BG: MDI MM640g Avisos permanentes DATOS CADUCADOS + %dmin antes + %dmin antes + Perfil Local OpenAPS AMA + Media corta delta + Media Larga Delta + Matriz de %d elementos. Valor actual: + Datos Autosens Script debug + Usar característica AMA autosens Renovar datos desde NS + Comida temprano + Hypo + Actividad + Eliminar registro: DanaR Stats Dosis diaria cumulativa "Dosis diaria ampliada exponencialmente " - Base + Basal Bolo Dosis diaria Fecha @@ -402,6 +400,22 @@ Datos caducados pro favor pincha RELOAD Basal total Basal diaria *2 + Inicializando + "ACC" + "CONF" + "LOOP" + "PERFSIM" + OAPS + "PERFLOC" + "DANA" + "GENERAL" + "BOMBAV" + "PERF" + "TRAT" + "CP" + "OBJ" + RELOJ + "SMS" Tab titulo corto Usa siempre delta media corto en vez de delta simple Recomendado si los datos de origen no filtrados como xDrip son inestables. @@ -496,7 +510,7 @@ COB Superbolo Indica app start en NS - Aplicacion existente para aplicar ajustes. + Saliendo de la aplicacion para aplicar ajustes. DanaRv2 Insulina Insulina acción rápida @@ -517,7 +531,7 @@ xds Mostrar BGI agregar BGI a status line - datos no mandados a NS + Datos no mandados a NS Todos los datos mandados a NS son borrados. AAPS esta conectado a NS pero no hay cambios en NS Nivel base Nivel bolo @@ -547,12 +561,12 @@ Bomba OpenAPS Uploader - Deteccion sensividad + Detección sensivilidad SENS Sensitivity Oref0 Sensitivity AAPS - Ajustes absorcion - Tiempo max absorcion comida [h] + Ajustes absorción + Tiempo max absorción comida [h] Tiempo esperado en el que todos los carbohidratos son absorbados mostrar bolo prolongado en % SAGE @@ -563,22 +577,22 @@ UPLD BAS EXT - Pantalla proteccion - Cierre + Pantalla de protección + Bloqueo Al activar autosens recuerda editar todos carbohidratos comidos. Si no, sensividad será calculada incorrectamente !!! Sensitivity WeightedAverage OK Cancelar Faltan perfiles! Valores no guardados! - Activar mensajes a otras aplicaciones (como xDrip). + Activar mensajes a otras aplicaciónes (como xDrip). Activar mensajes locales. ACTIVITY Y FEEDBACK CARBS Y BOLUS CGM Y OPENAPS BOMBA Valor base [U/h] - Duracion [min] + Duración [min] IOB Curve Peak Time Peak Time [min] Free-Peak Oref @@ -589,8 +603,8 @@ Fecha INVALIDO Esperando para conectar con bomba - Coneccion OK - Coneccion fuera de tiempo + conexión OK + conexión fuera de tiempo CONECTANDO aparato no encontrado Deposito vacio @@ -606,11 +620,11 @@ Porcientos Cambio de tiepmo Ojbectivo temporal por defecto - duracion comiendopronto + duración comiendopronto objectivo comiendopronto - duracion actividad + duración actividad objectivo actividad - Prime + Cebado recibiendo estado de bolo prolongado recibiendo estado bolo recibiendo estado bolo temporal @@ -619,7 +633,7 @@ usar otra vez Control desde reloj editar y emitir abjectivos temp. y tratamientos por reloj - Fuera tiempo coneccion + Fuera tiempo conexión comida g ]]> @@ -643,7 +657,7 @@ INFO Bluetooth BT Watchdog - Apaga el bluetooth del móvil por un segundo si no hay coneccion con la bomba. Esto ayuda con algunos moviles con problemas de establecer coneccion bluetooth estable. + Apaga el bluetooth del móvil por un segundo si no hay conexión con la bomba. Esto ayuda con algunos moviles con problemas de establecer conexión bluetooth estable. DexcomG5 App (patched) Envias datos BG a NS G5 upload ajustes @@ -654,17 +668,17 @@ En xDrip elige 640g/Eversense date source NSClient BG Valor base remplazado por valor mínimo - Calculacion BG - Calculacion bolo IOB - Calculacion base IOB - Calculacion tendencia - Calculacion superbolo + Calculo BG + Calculo bolo IOB + Calculo base IOB + Calculo tendencia + Calculo superbolo Si No Solo positivo Solo negativo - Calculacion COB - Calculacion objectivo temporal + Calculo COB + Calculo objectivo temporal Loop activado APS seleccionado NSClient tiene permission de escribir @@ -698,6 +712,7 @@ La bomba muesta el error E%d: %s Bajo Vacio + Historial Normal Se necesita actualizar reloj de la bomba Alerta @@ -705,17 +720,224 @@ Emision del bolo fallada. Ningún bolo se ha emitido. Para asegurarse, por favor controle la bomba para evitar bolo doble. Para evitar bugs no se reinician bolos automaticamente. "Solo %.2f U del bolo mandado de %.2f U ha sido emitido por causa de un error. Por favorn controla la bomba para confirmar y toma acciones apropiadas. " "Fallo de emitir bolo y de controlar historical de la bomba.Por favor controla manualmente y crea un record en Careportal si el bolo ha sido emitido. " - Reestablecido coneccion fallada. + Reestablecido conexión fallada. "No hay suficiente insulina en el deposito para emitir bolo. " "Error al emitir bolo prolongado. " bomba no alcanzable treshold [min] - TT - Versión no acceptada de Nightscout - Activar loop - Desactivar loop - Base: - Base temporal no emitida - Base temporal - Delta: - IOB: + "Actual multiplicador Basal de seguridad " + Comprobando cambios en el historial + Tasa Basal cambiada en bomba, pero falló al leer + La tasa Basal en la bomba ha cambiado y será actualizada pronto + Actualizando estado bomba + Rechazando temporal alta ya que el calculo no consideró loscambios recientes en el historial de la bomba + El bolus se administró con éxito, pero no se pudo agregar la entrada al tratamiento. Esto puede suceder si se administran dos bolos pequeños del mismo tamaño en los últimos dos minutos. Verifique el historial de la bomba y las entradas de tratamiento y use Careportal para agregar entradas faltantes. Asegúrese de no agregar ninguna entrada para el mismo minuto exacto y la misma cantidad. + El historial de la bomba ha cambiado después de que se realizó el cálculo del bolo. El bolo no fue entregado. Por favor, vuelva a calcular si aún se necesita un bolo. Si se requiere la misma cantidad de bolo, espere dos minutos ya que los bolos con la misma cantidad se bloquean cuando se solicita con menos de dos minutos entre ellos por seguridad (independientemente de si se administraron o no). + Leyendo perfil basal + Inicio Hypo TT + Ninguna acción seleccionada, nada sucederá + Basales + Carbohidratos activos COB + Insulina activa IOB + Desviaciones + Sensibilidad + Autorelleno de lecturas perdidas de BG + El Bolo solo será anotado + Categoría + Subcategoría + No administrar Bolo, solo anotar + min + TT + Inicio TT Actividad + Inicio TT Comiendo pronto + Por favor actualiza la app G5, a una soportada + Permita que los informes automáticos de errores y los datos de uso de funciones se envíen a los desarrolladores a través del servicio fabric.io. + Fabric Upload + Opciones de datos + Predicciones + Mostrar predicciones en el reloj + Crear notificaciones en Nightscout para diálogos de error y alertas locales (también visibles en Careportal en Tratamientos) + "Crear notificaciones de los errores " + Muestre SMB en el reloj como un bolo estándar. + Notificar cada SMB + Historial + CGM + No se pudo iniciar la aplicación CGM. Asegúrate de que está instalada. + Cantidad de insulina que se agrega cuando se presiona el botón + "Cantidad de Carbohidratos que agregar cuando se presiona el botón " + Abre xDrip+, los botones Atrás regresan a AAPS + Envía una calibración a xDrip + o abre el diálogo de calibración G5 + Botones + Carbohidratos + Insulina + Silenciar + Dejar Basal Temporal correr + No recomendado por agotar batería + Conectar de forma preventiva + Conectar automáticamente cuando se abre AndroidAPS, antes de solicitar ningún comando de bomba, para reducir el retraso de la conexión + Estadísticas + Estado de Mantener-Activo + %ds expira en %s + Adulto resistente a la insulina + Habilitar SMB durante 6 h después de Carbohidratos, incluso con 0 COB. Solo posible con fuente BG con buen filtrado de datos como G5 + Habilitar SMB siempre de forma independiente a los Bolos. Solo posible con fuente BG con buen filtrado de datos como G5 + Habilitar SMB después de Carbohidratos + Habilitar SMB cuando hay un Objetivo Temporal (TT) ALTO activo (ejercicio) + Habilitar SMB con Objetivo Temporal Alto + Habilitar SMB cuando hay un Objetivo Temporal (TT) activo (comer pronto, ejercicio) + Habilitar SMB con Objetivos Temporales + Habilitar SMB cuando hay Carbohidratos Activo COB. + Habilitar SMB con COB + Habilitar SMB siempre + s + Semana + Día + Hora + minuto + segundo + Incompatible + No autorizado + Vinculación aplicación + Código rechazado + Esperando código de confirmación + Desconocido + Aplicación Companion incompatible, necesitamos la versión + Companion app does not appear to be installed! + ¡La aplicación Companion no parece estar instalada! + Permanecer siempre conectado + Usar cancelacion Basal Temporal TBR real + Actualmente, cancelar una Basal Temporal TBR (crea una alarma de bomba) en su lugar establecer el 90% durante 1 minuto + Advertencia W31: Cartucho insulina bajo + Advertencia W32: Bateria baja + Advertencia W33: Fecha/hora inválida + Advertencia W34: Final de garantía + Advertencia W36: Basal Temporal cancelada + Warning W38: Bolo cancelado + Warning W39: Adevertencia tiempo de prestamo + Smb administrado por bomba + Inicializando + SMB + Activar UAM + Activar SMB + Usar Super Micro Bolus en lugar de Basal Temporal para una acción más rápida + Detección Comidas No Anunciadas UAM + Insight + Bomba Insight + Estado + Modificado + BOMBA PARADA + Estado actualizado + hace + con + Basal Temporal TBR Activa + minutos faltan + Libro de registros + Última acción completada + necesita + PUESTA EN MARCHA + SINCRONIZADO + OCUPADO + SINCRONIZANDO + DESOCUPADO + Contador Bolos + Contador TBR + Minutos máximos de basal para limitar SMB a + restan sobre + total con + Bomba inalcanzable. No se administró ningún Bolo + Autosens también ajusta los objetivos + Duración hipo + Objetivo hipo + m + h + Objetivo %d no iniciado + Objetivo %d no finalizado + La bomba no tiene capacidad basal temporal + Tasa Basal no valida en la bomba + Loop cerrado desabilitado en preferencias + Autosens desabilitado en preferencias + SMB desabilitado en preferencias + limitando max basal rate a %.2f U/h debido a %s + Limite de la bomba + Tiene que ser un valor positivo + Multiplicador basal máximo + Multiplicador diario basal máximo + Un Bolo entregado en los últimos 3 minutos + Basal establecida correctamente + Limitando porcentaje máximo de tasa a %d%% debido a %s + "Limitando el bolo a %.1f U debido a %s " + Limitando max IOB to %.1f U because of %s + Limitando carbs to %d g because of %s + Limitando IOB to %.1f U because of %s + valor máximo en preferencias + Limite estricto + uso no seguro + Error al leer estado + Anotar cambio sitio bomba + Anotar cambio cartucho de insulina + "SMB siempre y después de que los carbohidratos deshabilitados porque la fuente activa de BG no admite el filtrado avanzado " + "SMB no permitido en modo de Loop abierto " + Comida + reset + Esperando para sincronización de tiempo (%d sec) + Desconectado (%d m) + Eventos Careportal automaticos + "Subi automáticamente la insulina, la cánula y los cambios de batería y las alarmas de bombeo a Nightscout " + Este valor se denomina IOB máx. En el contexto de OpenAPS. OpenAPS no agregará más insulina si el IOB actual es mayor que este valor. + Tiempo máximo de absorción de la comida [h] + "Tiempo en el que cualquier comida se considera absorbida. Los carbohidratos restantes serán cortados. " + Tiempo + Mostrar el campo notas en dialogos de tratamientos + Solicitado: %.2fU Entregado: %.2fU Codigo de error: %d + Primer incremento insulina + Segundo incremento insulina + Tercer incremento insulina + Primer incremento carbohidratos + Segundo incremento carbohidratos + Tercer incremento carbohidratos + CGM + Usar solo WIFI + WIFI SSID + Ajustes coneción + SSID\'s permitido (separados por punto y coma) + Permitir conexión en roaming + "Proporción de autosens máximos " + "Proporción autosens mínima " + Máximo multiplicador diario de seguridad + "Multiplicador de seguridad basal actual " + DIA divisor de repeticion de bolo + El máximo total de IOB OpenAPS no puede rebasar [U] + n/a + Bomba parada + Bomba iniciada + Bomba pausada + por adelantado con + %.2f U/h + OpenAPS SMB + " http://www.androidaps.org http://www.androidaps.de (de) facebook: http://facebook.androidaps.org http://facebook.androidaps.de (de)" + El último bolo tiene más de 24 horas o está en el futuro. Compruebe la fecha en que la bomba está configurada correctamente. + La hora / fecha del bolo administrado en la bomba parece incorrecta; es probable que la IOB sea incorrecta. Verifique la hora / fecha de la bomba. + Falta Cambio de Perfil. Haga un Cambio de Perfil o presione \"Activar perfil\" en PerfilLocal. + Error E13: error de idioma + "Error E10: error de rebobinado " + "Error E7: error electrónico " + "Error E6: error mecánico " + "Mantenimiento M30: Tipo de cartucho no configurado " + "Mantenimiento M29: tipo de batería no configurada " + "Mantenimiento M28: tiempo de pausa del modo de pausa " + "Mantenimiento M27: Error en la descarga de datos " + "Mantenimiento M20: Cartucho no insertado " + "Mantenimiento M21: Cartucho vacío " + "Mantenimiento M22: Batería agotada " + "Mantenimiento M23: Apagado automático " + "Mantenimiento M26: cambio de cartucho no completado " + "Mantenimiento M25: tiempo de prestamo finalizado - final de la operación " + "Mantenimiento M24: Oclusión " + Español + Solo si cargando + Autobackfill BG + Asistente configuración + Calculos incluidos en el resultado del asistente + Mostrar configuración + Configuracion general + From 714eca483ead9aa0f4a1eb56236a4acb2a6cc8b0 Mon Sep 17 00:00:00 2001 From: AdrianLxM Date: Fri, 4 May 2018 20:16:12 +0200 Subject: [PATCH 32/46] revert gradle to dev --- app/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle b/app/build.gradle index a009f8fbd9..77d1bde228 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -63,7 +63,7 @@ android { targetSdkVersion 25 multiDexEnabled true versionCode 1500 - version "2.0-releasecandidate3" + version "1.60e-dev" buildConfigField "String", "VERSION", '"' + version + '"' buildConfigField "String", "BUILDVERSION", generateGitBuild() testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" From 1646420c47d01dafb73cecdc480daad211e7aedb Mon Sep 17 00:00:00 2001 From: AdrianLxM Date: Fri, 4 May 2018 20:17:55 +0200 Subject: [PATCH 33/46] base basal -> Basal Base (was Base Temporal) --- app/src/main/res/values-es/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index bb1b99f6c8..2fd5503f32 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -44,7 +44,7 @@ Bolo IOB Ejecutar ahora BOMBA VIRTUAL - Dosis Basal Temporal + Dosis Basal Base Basal Temporal Bolo extendido Batería From d15ada5cd9b2377a9832d387388c6fa2db3e13d5 Mon Sep 17 00:00:00 2001 From: Johannes Mockenhaupt Date: Fri, 4 May 2018 21:13:49 +0200 Subject: [PATCH 34/46] Combo: Fix visual glitch in fragment. --- .../androidaps/plugins/PumpCombo/ComboFragment.java | 4 ++++ .../java/info/nightscout/androidaps/queue/CommandQueue.java | 2 +- 2 files changed, 5 insertions(+), 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 455f1f7015..a37069c71d 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 @@ -124,6 +124,10 @@ public class ComboFragment extends SubscriberFragment implements View.OnClickLis activityView.setTextColor(Color.WHITE); activityView.setTextSize(14); activityView.setText(activity); + } else if (ConfigBuilderPlugin.getCommandQueue().size() > 0) { + activityView.setTextColor(Color.WHITE); + activityView.setTextSize(14); + activityView.setText(""); } else if (plugin.isInitialized()){ activityView.setTextColor(Color.WHITE); activityView.setTextSize(20); 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 b42cc47f13..d2fd2a5e24 100644 --- a/app/src/main/java/info/nightscout/androidaps/queue/CommandQueue.java +++ b/app/src/main/java/info/nightscout/androidaps/queue/CommandQueue.java @@ -75,7 +75,7 @@ import info.nightscout.androidaps.queue.commands.CommandTempBasalPercent; public class CommandQueue { private static Logger log = LoggerFactory.getLogger(CommandQueue.class); - private LinkedList queue = new LinkedList<>(); + private final LinkedList queue = new LinkedList<>(); protected Command performing; private QueueThread thread = null; From 9aeb2b6ede572da58dcd8ddfbb96762ce4ba4385 Mon Sep 17 00:00:00 2001 From: Radoslav Radev Date: Fri, 4 May 2018 23:51:08 +0300 Subject: [PATCH 35/46] Update strings.xml --- app/src/main/res/values-bg/strings.xml | 93 +++++++++++++++++++++++--- 1 file changed, 83 insertions(+), 10 deletions(-) diff --git a/app/src/main/res/values-bg/strings.xml b/app/src/main/res/values-bg/strings.xml index 81a1589e47..7fda8a4da9 100644 --- a/app/src/main/res/values-bg/strings.xml +++ b/app/src/main/res/values-bg/strings.xml @@ -682,20 +682,12 @@ Няма достатъчно инсулин в резервоара Празен Обнови - И един - вддв - шжо + %.2f U/h Добавяне на допълнителни функции за използване през деня, като SMB Пълнене Избран APS Няма базални стойности за някои часове: %s - Предупреждение W31: Ниско ниво в резервоара - Предупреждение W32: Слаба батерия - Предупреждение W33: Невалидно време/дата - Предупреждение W34: Край на гаранцията - Предупреждение W36: Временният базал е прекъснат - Предупреждение W38: Болусът е прекъснат Временният базал е зададен от помпата Румънски Френски @@ -704,7 +696,7 @@ Спиране на болус Хипоглекимия Настройка на целевата КЗ чрез аутосенс - Възрастни с по-голяма инсулинова резистентност + Възрастни с голяма инсулинова резистентност OpenAPS SMB SMB Разреши UAM @@ -755,4 +747,85 @@ История Последно извършено действие мин. + Предупреждение за измерване на КЗ + Маз. + гр. + kJ + Бел. + ]]> + BT Watchdog + Изключва Bluetooth на телефона за една секунда, ако няма връзка с помпата. Това може да помогне на някои телефони, където Bluetooth блокира. + Bluetooth + G5 настройки за upload + Настройки на съветник + Изтегляне КЗ от Найтскаут + --- + Макс. множител за настоящ базал + Макс. множител за най-големия базал за денонощието + Мин. стойност за аутосенс + Макс. стойност за аутосенс + Позволи връзка в роуминг + Настройки за свързване + Само при зареждане + Настройки за визуализация + Основни настройки + Използвай само WiFi + CGM + секунда + минута + час + ден + седмица + %ds изтича %s + Статистика + Предварително свързване + Автоматично свързване при отваряне на AndroidAPS, преди връзка с помпата за намаляване на първоначалното забавяне + Не се препоръчва поради голяма консумация на батерия + Разреши SMB постоянно + "Разрешава SMB постоянно и независимо от болусите. Възможно само с източник на КЗ с добра филтрация като G5 " + Разреши SMB след въглехидрати + Разрешава SMB 6 часа след въглехидрати, дори при COB=0. Възможно само с източник на КЗ с добра филтрация като G5 + Разреши SMB с COB + Разрешава SMB, когато има активни COB + Разреши SMB с временни цели + Разрешава SMB, когато има активна временна цел на КЗ + Разреши SMB с по-високи временни цели на КЗ + "Разрешава SMB когато има активна по-висока временна цел " + Заглушаване + Инсулин + Въглехидрати + Бутони + Изпраща калибрация към xDrip+ или отваря G5 диалог за калибрация + Отваря xDrip+, бутонът назад връща към AAPS + Количество въглехидрати за добавяне при натискане на бутона + Количество инсулин за добавяне при натискане на бутона + Не може да се използва CGM приложението. Уверете се, че е инсталирано. + CGM + Браузър за исторя + Уведомяване при SMB + Покажи SMB на часовника като стандартен болус. + Създаване на известие при грешки + Създаване на Nightscout известие при грешки и локални аларми (също видими в Кеърпортал при Лечения) + Покажи предвиждане на часовника + Предвиждане + Избор на данни + Позволява автоматично изпращане на данни за грешки и статистически данни до разработчиците чрез fabric.io service. + Моля обновете G5 приложението до поддържана версия. + Не доставяй болус, само запис + Категория + Подкатегория + Болусът ще бъде само записан + Допълни липсващи данни за КЗ от Nightscout + SMB чрез помпата + Чувствителност + Отклонение + Активни въглехидрати + Базали + Няма избрано действие, нищо няма да се случи + Използвате dev версия. Closed loop е деактивиран. + Engineering mode не е активиран и не е release версия + Прочита базалният профил + "Историята на помпата се промени след извършване на изчислението за болус. Болусът не беше доставен. Моля, преизчислете дали все още е необходим болус. Ако се изисква същото болусно количество, моля, изчакайте две минути, тъй за това време болусите с едно и също количество са блокирани от съображения за безопасност " + " http://www.androidaps.org facebook: http://facebook.androidaps.org" + From 3a0c34e7b68aae60a64e7038dfd7354ec97d8acd Mon Sep 17 00:00:00 2001 From: Heiner1 Date: Sat, 5 May 2018 09:45:10 +0200 Subject: [PATCH 36/46] Update strings.xml --- app/src/main/res/values/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index e9482171b7..e0ce1ebbf0 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1,5 +1,5 @@  - Tratments safety + Treatments safety Max allowed bolus [U] Max allowed carbs [g] From fb04250c90528b91f41f4a30884e4ec282bcfc8f Mon Sep 17 00:00:00 2001 From: swissalpine Date: Sat, 5 May 2018 10:00:30 +0200 Subject: [PATCH 37/46] Elliminat syntax error --- app/src/main/res/values-bg/strings.xml | 1 - 1 file changed, 1 deletion(-) diff --git a/app/src/main/res/values-bg/strings.xml b/app/src/main/res/values-bg/strings.xml index 7fda8a4da9..6437f3fa35 100644 --- a/app/src/main/res/values-bg/strings.xml +++ b/app/src/main/res/values-bg/strings.xml @@ -828,4 +828,3 @@ "Историята на помпата се промени след извършване на изчислението за болус. Болусът не беше доставен. Моля, преизчислете дали все още е необходим болус. Ако се изисква същото болусно количество, моля, изчакайте две минути, тъй за това време болусите с едно и също количество са блокирани от съображения за безопасност " " http://www.androidaps.org facebook: http://facebook.androidaps.org" - From 260e259fb0f7e44dc5601a91aaf91c327409da0a Mon Sep 17 00:00:00 2001 From: AdrianLxM Date: Sat, 5 May 2018 15:17:03 +0200 Subject: [PATCH 38/46] Update strings.xml --- app/src/main/res/values-de/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index b078523a63..3aedbbddac 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -582,7 +582,7 @@ Setzte Basalschritt zu 0.01 IE/h Tägl. Basalmenge Tägl. Basalmenge * 2 - Tägl. Gesamtdosis + TDD Gerät noch nicht gefunden DanaRS Dana From 1e0b7d331af2eefcb198fd10fec8a5272ee232b7 Mon Sep 17 00:00:00 2001 From: Johannes Mockenhaupt Date: Sat, 5 May 2018 19:09:22 +0200 Subject: [PATCH 39/46] Fix finding BG in graph for treatments before the first displayed BG. (cherry picked from commit 8bdafe3) --- .../androidaps/plugins/Overview/graphData/GraphData.java | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/graphData/GraphData.java b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/graphData/GraphData.java index 8023e86ac0..1c8b27c113 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/graphData/GraphData.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/graphData/GraphData.java @@ -320,14 +320,13 @@ public class GraphData { } private double getNearestBg(long date) { - double bg = 0; for (int r = bgReadingsArray.size() - 1; r >= 0; r--) { BgReading reading = bgReadingsArray.get(r); if (reading.date > date) continue; - bg = Profile.fromMgdlToUnits(reading.value, units); - break; + return Profile.fromMgdlToUnits(reading.value, units); } - return bg; + return bgReadingsArray.size() > 0 + ? Profile.fromMgdlToUnits(bgReadingsArray.get(0).value, units) : 0; } // scale in % of vertical size (like 0.3) From b9c649bd68d8aad812a5cae57062aeec7cbef4f9 Mon Sep 17 00:00:00 2001 From: Johannes Mockenhaupt Date: Sun, 6 May 2018 11:46:09 +0200 Subject: [PATCH 40/46] Uso blue/orange for carbs/insulin in confirmation dialogs. Aligns with the graph's use of using blueish colors insulin and orange for carbs stuff. --- .../plugins/Overview/Dialogs/NewCarbsDialog.java | 4 ++-- .../plugins/Overview/Dialogs/NewInsulinDialog.java | 6 +++--- .../plugins/Overview/Dialogs/WizardDialog.java | 9 ++++----- app/src/main/res/values/colors.xml | 4 +++- 4 files changed, 12 insertions(+), 11 deletions(-) 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 2ebab6caab..4360e2ed34 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 @@ -330,10 +330,10 @@ public class NewCarbsDialog extends DialogFragment implements OnClickListener, C actions.add(MainApp.gs(R.string.duration) + ": " + duration + MainApp.gs(R.string.shorthour)); } if (carbs > 0) { - actions.add(MainApp.gs(R.string.carbs) + ": " + "" + carbsAfterConstraints + "g" + ""); + actions.add(MainApp.gs(R.string.carbs) + ": " + "" + carbsAfterConstraints + "g" + ""); } if (!carbsAfterConstraints.equals(carbs)) { - actions.add("" + MainApp.gs(R.string.carbsconstraintapplied) + ""); + actions.add("" + MainApp.gs(R.string.carbsconstraintapplied) + ""); } final String notes = notesEdit.getText().toString(); if (!notes.isEmpty()) { 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 3539bee093..0ac2fe06ef 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 @@ -201,14 +201,14 @@ public class NewInsulinDialog extends DialogFragment implements OnClickListener List actions = new LinkedList<>(); if (insulin > 0) { - actions.add(MainApp.gs(R.string.bolus) + ": " + "" + insulinAfterConstraints + "U" + ""); + actions.add(MainApp.gs(R.string.bolus) + ": " + "" + insulinAfterConstraints + "U" + ""); if (recordOnlyCheckbox.isChecked()) { - actions.add("" + MainApp.gs(R.string.bolusrecordedonly) + ""); + actions.add("" + MainApp.gs(R.string.bolusrecordedonly) + ""); } } if (!insulinAfterConstraints.equals(insulin)) - actions.add("" + MainApp.gs(R.string.bolusconstraintapplied) + ""); + actions.add("" + MainApp.gs(R.string.bolusconstraintapplied) + ""); int eatingSoonTTDuration = SP.getInt(R.string.key_eatingsoon_duration, Constants.defaultEatingSoonTTDuration); eatingSoonTTDuration = eatingSoonTTDuration > 0 ? eatingSoonTTDuration : Constants.defaultEatingSoonTTDuration; diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/WizardDialog.java b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/WizardDialog.java index 718b1c6bfa..c38f41b825 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/WizardDialog.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/WizardDialog.java @@ -304,16 +304,15 @@ public class WizardDialog extends DialogFragment implements OnClickListener, Com final Profile profile = MainApp.getConfigBuilder().getProfile(); if (profile != null && (calculatedTotalInsulin > 0d || calculatedCarbs > 0d)) { - DecimalFormat formatNumber2decimalplaces = new DecimalFormat("0.00"); - String confirmMessage = MainApp.gs(R.string.entertreatmentquestion); Double insulinAfterConstraints = MainApp.getConstraintChecker().applyBolusConstraints(new Constraint<>(calculatedTotalInsulin)).value(); Integer carbsAfterConstraints = MainApp.getConstraintChecker().applyCarbsConstraints(new Constraint<>(calculatedCarbs)).value(); - confirmMessage += "
" + MainApp.gs(R.string.bolus) + ": " + "" + formatNumber2decimalplaces.format(insulinAfterConstraints) + "U" + ""; - confirmMessage += "
" + MainApp.gs(R.string.carbs) + ": " + carbsAfterConstraints + "g"; - + if (insulinAfterConstraints > 0) + confirmMessage += "
" + MainApp.gs(R.string.bolus) + ": " + "" + DecimalFormatter.toPumpSupportedBolus(insulinAfterConstraints) + "U" + ""; + if (carbsAfterConstraints > 0) + confirmMessage += "
" + MainApp.gs(R.string.carbs) + ": " + "" + carbsAfterConstraints + "g" + ""; if (insulinAfterConstraints - calculatedTotalInsulin != 0 || !carbsAfterConstraints.equals(calculatedCarbs)) { AlertDialog.Builder builder = new AlertDialog.Builder(context); diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 954184de6a..0e0fdb6c02 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -3,8 +3,9 @@ #ff00ff #00ffff #1e88e5 - #FFFFCC03 + #1ea3e5 #FFFB8C00 + #FFFB8C00 #ffea00 #00ffff #FFFFFF @@ -22,6 +23,7 @@ #C803A9F4 #757575 #d8d8d8 + #ff1a1a #424242 From ef70c1f24464b110a40e84b375c6ba49d5221405 Mon Sep 17 00:00:00 2001 From: Johannes Mockenhaupt Date: Sun, 6 May 2018 11:47:15 +0200 Subject: [PATCH 41/46] MainApp.sResources.getColor -> MainApp.gc. --- .../androidaps/HistoryBrowseActivity.java | 4 +-- .../nightscout/androidaps/db/BgReading.java | 16 +++++----- .../androidaps/db/CareportalEvent.java | 2 +- .../plugins/Actions/dialogs/FillDialog.java | 6 ++-- .../Careportal/CareportalFragment.java | 4 +-- .../ConfigBuilder/ConfigBuilderFragment.java | 2 +- .../Overview/Dialogs/NewInsulinDialog.java | 2 +- .../plugins/Overview/OverviewFragment.java | 30 +++++++++---------- .../plugins/PumpDanaR/DanaRFragment.java | 2 +- .../plugins/Treatments/Treatment.java | 2 +- .../Treatments/TreatmentsFragment.java | 14 ++++----- .../androidaps/tabs/SlidingTabStrip.java | 2 +- 12 files changed, 43 insertions(+), 43 deletions(-) diff --git a/app/src/main/java/info/nightscout/androidaps/HistoryBrowseActivity.java b/app/src/main/java/info/nightscout/androidaps/HistoryBrowseActivity.java index cf3d1fc34c..c308cd2efe 100644 --- a/app/src/main/java/info/nightscout/androidaps/HistoryBrowseActivity.java +++ b/app/src/main/java/info/nightscout/androidaps/HistoryBrowseActivity.java @@ -80,9 +80,9 @@ public class HistoryBrowseActivity extends AppCompatActivity { ButterKnife.bind(this); - bgGraph.getGridLabelRenderer().setGridColor(MainApp.sResources.getColor(R.color.graphgrid)); + bgGraph.getGridLabelRenderer().setGridColor(MainApp.gc(R.color.graphgrid)); bgGraph.getGridLabelRenderer().reloadStyles(); - iobGraph.getGridLabelRenderer().setGridColor(MainApp.sResources.getColor(R.color.graphgrid)); + iobGraph.getGridLabelRenderer().setGridColor(MainApp.gc(R.color.graphgrid)); iobGraph.getGridLabelRenderer().reloadStyles(); iobGraph.getGridLabelRenderer().setHorizontalLabelsVisible(false); bgGraph.getGridLabelRenderer().setLabelVerticalWidth(50); diff --git a/app/src/main/java/info/nightscout/androidaps/db/BgReading.java b/app/src/main/java/info/nightscout/androidaps/db/BgReading.java index ef0277d170..5ddb7a80b2 100644 --- a/app/src/main/java/info/nightscout/androidaps/db/BgReading.java +++ b/app/src/main/java/info/nightscout/androidaps/db/BgReading.java @@ -211,27 +211,27 @@ public class BgReading implements DataPointWithLabelInterface { if (highLine < 1) { highLine = Profile.fromMgdlToUnits(OverviewPlugin.bgTargetHigh, units); } - int color = MainApp.sResources.getColor(R.color.inrange); + int color = MainApp.gc(R.color.inrange); if (isPrediction()) return getPredectionColor(); else if (valueToUnits(units) < lowLine) - color = MainApp.sResources.getColor(R.color.low); + color = MainApp.gc(R.color.low); else if (valueToUnits(units) > highLine) - color = MainApp.sResources.getColor(R.color.high); + color = MainApp.gc(R.color.high); return color; } public int getPredectionColor() { if (isIOBPrediction) - return MainApp.sResources.getColor(R.color.iob); + return MainApp.gc(R.color.iob); if (isCOBPrediction) - return MainApp.sResources.getColor(R.color.cob); + return MainApp.gc(R.color.cob); if (isaCOBPrediction) - return 0x80FFFFFF & MainApp.sResources.getColor(R.color.cob); + return 0x80FFFFFF & MainApp.gc(R.color.cob); if (isUAMPrediction) - return MainApp.sResources.getColor(R.color.uam); + return MainApp.gc(R.color.uam); if (isZTPrediction) - return MainApp.sResources.getColor(R.color.zt); + return MainApp.gc(R.color.zt); return R.color.mdtp_white; } 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 755005cdae..d5a1c90100 100644 --- a/app/src/main/java/info/nightscout/androidaps/db/CareportalEvent.java +++ b/app/src/main/java/info/nightscout/androidaps/db/CareportalEvent.java @@ -251,7 +251,7 @@ public class CareportalEvent implements DataPointWithLabelInterface { @Override public int getColor() { if (eventType.equals(ANNOUNCEMENT)) - return MainApp.sResources.getColor(R.color.notificationAnnouncement); + return MainApp.gc(R.color.notificationAnnouncement); if (eventType.equals(MBG)) return Color.RED; if (eventType.equals(BGCHECK)) 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 828c7dbcc9..dda2e61006 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 @@ -175,14 +175,14 @@ public class FillDialog extends DialogFragment implements OnClickListener { confirmMessage.add(""); confirmMessage.add(MainApp.gs(R.string.bolus) + ": " + "" + insulinAfterConstraints + "U" + ""); if (!insulinAfterConstraints.equals(insulin)) - confirmMessage.add("" + MainApp.gs(R.string.bolusconstraintapplied) + ""); + confirmMessage.add("" + MainApp.gs(R.string.bolusconstraintapplied) + ""); } 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/Careportal/CareportalFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/Careportal/CareportalFragment.java index ac018e3101..4a4210f29e 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Careportal/CareportalFragment.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Careportal/CareportalFragment.java @@ -269,9 +269,9 @@ public class CareportalFragment extends SubscriberFragment implements View.OnCli public static int determineTextColor(CareportalEvent careportalEvent, double warnThreshold, double urgentThreshold) { if (careportalEvent.isOlderThan(urgentThreshold)) { - return MainApp.sResources.getColor(R.color.low); + return MainApp.gc(R.color.low); } else if (careportalEvent.isOlderThan(warnThreshold)) { - return MainApp.sResources.getColor(R.color.high); + return MainApp.gc(R.color.high); } else { return Color.WHITE; } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/ConfigBuilder/ConfigBuilderFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/ConfigBuilder/ConfigBuilderFragment.java index 829a0fa4ad..70b5eb466b 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/ConfigBuilder/ConfigBuilderFragment.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/ConfigBuilder/ConfigBuilderFragment.java @@ -330,7 +330,7 @@ public class ConfigBuilderFragment extends SubscriberFragment { } if (plugin.isEnabled(type)) { - view.setBackgroundColor(MainApp.sResources.getColor(R.color.configBuilderSelectedBackground)); + view.setBackgroundColor(MainApp.gc(R.color.configBuilderSelectedBackground)); } return view; 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 0ac2fe06ef..875d207352 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 @@ -208,7 +208,7 @@ public class NewInsulinDialog extends DialogFragment implements OnClickListener } if (!insulinAfterConstraints.equals(insulin)) - actions.add("" + MainApp.gs(R.string.bolusconstraintapplied) + ""); + actions.add("" + MainApp.gs(R.string.bolusconstraintapplied) + ""); int eatingSoonTTDuration = SP.getInt(R.string.key_eatingsoon_duration, Constants.defaultEatingSoonTTDuration); eatingSoonTTDuration = eatingSoonTTDuration > 0 ? eatingSoonTTDuration : Constants.defaultEatingSoonTTDuration; diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java index 3d0970f8f4..f43a78d64f 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java @@ -240,7 +240,7 @@ public class OverviewFragment extends Fragment implements View.OnClickListener, loopStatusLayout = (LinearLayout) view.findViewById(R.id.overview_looplayout); pumpStatusLayout = (LinearLayout) view.findViewById(R.id.overview_pumpstatuslayout); - pumpStatusView.setBackgroundColor(MainApp.sResources.getColor(R.color.colorInitializingBorder)); + pumpStatusView.setBackgroundColor(MainApp.gc(R.color.colorInitializingBorder)); iobView = (TextView) view.findViewById(R.id.overview_iob); cobView = (TextView) view.findViewById(R.id.overview_cob); @@ -300,9 +300,9 @@ public class OverviewFragment extends Fragment implements View.OnClickListener, else axisWidth = 80; - bgGraph.getGridLabelRenderer().setGridColor(MainApp.sResources.getColor(R.color.graphgrid)); + bgGraph.getGridLabelRenderer().setGridColor(MainApp.gc(R.color.graphgrid)); bgGraph.getGridLabelRenderer().reloadStyles(); - iobGraph.getGridLabelRenderer().setGridColor(MainApp.sResources.getColor(R.color.graphgrid)); + iobGraph.getGridLabelRenderer().setGridColor(MainApp.gc(R.color.graphgrid)); iobGraph.getGridLabelRenderer().reloadStyles(); iobGraph.getGridLabelRenderer().setHorizontalLabelsVisible(false); bgGraph.getGridLabelRenderer().setLabelVerticalWidth(axisWidth); @@ -1006,11 +1006,11 @@ public class OverviewFragment extends Fragment implements View.OnClickListener, //Start with updating the BG as it is unaffected by loop. // **** BG value **** if (lastBG != null) { - int color = MainApp.sResources.getColor(R.color.inrange); + int color = MainApp.gc(R.color.inrange); if (lastBG.valueToUnits(units) < lowLine) - color = MainApp.sResources.getColor(R.color.low); + color = MainApp.gc(R.color.low); else if (lastBG.valueToUnits(units) > highLine) - color = MainApp.sResources.getColor(R.color.high); + color = MainApp.gc(R.color.high); bgView.setText(lastBG.valueToUnitsToString(units)); arrowView.setText(lastBG.directionToSymbol()); bgView.setTextColor(color); @@ -1034,23 +1034,23 @@ public class OverviewFragment extends Fragment implements View.OnClickListener, final LoopPlugin.LastRun finalLastRun = LoopPlugin.lastRun; if (Config.APS && pump.getPumpDescription().isTempBasalCapable) { apsModeView.setVisibility(View.VISIBLE); - apsModeView.setBackgroundColor(MainApp.sResources.getColor(R.color.loopenabled)); + apsModeView.setBackgroundColor(MainApp.gc(R.color.loopenabled)); apsModeView.setTextColor(Color.BLACK); final LoopPlugin loopPlugin = LoopPlugin.getPlugin(); if (loopPlugin.isEnabled(PluginType.LOOP) && loopPlugin.isSuperBolus()) { - apsModeView.setBackgroundColor(MainApp.sResources.getColor(R.color.looppumpsuspended)); + apsModeView.setBackgroundColor(MainApp.gc(R.color.looppumpsuspended)); apsModeView.setText(String.format(MainApp.gs(R.string.loopsuperbolusfor), loopPlugin.minutesToEndOfSuspend())); apsModeView.setTextColor(Color.WHITE); } else if (loopPlugin.isEnabled(PluginType.LOOP) && loopPlugin.isDisconnected()) { - apsModeView.setBackgroundColor(MainApp.sResources.getColor(R.color.looppumpsuspended)); + apsModeView.setBackgroundColor(MainApp.gc(R.color.looppumpsuspended)); apsModeView.setText(String.format(MainApp.gs(R.string.loopdisconnectedfor), loopPlugin.minutesToEndOfSuspend())); apsModeView.setTextColor(Color.WHITE); } else if (loopPlugin.isEnabled(PluginType.LOOP) && loopPlugin.isSuspended()) { - apsModeView.setBackgroundColor(MainApp.sResources.getColor(R.color.looppumpsuspended)); + apsModeView.setBackgroundColor(MainApp.gc(R.color.looppumpsuspended)); apsModeView.setText(String.format(MainApp.gs(R.string.loopsuspendedfor), loopPlugin.minutesToEndOfSuspend())); apsModeView.setTextColor(Color.WHITE); } else if (pump.isSuspended()) { - apsModeView.setBackgroundColor(MainApp.sResources.getColor(R.color.looppumpsuspended)); + apsModeView.setBackgroundColor(MainApp.gc(R.color.looppumpsuspended)); apsModeView.setText(MainApp.gs(R.string.pumpsuspended)); apsModeView.setTextColor(Color.WHITE); } else if (loopPlugin.isEnabled(PluginType.LOOP)) { @@ -1060,7 +1060,7 @@ public class OverviewFragment extends Fragment implements View.OnClickListener, apsModeView.setText(MainApp.gs(R.string.openloop)); } } else { - apsModeView.setBackgroundColor(MainApp.sResources.getColor(R.color.loopdisabled)); + apsModeView.setBackgroundColor(MainApp.gc(R.color.loopdisabled)); apsModeView.setText(MainApp.gs(R.string.disabledloop)); apsModeView.setTextColor(Color.WHITE); } @@ -1072,12 +1072,12 @@ public class OverviewFragment extends Fragment implements View.OnClickListener, TempTarget tempTarget = TreatmentsPlugin.getPlugin().getTempTargetFromHistory(); if (tempTarget != null) { tempTargetView.setTextColor(Color.BLACK); - tempTargetView.setBackgroundColor(MainApp.sResources.getColor(R.color.tempTargetBackground)); + tempTargetView.setBackgroundColor(MainApp.gc(R.color.tempTargetBackground)); tempTargetView.setVisibility(View.VISIBLE); tempTargetView.setText(Profile.toTargetRangeString(tempTarget.low, tempTarget.high, Constants.MGDL, units) + " " + DateUtil.untilString(tempTarget.end())); } else { tempTargetView.setTextColor(Color.WHITE); - tempTargetView.setBackgroundColor(MainApp.sResources.getColor(R.color.tempTargetDisabledBackground)); + tempTargetView.setBackgroundColor(MainApp.gc(R.color.tempTargetDisabledBackground)); tempTargetView.setText(Profile.toTargetRangeString(profile.getTargetLow(), profile.getTargetHigh(), units, units)); tempTargetView.setVisibility(View.VISIBLE); } @@ -1148,7 +1148,7 @@ public class OverviewFragment extends Fragment implements View.OnClickListener, } } if (activeTemp != null) { - baseBasalView.setTextColor(MainApp.sResources.getColor(R.color.basal)); + baseBasalView.setTextColor(MainApp.gc(R.color.basal)); } else { baseBasalView.setTextColor(Color.WHITE); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaR/DanaRFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaR/DanaRFragment.java index b8afdaf15a..b11cd87278 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaR/DanaRFragment.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaR/DanaRFragment.java @@ -111,7 +111,7 @@ public class DanaRFragment extends SubscriberFragment { View view = inflater.inflate(R.layout.danar_fragment, container, false); unbinder = ButterKnife.bind(this, view); - pumpStatusView.setBackgroundColor(MainApp.sResources.getColor(R.color.colorInitializingBorder)); + pumpStatusView.setBackgroundColor(MainApp.gc(R.color.colorInitializingBorder)); return view; } catch (Exception e) { diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/Treatment.java b/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/Treatment.java index 1983c38242..997a55b5a4 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/Treatment.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/Treatment.java @@ -186,7 +186,7 @@ public class Treatment implements DataPointWithLabelInterface { @Override public int getColor() { if (isSMB) - return MainApp.sResources.getColor(R.color.tempbasal); + return MainApp.gc(R.color.tempbasal); else if (isValid) return Color.CYAN; else diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/TreatmentsFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/TreatmentsFragment.java index fe79f8555b..ea75dfad6a 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/TreatmentsFragment.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/TreatmentsFragment.java @@ -107,13 +107,13 @@ public class TreatmentsFragment extends SubscriberFragment implements View.OnCli } private void setBackgroundColorOnSelected(TextView selected) { - treatmentsTab.setBackgroundColor(MainApp.sResources.getColor(R.color.defaultbackground)); - extendedBolusesTab.setBackgroundColor(MainApp.sResources.getColor(R.color.defaultbackground)); - tempBasalsTab.setBackgroundColor(MainApp.sResources.getColor(R.color.defaultbackground)); - tempTargetTab.setBackgroundColor(MainApp.sResources.getColor(R.color.defaultbackground)); - profileSwitchTab.setBackgroundColor(MainApp.sResources.getColor(R.color.defaultbackground)); - careportalTab.setBackgroundColor(MainApp.sResources.getColor(R.color.defaultbackground)); - selected.setBackgroundColor(MainApp.sResources.getColor(R.color.tabBgColorSelected)); + treatmentsTab.setBackgroundColor(MainApp.gc(R.color.defaultbackground)); + extendedBolusesTab.setBackgroundColor(MainApp.gc(R.color.defaultbackground)); + tempBasalsTab.setBackgroundColor(MainApp.gc(R.color.defaultbackground)); + tempTargetTab.setBackgroundColor(MainApp.gc(R.color.defaultbackground)); + profileSwitchTab.setBackgroundColor(MainApp.gc(R.color.defaultbackground)); + careportalTab.setBackgroundColor(MainApp.gc(R.color.defaultbackground)); + selected.setBackgroundColor(MainApp.gc(R.color.tabBgColorSelected)); } @Subscribe diff --git a/app/src/main/java/info/nightscout/androidaps/tabs/SlidingTabStrip.java b/app/src/main/java/info/nightscout/androidaps/tabs/SlidingTabStrip.java index 587850f678..6c8e034477 100644 --- a/app/src/main/java/info/nightscout/androidaps/tabs/SlidingTabStrip.java +++ b/app/src/main/java/info/nightscout/androidaps/tabs/SlidingTabStrip.java @@ -62,7 +62,7 @@ class SlidingTabStrip extends LinearLayout { DEFAULT_BOTTOM_BORDER_COLOR_ALPHA); mDefaultTabColorizer = new SimpleTabColorizer(); - mDefaultTabColorizer.setIndicatorColors(MainApp.sResources.getColor(R.color.tabBgColorSelected)); + mDefaultTabColorizer.setIndicatorColors(MainApp.gc(R.color.tabBgColorSelected)); mBottomBorderThickness = (int) (DEFAULT_BOTTOM_BORDER_THICKNESS_DIPS * density); mBottomBorderPaint = new Paint(); From 56cbac3b4d93924a1d54530af38d4f7dab150ece Mon Sep 17 00:00:00 2001 From: Johannes Mockenhaupt Date: Sun, 6 May 2018 11:49:16 +0200 Subject: [PATCH 42/46] Leftover MainApp.gs rewrite. --- .../nightscout/androidaps/plugins/Insulin/InsulinFragment.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Insulin/InsulinFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/Insulin/InsulinFragment.java index a171d646e9..a524a5b318 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Insulin/InsulinFragment.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Insulin/InsulinFragment.java @@ -52,7 +52,7 @@ public class InsulinFragment extends Fragment { private void updateGUI() { insulinName.setText(ConfigBuilderPlugin.getActiveInsulin().getFriendlyName()); insulinComment.setText(ConfigBuilderPlugin.getActiveInsulin().getComment()); - insulinDia.setText(MainApp.sResources.getText(R.string.dia) + " " + Double.toString(ConfigBuilderPlugin.getActiveInsulin().getDia()) + "h"); + insulinDia.setText(MainApp.gs(R.string.dia) + " " + Double.toString(ConfigBuilderPlugin.getActiveInsulin().getDia()) + "h"); insulinGraph.show(ConfigBuilderPlugin.getActiveInsulin()); } From b08332e340da14654c8d7f2b42e4a8f607ea84fa Mon Sep 17 00:00:00 2001 From: Radoslav Radev Date: Sun, 6 May 2018 14:49:10 +0300 Subject: [PATCH 43/46] bg translation --- app/src/main/res/values-bg/strings.xml | 64 +++++++++++++++++++++----- 1 file changed, 53 insertions(+), 11 deletions(-) diff --git a/app/src/main/res/values-bg/strings.xml b/app/src/main/res/values-bg/strings.xml index 6437f3fa35..13c22801e1 100644 --- a/app/src/main/res/values-bg/strings.xml +++ b/app/src/main/res/values-bg/strings.xml @@ -1,6 +1,6 @@ - Настройки на сигурността + Настройки на сигурността Максимален инсулин при болус [единици] Максимални въглехидрати [гр] Опции @@ -10,7 +10,7 @@ Изход Използвай удължен болус за над 200% DanaR Bluetooth устройство - Използване на абсолютни стойности за базал + Използване на абсолютни стойности за базал Рестартирайте телефона или AndroidAPS от системните настройки или Android APS няма да записва проблемите (което е важно за работата на алгоритъма)! Цел: Действие: @@ -35,12 +35,12 @@ Инс: IOB: Общо IOB: - Количество въглехидрати - Количество инсулин + Въглехидрати (гр.): + Ед. инсулин: КЗ ВХ Корекция - Ед + Ед. IOB от болуси Старт сега Базова базална стойност @@ -157,7 +157,7 @@ Друго Глюкомер Сензор - ВХ + Въглехидрати Инсулин ВХ след Разделяне @@ -235,7 +235,7 @@ Пръст Сензор Ръчно - Времена цел + Временна цел Откажи временна цел DanaR профил DIA (Време на действие на инсулина) ч.: @@ -248,7 +248,7 @@ DS болус DE болус грешка - пълнене + презареждане базал по часове КЗ въглехидрати @@ -262,7 +262,7 @@ Инсулин за деня Грешки КЗ - Пълнене + Презареждане Спиране Свързва се с помпата за %d сек. Парола за помпата @@ -784,7 +784,7 @@ Разреши SMB постоянно "Разрешава SMB постоянно и независимо от болусите. Възможно само с източник на КЗ с добра филтрация като G5 " Разреши SMB след въглехидрати - Разрешава SMB 6 часа след въглехидрати, дори при COB=0. Възможно само с източник на КЗ с добра филтрация като G5 + "Разрешава SMB 6 часа след въглехидрати, дори при COB=0. Възможно само с източник на КЗ с добра филтрация като G5 приложение " Разреши SMB с COB Разрешава SMB, когато има активни COB Разреши SMB с временни цели @@ -801,7 +801,7 @@ Количество инсулин за добавяне при натискане на бутона Не може да се използва CGM приложението. Уверете се, че е инсталирано. CGM - Браузър за исторя + История Уведомяване при SMB Покажи SMB на часовника като стандартен болус. Създаване на известие при грешки @@ -827,4 +827,46 @@ Прочита базалният профил "Историята на помпата се промени след извършване на изчислението за болус. Болусът не беше доставен. Моля, преизчислете дали все още е необходим болус. Ако се изисква същото болусно количество, моля, изчакайте две минути, тъй за това време болусите с едно и също количество са блокирани от съображения за безопасност " " http://www.androidaps.org facebook: http://facebook.androidaps.org" + Старт на вр.цел за физ. активност + Старт на вр. цел за Eating soon + Вр.цел + Старт на вр. цел при хипо + ЦЕЛ %d не е стартирана + ЦЕЛ %d не е завършена + Помпата не може да подава временен базал + Няма валидна базална прочетена от помпата + Closed loop е забранен в настройките + Аутосенс е забранен в настройките + SMB е забранен в настройките + Ограничаване на макс. базална стойност до %.2f Е/ч поради %s + лимит на помпата + трябва да бъде положително число + множител на макс. базал + множител на макс. дневен базал + Болус беше доставен през последните 3 мин, пропуска SMB + Базалът е зададен коректно + Ограничаване на максималната процентна стойност до %d%% поради %s + Ограничаване на болус до %.1f Е поради %s + Ограничаване на макс. IOB до %.1f Е поради %s + Ограничаване на въглехидрати до %d гр. поради %s + Ограничаване на IOB до %.1f Е поради %s + макс. стойност в настройките + опасно използване + Прочитането на статуса се провали + Записано смяна на сет + Записано смяна на резервоар + SMB \"винаги\" и \"след въглехидрати\" е забранен, защото е активен източник на КЗ, който не поддържа необходимата филтрация + SMB не е позволен в режим open loop + Храна + Очаква време за синхронизация (%d sec) + Прекъснат (%d m) + Автоматично careportal събитие + Автоматично изпраща смяна на резервоар, сет и аларми на помпата към Nightscout + Максималният общ IOB OpenAPS не може да бъде повече от [U] + Помпата е спряна + Помпата е стартирана + Помпата е на пауза + Макс. време за усвояване на храна (часа) + Време за което всяко хранене се счита за усвоено. Оставащите въглехидрати ще бъдат изчиствани. + Време From 7b73c59ee52f9b84ffff00620115818dc25c46f2 Mon Sep 17 00:00:00 2001 From: pedroll Date: Sat, 5 May 2018 14:19:24 +0200 Subject: [PATCH 44/46] Spanish translation 2 --- app/src/main/res/values-es/strings.xml | 142 ++++++++++++------------- 1 file changed, 71 insertions(+), 71 deletions(-) diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 2fd5503f32..0eacae6e38 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -247,7 +247,7 @@ glucosa carbohidratos alarma - Total %d registros subidos + Total %d registros subidos S bolo alarmas Basal Horas @@ -258,7 +258,7 @@ Glucosa Rellenar Suspender - Conexión de %d s + Conexión de %d s Contraseña de la bomba Contraseña de la bomba incorrecta! Bomba ocupada @@ -269,7 +269,7 @@ Oclusión Detener Parar pulsado - Se entregará %.2fU + Se entregará %.2fU Configuración de visualización y monitoreo, y el análisis de los basales y ratios Comprobar que los datos de BG están disponibles en Nightscout, y que los datos de la bomba de insulina se están subiendo Empezar con bucle abierto @@ -334,7 +334,7 @@ Sueco Max U/h para el perfil base "Max IOB basal OpenAPs puede emitir " - Para enviar calibracion %.2f responder con código %s + Para enviar calibracion %.2f responder con código %s Entregaré %.2fU Duración de acitividad de insulina %.2f limitado a %.2f @@ -359,7 +359,7 @@ Batería de la bomba descargada DanaR Korean Ratio Basal: - Error en ajuste de perfil basal + Error al activar perfil basal Perfil basal actualizado en bomba Inhabilitar EasyUI modo en bomba Habilitar bolos extendidos en bomba @@ -375,20 +375,20 @@ %dmin antes Perfil Local OpenAPS AMA - Media corta delta - Media Larga Delta + Delta media corta + Delta media larga Matriz de %d elementos. Valor actual: Datos Autosens Script debug Usar característica AMA autosens Renovar datos desde NS - Comida temprano - Hypo + ComidendoPronto + Hipo Actividad Eliminar registro: DanaR Stats - Dosis diaria cumulativa - "Dosis diaria ampliada exponencialmente " + TDD acumulativa + "TDD ampliada exponencialmente " Basal Bolo Dosis diaria @@ -426,21 +426,21 @@ "Ajuste pro defecto: 4 Esto es la otra mitad de los ajustes de seguridad de OpenAPS y la otra mitad de \"3x max diario, 4x actual\". Esto significa, que tu base no puede ser mas alta que el numero que multiplica tu base. Esto es para evitar que las personas se encuentren en situaciones peligrosas por aumentar mucho la base sin entender el algoritmo del sistema. El ajuste por defecto es x4. La mayoría de las personas nunca tendra que cambiar estos ajustes, si no debe modificar otros ajustes en la terapia. " "Ajuste por defecto: 1.2\nEsto es un multilicador para autosens (y pronto autotune) para poner un 20% limite máximo a la cota de autosens ratio, la que determina cuantos ajustes autosens puede hacer a la base, a cuanto puede ajustar ISF y a cuanto puede bajar el objective de glucosa. " Ajuste pro defecto: 0.7\nEl otro lade de limitaciones de seguridad de autosens, limitando a cuanto puede bajar la base y a cuanto puede subir ISF y BG objectivos. - Ajuste pro defcto: true\nEsto se usa para permitir autosens a ajustar objectivos BG en addicion a ISF y bases. - Ajuste pro defecto: 2 \nDormir bolo es iniciado después de proveder un bolo para comida, así el loop no interactuará con low temps cuando acabas de comer. El ajuste pro defecto es 2; quiere decir con el DIA de 3 h el bolo será dormido por fases por 1.5 h (3DIA/2). - "Ajustes pro defecto: 3.0\nEsto es un ajuste pro defecto para la absorcion de carbohidratos pro 5 minutos. Por defecto se espera 3mg/dl/5min. Esto afecta la velocidad de reduccion de COB y cuanta absorcion se usa para calcular el BG futuro previsto, si la glucosa diminua mas de lo previsto o aumenta mas de lo previsto. " - "Atención!\nNormalment no tienes que editar los valores a continuacion. Por favor PINCHA AQUI y LEE el texto y PROCURA ENTENDER antes de cambiar alguno de los valores. " + Ajuste por defecto: true\nEsto se usa para permitir autosens a ajustar objectivos BG ademas de ISF y bases. + Ajuste por defecto: 2 \nDormir bolo es iniciado después de proveder un bolo para comida, así el loop no interactuará con low temps cuando acabas de comer. El ajuste pro defecto es 2; quiere decir con el DIA de 3 h el bolo será dormido por fases por 1.5 h (3DIA/2). + "Ajustes pro defecto: 3.0\nEsto es un ajuste pro defecto para la absorción de carbohidratos pro 5 minutos. Por defecto se espera 3mg/dl/5min. Esto afecta la velocidad de reducción de COB y cuanta absorción se usa para calcular el BG futuro previsto, si la glucosa diminua mas de lo previsto o aumenta mas de lo previsto. " + "Atención!\nNormalment no tienes que editar los valores a continuación. Por favor PINCHA AQUI y LEE el texto y PROCURA ENTENDER antes de cambiar alguno de los valores. " numero de telefonp incorrecto Copiar al Clipboard Copiado al clipboard mostrar log - Calibracion - Calibracion - Mandar calibracion %.1f a xDrip? + Calibración + Calibración + Mandar calibración %.1f a xDrip? xDrip+ no instalado - Calibracion mandada a xDrip - Calibracion remota no admitida - Mandar calibracion tiene que ser activada en xDrip. + Calibración mandada a xDrip + Calibración remota no admitida + Mandar calibración tiene que ser activada en xDrip. xDrip no recibe calibraciones bomba parada recibir estado de bomba @@ -487,9 +487,9 @@ Adulto Por favor elige edad del paciente para emplear limites de seguridad Glimp - Aparato parece no soportar optimizacion de bateria whitelisting! - Por favor permita Permission - %s necesita optimizacion de bateria whitelisting para funcionar bien + Aparato parece no soportar optimización de bateria whitelisting! + Por favor conceda permiso + %s necesita optimización de bateria whitelisting para funcionar bien Loop desactivado desactivado (%d m) Superbolus (%d m) @@ -503,14 +503,14 @@ Desconectar bomba por 2 h Desconectar bomba por 3 h Reiniciar - duracion incorrecta + duración incorrecta Loop desactivado Loop reiniciado Tendencia 15 min COB Superbolo Indica app start en NS - Saliendo de la aplicacion para aplicar ajustes. + Saliendo de la aplicación para aplicar ajustes. DanaRv2 Insulina Insulina acción rápida @@ -519,7 +519,7 @@ INS Insulina acción rápida prolongada activar superbolo en wizard - Activar función superbolo en wizard. No lo actives hasta que hayas aprendido lo que realmente hace. PUEDE CAUSAR SOBREDOSIS DE INSULINA usandolo sin precaucion! + Activar función superbolo en wizard. No lo actives hasta que hayas aprendido lo que realmente hace. PUEDE CAUSAR SOBREDOSIS DE INSULINA usandolo sin precaución! IOB COB Firmware @@ -557,14 +557,14 @@ Stale data threshold [min] Urgent stale data threshold [min] Interval para autosens [h] - Horas en el pasado para detectar sensividad (tiempo de absorcion de carbohidratos no incluidos) + Horas en el pasado para detectar sensibilidad (tiempo de absorción de carbohidratos no incluidos) Bomba OpenAPS Uploader - Detección sensivilidad + Detección sensibilidad SENS - Sensitivity Oref0 - Sensitivity AAPS + Sensibilidad Oref0 + Sensibilidad AAPS Ajustes absorción Tiempo max absorción comida [h] Tiempo esperado en el que todos los carbohidratos son absorbados @@ -577,15 +577,15 @@ UPLD BAS EXT - Pantalla de protección + Bloqueo de Pantalla Bloqueo - Al activar autosens recuerda editar todos carbohidratos comidos. Si no, sensividad será calculada incorrectamente !!! + Al activar autosens recuerda editar todos carbohidratos comidos. Si no, sensibilidad será calculada incorrectamente !!! Sensitivity WeightedAverage OK Cancelar Faltan perfiles! Valores no guardados! - Activar mensajes a otras aplicaciónes (como xDrip). + Activar mensajes a otras aplicaciones (como xDrip). Activar mensajes locales. ACTIVITY Y FEEDBACK CARBS Y BOLUS @@ -644,7 +644,7 @@ ]]> Esperando terminar bolo. Faltan %d seg. Processando - "Iniciando emision bolo " + "Iniciando emisión bolo " Orden se esta efectuando en este momento control de la bomba corigido bomba no alcanzable @@ -668,20 +668,20 @@ En xDrip elige 640g/Eversense date source NSClient BG Valor base remplazado por valor mínimo - Calculo BG - Calculo bolo IOB - Calculo base IOB - Calculo tendencia - Calculo superbolo + Cálculo BG + Cálculo bolo IOB + Cálculo base IOB + Cálculo tendencia + Cálculo superbolo Si No Solo positivo Solo negativo - Calculo COB - Calculo objectivo temporal + Cálculo COB + Cálculo objectivo temporal Loop activado APS seleccionado - NSClient tiene permission de escribir + NSClient tiene permiso para escribir Modo cerrado activado Máximo IOB puesto correctamente BG adquirible del origen seleccionado @@ -691,7 +691,7 @@ Actualizar Estado Actividad - Ninguna coneccnion por %d min + Ninguna conexión por %d min %d%% (%d min restan) Apagado por error Apagado por usario @@ -701,7 +701,7 @@ Emitiendo bolo (%.1f U) Actualizando "Acción no disponible en la bomba " - Uso inseguro: bolo prolongado o multiwave activo. Modo Loop ha sido puesto a baja emision para solo 6 horas. Solo bolo normal se puede emitir en modo loop. + Uso inseguro: bolo prolongado o multiwave activo. Modo Loop ha sido puesto a baja emisión para solo 6 horas. Solo bolo normal se puede emitir en modo loop. "Uso inseguro: la bomba usa base diferente a la primera. El loop ha sido apagado. Elige primero perfil en la bomba y acualiza. " Un bolo de mismo valor ha sido dado durante el pasado minuto. Para evitar bolos dobles y asegurarse contra bugs esto no es permitido. Ahora @@ -717,23 +717,23 @@ Se necesita actualizar reloj de la bomba Alerta TBR cancelada, advertencia acceptada - Emision del bolo fallada. Ningún bolo se ha emitido. Para asegurarse, por favor controle la bomba para evitar bolo doble. Para evitar bugs no se reinician bolos automaticamente. + Emisión del bolo fallada. Ningún bolo se ha emitido. Para asegurarse, por favor controle la bomba para evitar bolo doble. Para evitar bugs no se reinician bolos automaticamente. "Solo %.2f U del bolo mandado de %.2f U ha sido emitido por causa de un error. Por favorn controla la bomba para confirmar y toma acciones apropiadas. " "Fallo de emitir bolo y de controlar historical de la bomba.Por favor controla manualmente y crea un record en Careportal si el bolo ha sido emitido. " Reestablecido conexión fallada. "No hay suficiente insulina en el deposito para emitir bolo. " "Error al emitir bolo prolongado. " - bomba no alcanzable treshold [min] - "Actual multiplicador Basal de seguridad " + Bomba no alcanzable durante [min] + Múltiples bolos con la misma cantidad en el mismo minuto fueron importados. Solo se puede agregar un registro a los tratamientos. Verifique la bomba y agregue manualmente un registro de bolo usando la pestaña Careportal. Asegúrese de crear un bolo con un tiempo que no use otro bolo. Comprobando cambios en el historial Tasa Basal cambiada en bomba, pero falló al leer La tasa Basal en la bomba ha cambiado y será actualizada pronto Actualizando estado bomba - Rechazando temporal alta ya que el calculo no consideró loscambios recientes en el historial de la bomba + Rechazando temporal alta ya que el calculo no consideró los cambios recientes en el historial de la bomba El bolus se administró con éxito, pero no se pudo agregar la entrada al tratamiento. Esto puede suceder si se administran dos bolos pequeños del mismo tamaño en los últimos dos minutos. Verifique el historial de la bomba y las entradas de tratamiento y use Careportal para agregar entradas faltantes. Asegúrese de no agregar ninguna entrada para el mismo minuto exacto y la misma cantidad. El historial de la bomba ha cambiado después de que se realizó el cálculo del bolo. El bolo no fue entregado. Por favor, vuelva a calcular si aún se necesita un bolo. Si se requiere la misma cantidad de bolo, espere dos minutos ya que los bolos con la misma cantidad se bloquean cuando se solicita con menos de dos minutos entre ellos por seguridad (independientemente de si se administraron o no). Leyendo perfil basal - Inicio Hypo TT + Inicio TT Hipo Ninguna acción seleccionada, nada sucederá Basales Carbohidratos activos COB @@ -748,7 +748,7 @@ min TT Inicio TT Actividad - Inicio TT Comiendo pronto + Inicio TT ComiendoPronto Por favor actualiza la app G5, a una soportada Permita que los informes automáticos de errores y los datos de uso de funciones se envíen a los desarrolladores a través del servicio fabric.io. Fabric Upload @@ -756,14 +756,14 @@ Predicciones Mostrar predicciones en el reloj Crear notificaciones en Nightscout para diálogos de error y alertas locales (también visibles en Careportal en Tratamientos) - "Crear notificaciones de los errores " + "Crear notificaciones de los errores" Muestre SMB en el reloj como un bolo estándar. Notificar cada SMB Historial CGM No se pudo iniciar la aplicación CGM. Asegúrate de que está instalada. Cantidad de insulina que se agrega cuando se presiona el botón - "Cantidad de Carbohidratos que agregar cuando se presiona el botón " + "Cantidad de Carbohidratos que se agregan cuando se presiona el botón " Abre xDrip+, los botones Atrás regresan a AAPS Envía una calibración a xDrip + o abre el diálogo de calibración G5 Botones @@ -781,9 +781,9 @@ Habilitar SMB durante 6 h después de Carbohidratos, incluso con 0 COB. Solo posible con fuente BG con buen filtrado de datos como G5 Habilitar SMB siempre de forma independiente a los Bolos. Solo posible con fuente BG con buen filtrado de datos como G5 Habilitar SMB después de Carbohidratos - Habilitar SMB cuando hay un Objetivo Temporal (TT) ALTO activo (ejercicio) + Habilitar SMB cuando hay un Objetivo Temporal (TT) ALTO activo (Actividad) Habilitar SMB con Objetivo Temporal Alto - Habilitar SMB cuando hay un Objetivo Temporal (TT) activo (comer pronto, ejercicio) + Habilitar SMB cuando hay un Objetivo Temporal (TT) activo (ComerPronto, Actividad) Habilitar SMB con Objetivos Temporales Habilitar SMB cuando hay Carbohidratos Activo COB. Habilitar SMB con COB @@ -801,10 +801,10 @@ Esperando código de confirmación Desconocido Aplicación Companion incompatible, necesitamos la versión - Companion app does not appear to be installed! + Companion app parece no instalada! ¡La aplicación Companion no parece estar instalada! Permanecer siempre conectado - Usar cancelacion Basal Temporal TBR real + Usar cancelación Basal Temporal TBR real Actualmente, cancelar una Basal Temporal TBR (crea una alarma de bomba) en su lugar establecer el 90% durante 1 minuto Advertencia W31: Cartucho insulina bajo Advertencia W32: Bateria baja @@ -813,7 +813,7 @@ Advertencia W36: Basal Temporal cancelada Warning W38: Bolo cancelado Warning W39: Adevertencia tiempo de prestamo - Smb administrado por bomba + SMB administrado por bomba Inicializando SMB Activar UAM @@ -845,8 +845,8 @@ total con Bomba inalcanzable. No se administró ningún Bolo Autosens también ajusta los objetivos - Duración hipo - Objetivo hipo + Duración Hipo + Objetivo Hipo m h Objetivo %d no iniciado @@ -865,10 +865,10 @@ Basal establecida correctamente Limitando porcentaje máximo de tasa a %d%% debido a %s "Limitando el bolo a %.1f U debido a %s " - Limitando max IOB to %.1f U because of %s - Limitando carbs to %d g because of %s - Limitando IOB to %.1f U because of %s - valor máximo en preferencias + Limitando max IOB to %.1f U debido a %s + Limitando carbs to %d g debido a %s + Limitando IOB to %.1f U debido a %s + Valor máximo en preferencias Limite estricto uso no seguro Error al leer estado @@ -880,7 +880,7 @@ reset Esperando para sincronización de tiempo (%d sec) Desconectado (%d m) - Eventos Careportal automaticos + Eventos Careportal automáticos "Subi automáticamente la insulina, la cánula y los cambios de batería y las alarmas de bombeo a Nightscout " Este valor se denomina IOB máx. En el contexto de OpenAPS. OpenAPS no agregará más insulina si el IOB actual es mayor que este valor. Tiempo máximo de absorción de la comida [h] @@ -892,19 +892,19 @@ Segundo incremento insulina Tercer incremento insulina Primer incremento carbohidratos - Segundo incremento carbohidratos - Tercer incremento carbohidratos + Segundo incremento carbohidratos + Tercer incremento carbohidratos CGM Usar solo WIFI WIFI SSID - Ajustes coneción + Ajustes conexión SSID\'s permitido (separados por punto y coma) Permitir conexión en roaming "Proporción de autosens máximos " "Proporción autosens mínima " Máximo multiplicador diario de seguridad "Multiplicador de seguridad basal actual " - DIA divisor de repeticion de bolo + DIA Divisor para suspensión de bolos El máximo total de IOB OpenAPS no puede rebasar [U] n/a Bomba parada @@ -938,6 +938,6 @@ Asistente configuración Calculos incluidos en el resultado del asistente Mostrar configuración - Configuracion general - + Configuración general + Rumano From 0d2a0798f707e210599223dc9f2886cc97ae9c15 Mon Sep 17 00:00:00 2001 From: pedroll Date: Sun, 6 May 2018 19:50:28 +0200 Subject: [PATCH 45/46] Spanish translation 2 --- app/src/main/res/values-es/strings.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 0eacae6e38..a39ab1ce48 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -577,7 +577,7 @@ UPLD BAS EXT - Bloqueo de Pantalla + Bloqueo de pantalla Bloqueo Al activar autosens recuerda editar todos carbohidratos comidos. Si no, sensibilidad será calculada incorrectamente !!! Sensitivity WeightedAverage @@ -670,7 +670,7 @@ Valor base remplazado por valor mínimo Cálculo BG Cálculo bolo IOB - Cálculo base IOB + Cálculo basal IOB Cálculo tendencia Cálculo superbolo Si @@ -804,7 +804,7 @@ Companion app parece no instalada! ¡La aplicación Companion no parece estar instalada! Permanecer siempre conectado - Usar cancelación Basal Temporal TBR real + Usar cancelación Basal Temporal (TBR) real Actualmente, cancelar una Basal Temporal TBR (crea una alarma de bomba) en su lugar establecer el 90% durante 1 minuto Advertencia W31: Cartucho insulina bajo Advertencia W32: Bateria baja From 785c4028485739f5c8bdb115e5afdd073db181f1 Mon Sep 17 00:00:00 2001 From: Johannes Mockenhaupt Date: Mon, 7 May 2018 01:33:16 +0200 Subject: [PATCH 46/46] LP: Don't notify about invalid values during editing. --- .../java/info/nightscout/androidaps/data/Profile.java | 9 +++++++-- .../plugins/ProfileLocal/LocalProfilePlugin.java | 2 +- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/info/nightscout/androidaps/data/Profile.java b/app/src/main/java/info/nightscout/androidaps/data/Profile.java index 783124168f..374612f2f5 100644 --- a/app/src/main/java/info/nightscout/androidaps/data/Profile.java +++ b/app/src/main/java/info/nightscout/androidaps/data/Profile.java @@ -180,6 +180,10 @@ public class Profile { } public synchronized boolean isValid(String from) { + return isValid(from, true); + } + + public synchronized boolean isValid(String from, boolean notify) { if (!isValid) return false; if (!isValidated) { @@ -207,7 +211,7 @@ public class Profile { if (pump != null && !pump.getPumpDescription().is30minBasalRatesCapable) { for (int index = 0; index < basal_v.size(); index++) { long secondsFromMidnight = basal_v.keyAt(index); - if (secondsFromMidnight % 3600 != 0) { + if (notify && secondsFromMidnight % 3600 != 0) { Notification notification = new Notification(Notification.BASAL_PROFILE_NOT_ALIGNED_TO_HOURS, String.format(MainApp.gs(R.string.basalprofilenotaligned), from), Notification.NORMAL); MainApp.bus().post(new EventNewNotification(notification)); } @@ -220,7 +224,8 @@ public class Profile { for (int i = 0; i < basal_v.size(); i++) { if (basal_v.valueAt(i) < description.basalMinimumRate) { basal_v.setValueAt(i, description.basalMinimumRate); - sendBelowMinimumNotification(from); + if (notify) + sendBelowMinimumNotification(from); } } } else { diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/ProfileLocal/LocalProfilePlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/ProfileLocal/LocalProfilePlugin.java index ce190b691b..c132196228 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/ProfileLocal/LocalProfilePlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/ProfileLocal/LocalProfilePlugin.java @@ -177,7 +177,7 @@ public class LocalProfilePlugin extends PluginBase implements ProfileInterface { } public synchronized boolean isValidEditState() { - return createProfileStore().getDefaultProfile().isValid(MainApp.gs(R.string.localprofile)); + return createProfileStore().getDefaultProfile().isValid(MainApp.gs(R.string.localprofile), false); } @NonNull