diff --git a/README.md b/README.md index 54d9bb092a..a9dd5a41f4 100644 --- a/README.md +++ b/README.md @@ -6,4 +6,6 @@ [![Gitter](https://badges.gitter.im/MilosKozak/AndroidAPS.svg)](https://gitter.im/MilosKozak/AndroidAPS?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) [![Build status](https://travis-ci.org/MilosKozak/AndroidAPS.svg?branch=master)](https://travis-ci.org/MilosKozak/AndroidAPS) [![codecov](https://codecov.io/gh/MilosKozak/AndroidAPS/branch/master/graph/badge.svg)](https://codecov.io/gh/MilosKozak/AndroidAPS) -dev: [![codecov](https://codecov.io/gh/MilosKozak/AndroidAPS/branch/dev/graph/badge.svg)](https://codecov.io/gh/MilosKozak/AndroidAPS) \ No newline at end of file +dev: [![codecov](https://codecov.io/gh/MilosKozak/AndroidAPS/branch/dev/graph/badge.svg)](https://codecov.io/gh/MilosKozak/AndroidAPS) + +[![Donate via PayPal](https://www.paypalobjects.com/en_US/i/btn/btn_donateCC_LG.gif)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=Y4LHGJJESAVB8) diff --git a/app/src/main/java/info/nightscout/androidaps/Constants.java b/app/src/main/java/info/nightscout/androidaps/Constants.java index 56fd2b6de9..a66d4e77f1 100644 --- a/app/src/main/java/info/nightscout/androidaps/Constants.java +++ b/app/src/main/java/info/nightscout/androidaps/Constants.java @@ -12,7 +12,7 @@ public class Constants { public static final double MMOLL_TO_MGDL = 18; // 18.0182; public static final double MGDL_TO_MMOLL = 1 / MMOLL_TO_MGDL; - public static final double defaultDIA = 3d; + public static final double defaultDIA = 5d; public static final Double REALLYHIGHBASALRATE = 1111111d; public static final Integer REALLYHIGHPERCENTBASALRATE = 1111111; 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/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/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/db/ExtendedBolus.java b/app/src/main/java/info/nightscout/androidaps/db/ExtendedBolus.java index 1123cb58df..ea97f4ddca 100644 --- a/app/src/main/java/info/nightscout/androidaps/db/ExtendedBolus.java +++ b/app/src/main/java/info/nightscout/androidaps/db/ExtendedBolus.java @@ -58,7 +58,7 @@ public class ExtendedBolus implements Interval, DataPointWithLabelInterface { public int durationInMinutes = 0; // duration == 0 means end of extended bolus @DatabaseField - public int insulinInterfaceID = InsulinInterface.FASTACTINGINSULIN; + public int insulinInterfaceID = InsulinInterface.OREF_RAPID_ACTING; @DatabaseField public double dia = Constants.defaultDIA; diff --git a/app/src/main/java/info/nightscout/androidaps/interfaces/InsulinInterface.java b/app/src/main/java/info/nightscout/androidaps/interfaces/InsulinInterface.java index a123554ae8..34b14d9b5d 100644 --- a/app/src/main/java/info/nightscout/androidaps/interfaces/InsulinInterface.java +++ b/app/src/main/java/info/nightscout/androidaps/interfaces/InsulinInterface.java @@ -8,8 +8,8 @@ import info.nightscout.androidaps.plugins.Treatments.Treatment; */ public interface InsulinInterface { - int FASTACTINGINSULIN = 0; - int FASTACTINGINSULINPROLONGED = 1; + // int FASTACTINGINSULIN = 0; // old model no longer available + // int FASTACTINGINSULINPROLONGED = 1; // old model no longer available int OREF_RAPID_ACTING = 2; int OREF_ULTRA_RAPID_ACTING = 3; int OREF_FREE_PEAK = 4; 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 fb152a4cb0..e92ca52cd9 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/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()); } 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/plugins/Overview/Dialogs/NewCarbsDialog.java b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/NewCarbsDialog.java index c60d237882..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 @@ -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,15 +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; @@ -334,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()) { @@ -364,48 +360,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, CareportalEvent.CARBCORRECTION, 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 +408,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/Overview/Dialogs/NewInsulinDialog.java b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/NewInsulinDialog.java index 3539bee093..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 @@ -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/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java index 3d0970f8f4..7d7c0e7efb 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); @@ -281,7 +281,7 @@ public class OverviewFragment extends Fragment implements View.OnClickListener, acceptTempLayout = (LinearLayout) view.findViewById(R.id.overview_accepttemplayout); notificationsView = (RecyclerView) view.findViewById(R.id.overview_notifications); - notificationsView.setHasFixedSize(true); + notificationsView.setHasFixedSize(false); llm = new LinearLayoutManager(view.getContext()); notificationsView.setLayoutManager(llm); @@ -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/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) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/notifications/NotificationRecyclerViewAdapter.java b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/notifications/NotificationRecyclerViewAdapter.java index 1b1487bbaa..5024c2699a 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/notifications/NotificationRecyclerViewAdapter.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/notifications/NotificationRecyclerViewAdapter.java @@ -44,7 +44,7 @@ public class NotificationRecyclerViewAdapter extends RecyclerView.Adapter 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/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/CarbsGenerator.java b/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/CarbsGenerator.java new file mode 100644 index 0000000000..99168a2776 --- /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, CareportalEvent.MEALBOLUS, notes); + } + } + + public static void createCarb(int carbs, long time, String eventType, @Nullable String notes) { + DetailedBolusInfo carbInfo = new DetailedBolusInfo(); + carbInfo.date = time; + carbInfo.eventType = eventType; + 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/Treatments/Treatment.java b/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/Treatment.java index 1983c38242..4dcced443a 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 @@ -57,7 +57,7 @@ public class Treatment implements DataPointWithLabelInterface { public boolean isSMB = false; @DatabaseField - public int insulinInterfaceID = InsulinInterface.FASTACTINGINSULIN; // currently unused, will be used in the future + public int insulinInterfaceID = InsulinInterface.OREF_RAPID_ACTING; // currently unused, will be used in the future @DatabaseField public double dia = Constants.defaultDIA; // currently unused, will be used in the future @@ -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/plugins/Wear/ActionStringHandler.java b/app/src/main/java/info/nightscout/androidaps/plugins/Wear/ActionStringHandler.java index d64ee24a30..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 @@ -19,6 +19,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; @@ -42,6 +43,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; @@ -326,6 +328,27 @@ 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); + } + if(carbsAfterConstraints <= 0){ + sendError("Carbs = 0! No action taken!"); + return; + } + rAction += "ecarbs " + carbsAfterConstraints + " " + starttimestamp + " " + duration; + } else return; @@ -578,7 +601,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); @@ -591,12 +614,28 @@ 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) { + CarbsGenerator.createCarb(carbs, time, CareportalEvent.CARBCORRECTION, "watch"); + } else { + CarbsGenerator.generateCarbs(carbs, time, duration, "watch eCarbs"); + } + } + } + private static void setCPP(int timeshift, int percentage) { String msg = ""; 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..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; @@ -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){ diff --git a/app/src/main/java/info/nightscout/androidaps/receivers/NetworkChangeReceiver.java b/app/src/main/java/info/nightscout/androidaps/receivers/NetworkChangeReceiver.java index 4e01066bf9..a8bd49f430 100644 --- a/app/src/main/java/info/nightscout/androidaps/receivers/NetworkChangeReceiver.java +++ b/app/src/main/java/info/nightscout/androidaps/receivers/NetworkChangeReceiver.java @@ -36,7 +36,7 @@ public class NetworkChangeReceiver extends BroadcastReceiver { NetworkInfo activeNetwork = cm.getActiveNetworkInfo(); if (activeNetwork != null) { - if (activeNetwork.getType() == ConnectivityManager.TYPE_WIFI) { + if (activeNetwork.getType() == ConnectivityManager.TYPE_WIFI && activeNetwork.isConnected()) { event.wifiConnected = true; WifiManager wifiManager = (WifiManager) MainApp.instance().getApplicationContext().getSystemService(Context.WIFI_SERVICE); if (wifiManager != null) { 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(); diff --git a/app/src/main/res/layout/overview_notification_item.xml b/app/src/main/res/layout/overview_notification_item.xml index 1f10a9336e..fa383893c2 100644 --- a/app/src/main/res/layout/overview_notification_item.xml +++ b/app/src/main/res/layout/overview_notification_item.xml @@ -5,6 +5,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center" + android:layout_margin="1dp" card_view:cardBackgroundColor="@color/cardColorBackground" card_view:cardCornerRadius="6dp"> @@ -15,7 +16,7 @@ - Настройки на сигурността +Настройки на сигурността Максимален инсулин при болус [единици] Максимални въглехидрати [гр] Опции @@ -10,7 +10,7 @@ Изход Използвай удължен болус за над 200% DanaR Bluetooth устройство - Използване на абсолютни стойности за базал + Използване на абсолютни стойности за базал Рестартирайте телефона или AndroidAPS от системните настройки или Android APS няма да записва проблемите (което е важно за работата на алгоритъма)! Цел: Действие: @@ -35,12 +35,12 @@ Инс: IOB: Общо IOB: - Количество въглехидрати - Количество инсулин + Въглехидрати (гр.): + Инсулин (ед.): КЗ ВХ Корекция - Ед + Ед. IOB от болуси Старт сега Базова базална стойност @@ -116,7 +116,6 @@ Източник на данни за КЗ xDrip APS режим - Closed Loop Open Loop Loop изключен @@ -157,7 +156,7 @@ Друго Глюкомер Сензор - ВХ + Въглехидрати Инсулин ВХ след Разделяне @@ -235,7 +234,7 @@ Пръст Сензор Ръчно - Времена цел + Временна цел Откажи временна цел DanaR профил DIA (Време на действие на инсулина) ч.: @@ -248,7 +247,7 @@ DS болус DE болус грешка - пълнене + презареждане базал по часове КЗ въглехидрати @@ -262,7 +261,7 @@ Инсулин за деня Грешки КЗ - Пълнене + Презареждане Спиране Свързва се с помпата за %d сек. Парола за помпата @@ -682,29 +681,21 @@ Няма достатъчно инсулин в резервоара Празен Обнови - И един - вддв - шжо + %.2f U/h Добавяне на допълнителни функции за използване през деня, като SMB Пълнене Избран APS Няма базални стойности за някои часове: %s - Предупреждение W31: Ниско ниво в резервоара - Предупреждение W32: Слаба батерия - Предупреждение W33: Невалидно време/дата - Предупреждение W34: Край на гаранцията - Предупреждение W36: Временният базал е прекъснат - Предупреждение W38: Болусът е прекъснат Временният базал е зададен от помпата - Румънски - Френски + Romanian + French Китайски Болусът е спрян Спиране на болус Хипоглекимия Настройка на целевата КЗ чрез аутосенс - Възрастни с по-голяма инсулинова резистентност + Възрастни с голяма инсулинова резистентност OpenAPS SMB SMB Разреши UAM @@ -755,4 +746,138 @@ История Последно извършено действие мин. + Предупреждение за измерване на КЗ + Маз. + гр. + 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" + Старт на вр.цел за физ. активност + Старт на вр. цел за 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] + Помпата е спряна + Помпата е стартирана + Помпата е на пауза + Макс. време за усвояване на храна (часа) + Време за което всяко хранене се счита за усвоено. Оставащите въглехидрати ще бъдат изчиствани. + Време + нулиране + Тази стойност се нарича Max IOB в контекста на OpenAPS. OpenAPS няма да добавя инсулин, ако текущата IOB е по-голяма от тази стойност + Поискано: %.2fU Доставено: %.2fU Error code: %d + Първо добавяне за инсулин + Второ добавяне за инсулин + Трето добавяне за инсулин + Първо добавяне за въглехидрати + Второ добавяне за въглехидрати + Трето добавяне за въглехидрати + WiFi SSID + Разрешени WiFi мрежи(разделени с запетая) + Keep-alive status 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 diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index c737dfa5aa..a39ab1ce48 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,6 +37,7 @@ Insulina [U] Carbohidratos [g] Glucosa + TT Hidratos Carbono Corrección U @@ -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 @@ -246,6 +264,8 @@ Bomba ocupada Entregado Detenido + Bolo interrumpido + Deteniendo bolo Oclusión Detener Parar pulsado @@ -253,23 +273,23 @@ 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 @@ -364,10 +334,9 @@ 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 - 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 al activar 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 + 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 + ComidendoPronto + Hipo + Actividad + Eliminar registro: DanaR Stats - Dosis diaria cumulativa - "Dosis diaria ampliada exponencialmente " - Base + TDD acumulativa + "TDD ampliada exponencialmente " + 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. @@ -412,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 @@ -473,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) @@ -489,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 - Aplicacion existente para aplicar ajustes. + Saliendo de la aplicación para aplicar ajustes. DanaRv2 Insulina Insulina acción rápida @@ -505,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 @@ -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 @@ -543,16 +557,16 @@ 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 - Deteccion sensividad + Detección sensibilidad SENS - Sensitivity Oref0 - Sensitivity AAPS - Ajustes absorcion - Tiempo max absorcion comida [h] + Sensibilidad Oref0 + Sensibilidad AAPS + 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,9 +577,9 @@ UPLD BAS EXT - Pantalla proteccion - Cierre - Al activar autosens recuerda editar todos carbohidratos comidos. Si no, sensividad será calculada incorrectamente !!! + Bloqueo de pantalla + Bloqueo + Al activar autosens recuerda editar todos carbohidratos comidos. Si no, sensibilidad será calculada incorrectamente !!! Sensitivity WeightedAverage OK Cancelar @@ -578,7 +592,7 @@ 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 ]]> @@ -630,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 @@ -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,20 +668,20 @@ 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 + Cálculo BG + Cálculo bolo IOB + Cálculo basal IOB + Cálculo tendencia + Cálculo superbolo Si No Solo positivo Solo negativo - Calculacion COB - Calculacion 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 @@ -677,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 @@ -687,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 @@ -698,24 +712,232 @@ La bomba muesta el error E%d: %s Bajo Vacio + Historial Normal 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 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: + 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ó 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 TT Hipo + 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 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 + 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 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 + 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 (Actividad) + Habilitar SMB con Objetivo Temporal Alto + 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 + 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 parece no instalada! + ¡La aplicación Companion no parece estar instalada! + Permanecer siempre conectado + 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 + 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 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 + 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 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] + "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 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 para suspensión de bolos + 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 + Configuración general + Rumano diff --git a/app/src/main/res/values-ga/strings.xml b/app/src/main/res/values-ga/strings.xml new file mode 100644 index 0000000000..2e44a58f76 --- /dev/null +++ b/app/src/main/res/values-ga/strings.xml @@ -0,0 +1,326 @@ + + + OAPS + MM640g + mmol/l + mg/dl + + Níl + Anois + Gaeilge + Bia + Dana + DanaRS + OAPS + Ard + Íseal + # Lá + xDrip + aláraim + Ceallraí + Bluetooth + Cnaipe 1 + Cnaipe 2 + Cnaipe 3 + Cuir ar ceal + Cuir ar ceal + Nasctha + Ag nascadh + DANA + DanaR + + Dáta + Gléas + Dínasctha + Dínasctha + In eagar + Bearla (English) + earráid + Scoir + BAILE + Íseal + Balbh + NSClient + NSClient + NSClient + OK + OK + OK + OpenAPS + OpenAPS AMA + OpenAPS MA + Eile + Eile + Athnuachan + Atosaigh + SAGE + Sábháil + Tosaigh + Stad + URL: + Suas + Toradh + Gréigis + Ginearálta + glúcóis + Glúcóis + Glúcóis + g + Fiasp + Saill + Cleachtadh + Folamh + Fad: + Fad + Fad + Fad [nóim.] + DanaRv2 + Dáta + Próifíl + Próifíl + Próifíl + Próifíl + PBAGE + Caidéil + Caidéil + CAIDÉIL + Ráta + Cóimheas + Cóimheas: + Cúis + Taiscumar + Atosú + Reáchtáil anois + Ag reáchtáil + Braiteoir + Braiteoir + Braiteoir aois + Rathúlacht + Aonaid + Aonaid: + A + Fionraí lúb do 10 u + Fionraí lúb do 1 u + Fionraí lúb do 2 u + Fionraí lúb do 3 u + Fionraí + Ceist + Teanga + Inslin + Ins: + INS + Inslin + Inslin + Inslin: + Inslin aois + IAGE + Gléas ainm + Páiste + Áireamhán + CAGE + Bluetooth stádas + APS + APS + AndroidAPS thosaigh + %dnóim ó shin + %d nóim ó shin + %.1fu ó shin + %.2f A/u + %d%% (%d nóim fágtha) + Gníomhartha + GNÍ + Cuir + Duine fásta + Calabrú + Calabrú + carbaihiodráit + Carbaihiodráití + Lúb dúnta + Cear + Cear + Seachadta + Seachadadh %.2fA + Seachadadh anois + Dhícheangal Caidéil do 10 u + Dhícheangal Caidéil do 1 u + Dhícheangal Caidéil do 2 u + Dhícheangal Caidéil do 3 u + Dhícheangal Caidéil do 30 nóim + Dícheangal + Ollainnis + Free-Peak Oref + " http://www.androidaps.org http://www.androidaps.de (de) facebook: http://facebook.androidaps.org http://facebook.androidaps.de (de)" + Iodáilis + Cóiréis + Lúb + Lúb + LÚB + Taiscumar folamh + Glúcóis stádas + Gearmáinis + Glimp + Stair + Lúb cumasaithe + ns_create_announcements_from_errors + NSCI + NS API secret + NS API secret + Lúb oscailte + Faoin gcéad + Faoin gcéad + Rapid-Acting Oref + athlán + Athlán + Athlódáil + Athlódáil próifíl + Rómáinis + Rúisis + Sensitivity Oref0 + Spainnis + Sualainnis + Déagóirí + Cóireálacha + Cóireálacha + Infheicthe + Bailí: + Fhíorú + Ar fionraí (%d n) + Ar fionraí ag úsáideoir + Tosaigh ag lúb oscailte + Stádas: + Stáit + Stopadh + Sraithuimhir + Athnuaigh + Athnuaigh caidéil stáit + Riamh + Tosaithe + Gnáth + Meán: %3.1f A + Uasmhéid: %3.1f A + Íosmhéid: %3.1f A + Ar fionraí ag earráid + Tosaithe ... + Léigh próifíl bunaidh + Léigh stair caidéil + Cumasaithe + Socrú BRS (%d%% / %d nóim) + Tosaithe + Cealú BRS + Is ceallraí Caidéil íseal + Is leibhéal cartús íseal + Ag bólas (%.1f A) + Carbí + Carbí + Carbí + Carbí + Carbí: + Carbí: + CARBÍ & BÓLAS + Ag nascadh le %d s + CPP + Tuairim + DanaR Bluetooth gléas + Seice + DanaR Cóiréis + DanaR staiti + Lúb atógáil + Is lúb cumasaithe + Is lúb cumasaithe + Is lúb díchumasaithe + Is lúb díchumasaithe + Lúb ar fionraí + Lúb ar fionraí + Lúb díchumasaithe + LÚB DÍCHUMASAITHE LE SRIANTA + Ceallraí Íseal + Nightscout URL + Nightscout + Novorapid, Novolog, Humalog + Nóta + Nótaí + Fast Acting Insulin Prolonged + DexcomG5 App (patched) + Díchumasaigh lúb + Cumasaigh lúb + Geata: + Glúcóis cineál + Athrú Cartús Inslin + Próifíl neamhbhailí !!! + Próifíl neamhbhailí: %s + Bólas deiridh + Reáchtáil deiridh + Achtaíodh deiridh + Nasc deiridh + GF deiridh: + Méar + Fast Acting Insulin + Earráidí + Inslin lá + Aonaid lá + Deilte + Deilte: + Socruithe Deilte + AndroidAPS + Bólas + Bólas stopadh + Ag stopadh bólas + Ag dul a sheachadadh %.2fA + Socrú próifíl bunaidh + Ag féachaint d\'athruithe stair + Níl nasc le haghaidh %d nóim + Is nuashonrú gá clog Caidéil + Cláir Caidéil bólas + Foláirimh + Gníomhaíocht + Gníom.: + Gníomhaíocht + Gníomhaíocht fad + Gníomhaíocht sprioc + Rabhadh + Stair le Caidéil + GLÉ + Feidhmiú + Firmware + MDI + Faoi + Iomlán + Iomlán + Próifíl gníomhach + Aláraim + APS mód + APS roghnaithe + Bunaidh + Bunaidh + Bunaidh + Bunaidh: + BUN + BUN + xds + Bólas: + Bólas + Bólas + Bólas E + Ag dul a sheachadadh %.2fA + Bólas DS + Bólas DE + Bólas S + SMS + Cúltaca + Bunaidh ráta + Bunaidh Céim + Bunaidh cineál + Bunaidh luach [%] + Bunaidh luach [A/u] + Bunaidh ráta bonn + Próifíl bonn + Seachadta %.2fA Bólas go rathúil + Seachadta %.2fA Bólas go rathúil + Bólas Céim + Bólasi + Cealú BRS + Cealú BRS teip + Inslin + Insight + Bia + \ No newline at end of file diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml new file mode 100644 index 0000000000..6a32c1dd18 --- /dev/null +++ b/app/src/main/res/values-pl/strings.xml @@ -0,0 +1,937 @@ + + + Bezpieczeństwo leczenia + Maks. dopuszczalny bolus [U] + Maks. dopuszczalne węglowodany [g] + + Ustawienia + Odśwież/pobierz działania z NS + Zresetuj bazy danych + Na pewno chcesz zresetować bazy danych? + Wyjście + Używaj przedłużonych bolusów >200% + Urządzenie Bluetooth DanaR + Zawsze używaj wartości bezwzględnych bazy + Proszę uruchomić ponownie telefon lub zrestartować AndroidAPS w ustawieniach systemu telefonu \inaczej AndroidAPS nie będzie otrzymywał logowań (ważne ze względu na śledzenie i sprawdzanie poprawności działania algorytmów)! + + Zadanie: + Bramka: + Start + Sprawdź + Jednostki + DIA + IC + ISF + Baza + Cel + NIE USTAWIONO PROFILU + Insulina: + Węglowod.: + IOB: + IOB: + Aktywność: + Całkowita IOB: + Aktywność całkowitej IOB: + Czas: + Iloczyn: + Ins: + IOB: + Całkowita IOB: + Insulina + Węglow. + BG + TT + Węglow + Korekta + U + Bolus IOB + Uruchom teraz + POMPA WIRTUALNA + Podstawowa dawka bazowa + Baza tymczasowa + Bolus przedłużony + Bateria + Zbiornik + OK + Ostatnie działanie + Parametry wejściowe + Stan glukozy + Obecna tymczasowa + IOB data + Profil + Dane posiłku + Rezultat + Brak danych o glukozie + Zmiana nie wymagana + Żądanie + Wartość + Czas trwania + Powód + Glukoza + Delta + Delta: + + Konfiguracja + Zadania + OpenAPS MA + Przegląd + NS Profil + Prosty profil + TymczasowaBaza + Leczenie + Pompa wirtualna + PortalOpieki + + + Pompa + Leczenie + Profil + APS + Ogólne + dni + Minimalny czas + Ograniczenia + + Pętla + Pętla + APS + Po ograniczeniach + Baza tymczasowa ustawiona przez pompę + Ostatnie działanie + OK + Anuluj + NIE WYBRANO APS LUB NIE UZYSKANO WYNIKU + Zabezpieczenia + Plugin jest wyłączony + Naruszenie ograniczeń + Błąd podania bolusa + Błąd podania bazy tymczasowej + Wartość bazy [%] + % (100% = current) + Akceptuj nową bazę tymczasową: + Leczenie + Kalkulator + Ograniczenie nałożone! + Potwierdzenie + Wprowadź nowe leczenie: + Bolus + Bolus: + Baza + Baza: + Węglow. + Zmień wprowadzone dane! + Ustaw nowy bolus przedłużony: + Źródło BG + xDrip + APS Mode + + Zamknięta pętla + Otwarta pętla + Pętla wyłączona + Wyłącz pętle + Włącz pętle + + Dostępna nowa sugestia + Niewspierana wersja NSClient + Niewspierana wersja Nightscout + NSClient nie zainstalowany. Zapis stracony! + BG dostępne w NS + Status pompy dostępny w NS + Zmiany wykonane + PĘTLA WYLĄCZONA Z UWAGI NA OGRANICZENIA + Czech + English + Bazowa IOB + Ograniczenia bolusa wprowadzone + Ograniczenia węglow. wprowadzone + Sprawdź BG + Powiadomienie + Notatka + Pytanie + Ćwiczenia + Zmiana wkłucia + Założenie sensora CGM + Uruchomienie sensora CGM + Zmiana zasobnika insuliny + Zmiana profilu + Bolus na przekąskę + Bolus na posiłek + Bolus korekcyjny + Bolus złożony + Dawka Tymczasowa Start + Dawka Tymczasowa Koniec + Węglow. korekcyjne + OpenAPS Rozłączony (Offline) + + Typ zdarzenia + Inne + Miernik + Sensor + Węglow. + Insulina + Czas węglow. + Podział + Czas trwania + Procent + Całkowity + Notatki + Czas zdarzenia + Profil + Wprowadzone przez + Typ glukozy + Nie załadowano profilu z NS + BazaTymczasowa + Bolus Przedłużony + Wersja Nightscout: + Brakujące + Właściwości wyeksportowane + Eksportuj ustawienia do + Importuj ustawienia z + Ustawienia zaimportowane + Nie znaleziono pliku + Eksportuj ustawienia + Importuj ustawienia + Dutch + German + Spanish + Greek + Italian + Romanian + Russian + Swedish + French + Chinese + Polski + Max U/h Tymczasowa Dawka Bazowa może być ustawiona + Wartość nazywana Maksymalną Bazą w OpenAPS + Maksymalna bazowa IOB, którą OpenAPS może dostarczyć [U] + Ta wartość jest nazywana Max IOB w OpenAPS\nTo jest maksymalna wartość insuliny w [U], którą APS może dostarczyć w danej chwili. + Bulgarian + ODRZUĆ + Język + + DanaR + Łączę + Połączono + Rozłączono + Ustawienia pompy DanaR + Nightscout + Umowa licencyjna użytkownika końcowego + NIE MOŻE BY WYKORZYSTYWANY DO PODEJMOWANIA DECYZJI MEDYCZNYCH. NIE MA ŻADNEJ GWARANCJI NA PROGRAM, W ZAKRESIE DOZWOLONYM PRZEZ OBOWIĄZUJĄCE PRAWO. Z WYJĄTKIEM PRZYPADKÓW, GDY W INNY SPOSÓB PISMO OŚWIADCZENIA PRAW AUTORSKICH I / LUB INNYCH STRON, PRZEDSTAWIAĆ PROGRAM "W STANIE TAKIM, W JAKIM SIĘ ZNAJDUJE" BEZ JAKIEJKOLWIEK GWARANCJI, WYRAŹNEJ LUB DOMNIEMANEJ, W TYM MIĘDZY INNYMI DOMNIEMANYCH GWARANCJI PRZYDATNOŚCI HANDLOWEJ I PRZYDATNOŚCI DO OKREŚLONEGO CELU. CAŁKOWITE RYZYKO ZWIĄZANE Z JAKOŚCIĄ I WYNIKIEM PROGRAMU JEST PO PAŃSTWA STRONIE. W PRZYPADKU USZKODZENIA PROGRAMU UŻYTKOWNIK PONOSI KOSZT CAŁEGO NIEZBĘDNEGO SERWISU, NAPRAWY LUB POPRAWEK. W PRZYPADKU NIEPOROZUMIEŃ ZASTOSOWANIE PRAWNE MA UMOWA W ANGIELSKIEJ WERSJI JĘZYKOWEJ!!! + ROZUMIEM I WYRAŻAM ZGODĘ + ZACHOWAJ + Nie odnaleziono urządzenia bluetooth + Nie odnaleziono wybranego urządzenia + Błąd połączenia z pompą + IOB w pompie + Jednostki dzienne + Ostatni bolus + %.1fh temu + Błędne dane wejściowe + Wartość ustawiona nieprawidłowo + Załaduj profil ponownie + Zobacz profil + Wykonane + Komentarz + Sukces + Procent + Całkowity + Wyłącz bazę tymczasową + Komunikator SMS + Oczekiwanie na wynik + Dozwolone numery telefonów + +XXXXXXXXXX;+YYYYYYYYYY + Aby dostarczyć bolus %.2fU wprowadź kod %s + Aby wysłać kalibrację %.2f wprowadź kod %s + Bolus nieudany + Bolus %.2fU dostarczony + Zamierzam dostarczyć %.2fU + Bolus %.2fU dostarczony + Dostarczam %.2fU + Zezwalaj na komendy zdalne via SMS + Bolus zdalny nie dozwolony + Palec + Sensor + Ręczne + Cel tymczasowy (TT) + Odrzuć Cel tymczasowy + Ustawienia profilu DanaR + DIA [h] + Czas aktywności insuliny + Nieudane uaktualnienie profilu bazy + Załaduj ponownie + Wgrywanie + E bolus + DS bolus + DE bolus + błąd + napełnij + godzina bazy + glukoza + węglowodany + alarm + Wszystkie %d rekordy załadowane + S bolus + Alarmy + Godziny Bazy + Bolusy + Węglowodany + Insulina dzienna + Błędy + Glukoza + Napełnij + Wstrzymaj + Łączę przez %d s + Hasło pompy + Błędne hasło pompy! + Pompa jest zajęta + Dostarczone + Zatrzymane + Bolus zatrzymany + Zatrzymuję bolus + Zatkanie + Stop + NACIŚNIĘTY STOP + Czekam na pompę + Zamierzam podać %.2fU + Konfigurowanie wizualizacji i monitorowania, analizowanie dawek bazowych i wartości + Sprawdź czy BG (pomiary cukru) są dostępne w Nightscout, i dane pompy insulinowej są ładowane + Uruchamiam otwartą pętle (OpenLoop) + Używaj Otwartą pętle (OpenLoop) przez kilka dni, i ręcznie wykonaj wiele dawek bazowych tymczasowych + Zrozumienie działania otwartej pętli, wraz z jej rekomendacjami dawek tymczasowych + Na podstawie tych doświadczeń zdecyduj jaka maksymalna baza powinna być ustawiona, i wprowadź ją w pompie i w ustawieniach AAPS + Rozpoczęcie zamknięcia pętli z zawieszeniem podawania bazy przy niskim poziomie cukru + Używaj zamkniętej pętli (Closed Loop) z max IOB (maksymalną dawką aktywnej insuliny) = 0 bez zbyt wielu incydentów niskiego poziomu cukru + Dostrajanie zamkniętej pętli, podniesienie wartości max IOB powyżej 0 i stopniowe obniżanie docelowego poziomu cukru (BG target) + Używaj pętli przez kilka dni i przynajmniej jedną noc bez żadnego alarmu niskiego poziomu, przed obniżeniem docelowego poziomu cukru (BG target) + Dostosuj bazę i wartości parametrów, i wtedy uruchom funkcję autosens + 1 tydzień sukcesu w działaniu pętli w ciągu dnia z regularnym wprowadzaniem spożywanych węglowodanów (węglow.) + Uruchomienie do użytku dziennego dodatkowych funkcji, jak AMA (zaawansowany asystent posiłku) + Uruchomienie do użytku dziennego dodatkowych funkcji, jak SMB (Super Mikro Bolusy) + Osiągnąłeś dozwolony limit + Nie wybrano profilu + Pętla (Loop) została wyłączona + Pętla (Loop) została włączona + Pętla (Loop) jest wyłączona + Pętla (Loop) jest włączona + %.2f ograniczone do %.2f + Wartość %s jest poza dopuszczalną granicą + Ustawienie zdalnej bazy nie jest dozwolone + Zdalne komendy nie są dozwolone + Aby rozpocząć bazę %.2fU/h odpowiedz kodem %s + Aby wstrzymać pętle na %d minut odpowiedz kodem %s + Tymczasowa baza %.2fU/h przez %d min rozpoczęta + Rozpoczęcie tymczasowej bazy nie powiodło się + Aby zatrzymać bazę tymczasową odpowiedz kodem %s + Baza tymczasowa anulowana + Anulowanie tymczasowej bazy nie powiodło się + Nieznane polecenie lub błędna odpowiedź + SzybkiKreator + Ustawienia SzybkiegoKreatora + Tekst przycisku: + Węglow.: + Ważny: + Dodaj + Edytuj + Usuń + Posiłek + Korekta + Korean + Akcje + AndroidAPS uruchomiony + NS tylko przesył. (wyłączona synch.) + NS tylko przesył. Nie skuteczne na SGV o ile ni jest wykorzystywane lokalne źródło danych jak xDrip. Nie skuteczne na Profilach gdy profil z NS jest wykorzystywany. + Pompa nie zainicjowana! + Pompa nie zainicjowana, profil nie ustawiony! + Rozpocznij/Wypełnij + Proszę upewnij się, że ilość wypełnienia odpowiada ilości właściwej dla twojego wkłucia! + Inne + Rozpocznij/Wypełnij standardowe ilości insuliny. + Przycisk 1 + Przycisk 2 + Przycisk 3 + Jednostki: + mg/dl + mmol/l + DIA: + Zakres docelowy: + Zakres do wizualizacji (na wykresie) + Oznaczenia wysokiego i niskiego cukru na wykresie w oknie przegląd i na smartwatch\'u + Znacznik NISKI + Znacznik WYSOKI + Oprogramowanie Wear (Smartwatch) + Prześlij ponownie wszystkie dane + Otwórz ustawienia dla Wear + Błąd pompy + Niski stan baterii + Wyłączenie pompy + Bateria pompy rozładowana + DanaR Korean + Dawka bazowa: + Ustawienie profilu bazy nie powiodło się + Profil bazowy w pompie uaktualniony + Wyłącz tryb EasyUI w pompie + Uaktywnij bolusy przedłużone w pompie + Zmień tryb z U/d na U/h w pompie + Wartość bazy poniżej minimum. Nie ustawiono profilu! + BG: + Ostatnia BG: + MDI + MM640g + Nadchodzące powiadomienia + NIEAKTUALNE DANE + %d min temu + %dmin temu + Lokalny Profil + OpenAPS AMA + Krótka średnia delta + Długa średnia delta + Lista %d elementów.\nBieżąca wartość: + Dane Autosens + Debugowanie skryptów + Używaj funkcji AMA autosens + Odśwież zdarzenia z NS + Wkrótce posiłek + Hipo + Ćwiczenia + Usuń rekord: + DanaR Statystyki + Kumulatywna TDD (dawka dzienna) + Ważona wykładniczo TDD + Baza + Bolus + TDD + Data + Stosunek + # Dni + Waga + Możliwa niedokładność jeśli używasz bolusów do wypełnień! + Stare dane, naciśnij "RELOAD" + Suma dzienna bazy (TBB) + TBB * 2 + Inicjuje ... + ACT + CONF + LOOP + SP + OAPS + LP + DANA + HOME + VPUMP + NSPROFIL + TREAT + CP + OBJ + WEAR + SMS + Skrócone tytuły kart + Zawsze używaj krótkiej średniej delty zamiast prostej delta + Użyteczne, jeżeli dane z niefiltrowanego źródła jak xDrip mają rozrzut. + Ustawienia zaawansowane + Model: %02X Protocol: %02X Code: %02X + Profil + Wartość domyślna: 3 To jest kluczowy współczynnik bezpieczeństwa OpenAPS. Ogranicza dawki bazowe do 3x twojej największej dawki bazowej. Prawdopodobnie nie będziesz musiał tego zmieniać, ale powinieneś być świadomy tego, co się rozumie przez “3x max daily; 4x current” dla współczynników bezpieczeństwa. + Wartość domyślna: 4 To jest drugi kluczowy współczynnik bezpieczeństwa OpenAPS, i druga wartość z “3x max daily; 4x current”. To oznacza, że Twoja dawka bazowa niezależnie od maksymalnej bazy ustawionej na pompie nie może być większ niż ta ustawiona ilość razy twoja aktuialna dawka bazowa. To ma na celu porzestrzec ludzi przed ustawieniem zbyt wysokiej dawki maksymalnej przed zrozumieniem jak działa algorytm. Ponownie, wartość domyślna to 4x; większość ludzi nie będzie potrzebowała tego zmienić i raczej będą potrzebować dostosować inne ustawienia, jeśli czują, że "wpadają" w ten współczynnik bezpieczeństwa. + Default value: 1.2\nTo jest mnożnik dla autosens (i wkrótce autotune), ustawia 20% maks. limit dla najwyższej wartości jaką autosens może przyjąć, co z kolei określa jak wysoko autosens może ustawić bazę, jak nisko może ustawić ISF, i jak nisko może ustawić docelową wartość glikemii. + Wartość domyślna: 0.7\nDruga strona limitu bezpieczeństwa dla autosens, ustawia mnożnik minimalny dla wartości, do jakiej autosens może obniżyć bazę, i jak wysoko może ustawić ISF i wartość docelową BG. + Autosens dostosowuje rwnież wartości docelowe + Default value: true\nTa wartość pozwala autosens na dostosowanie wartości docelowych BG, dodatkowo do wartości bazy i ISF. + Wartość domyślna: 2\nBolus snooze jest uruchamiany po wykonaniu bolusa posiłkowego, tak by pętla nie przeciwdziałała niskim wartościom tymczasowym zaraz po posiłku. Jako przykład i wartość domyślna ustawione jest 2; więc 3 godzinne DIA oznacza, że bolus snooze będzie stopniowo wycofany po 1.5 godziny (3DIA/2). + Wartość domyślna: 3.0 To jest ustawienie domyślnego wpływu wchłaniania węglowodanów w czasie 5 min. Wartością domyślną jest spodziewane 3mg/dl/5min. Ma to wpływ na szybkość zaniku COB, oraz jak duże wchłanianie węglowodanów będzie przyjęte do obliczeń przyszłych przewidywanych wartości BG, jeżeli BG obniża się bardziej niż w założeniach, lub nie wzrasta tak szybko jak w założeniach. + UWAGA!\nZwykle nie trzeba zmieniać tych wartości. Proszę NACIŚNIJ TUTAJ i PRZECZYTAJ tekst i upewnij się, że ROZUMIESZ go przed zmianą którejś z tych wartości. + Dozwolone są tylko cyfry. + Dozwolone są tylko cyfry w zakresie %1$s - %2$s. + Pole nie może być puste + Nieprawidłowy numer telefonu + Nieprawidłowy numer telefonu SMS + Skopiuj do schowka + Skopiowane do schowka + Pokaż log + Kalibracja + Kalibracja + Wysłać kalibrację %.1f do xDrip? + xDrip+ nie zainstalowany + Kalibracja przesłana do xDrip + Zdalna kalibracja nie dozwolona + Kalibracja wysłana. Odbiór musi być dozwolony w xDrip. + xDrip nie odbiera kalibracji + Pompa wstrzymana + Uzyskiwanie statusu pompy + Ustawianie bazy tymczasowej + Zatrzymywanie bazy tymczasowej + Ustawianie bolusa przedłużonego + Zatrzymywanie bolusa przedłużonego + Uaktualnianie dawek bazowych + Rozłączanie + Wykonywanie + Ustawienia pompy wirtualnej + Załaduj status do NS + Złe hasło + Hasło do ustawień + Odblokuj ustawienia + Zbliżam się do dziennego limitu insuliny + NSClient + NSCI + URL: + Autoscroll + Restart + NSClient + Nightscout URL + Wprowadź URL Nightscout + NS API secret + NS API secret + Wprowadź NS API secret (min 12 chars) + Dostarcz teraz + Wyczyść kolejkę + Pokaż kolejkę + Kolejka: + Status: + Wstrzymano + Wyczyść log + NSCLIENT nie ma prawa do zapisu. Błędny API secret? + Ustawienia Wear + Pokaż szczegóły IOB + Rozbij IOB na bolus i IOB bazy na zegarku + nie udało się - proszę sprawdzić telefon + Niedostępne + Wiek pacjenta + Dziecko + Nastolatek + Osoba dorosła + Osoba dorosła insulino odporna + Proszę wybierz wiek pacjenta w celu ustawienia wartości bezpieczeństwa + Glimp + Wygląda na to, że urządzenie nie obsługuje białej listy optymalizacji baterii! + Przoszę udzielić pozwolenia + %s Potrzebuję wpisu na białąlistę optymalizacji baterii w celu zapewnienia poprawnego działania + Pętla wstrzymana + Wstrzymana (%d m) + Superbolus (%d m) + Wstrzymaj pętlę na 1h + Wstrzymaj pętlę na 2h + Wstrzymaj pętlę na 3h + Wstrzymaj pętlę na 10 h + Wyłącz pompę na 15 min + Wyłącz pompę na 30 min + Wyłącz pompę na 1 h + Wyłącz pompę na 2 h + Wyłącz pompę na 3 h + Wznów + Zły czas trwania + Pętla wstrzymana + Pętla wznowiona + 15min trend + COB + Superbolus + Wyślij start app do NS + Zamykanie aplikacji w celu wprowadzenia ustawień. + DanaRv2 + Insulina + Szybko działająca Insulin + Novorapid, Novolog, Humalog + Fiasp + INS + Szybko działająca insulina przedłużona + Zezwalaj na superbolus w kreatorze + Zezwalaj na funkcjonalność Superbolus w kreatorze. Nie zezwalaj dopuki nie nauczysz się co ta funkcjonalność wprowadza. MOŻE SPOWODOWAĆ PRZEDAWKOWANIE INSULINY JEŻELI UŻYTE BEZ WIEDZY! + IOB + COB + Firmware + Ostatnie połączenie + Status Bluetooth + O programie + Utracone pozwolenie SMS + xDrip Status (watch) + LiniaStatusu xDrip (watch) + xds + Pokaż BGI + Dodaj BGI do LiniiStatusu + Brak przesyłania do NS + Wszystkie dane wysyłane do NS są odrzucane. AAPS jest podłączony do NS, ale nie wykonuje się żadnych zmian w NS + Krok bazy + Krok bolusa + BolusPrzedłużony + TempTarget + Anuluj bolus przedłużony + Czas sensora + Czas wkłucia + Czas insuliny + godziny + Typ bazy + Nieważny profil !!! + ZmieńProfil + Czas baterii pompy + Zmiana baterii pompy + Opcje alarmu + Uwaga wysoki + Wysoki + Niski + Uwaga niski + Nieaktualne dane + Uwaga, nieaktualne dane + Próg nieaktualne dane [min] + Próg uwaga nieaktualne dane [min] + Czasookres dla autosens [h] + Ilość minionych godzin do określenia wrażliwości (sensitivity)(czas wchłaniania węglowodanów jest wykluczony) + Pompa + OpenAPS + Uploader + Detekcja wrażliwości (sensitivity) + SENS + Wrażliwość Oref0 + Wrażliwość AAPS + Ustawienia wchłaniania + + Maks. czas wchłaniania posiłku [h] + Oczekiwany czas w godzinach, w którym wszystkie węglowodany zostają wchłonięte + Pokazuj bolus przedłużony w % + SAGE + IAGE + CAGE + PBAGE + OAPS + UPLD + BAS + EXT + Zablokuj obraz + Zablokuj + Przy włączonej funkcji Autosens pamiętaj, żeby wprowadzać wszystkie węglowodany. W innym wypadku odchylenia węglowodanów będą błędnie identyfikowane jako zmiany wrażliwości !! + Wrażliwość ŚredniaWażona + OK + Anuluj + Nie wszystkie profile zostały załadowane! + Wartości nie są przechowywane! + Włącz transmisje do innych aplikacji (jak xDrip). + Włącz transmisję lokalnie. + AKTYWNOŚĆ & REAKCJA + WĘGLOW. & BOLUS + CGM & OPENAPS + POMPA + Wartość bazy [U/h] + Czas trwania [min] + OpenAPS SMB + SMB + Włącz UAM + Włącz SMB + Używaj SMB (Super Mikro Bolusów) zamiast bazy tymczasowej dla szybszego działania + Detekcja niezapowiedzianych posiłków (UAM) + IOB Czas piku krzywej działania insuliny + Czas piku [min] + Swobodny-Pik Oref + Szybko-Działający Oref + Ultra-Szybki Oref + DIA %f zbyt krótki - przyjmuję %f w zamian! + Aktywuj profil + Data + NIEPRAWIDŁOWY + Oczekiwanie na pompe na sparowanie + Sparowanie OK + Przekroczono limit czasu parowania + PAROWANIE + Urządzenie nie zostało znalezione do tej pory + Pusty zasobnik + Alarm pomiaru poziomu cukru + Pozostała ilość insuliny + DanaRS + Dana + Wybrana pompa + Sparuj nową pompę + Szybkość podawania bolusa + Ustaw krok bazy na 0.01 U/h + Numer seryjny + Procent + Zmiana czasu + Domyślne tymczasowe wartości docelowe + WkrótcePosiłek czas trwania + WkrótcePosiłek cel + Ćwiczenia czas trwania + Ćwiczenia cel + Hipo czas trwania + Hipo cel + Wypełnianie + Status otrzymywania bolusa przedłużonego + Status otrzymywania bolusa + Status otrzymywania tymczasowej bazy + Otrzymywanie ustawień pompy + Otrzymywanie czasu pompy + użyj ponownie + Sterowanie z zegarka + Ustawiaj wartości docelowe i wprowadzaj leczenie z zegarka. + Przekroczono limit czasu połączenia + Pożywienie + g + m + h + ]]> + kJ + En + Bi + + ]]> + Oczekuję na zakończenie bolusa. Pozostało %d sec. + Przetwarzanie zdarzenia + Rozpoczynam podawanie bolusa + Polecenie jest teraz wykonywane + Poprawiono sterownik pompy + Pompa nieosiągalna + Pominięte odczyty BG + Użyj powiadomień systemowych dla alertów i powiadomień + Alarmy lokalne + Alarm, jeśli nie są odbierane odczyty BG + Alarm, gdy pompa jest nieosiągalna + Pompa nieosiągalna próg [min] + Pilny alarm + INFO + Bluetooth + BT Watchdog + Wyłącza bluetooth telefonu na jedną sekundę, jeśli nie jest możliwe połączenie z pompą. Może to pomóc w niektórych telefonach, w których blokuje się bluetooth. + DexcomG5 App (patched) + Przekaż dane BG do NS + G5 prześlij ustawienia + Pokaż szczegółowe delta + Pokaż deltę z jednym więcej miejscem dziesiętnym + Maks. ilość minut dawki bazowej do ograniczenia SMB + Nieobsługiwane oprogramowanie pompy + Prześlij dane BG do xDrip+ + W xDrip+ wybierz źródło danych 640g/Eversense + NSClient BG + Wartość bazoy zastąpiona minimalną obsługiwaną wartością + Obliczenia BG + Obliczenia Bolus IOB + Obliczenia IOB + Obliczenia trendu + Obliczenia Superbolusa + Tak + Nie + Tylko pozytywne + Tylko negatywne + Obliczenia COB + Temporary target calculation + Pętla włączona + Wybrano APS + NSClient ma prawo do zapisu + Tryb zamknięty włączony + Maks. IOB ustawione poprawnie + BG dostępne z wybranego źródła + Wartości bazy nie są ustawione w pełnych godzinach: %s + Nieprawidłowy profil: %s + Programowanie pompy do podawania bolusa + Odśwież + Stan + Aktywność + Brak połączenia przez %d min + %d%% (%d min pozostało) + Rozpoczynanie + Wstrzymane z powodu błędu + Wstrzymane przez użytkownika + W działaniu + Anulowanie TBR + Ustawianie TBR (%d%% / %d min) + Podawanie bolusa (%.1f U) + Odświeżanie + Żądana operacja nie jest obsługiwana przez pompę + Niebezpieczne użycie: aktywne są bolusy przedłużone lub wielofalowe. Tryb pętli został ustawiony tylko na 6 godzinne zawieszenie z uwagi na niski poziom (BG). W trybie pętli obsługiwane są tylko normalne bolusy + Niebezpieczne użytkowanie: pompa używa innego profilu dawki bazowej niż pierwszy. Pętla została wyłączona. Wybierz pierwszy profil na pompie i odśwież. + W ciągu ostatnich dwóch minut zażądano bolusa o tej samej wielkości. Z uwagi na zapobieganie przypadkowym podwójnym bolusom i ochronę przed błędami jest to zabronione. + Teraz + Sczytuję historię pompy + historia pompy + Ustawianie profilu bazowego + Poziom zasobnika pompy jest niski + Poziom baterii pompy jest niski + Pompa wskazuje błąd E%d: %s + Niski + Pusty + Właściwy + Potrzebna aktualizacja zegara pompy + Ostrzeżenie + TBR ANULOWANY ostrzeżenie zostało potwierdzone + Pompa nie została odnaleziona. Nie podano bolusa + Podanie bolusa nie powiodło się. Wygląda na to, że bolus nie został dostarczony. Aby upewnić się, sprawdź pompę, aby uniknąć podwójnego bolusa, a następnie ponownie podaj bolus. Aby uniknąć błędów, bolusy nie są automatycznie ponawiane. + Only %.2f U z zamierzonego bolusa %.2f U zostało dostarczone z powodu błędu. Sprawdź pompę, aby sięupewnić i podejmij odpowiednie działania. + Dostarczenie bolusa i sprawdzenie historii pompy nie powiodło się, należy sprawdzić pompę i ręcznie utworzyć zapis bolusa za pomocą zakładki PortalOpieki (CarePortal), jeśli bolus został dostarczony. + Odzyskiwanie po utracie połączenia + Za mało insuliny na bolus pozostało w zbiorniku + Błąd dostarczania bolusa przedłużonego + Wgląd + Wgląd w pompę + Status + Zmieniono + POMPA ZATRZYMANA + Status uaktualniony + temu + z + Aktywny TBR + min pozostało + Dziennik logów + Last Completed Action + min + remaining over + total with + upfront with + Stay always connected + Use Real TBR cancels + Actually cancel a TBR (creates pump alarm) instead of setting 90% for 1 minute + BEZCZYNNY + SYNCHRONIZUJE + ZAJĘTY + ZSYNCHRONIZOWANY + URUCHOMIENIE + wymagania + Brak połączenia z aplikacją towarzyszącą! + Aplikacja towarzysząca prawdopodobnie nie jest zainstalowana! + Niezgodna aplikacja towarzysząca, potrzebujemy wersji + Nieznany + Oczekuję na potwierdzenie kodu + Kod odrzucony + Wiązanie aplikacji + Nieautoryzowany + Niekompatybilny + sekunda + minuta + godzina + dzień + tydzień + s + %ds wygasa %s + Status czuwania + Statystyki + Połącz z wyprzedzeniem + Automatycznie łącz się, gdy okna AndroidAPS są otwarte, zanim zostanie wydane polecenie do pompy, aby zmniejszyć opóźnienie w połączeniu + Niezalecane ze względu na szybkie rozładowywanie baterii + Włącz SMB (Super Mikro Bolusy) zawsze + Włącz SMB (Super Mikro Bolusy) zawsze, niezależnie od bolusów. Możliwe jedynie ze źródłem BG (poziomu cukru) z dobrym filtrowaniem, jak aplikacja G5 + Włącz SMB po węglowodanach + Włącz SMB na 6 godzin po węglow., nawet z 0 COB. Możliwe jedynie ze źródłem BG (poziomu cukru) z dobrym filtrowaniem, jak aplikacja G5 + Włącz SMB z COB + Włącz SMB gdy COB są aktywne. + Włącz SMB z tymczasowym poziomem docelowym (TT) + Włącz SMB gdy tymczasowy poziom docelowy (TT) jest aktywny (TT WkrótcePosiłek, TT ćwiczenia) + Włącz SMB z wysokim tymczasowym poziomem docelowym + Włącz SMB gdy wysoki tymczasowy poziom docelowy jest aktywny (TT ćwiczenia) + Pozwól na działanie bazy tymczasowej + Wycisz + Insulina + Węglowod. + Przyciski + Wysyła kalibrację do xDrip+ lub otwartego okna kalibracji G5 + Otwiera xDrip+, przycisk "cofnij" przywraca do AAPS + Liczba węglowodanów do dodania po wciśnięciu przycisku + Ilość insuliny do dodania po wciśnięciu przycisku + Nie można uruchomić aplikacji CGM. Upewnij się, że została zainstalowana. + CGM + Przegląd historii + Powiadom na SMB + Pokaż SMB na zegarku jak bolus standardowy. + Twórz powiadomienia o błędach + Twórz powiadomienia Nightscout o błędach i lokalnych alarmach (również widoczne w PortaluOpieki w ramach Leczenia)( + Pokaż prognozę poziomu na zegarku. + Prognozy + Wybór Danych + Przesyłanie danych fabric + Zezwalaj na automatyczne zgłaszanie awarii i danych o użytkowaniu aplikacji do deweloperów za pośrednictwem usługi fabric.io. + Proszę uaktualnić aplikację G5 do wspieranej wersji + Rozpocznij TT Ćwiczenia + Rozpocznij TT WkrótcePosiłek + TT + Nie podawaj bolusa, tylko zapisz rekord + Kategoria + Podkategoria + Bolus zostanie tylko zapisany w rekordach + Automatycznie wypełnij brakujące BG z NS + SMB ustawiony przez pompę + Wrażliwość + Odchylenia + COB (Aktywne Węglow.) + IOB (Aktywna Insulina) + Dawki Bazowe + Nie wybrano żadnej akcji, zdarzenie nie będzie wprowadzone + Rozpocznij TT Hipo + Uruchamiona jest wersja dev. Zamknięta pętla jest wyłączona. + Tryb Inżynierski włączony + Tryb inżynierski nie włączony i nie pracuje wersja "kandydat do wydania" (RC) + %.2f U/h + Wczytuje profil bazowy + Historia pompy zmieniła się po wykonaniu obliczenia bolusa. Bolus nie został dostarczony. Proszę, przelicz ponownie, jeśli wciąż potrzebujesz bolusa. If the same bolus amount is required, please wait two minutes since boluses with the same amount are blocked when requested with less than two minutes between them for safety (regardless of whether they were administered or not). + Bolus został pomyślnie dostarczony, ale dodanie wpisu leczenia nie powiodło się. Może się to zdarzyć, jeśli w ciągu ostatnich dwóch minut podano dwa małe bolusy o tej samej wielkości. Sprawdź historię pompy i leczenie i użyj PortaluOpieki, aby dodać brakujące wpisy. Make sure not to add any entries for the exact same minute and same amount. + Odrzucenie wysokiej dawki tymczasowej ponieważ w obliczeniach nie uwzględniono ostatnio zmienionej historii pompy + Odświeżanie stanu pompy + Dawka podstawowa na pompie uległa zmianie i wkrótce zostanie zaktualizowana + Dawka podstawowa zmieniła się na pompie, ale jej odczyt nie powiódł się + Sprawdzanie zmian w historii + Wielokrotne bolusy o tej samej wielkości w tej samej minucie zostały właśnie zaimportowane. Do leczenia można dodać tylko jeden taki rekord. Sprawdź pompę i ręcznie dodaj zapis bolusa za pomocą zakładki PortalOpieki. Upewnij się, że tworzysz bolus z czasem, którego nie używa żaden inny bolus. + \n\nhttp://www.androidaps.org\nhttp://www.androidaps.de (de)\n\nfacebook:\nhttp://facebook.androidaps.org\nhttp://facebook.androidaps.de (de) + Ostatni bolus jest starszy niż 24 godziny lub jest w przyszłości. Sprawdź, czy data na pompie jest ustawiona prawidłowo. + Czas/data dostarczonego bolusa na pompie wydaje się błędna, IOB jest prawdopodobnie niepoprawny. Sprawdź czas/datę pompy. + Brakuje ZmianyProfilu. Proszę wykonać ZmianęProfilu lub nacisnąć "Aktywuj Profil" w ProfiluLokalnym + Obliczenia Bolusa + Obliczenia TBR + Zadanie %d nie uruchomione + Zadanie %d nie zakończone + Pompa nie jest zdolna do wykonywania dawek bazowych tymczasowych + Brak prawidłowej dawki bazowej odczytanej z pompy + Tryb zamkniętej pętli wyłączony w ustawieniach + Autosens wyłączony w ustawieniach + SMB wyłączone w ustawieniach + Ograniczam maks. dawkę bazową do %.2f U/h z uwagi na %s + ograniczenie pompy + wartość musi być dodatnia + mnożnik maksymalnej dawki bazowej + mnożnik maksymalnej dziennej dawki bazowej + Bolus został podany w ciągu ostatnich 3 minut, opuszczam SMB + Baza ustawiona prawidłowo + Ograniczam maksymalną wartość w procentach do %d%% z uwagi na %s + Ograniczam bolus do %.1f U z uwagi na %s + Ograniczam max IOB do %.1f U z uwagi na %s + Ograniczam węglow. do %d g z uwagi na %s + Ograniczam IOB do %.1f U z uwagi na %s + maks. wartość w ustawieniach + twarde ograniczenie + niebezpieczne użycie + Odczyt statusu nie powiódł się + Zapisz zmianę wkłucia + Zapisz zmianę zasobnika insuliny + SMB zawsze i po węglow. wyłączone z uwagi na brak źródła BG z zaawansowanym filtrowaniem + SMB nie dozwolone w trybie otwartej pętli + Posiłek + ponowne uruchomienie + Oczekiwanie na synchronizację czasu (%d sec) + Rozłączono (%d m) + Automatyczne działania PortaluOpieki + Automatycznie przesyłaj zmianę zasobnika, wkłucia i baterii oraz alarmy pompy do Nightscout + Maksymalna, całkowita IOB, której OpenAPS nie może przekroczyć [U] + Ta wartość jest nazywana Max IOB w OpenAPS\nOpenAPS nie poda więcej insuliny jeżeli obecna IOB jest większa niż ta wartość + Pompa zatrzymana + Pompa uruchomiona + Pompa wstrzymana + Maksymalny czas wchłaniania posiłku [h] + Czas, w którym każdy posiłek jest uznany za wchłonięty. Pozostałe węglowodany zostaną odcięte. + Czas + Pokaż pole uwag w oknie leczenia + Zadano: %.2fU Dostarczono: %.2fU Kod błędu: %d + Pierwszy stopień przyrostu insuliny + Drugi stopień przyrostu insuliny + Trzeci stopień przyrostu insuliny + Pierwszy stopień przyrostu węglow. + Drugi stopień przyrostu węglow. + Trzeci stopień przyrostu węglow. + CGM + Używaj tylko połączenia WiFi + WiFi SSID + Tylko gdy się ładuje + Ustawienia połączenia + Dozwolone SSID (rozdzielone średnikiem) + Zezwalaj na połączenia w roamingu + Maks. mnożnik autosens + Min. mnożnik autosens + Bolus snooze dia divisor (Dzielnik uśpienia bolusa) + Max daily safety multiplier (Mnożnik bezpieczeństwa maksymalnej dziennej dawki bazowej [U/godzinę]) + Current basal safety multiplier (Mnożnik bezpieczeństwa aktualnej dziennej dawki bazowej [U/godzinę]) + n/a + Automatycznie uzupełnij BG + Ustawienia kreatora + Obliczenia uwzględnione w wynikach kreatora: + Ustawienia wyświetlania + Ustawienia ogólne + \ No newline at end of file diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index 9d9539ec20..0c7c0bb55e 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -6,7 +6,7 @@ Absolut Åtgärder Act - Aktivitet + Träning Vuxen Avancerade inställningar Starta om telefonen eller AndroidAPS från systeminställningar, annars kommer Android APS inte kunna logga fel (viktigt att kunna spåra och verifiera att algoritmerna fungerar korrekt)! @@ -42,7 +42,7 @@ BG-kontroll Kanylålder Byte CGM-sensor - CGM-sensor start + Start CGM-sensor Kombinationsbolus Korrektionsbolus Träning @@ -54,7 +54,7 @@ KH-tid Duration Infört av - Tid för händelse + Tid Händelsetyp Insulin Mätare @@ -65,7 +65,7 @@ Sensor Delad Notering - OpenAPS offline + Offline Pumpbatteri ålder Byt profil Byte pumpkanyl @@ -87,7 +87,7 @@ Kommentar Konfigurationsverktyg APS - BG Källa + BG-källa Begränsningar Generell Insulin @@ -101,7 +101,7 @@ Bekräfta Ansluten Ansluter - Anslutningsfel pump + Anslutningsfel Begränsning nådd Begränsning nådd Kopierat till Urklipp @@ -129,8 +129,8 @@ Påfyllning Stoppa Hämta - Fel på inmatad data - Pump IOB + Fel på inmatning + Pumpens IOB Senaste bolus Lösenord pump DanaR pumpinställningar @@ -157,14 +157,14 @@ Vald enhet kan inte nås DIA: Loop frånkopplad - Koppla ifrån pump i 1 h + Koppla loss pump i 1 h Stäng av loop Frånkopplad - Kopplar ifrån + Kopplar från Koppla ifrån pump i 10 h - Koppla ifrån pump i 2 h - Koppla ifrån pump i 30 min - Koppla ifrån pump i 3 h + Koppla loss pump i 2 h + Koppla loss pump i 30 min + Koppla loss pump i 3 h TA BORT Ignorera profilbyten Alla profilbyten ignoreras och aktiv profil används alltid @@ -189,7 +189,7 @@ Inställningar exporterade Förlängd bolus Lyckades inte uppdatera basalprofilen - Snabbverkande Insulin (gammal beräkningsmodell) + Snabbverkande Insulin Novorapid, Novolog, Humalog, Apidra Hittade inte filen Standardvärden för prime/fyll. @@ -222,7 +222,7 @@ Manuell Avbryt Måltid - Saknas + Saknas: Om Backup Avsluta @@ -240,7 +240,7 @@ Ingen profil laddad från Nightscout ännu Ingen profil vald INGEN PROFIL VALD - misslyckat - vg kontrollera telefonen + misslyckat - kontrollera telefonen Ej tillgängligt NS Client har inga skrivrättigheter. Fel API secret? Alarm inställningar @@ -281,7 +281,7 @@ Du har nått din tillåtna gräns xds xDrip Status (klocka) - xDrip Statusline (klocka) + xDrip Statuslinje (klocka) xDrip+ inte installerat xDrip Fel lösenord för pump @@ -289,10 +289,10 @@ Visa BGI Visa BGI i statusfält Wear - Inställningar för Wear + Inställningar för klocka (Wear) Visa detaljerad IOB Visa IOB med bolus och basal på klocka - Wear + Klocka (Wear) Väntar på resultat Väntar på pump. Klicka för att uppdatera. Väntar på pump @@ -314,8 +314,8 @@ Laddar upp Uppdaterar basalhastigheter Upp - Version av Nightscout som inte stöds - Version av NSClient som inte stöds + Osupportad version av Nightscout + Osupportad version av NSClient Lås upp inställningar Enheter: Säkerhet vid behandling @@ -334,11 +334,11 @@ Insulin KH Total IOB: - Total aktiv IOB: + Totalt aktiverat IOB: IOB: Insulin: KH: - Aktivitet: + Redan aktiverat: Behandlingar Fel vid bolusleverans TT @@ -411,7 +411,7 @@ Avslutar appen för att inställningarna ska läsas in. Omstart Vill du verkligen återställa databaserna? - Uppdatera all data + Uppdatera klockans data Ta bort sparad data: Ladda om profil Uppdatera händelser från Nightscout @@ -430,7 +430,7 @@ Pump inte initierad Pump NSProfil - NS profil + NS-profil Profilbyte Basalprofilen uppdaterad i pumpen Lyckades inte sätta basalprofilen @@ -464,12 +464,11 @@ Tillförd Bolus Översikt - Andra Ny rekommendation tillgänglig Open Loop Värde %s är utanför gränserna %.2f begränsad till %.2f - Kör nu + Beräkna nu Beräknat behov Profil Ingen pump tillgänglig @@ -480,12 +479,12 @@ Detta värde kallas Max IOB i OpenAPS. Det är ställt till noll från start. Efter flera dagar till veckor, beroende på hur du känner, kan du välja att justera denna. Max enheter per timme som temp basal kan sättas till Detta värde kallas max basal inom OpenAPS - Senast körd + Senaste beräkning Senast startad - IOB data + IOB-data Ange värden Glukosstatus - Plug in är avaktiverad + Plugin är avaktiverad Nuvarande temp Autosensdata OpenAPS MA @@ -500,7 +499,7 @@ Standardvärde: sant Detta för att tillåta autosens justera BG målvärden, ISF och basaler. OpenAPS AMA OpenAPS - Öppna inställningar på Wear + Öppna inställningar på klockan Konstant infonotis i telefonen GAMMAL DATA OK @@ -509,7 +508,7 @@ Pumpstatus tillgängligt i Nightscout Mål: Minimal duration - Manuell aktivering + Manuella justeringar Spärr: Godkänn Starta @@ -525,7 +524,7 @@ Utifrån vad du nu lärt dig, besluta vilken max basal du vil ha. Ställ in det både i inställningarna i APS och i din pump. Starta med open loop Starta med open loop och använd det några dagar. Försök att ge många föreslagna temp basaler. - Tid i timmar när alla KH väntas vara absorberade + Tid i timmar när alla kolhydradet förväntas vara absorberade Max absorptions tid för en måltid [tim] Absorptionsinställningar PUMP @@ -551,9 +550,9 @@ Basaltyp SENS Genom att slå på Autosens funktionen, kom ihåg att skriva in alla KH. Annars kommer programmet göra fel i beräkningar av känslighet (ISF)!! - Sensitivity AAPS - Sensitivity Oref0 - Sensitivity WeightedAverage + Känslighetsavkänning AAPS + Känslighetsavkänning Oref0 + Känslighetsavkänning WeightedAverage Ställer in temp basal SP BG: @@ -597,22 +596,22 @@ För närvarande satt till %f Enhet Uppladdare - Känslighetsmätning + Känslighetsavkänning Alla profiler laddades inte! Notiser från Översikten Sänd notiser från Översikten som bekräftelsemeddelanden på Wear. Basal [E/tim] Peaktid för IOB-kurvan Peaktid [min] - Rapid-Acting Oref (ny beräkningsmodell) - Ultra-Rapid Oref (ny beräkningsmodell) + Rapid-Acting Oref + Ultra-Rapid Oref %s tim DIA är för kort. Använder %s istället! Aktivera profil Datum OGILTIG Väntar på parkoppling med pump - Parkoppling OK - Parkoppling tog för lång tid + Parkopplingen klar + Parkopplingen tog för lång tid PARKOPPLAR Ingen enhet funnen ännu Tom reservoar @@ -626,10 +625,10 @@ Procent Tidsförskjutning Standardvärde för Temp-mål - Äta snart, duration - Äta snart, mål - Aktivitet, duration - Aktivitet, mål + Äta snart [min] + Mål vid Äta snart + Träning [min] + Mål vid träning Hämtar status för förlängd bolus Hämtar status för bolus Hämtar status för tempbasal @@ -640,12 +639,11 @@ Sätt tempmål och ange behandlingar från klockan. Anslutningen tog för lång tid Mat - g kJ En Pr Fett - Väntar på att bolus ska slutföras. %d sek återstår. + Väntar på att bolus ska slutföras (%d sek) Behandlar Påbörjar bolus Kommandot kör just nu @@ -660,7 +658,7 @@ Akut larm Bluetooth-övervakare Startar om bluetooth på telefonen om anslutning till pumpen misslyckas. Detta hjälper på en del telefoner där bluetooth ibland hänger sig. - Lada upp BG-data till Nightscout + Ladda upp BG-data till Nightscout Uppladdningsinställningar för G5 Visa detaljerad delta Visa delta med en extra decimal @@ -679,13 +677,13 @@ Endast negativa Använd COB Använd tempmål - Loop påslagen + Loop aktiverad APS vald NSClient har skrivrättigheter - Closed loop påslagen + Closed loop aktiverad Max IOB är korrekt angivet BG tillgängligt från vald källa - Basalerna är inte satta på hel timme: %s + Profilens basaler är inte satta på hel timme: %s Ogiltig profil: %s Programmerar bolus i pump Uppdatera @@ -813,21 +811,21 @@ Uppladdning till Fabric Tillåt automatisk rapportering av appkrascher och användningsinformation till utvecklarna via fabric.io-tjänsten. Vänligen uppdatera din G5-app till en supportad version - Starta Tränings-TT - Starta Äta snart-TT + Starta \"Träning\" + Starta \"Äta snart\" Ge ingen bolus, logga bara Kategori Underkategori Bolusen sparas bara i loggboken Hämta saknade BG från NS SMB satt i pump - Känslighet - Avvikelser - Aktiva KH - Aktivt insulin + Känslighet (Sens) + Avvikelser (Dev) + Aktiva KH (COB) + Aktivt insulin (IOB) Basaler Ingen åtgärd vald. Inget ändras. - Starta Hypo-TT + Starta \"Hypo\" Du kör nu dev-versionen. Closed Loop inte tillåtet. Engineering Mode aktiverat Engineering Mode inte aktiverat och appen körs inte som release @@ -845,7 +843,7 @@ Tid/datum för bolusen verkar fel. IOB är troligen missvisande. Vänligen kontrollera tid och datum i pumpen. Profilbyte saknas. Vänligen gör ett profilbyte eller tryck Aktivera profil under Lokal Profil. Antal bolus - Antal temp basal + Antal temp basaler Mål %d inte startat Mål %d inte nått Pumpen är inte kapabel till temp basal @@ -902,9 +900,29 @@ Multiplikator för max daglig basal (max_daily) Multiplikator för nuvarande basal (max_current) - - Free-Peak Oref (ny beräkningsmodell) + Free-Peak Oref Hypo - Hypo längd [min] + Hypo [min] Mål vid Hypo Insulinresistent vuxen + Debug + Koppla loss pump i 15 min + All profiler laddades inte! + Alla värden sparades inte! + Aktivera UAM + Aktivera SMB + Använd Super Micro Bolusar istället för temp basal för snabbare resultat + Avkänning av oförberedda måltider (UAM) + Appbindning + Hämta saknad BG-data från Nightscout + Endast vid laddning + Auto Backfill BG + Kalkylatorinställningar + Kalkyler inkluderade i resultatet + Visningsinställningar + Generella inställningar + TRÄNING & BG-MÅL + KOLHYDRATER & BOLUS + CGM & LOGGNING + Övrigt diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml index 12492d4a50..181ce1d8dd 100644 --- a/app/src/main/res/values/arrays.xml +++ b/app/src/main/res/values/arrays.xml @@ -16,6 +16,7 @@ @string/cs_lang @string/de_lang @string/fr_lang + @string/ga_lang @string/nl_lang @string/es_lang @string/el_lang @@ -24,6 +25,7 @@ @string/ro_lang @string/ru_lang @string/sv_lang + @string/pl_lang @string/zh_lang @@ -32,6 +34,7 @@ cs de fr + ga nl es el @@ -40,6 +43,7 @@ ro ru sv + pl zh-rCN diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 0b4105c847..4f2a8c7429 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -3,10 +3,11 @@ #ff00ff #00ffff #1e88e5 - #FFFFCC03 + #1ea3e5 #FFFB8C00 - #ffea00 - #00ffff + #FFFB8C00 + #c9bd60 + #00d2d2 #FFFFFF #FFFFFF00 #FFFF00FF @@ -22,6 +23,7 @@ #C803A9F4 #757575 #d8d8d8 + #ff1a1a #424242 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index af30252d7c..60732f925f 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] @@ -200,6 +200,7 @@ Swedish French Chinese + Polski Max U/hr a Temp Basal can be set to This value is called max basal in OpenAPS context Maximum basal IOB OpenAPS can deliver [U] @@ -1046,6 +1047,7 @@ Current basal safety multiplier n/a Autobackfill BG + Irish Wizard Settings wearwizard_bg wearwizard_trend 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"> diff --git a/build.gradle b/build.gradle index 9693b3a9c5..d49b06c5f7 100644 --- a/build.gradle +++ b/build.gradle @@ -7,7 +7,7 @@ buildscript { maven { url "https://oss.sonatype.org/content/repositories/snapshots/" } } dependencies { - classpath 'com.android.tools.build:gradle:3.1.1' + classpath 'com.android.tools.build:gradle:3.1.2' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files 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"> + + 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..a598a39c2c --- /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, 15d, new DecimalFormat("0"), false); + 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 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); + } } }