Merge branch 'dev' into smb060

This commit is contained in:
Milos Kozak 2018-01-15 12:46:50 +01:00
commit 91a6c7a96c
34 changed files with 637 additions and 231 deletions

View file

@ -15,4 +15,7 @@ android:
script:
# Unit Test
- ./gradlew test
- ./gradlew test jacocoTestReport
after_success:
- bash <(curl -s https://codecov.io/bash)

View file

@ -5,3 +5,5 @@
[![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)

View file

@ -1,14 +1,25 @@
buildscript {
repositories {
maven { url 'https://maven.fabric.io/public' }
jcenter()
}
dependencies {
classpath 'io.fabric.tools:gradle:1.+'
classpath 'com.dicedmelon.gradle:jacoco-android:0.1.2'
}
}
apply plugin: 'com.android.application'
apply plugin: 'io.fabric'
apply plugin: "com.android.application"
apply plugin: "io.fabric"
apply plugin: "jacoco-android"
ext {
supportLibraryVersion = "23.4.0"
ormLiteVersion = "4.46"
powermockVersion = "1.7.3"
dexmakerVersion = "1.2"
}
repositories {
maven { url 'https://maven.fabric.io/public' }
@ -45,7 +56,7 @@ android {
targetSdkVersion 23
multiDexEnabled true
versionCode 1500
version "1.56-smb"
version "1.57-smb"
buildConfigField "String", "VERSION", '"' + version + '"'
buildConfigField "String", "BUILDVERSION", generateGitBuild()
@ -55,12 +66,16 @@ android {
}
lintOptions {
disable 'MissingTranslation'
disable 'ExtraTranslation'
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
debug {
testCoverageEnabled true
}
}
productFlavors {
flavorDimensions "standard"
@ -76,6 +91,7 @@ android {
buildConfigField "boolean", "NSCLIENTOLNY", "false"
buildConfigField "boolean", "CLOSEDLOOP", "true"
buildConfigField "boolean", "G5UPLOADER", "false"
buildConfigField "boolean", "PUMPCONTROL", "false"
}
openloop {
dimension "standard"
@ -89,6 +105,7 @@ android {
buildConfigField "boolean", "NSCLIENTOLNY", "false"
buildConfigField "boolean", "CLOSEDLOOP", "false"
buildConfigField "boolean", "G5UPLOADER", "false"
buildConfigField "boolean", "PUMPCONTROL", "false"
}
pumpcontrol {
dimension "standard"
@ -102,6 +119,7 @@ android {
buildConfigField "boolean", "NSCLIENTOLNY", "false"
buildConfigField "boolean", "CLOSEDLOOP", "false"
buildConfigField "boolean", "G5UPLOADER", "false"
buildConfigField "boolean", "PUMPCONTROL", "true"
}
nsclient {
dimension "standard"
@ -115,6 +133,7 @@ android {
buildConfigField "boolean", "NSCLIENTOLNY", "true"
buildConfigField "boolean", "CLOSEDLOOP", "false"
buildConfigField "boolean", "G5UPLOADER", "false"
buildConfigField "boolean", "PUMPCONTROL", "false"
}
g5uploader {
dimension "standard"
@ -128,6 +147,7 @@ android {
buildConfigField "boolean", "NSCLIENTOLNY", "false"
buildConfigField "boolean", "CLOSEDLOOP", "false"
buildConfigField "boolean", "G5UPLOADER", "true"
buildConfigField "boolean", "PUMPCONTROL", "false"
}
}
}
@ -145,53 +165,55 @@ dependencies {
wearApp project(':wear')
compile fileTree(include: ['*.jar'], dir: 'libs')
compile('com.crashlytics.sdk.android:crashlytics:2.6.7@aar') {
compile("com.crashlytics.sdk.android:crashlytics:2.6.7@aar") {
transitive = true;
}
compile('com.crashlytics.sdk.android:answers:1.3.12@aar') {
compile("com.crashlytics.sdk.android:answers:1.3.12@aar") {
transitive = true;
}
compile 'com.android.support:appcompat-v7:23.4.0'
compile 'com.android.support:support-v4:23.4.0'
compile 'com.android.support:cardview-v7:23.4.0'
compile 'com.android.support:recyclerview-v7:23.4.0'
compile 'com.android.support:gridlayout-v7:23.4.0'
compile "com.android.support:design:23.4.0"
compile "com.android.support:percent:23.4.0"
compile 'com.wdullaer:materialdatetimepicker:2.3.0'
compile 'com.squareup:otto:1.3.7'
compile 'com.j256.ormlite:ormlite-core:4.46'
compile 'com.j256.ormlite:ormlite-android:4.46'
compile('com.github.tony19:logback-android-classic:1.1.1-6') {
exclude group: 'com.google.android', module: 'android'
compile "com.android.support:appcompat-v7:${supportLibraryVersion}"
compile "com.android.support:support-v4:${supportLibraryVersion}"
compile "com.android.support:cardview-v7:${supportLibraryVersion}"
compile "com.android.support:recyclerview-v7:${supportLibraryVersion}"
compile "com.android.support:gridlayout-v7:${supportLibraryVersion}"
compile "com.android.support:design:${supportLibraryVersion}"
compile "com.android.support:percent:${supportLibraryVersion}"
compile "com.wdullaer:materialdatetimepicker:2.3.0"
compile "com.squareup:otto:1.3.7"
compile "com.j256.ormlite:ormlite-core:${ormLiteVersion}"
compile "com.j256.ormlite:ormlite-android:${ormLiteVersion}"
compile("com.github.tony19:logback-android-classic:1.1.1-6") {
exclude group: "com.google.android", module: "android"
}
compile 'org.apache.commons:commons-lang3:3.6'
compile 'org.slf4j:slf4j-api:1.7.12'
compile 'com.jjoe64:graphview:4.0.1'
compile 'com.joanzapata.iconify:android-iconify-fontawesome:2.1.1'
compile 'com.google.android.gms:play-services-wearable:7.5.0'
compile 'junit:junit:4.12'
testCompile 'org.json:json:20140107'
testCompile 'org.mockito:mockito-core:2.7.22'
testCompile 'org.powermock:powermock-api-mockito2:1.7.3'
testCompile 'org.powermock:powermock-module-junit4-rule-agent:1.7.3'
testCompile 'org.powermock:powermock-module-junit4-rule:1.7.3'
testCompile 'org.powermock:powermock-module-junit4:1.7.3'
androidTestCompile 'org.mockito:mockito-core:2.7.22'
androidTestCompile 'com.google.dexmaker:dexmaker:1.2'
androidTestCompile 'com.google.dexmaker:dexmaker-mockito:1.2'
compile(name: 'android-edittext-validator-v1.3.4-mod', ext: 'aar')
compile('com.google.android:flexbox:0.3.0') {
exclude group: 'com.android.support'
compile "org.apache.commons:commons-lang3:3.6"
compile "org.slf4j:slf4j-api:1.7.12"
compile "com.jjoe64:graphview:4.0.1"
compile "com.joanzapata.iconify:android-iconify-fontawesome:2.1.1"
compile "com.google.android.gms:play-services-wearable:7.5.0"
compile(name: "android-edittext-validator-v1.3.4-mod", ext: "aar")
compile("com.google.android:flexbox:0.3.0") {
exclude group: "com.android.support"
}
compile('io.socket:socket.io-client:0.8.3') {
compile("io.socket:socket.io-client:0.8.3") {
// excluding org.json which is provided by Android
exclude group: 'org.json', module: 'json'
exclude group: "org.json", module: "json"
}
compile 'com.google.code.gson:gson:2.7'
compile 'com.google.guava:guava:20.0'
compile "com.google.code.gson:gson:2.7"
compile "com.google.guava:guava:20.0"
compile 'net.danlew:android.joda:2.9.9.1'
testCompile 'joda-time:joda-time:2.9.4.2'
compile "net.danlew:android.joda:2.9.9.1"
testCompile "junit:junit:4.12"
testCompile "org.json:json:20140107"
testCompile "org.mockito:mockito-core:2.7.22"
testCompile "org.powermock:powermock-api-mockito2:${powermockVersion}"
testCompile "org.powermock:powermock-module-junit4-rule-agent:${powermockVersion}"
testCompile "org.powermock:powermock-module-junit4-rule:${powermockVersion}"
testCompile "org.powermock:powermock-module-junit4:${powermockVersion}"
testCompile "joda-time:joda-time:2.9.4.2"
androidTestCompile "org.mockito:mockito-core:2.7.22"
androidTestCompile "com.google.dexmaker:dexmaker:${dexmakerVersion}"
androidTestCompile "com.google.dexmaker:dexmaker-mockito:${dexmakerVersion}"
}

View file

@ -11,6 +11,7 @@ public class Config {
// PLUGINS
public static final boolean NSCLIENT = BuildConfig.NSCLIENTOLNY;
public static final boolean G5UPLOADER = BuildConfig.G5UPLOADER;
public static final boolean PUMPCONTROL = BuildConfig.PUMPCONTROL;
public static final boolean DANAR = BuildConfig.PUMPDRIVERS;

View file

@ -167,10 +167,16 @@ public class MainApp extends Application {
MainApp.getConfigBuilder().initialize();
}
NSUpload.uploadAppStart();
if (MainApp.getConfigBuilder().isClosedModeEnabled())
if (Config.NSCLIENT)
Answers.getInstance().logCustom(new CustomEvent("AppStart-NSClient"));
else if (Config.G5UPLOADER)
Answers.getInstance().logCustom(new CustomEvent("AppStart-G5Uploader"));
else if (Config.PUMPCONTROL)
Answers.getInstance().logCustom(new CustomEvent("AppStart-PumpControl"));
else if (MainApp.getConfigBuilder().isClosedModeEnabled())
Answers.getInstance().logCustom(new CustomEvent("AppStart-ClosedLoop"));
else
Answers.getInstance().logCustom(new CustomEvent("AppStart"));
Answers.getInstance().logCustom(new CustomEvent("AppStart-OpenLoop"));
new Thread(new Runnable() {
@Override
@ -225,6 +231,10 @@ public class MainApp extends Application {
return sBus;
}
public static String gs(int id) {
return sResources.getString(id);
}
public static MainApp instance() {
return sInstance;
}

View file

@ -120,7 +120,7 @@ public class Profile {
}
} catch (JSONException e) {
log.error("Unhandled exception", e);
ToastUtils.showToastInUiThread(MainApp.instance().getApplicationContext(), MainApp.sResources.getString(R.string.invalidprofile));
ToastUtils.showToastInUiThread(MainApp.instance().getApplicationContext(), MainApp.gs(R.string.invalidprofile));
}
}
@ -386,6 +386,8 @@ public class Profile {
}
public BasalValue[] getBasalValues() {
if (basal_v == null)
basal_v = convertToSparseArray(basal);
BasalValue[] ret = new BasalValue[basal_v.size()];
for (Integer index = 0; index < basal_v.size(); index++) {

View file

@ -437,22 +437,6 @@ public class ConfigBuilderPlugin implements PluginBase, ConstraintsInterface, Tr
return true;
}
/*
@Override
public PumpDescription getPumpDescription() {
if (activePump != null)
return activePump.getPumpDescription();
else {
PumpDescription emptyDescription = new PumpDescription();
emptyDescription.isBolusCapable = false;
emptyDescription.isExtendedBolusCapable = false;
emptyDescription.isSetBasalProfileCapable = false;
emptyDescription.isTempBasalCapable = true; // needs to be true before real driver is selected
emptyDescription.isRefillingCapable = false;
return emptyDescription;
}
}
*/
/**
* Constraints interface
@ -652,7 +636,7 @@ public class ConfigBuilderPlugin implements PluginBase, ConstraintsInterface, Tr
@Override
@Nullable
public TemporaryBasal getTempBasalFromHistory(long time) {
return activeTreatments.getTempBasalFromHistory(time);
return activeTreatments != null ? activeTreatments.getTempBasalFromHistory(time) : null;
}
@Override

View file

@ -1058,9 +1058,9 @@ public class OverviewFragment extends Fragment implements View.OnClickListener,
baseBasalView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String fullText = MainApp.sResources.getString(R.string.virtualpump_basebasalrate_label) + ": " + DecimalFormatter.to2Decimal(MainApp.getConfigBuilder().getProfile().getBasal()) + "U/h\n";
String fullText = MainApp.sResources.getString(R.string.pump_basebasalrate_label) + ": " + DecimalFormatter.to2Decimal(MainApp.getConfigBuilder().getProfile().getBasal()) + "U/h\n";
if (activeTemp != null) {
fullText += MainApp.sResources.getString(R.string.virtualpump_tempbasal_label) + ": " + activeTemp.toStringFull();
fullText += MainApp.sResources.getString(R.string.pump_tempbasal_label) + ": " + activeTemp.toStringFull();
}
OKDialog.show(getActivity(), MainApp.sResources.getString(R.string.basal), fullText, null);
}

View file

@ -139,8 +139,8 @@ public class PersistentNotificationPlugin implements PluginBase {
}
}
if (MainApp.getConfigBuilder().isTempBasalInProgress()) {
TemporaryBasal activeTemp = MainApp.getConfigBuilder().getTempBasalFromHistory(System.currentTimeMillis());
if (activeTemp != null) {
line1 += " " + activeTemp.toStringShort();
}

View file

@ -258,6 +258,7 @@ public class DanaRSService extends Service {
MainApp.bus().post(bolusingEvent);
SystemClock.sleep(1000);
}
// do not call loadEvents() directly, reconnection may be needed
ConfigBuilderPlugin.getCommandQueue().loadEvents(new Callback() {
@Override
public void run() {

View file

@ -424,6 +424,7 @@ public class DanaRv2ExecutionService extends Service {
MainApp.bus().post(bolusingEvent);
SystemClock.sleep(1000);
}
// do not call loadEvents() directly, reconnection may be needed
ConfigBuilderPlugin.getCommandQueue().loadEvents(new Callback() {
@Override
public void run() {

View file

@ -439,8 +439,10 @@ public class TreatmentsPlugin implements PluginBase, TreatmentsInterface {
@Override
public double getTempBasalRemainingMinutesFromHistory() {
if (isTempBasalInProgress())
return getTempBasalFromHistory(System.currentTimeMillis()).getPlannedRemainingMinutes();
TemporaryBasal activeTemp = getTempBasalFromHistory(System.currentTimeMillis());
if (activeTemp != null) {
return activeTemp.getPlannedRemainingMinutes();
}
return 0;
}

View file

@ -182,10 +182,9 @@ public class StatuslinePlugin implements PluginBase {
//Temp basal
TreatmentsInterface treatmentsInterface = MainApp.getConfigBuilder();
if (treatmentsInterface.isTempBasalInProgress()) {
TemporaryBasal activeTemp = treatmentsInterface.getTempBasalFromHistory(System.currentTimeMillis());
if (activeTemp != null) {
status += activeTemp.toStringShort();
}
//IOB

View file

@ -1,5 +1,6 @@
package info.nightscout.androidaps.queue;
import android.content.Context;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.text.Html;
@ -38,33 +39,33 @@ import info.nightscout.androidaps.queue.commands.CommandTempBasalPercent;
/**
* Created by mike on 08.11.2017.
*
* <p>
* DATA FLOW:
* ---------
*
* <p>
* (request) - > ConfigBuilder.getCommandQueue().bolus(...)
*
* <p>
* app no longer waits for result but passes Callback
*
* <p>
* request is added to queue, if another request of the same type already exists in queue, it's removed prior adding
* but if request of the same type is currently executed (probably important only for bolus which is running long time), new request is declined
* new QueueThread is created and started if current if finished
* CommandReadStatus is added automatically before command if queue is empty
*
* <p>
* biggest change is we don't need exec pump commands in Handler because it's finished immediately
* command queueing if not realized by stacking in different Handlers and threads anymore but by internal queue with better control
*
* <p>
* QueueThread calls ConfigBuilder#connect which is passed to getActivePump().connect
* connect should be executed on background and return immediately. afterwards isConnecting() is expected to be true
*
* <p>
* while isConnecting() == true GUI is updated by posting connection progress
*
* <p>
* if connect is successful: isConnected() becomes true, isConnecting() becomes false
* CommandQueue starts calling execute() of commands. execute() is expected to be blocking (return after finish).
* callback with result is called after finish automatically
* if connect failed: isConnected() becomes false, isConnecting() becomes false
* connect() is called again
*
* <p>
* when queue is empty, disconnect is called
*/
@ -72,7 +73,7 @@ public class CommandQueue {
private static Logger log = LoggerFactory.getLogger(CommandQueue.class);
private LinkedList<Command> queue = new LinkedList<>();
private Command performing;
protected Command performing;
private QueueThread thread = null;
@ -94,10 +95,19 @@ public class CommandQueue {
}
}
private synchronized boolean isLastScheduled(Command.CommandType type) {
if (queue.size() > 0 && queue.get(queue.size() - 1).commandType == type) {
return true;
}
return false;
}
private synchronized void inject(Command command) {
// inject as a first command
queue.addFirst(command);
}
private synchronized void add(Command command) {
// inject reading of status when adding first command to the queue
if (queue.size() == 0 && command.commandType != Command.CommandType.READSTATUS)
queue.add(new CommandReadStatus("Queue", null));
queue.add(command);
}
@ -128,7 +138,7 @@ public class CommandQueue {
// After new command added to the queue
// start thread again if not already running
private synchronized void notifyAboutNewCommand() {
protected synchronized void notifyAboutNewCommand() {
if (thread == null || thread.getState() == Thread.State.TERMINATED) {
thread = new QueueThread(this);
thread.start();
@ -166,28 +176,13 @@ public class CommandQueue {
add(new CommandBolus(detailedBolusInfo, callback));
// Bring up bolus progress dialog (start here, so the dialog is shown when the bolus is requested,
// not when the Bolus command is starting. The command closes the dialog upon completion).
if (detailedBolusInfo.context != null) {
BolusProgressDialog bolusProgressDialog = new BolusProgressDialog();
bolusProgressDialog.setInsulin(detailedBolusInfo.insulin);
bolusProgressDialog.show(((AppCompatActivity) detailedBolusInfo.context).getSupportFragmentManager(), "BolusProgress");
} else {
Intent i = new Intent();
i.putExtra("insulin", detailedBolusInfo.insulin);
i.setClass(MainApp.instance(), BolusProgressHelperActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
MainApp.instance().startActivity(i);
}
showBolusProgressDialog(detailedBolusInfo.insulin, detailedBolusInfo.context);
// Notify Wear about upcoming bolus
MainApp.bus().post(new EventBolusRequested(detailedBolusInfo.insulin));
}
notifyAboutNewCommand();
// Notify Wear about upcoming bolus
MainApp.bus().post(new EventBolusRequested(detailedBolusInfo.insulin));
notifyAboutNewCommand();
return true;
}
@ -336,11 +331,12 @@ public class CommandQueue {
// returns true if command is queued
public boolean readStatus(String reason, Callback callback) {
//if (isRunning(Command.CommandType.READSTATUS)) {
// if (callback != null)
// callback.result(executingNowError()).run();
// return false;
//}
if (isLastScheduled(Command.CommandType.READSTATUS)) {
log.debug("QUEUE: READSTATUS " + reason + " ignored as duplicated");
if (callback != null)
callback.result(executingNowError()).run();
return false;
}
// remove all unfinished
//removeAll(Command.CommandType.READSTATUS);
@ -419,4 +415,18 @@ public class CommandQueue {
} else return true;
}
protected void showBolusProgressDialog(Double insulin, Context context) {
if (context != null) {
BolusProgressDialog bolusProgressDialog = new BolusProgressDialog();
bolusProgressDialog.setInsulin(insulin);
bolusProgressDialog.show(((AppCompatActivity) context).getSupportFragmentManager(), "BolusProgress");
} else {
Intent i = new Intent();
i.putExtra("insulin", insulin);
i.setClass(MainApp.instance(), BolusProgressHelperActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
MainApp.instance().startActivity(i);
}
}
}

View file

@ -30,7 +30,7 @@ public abstract class Command {
public void cancel() {
PumpEnactResult result = new PumpEnactResult();
result.success = false;
result.comment = MainApp.sResources.getString(R.string.connectiontimedout);
result.comment = MainApp.gs(R.string.connectiontimedout);
if (callback != null)
callback.result(result).run();
}

View file

@ -27,6 +27,6 @@ public class CommandReadStatus extends Command {
@Override
public String status() {
return "READSTATUS";
return "READSTATUS " + reason;
}
}

View file

@ -151,7 +151,7 @@
android:layout_weight="1"
android:gravity="end"
android:paddingRight="5dp"
android:text="@string/virtualpump_battery_label"
android:text="@string/pump_battery_label"
android:textSize="14sp" />
<TextView
@ -197,7 +197,7 @@
android:layout_weight="1"
android:gravity="end"
android:paddingRight="5dp"
android:text="@string/virtualpump_lastconnection_label"
android:text="@string/pump_lastconnection_label"
android:textSize="14sp" />
<TextView
@ -242,7 +242,7 @@
android:layout_weight="1"
android:gravity="end"
android:paddingRight="5dp"
android:text="@string/danar_lastbolus"
android:text="@string/pump_lastbolus_label"
android:textSize="14sp" />
<TextView
@ -332,7 +332,7 @@
android:layout_weight="1"
android:gravity="end"
android:paddingRight="5dp"
android:text="@string/virtualpump_basebasalrate_label"
android:text="@string/pump_basebasalrate_label"
android:textSize="14sp" />
<TextView
@ -377,7 +377,7 @@
android:layout_weight="1"
android:gravity="end"
android:paddingRight="5dp"
android:text="@string/virtualpump_tempbasal_label"
android:text="@string/pump_tempbasal_label"
android:textSize="14sp" />
<TextView
@ -467,7 +467,7 @@
android:layout_weight="1"
android:gravity="end"
android:paddingRight="5dp"
android:text="@string/virtualpump_reservoir_label"
android:text="@string/pump_reservoir_label"
android:textSize="14sp" />
<TextView

View file

@ -21,7 +21,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="@string/virtualpump_tempbasal_label"
android:text="@string/pump_tempbasal_label"
android:textAppearance="?android:attr/textAppearanceLarge" />
<LinearLayout

View file

@ -33,7 +33,7 @@
android:layout_weight="1"
android:gravity="end"
android:paddingRight="5dp"
android:text="@string/virtualpump_basebasalrate_label"
android:text="@string/pump_basebasalrate_label"
android:textSize="14sp" />
<TextView
@ -77,7 +77,7 @@
android:layout_weight="1"
android:gravity="end"
android:paddingRight="5dp"
android:text="@string/virtualpump_tempbasal_label"
android:text="@string/pump_tempbasal_label"
android:textSize="14sp" />
<TextView
@ -165,7 +165,7 @@
android:layout_weight="1"
android:gravity="end"
android:paddingRight="5dp"
android:text="@string/virtualpump_battery_label"
android:text="@string/pump_battery_label"
android:textSize="14sp" />
<TextView
@ -209,7 +209,7 @@
android:layout_weight="1"
android:gravity="end"
android:paddingRight="5dp"
android:text="@string/virtualpump_reservoir_label"
android:text="@string/pump_reservoir_label"
android:textSize="14sp" />
<TextView

View file

@ -47,13 +47,13 @@
<string name="treatments_wizard_bolusiob_label">IOB от болуси</string>
<string name="treatments_wizard_total_label">ОБШО</string>
<string name="openapsma_run">Старт сега</string>
<string name="virtualpump_basebasalrate_label">Базова базална стойност</string>
<string name="virtualpump_battery_label">Батерия</string>
<string name="pump_basebasalrate_label">Базова базална стойност</string>
<string name="pump_battery_label">Батерия</string>
<string name="virtualpump_extendedbolus_label">Удължен болус</string>
<string name="virtualpump_reservoir_label">Резервоар</string>
<string name="pump_reservoir_label">Резервоар</string>
<string name="virtualpump_resultok">OK</string>
<string name="virtualpump_sqlerror">Грешка в базата данни</string>
<string name="virtualpump_tempbasal_label">Временен базал</string>
<string name="pump_tempbasal_label">Временен базал</string>
<string name="vitualpump_label">ВИРТУАЛНА ПОМПА</string>
<string name="openapsma_lastrun_label">Последно изпълнение</string>
<string name="openapsma_inputparameters_label">Параметри на входа</string>
@ -223,7 +223,7 @@
<string name="connectionerror">Грешка при свързване с помпата</string>
<string name="danar_iob_label">IOB на помпата</string>
<string name="danar_dailyunits">Инсулин за деня</string>
<string name="danar_lastbolus">Последен болус:</string>
<string name="pump_lastbolus_label">Последен болус:</string>
<string name="hoursago">ч по-рано</string>
<string name="danar_invalidinput">Грешни входящи данни</string>
<string name="danar_valuenotsetproperly">Неправилна стойност</string>
@ -543,7 +543,7 @@
<string name="predictionshortlabel">PRE</string>
<string name="basalshortlabel">BAS</string>
<string name="virtualpump_firmware_label">Firmware</string>
<string name="virtualpump_lastconnection_label">Последно свързване</string>
<string name="pump_lastconnection_label">Последно свързване</string>
<string name="danar_bluetooth_status">Bluetooh статус</string>
<string name="nav_about">За приложението</string>
<string name="smscommunicator_missingsmspermission">Missing SMS permission</string>

View file

@ -153,13 +153,13 @@
<string name="treatmentssafety_title">Bezpečnost zadání ošetřeni</string>
<string name="unsupportedclientver">Nepodporovaná verze NSClient</string>
<string name="virtualpump">Virtualní pumpa</string>
<string name="virtualpump_basebasalrate_label">Základní hodnota bazálu</string>
<string name="virtualpump_battery_label">Baterie</string>
<string name="pump_basebasalrate_label">Základní hodnota bazálu</string>
<string name="pump_battery_label">Baterie</string>
<string name="virtualpump_extendedbolus_label">Prodloužený bolus</string>
<string name="virtualpump_reservoir_label">Zásobník</string>
<string name="pump_reservoir_label">Zásobník</string>
<string name="virtualpump_resultok">OK</string>
<string name="virtualpump_sqlerror">Chyba databáze</string>
<string name="virtualpump_tempbasal_label">Dočasný bazál</string>
<string name="pump_tempbasal_label">Dočasný bazál</string>
<string name="vitualpump_label">VIRTUÁLNÍ PUMPA</string>
<string name="xdrip">xDrip</string>
<string name="overview_extendedbolus_button">Prodloužený bolus</string>
@ -199,7 +199,7 @@
<string name="danar_dailyunits">Jednotek za den</string>
<string name="danar_invalidinput">Chybná vstupní data</string>
<string name="danar_iob_label">IOB z pumpy</string>
<string name="danar_lastbolus">Poslední bolus</string>
<string name="pump_lastbolus_label">Poslední bolus</string>
<string name="danar_valuenotsetproperly">Hodnota nenastavena správně</string>
<string name="danar_viewprofile">Zobrazit profil</string>
<string name="devicenotfound">Vybrané zařízení nenalezeno</string>
@ -212,7 +212,7 @@
<string name="reloadprofile">Obnovit profil</string>
<string name="save">Uložit</string>
<string name="success">Úspěch</string>
<string name="virtualpump_lastconnection_label">Poslední spojení</string>
<string name="pump_lastconnection_label">Poslední spojení</string>
<string name="canceltemp">Zrušit dočasný bazál</string>
<string name="bolusdelivered" formatted="false">Bolus %.2fU aplikován úspěšně</string>
<string name="smscommunicator_bolusfailed">Chyba při aplikování bolusu</string>

View file

@ -23,6 +23,7 @@
<string name="tempbasals_netratio_label_string">Ratio:</string>
<string name="tempbasals_realduration_label_string">Dauer:</string>
<string name="treatmentdeliveryerror">Bolus-Abgabefehler</string>
<string name="pump_battery_label">Batterie</string>
<string name="virtualpump_resultok">OK</string>
<string name="basal">Basal</string>
<string name="bolus">Bolus</string>
@ -91,11 +92,13 @@
<string name="treatments_wizard_unit_label">IE</string>
<string name="up">Auf</string>
<string name="virtualpump">Virtuelle Pumpe</string>
<string name="pump_reservoir_label">Reservoir</string>
<string name="xdrip">xDrip</string>
<string name="vitualpump_label">VIRTUELLE PUMPE</string>
<string name="virtualpump_sqlerror">SQL Error</string>
<string name="virtualpump_extendedbolus_label">Verlängerter Bolus</string>
<string name="visible">Sichtbar</string>
<string name="pump_basebasalrate_label">Basis-Basalrate</string>
<string name="treatments_wizard_total_label">GESAMT</string>
<string name="unsupportedclientver">Nicht unterstützte Version des Nightscout-Clients</string>
<string name="treatments_wizard_bg_label">BZ</string>
@ -204,6 +207,8 @@
<string name="reloadprofile">Profil neuladen</string>
<string name="save">Speichern</string>
<string name="success">Erfolgreich</string>
<string name="pump_lastconnection_label">Letzte Verbindung</string>
<string name="pump_lastbolus_label">Letzter Bolus:</string>
<string name="danar_viewprofile">Profil anzeigen</string>
<string name="danarprofile">DanaR Profil-Einstellungen</string>
<string name="danarprofile_dia">DIA [h]</string>
@ -300,7 +305,7 @@
<string name="simpleprofile_shortname">SP</string>
<string name="profileviewer_shortname">PROF</string>
<string name="overview_shortname">HOME</string>
<string name="objectives_shortname">OBJ</string>
<string name="objectives_shortname">ZIEL</string>
<string name="oaps_shortname">OAPS</string>
<string name="loop_shortname">LOOP</string>
<string name="localprofile_shortname">LP</string>
@ -314,7 +319,7 @@
<string name="error_only_numeric_digits_range_allowed">Bitte verwende nur Ziffern von %1$s - %2$s.</string>
<string name="waitingforpump">Warte auf Pumpe</string>
<string name="wear">Wear</string>
<string name="always_use_shortavg">Verwende das kurze durchschnittliche Delta statt des einfachen Deltas</string>
<string name="always_use_shortavg">Verwende immer das kurze durchschnittliche Delta statt des einfachen Deltas</string>
<string name="always_use_shortavg_summary">Sinnvoll, wenn die Daten von einer ungefilterten Quelle Signalrauschen haben.</string>
<string name="approachingdailylimit">Tagesinsulin-Limit wird erreicht</string>
<string name="basalshortlabel">BR</string>
@ -327,11 +332,11 @@
<string name="danar_bluetooth_status">Bluetooth-Status</string>
<string name="danar_stats_cumulative_tdd">Kumulative TDD</string>
<string name="danar_stats_date">Datum</string>
<string name="danar_stats_expweight">Exponentiell Gewichtete TDD</string>
<string name="danar_stats_expweight">Exponentiell gewichtete TDD</string>
<string name="danar_stats_olddata_Message">Veraltete Daten, bitte klicke auf \"Reload\"</string>
<string name="xdripstatus_shortname">xds</string>
<string name="xdripstatus">xDrip Statuszeile (Uhr)</string>
<string name="xdripstatus_settings">xDrip Status (Uhr)</string>
<string name="xdripstatus">xDrip+ Statuszeile (Uhr)</string>
<string name="xdripstatus_settings">xDrip+ Status (Uhr)</string>
<string name="xdripnotinstalled">xDrip+ nicht installiert</string>
<string name="wear_showbgi_title">Zeige BGI</string>
<string name="wear_showbgi_summary">Füge BGI zur Statuszeile hinzu</string>
@ -444,7 +449,7 @@
<string name="nav_show_logcat">Logs anzeigen</string>
<string name="nosuccess">nicht erfolgreich - bitte Telefon prüfen</string>
<string name="notavailable">Nicht verfügbar</string>
<string name="nowritepermission">NSClient hat keine Schreibrechte. Falscher API-Key?</string>
<string name="nowritepermission">Nightscout-Client hat keine Schreibrechte. Falscher API-Key?</string>
<string name="ns_alarmoptions">Alarm-Optionen</string>
<string name="ns_localbroadcasts">Aktiviere Broadcasts für andere Apps (z. B. xDrip+).</string>
<string name="ns_localbroadcasts_title">Aktiviere lokale Broadcasts.</string>
@ -543,7 +548,7 @@
<string name="pleaseallowpermission">Bitte Rechte gewähren</string>
<string name="prefs_range_summary">Hoch- und Niedrig-Werte für die Übersicht- und die Smartwatch-Anzeige</string>
<string name="prefs_range_title">Zielbereich für die Grafikanzeige</string>
<string name="sensitivity_warning">Stelle bei aktivierter Autosense-Funktion sicher, dass du alle gegessenen Kohlenhydrate eingibst. Ansonsten können die Kohlenhydrate-Abweichung zu falsche Resistenz-/Empfindlichkeitswerten führen!</string>
<string name="sensitivity_warning">Stelle bei aktivierter Autosense-Funktion sicher, dass du alle gegessenen Kohlenhydrate eingibst. Ansonsten können die Kohlenhydrate-Abweichung zu falschen Resistenz-/Empfindlichkeitswerten führen!</string>
<string name="sensitivityaaps">Sensitivität AAPS</string>
<string name="sensitivityoref0">Sensitivität Oref0</string>
<string name="sensitivityweightedaverage">Durchschnittliche Sensitivität</string>
@ -587,7 +592,7 @@
<string name="wear_overviewnotifications_summary">Zeige die Übersichtsbenachrichtigungen auch auf der Uhr an.</string>
<string name="short_avgdelta">Kurzes durchschnittl. Delta</string>
<string name="rapid_acting_oref">Rapid-Acting Oref</string>
<string name="openapsama_autosens_adjusttargets_summary">Vorgabe: true. Erlaubt Autosense den Ziel-BZ-Bereich in Verbindung mit ISF und Basal anzupassen.</string>
<string name="openapsama_autosens_adjusttargets_summary">Vorgabe: erlaubt. Erlaubt Autosense den Ziel-BZ-Bereich in Verbindung mit ISF und Basal anzupassen.</string>
<string name="openapsama_autosens_period">Intervall für Autosense [h]</string>
<string name="openapsama_autosens_period_summary">Anzahl der vergangenen Stunden, die verwendet werden, um die Sensitivität zu erkennen (Zeit, in der KH resorbiert werden, ist nicht berücksichtigt)</string>
<string name="objectives_2_gate">Entscheide anhand von dieser Erfahrung, wie hoch max Basal sein sollte, und übernehme den Wert in die Pumpen- und AAPS-Einstellungen</string>
@ -597,7 +602,7 @@
<string name="objectives_4_objective">Fein-Einstellung des Closed-Loops, Erhöhen von max IOB über 0 und langsames Heruntersetzen des Zielbereichs</string>
<string name="objectives_5_gate">Eine Woche erfolgreiches Loopen am Tag mit regelmäßiger Kohlenhydrat-Eingabe</string>
<string name="objectives_5_objective">Passe, falls notwendig, Basal und Faktoren an und aktiviere dann die Autosense-Funktion</string>
<string name="objectives_6_objective">Aktiviere zusätzliche Funktionen wie z. B. den Mahlzeitenassistent</string>
<string name="objectives_6_objective">Aktiviere zusätzliche Funktionen, wie z. B. den Mahlzeitenassistent</string>
<string name="nsalarm_urgentstaledata">Stark veraltete Daten</string>
<string name="nsalarm_urgent_staledatavalue_label">Stark veraltete Daten seit [Min.]</string>
<string name="nl_lang">Dutch</string>
@ -665,8 +670,8 @@
<string name="enable_missed_bg_readings_alert">Alarm, wenn keine Glukose-Daten empfangen werden</string>
<string name="enable_pump_unreachable_alert">Alarm, wenn die Pumpe nicht erreichbar ist</string>
<string name="pump_unreachable_threshold">Pumpe ist nicht erreichbar Grenze [Min.]</string>
<string name="combo_refresh">Aktualisieren</string>
<string name="treatments_wizard_tt_label">TZ</string>
<string name="alert_dialog_storage_permission_text">Bitte starte dein Telefon neu oder starte AndroidAPS in den System-Einstellungen neu. Andernfalls wird AndroidAPS nicht protokolliert (wichtig zum Nachverfolgen und Verifizieren, dass der Algorithmus korrekt funktioniert)</string>
<string name="tempbasal">TBR</string>
<string name="danar_history">Pumpen-Speicher</string>
<string name="enablesuperbolus_summary">Aktiviere die SuperBolus-Funktion im Wizard. Nicht aktivieren, wenn du nicht weißt, welche Auswirkungen dieser Bolus hat! ES KANN ZU EINER ÜBERDOSIERUNG AN INSULIN KOMMEN!</string>
@ -695,6 +700,67 @@
<string name="dexcomg5_xdripupload_summary">Wähle in xDrip+ 640g/Eversense als Daten-Quelle</string>
<string name="nsclientbg">Nightscout-Client BZ</string>
<string name="minimalbasalvaluereplaced">Basal-Wert wurde durch den kleinst möglichen Wert ersetzt</string>
<string name="apsselected">APS ausgewählt</string>
<string name="loopenabled">Loop aktiviert</string>
<string name="nsclienthaswritepermission">Nightscout-Client hat Schreibrechte</string>
<string name="maxiobset">Maximales IOB richtig gesetzt</string>
<string name="closedmodeenabled">Closed mode aktiviert</string>
<string name="objectives_7_objective">Aktiviere zusätzliche Funktionen wie z. B. den SMB</string>
<string name="btwatchdog_title">BT Watchdog</string>
<string name="DexcomG5">DexcomG5 App (patched)</string>
<string name="combo_pump_activity_label">Aktivität</string>
<string name="combo_tbr_remaining">%d%% (%d Min. verbleibend)</string>
<string name="combo_no_pump_connection">Keine Verbindung zur Pumpe seit %d Min.</string>
<string name="bolusstopped">Bolusabgabe gestoppt</string>
<string name="bolusstopping">Bolusabgabe wird abgebrochen</string>
<string name="pump_errors_history">Fehlerprotokol</string>
<string name="combo_pump_state_label">Status</string>
<string name="combo_pump_state_disconnected">Keine Verbindung zur Pumpe</string>
<string name="combo_pump_state_suspended_by_user">Gestoppt (Benutzer)</string>
<string name="combo_pump_state_suspended_due_to_error">Gestoppt (Fehler)</string>
<string name="combo_pump_state_running">In Betrieb</string>
<string name="combo_tdds">TDDS</string>
<string name="combo_programming_bolus">Bolusabgabe wird vorbereitet</string>
<string name="combo_pump_action_cancelling_tbr">TBR wird abgebrochen</string>
<string name="combo_pump_action_setting_tbr">TBR wird gesetzt (%d%% / %d Min.)</string>
<string name="combo_pump_action_bolusing">Bolus (%.1f IE) wird abgegeben</string>
<string name="alert_dialog_storage_permission_text">Bitte starte dein Telefon neu oder starte AndroidAPS in den System-Einstellungen neu. Andernfalls wird AndroidAPS nicht protokolliert (wichtig zum Nachverfolgen und Verifizieren, dass der Algorithmus korrekt funktioniert)</string>
<string name="pump_tempbasal_label">TBR</string>
<string name="combo_last_bolus">%.1f IE (%s, %s)</string>
<string name="raise_urgent_alarms_as_android_notification">Nutze System-Benachrichtigungen für Alarme</string>
<string name="bolus_frequency_exceeded">Ein gleich großer Bolus wurde in der letzten Minute angefordert. Dies ist nicht zulässig, um ungewollte Doppelboli zu verhindern und vor eventuellen Bugs zu schützen.</string>
<string name="combo_activity_reading_pump_history">Historie wird gelesen</string>
<string name="combo_activity_setting_basal_profile">Basalratenprofil wird aktualisiert</string>
<string name="combo_error_bolus_recovery_progress">Verbindung wird wieder hergestellt</string>
<string name="combo_error_bolus_verification_failed">Der abgegebene Bolus konnte nicht bestätigt werden. Bitte prüfe auf der Pumpe, ob ein Bolus abgegeben wurde und erstelle einen Eintrag im Careportal falls nötig.</string>
<string name="combo_error_no_bolus_delivered">Die Bolusabgabe ist fehlgeschlagen: Es wurde scheinbar kein Bolus abgegeben. Bitte prüfe auf der Pumpe, ob ein Bolus abgegeben wurde. Um doppelte Boli durch Programmfehler zu vermeiden, werden Boli nicht automatisch wiederholt.</string>
<string name="combo_error_partial_bolus_delivered">Wegen eines Fehlers wurden nur %.2f IE von den angeforderten %.2f IE abgegeben. Bitte prüfe den abgegebenen Bolus auf der Pumpe.</string>
<string name="combo_history">Historie</string>
<string name="combo_pump_action_refreshing">Status wird aktualisiert</string>
<string name="combo_pump_action_initializing">Die Pumpe wird initialisiert</string>
<string name="combo_pump_connected_now">Jetzt</string>
<string name="combo_pump_never_connected">Nie</string>
<string name="combo_pump_tbr_cancelled_warrning">Der Alarm \"TBR ABBRUCH\" wurde bestätigt</string>
<string name="combo_warning">Warnung</string>
<string name="combo_reservoir_empty">Leer</string>
<string name="combo_reservoir_low">Niedrig</string>
<string name="combo_reservoir_normal">Normal</string>
<string name="combo_tdd_average">Durchschnitt: %3.1f IE</string>
<string name="combo_tdd_maximum">Maximum: %3.1f IE</string>
<string name="combo_tdd_minimum">Minimum: %3.1f IE</string>
<string name="combo_pump_unsupported_operation">Diese Aktion wird von der Pumpe nicht unterstützt</string>
<string name="combo_pump_alerts">Alarme</string>
<string name="combo_pump_battery_low_warrning">Die Batterie in der Pumpe ist fast leer</string>
<string name="combo_pump_cartridge_low_warrning">Das Reservoir in der Pumpe ist fast leer</string>
<string name="combo_is_in_error_state">Die Pumpe zeigt einen Fehler an E%d: %s</string>
<string name="combo_force_disabled_notification">Unsichere Verwendung: In der Pumpe ist nicht das erste Basalratenprofil gewählt. Der Loop wird deaktiviert bis dies korrigiert ist.</string>
<string name="combo_low_suspend_forced_notification">Unsichere Verwendung: Ein erweiterter oder Multiwave-Bolus ist aktiv. Der Loop wird für die nächsten 6 Stunden kein zusätzliches Insulin abgeben.</string>
<string name="combo_no_alert_data_note">Um die Fehlerhistorie der Pumpe zu lesen, drücke lange auf ALARME.\nWARNUNG: Es gibt einen bekannten Fehler in der Pumpe, der dazu führt, dass die Pumpe nach dieser Aktion erst wieder Verbindungen annimmt, wenn auf der Pumpe selbst eine Taste gedrückt wird. Aus diesem Grund sollte diese Aktion nicht durchgeführt werden.</string>
<string name="combo_notification_check_time_date">Bitte aktualisiere die Uhrzeit der Pumpe</string>
<string name="combo_no_tdd_data_note">Um die TDD-Statistik der Pumpe zu lesen, drücken Sie den TDDS Knopf lange.\nWARNUNG: Es gibt einen bekannten Fehler in der Pumpe der dazu führt, dass die Pumpe nach dieser Aktion erst wieder Verbindungen annimmt, wenn auf der Pumpe selbst ein Konpf gedrückt wird. Aus diesem Grund sollte diese Aktion nicht durchgeführt werden.</string>
<string name="combo_read_full_history_warning">Dies wird den gesamten Speicher und den Status der Pumpe auslesen sowie alle Einträge in „Meine Daten“ und die Basalrate. Boli und TBR werden unter Behandlungen gespeichert, sofern sie nicht bereits vorhanden sind. Dies kann zu doppelten Einträgen führen, wenn die Uhrzeit der Pumpe abweicht. Das Auslesen des Speichers ist normaler Weise für das Loopen unnötig und nur für besondere Umstände vorgesehen. Wenn Du es dennoch tun willst, drücke noch einmal länger den Button. ACHTUNG: Dies kann einen Fehler auslösen, der dazu führt, dass die Pumpe keine Verbindungsversuche mehr akzeptiert. Erst die Betätigung einer Taste an der Pumpe beendet diesen Zustand. Nach Möglichkeit sollte daher das Auslesen vermieden werden.</string>
<string name="combo_read_full_history_confirmation">Möchtest Du wirklich den gesamten Speicher der Pumpe auslesen und die möglichen Konsequenzen des Vorgangs tragen?</string>
<string name="combo_reservoir_level_insufficient_for_bolus">Nicht mehr genug Insulin im Reservoir für den Bolus</string>
<string name="yes">Ja</string>
<string name="no">Nein</string>
<string name="overview_editquickwizard_usebg">BZ Berechnung</string>
@ -713,18 +779,4 @@
<string name="openapsama_bolussnooze_dia_divisor_summary">Standarwert: 2\nBolus snooze (\"Bolus-Schlummer\") bremst den Loop nach einem Mahleiten-Bolus, damit dieser nicht mit niedrigen TBR reagiert, wenn Du gerade gegessen hast. Beispiel: Der Standardwert 2 bewirkt, dass bei einem 3 Stunden DIA der Bolus snooze während 1.5 Stunden nach dem Bolus linear ausläuft (3 h Dia / 2 = 1.5 h Bolus snooze).</string>
<string name="openapsama_min_5m_carbimpact_summary">Standardwert: 3.0\nDies ist eine Einstellung für die Standard-Kohlenhydrat-Absorptionswirkung pro 5 Minuten. Der Standardwert ist 3mg/dl/5min. Dies wirkt sich darauf aus, wie schnell der COB-Wert fällt und wieviel KH-Absorption bei der Berechnung des vorhergesagten BZ angenommen wird, wenn der BZ stärker als erwartet fällt oder nicht so stark wie erwartet steigt.</string>
<string name="openapsama_link_to_preferncejson_doc_txt">Achtung! Normalerweise musst Du diese Werte nicht ändern. Bitte KLICKE HIER und LESE den Text. Verändere Werte erst, wenn Du den Inhalt des Textes verstanden hast.</string>
<string name="apsselected">APS ausgewählt</string>
<string name="loopenabled">Loop aktiviert</string>
<string name="nsclienthaswritepermission">Nightscout-Client hat Schreibrechte</string>
<string name="maxiobset">Maximales IOB richtig gesetzt</string>
<string name="closedmodeenabled">Closed mode aktiviert</string>
<string name="virtualpump_lastconnection_label">Letzte Verbindung</string>
<string name="virtualpump_basebasalrate_label">Basis-Basalrate</string>
<string name="virtualpump_tempbasal_label">TBR</string>
<string name="virtualpump_battery_label">Batterie</string>
<string name="virtualpump_reservoir_label">Reservoir</string>
<string name="danar_lastbolus">Letzter Bolus:</string>
<string name="objectives_7_objective">Aktiviere zusätzliche Funktionen wie z. B. den SMB</string>
<string name="btwatchdog_title">BT Watchdog</string>
<string name="DexcomG5">DexcomG5 App (patched)</string>
</resources>

View file

@ -50,11 +50,11 @@
<string name="treatments_wizard_total_label">Σύνολο</string>
<string name="openapsma_run">Έναρξη τώρα</string>
<string name="vitualpump_label">ΕΙΚΟΝΙΚΗ ΑΝΤΛΙΑ</string>
<string name="virtualpump_basebasalrate_label">Βάση Βασικού Ρυθμού</string>
<string name="virtualpump_tempbasal_label">Προσωρ. Ρυθμός</string>
<string name="pump_basebasalrate_label">Βάση Βασικού Ρυθμού</string>
<string name="pump_tempbasal_label">Προσωρ. Ρυθμός</string>
<string name="virtualpump_extendedbolus_label">Εκτετεμμένο bolus</string>
<string name="virtualpump_battery_label">Μπαταρία</string>
<string name="virtualpump_reservoir_label">Ρεζερβουάρ</string>
<string name="pump_battery_label">Μπαταρία</string>
<string name="pump_reservoir_label">Ρεζερβουάρ</string>
<string name="virtualpump_resultok">ΟΚ</string>
<string name="virtualpump_sqlerror">Λάθος SQL</string>
<string name="openapsma_lastrun_label">Τελευταίος Υπολογισμός</string>
@ -219,7 +219,7 @@
<string name="connectionerror">Λάθος σύνδεσης αντλίας</string>
<string name="danar_iob_label">IOB αντλίας</string>
<string name="danar_dailyunits">"Μονάδες ανά ημέρα "</string>
<string name="danar_lastbolus">Τελευταίο Bolus:</string>
<string name="pump_lastbolus_label">Τελευταίο Bolus:</string>
<string name="hoursago">ώρες πριν</string>
<string name="danar_invalidinput">Μη έγκυρα δεδομένα</string>
<string name="danar_valuenotsetproperly">Η τιμή δεν μπήκε σωστά</string>
@ -540,7 +540,7 @@
<string name="predictionshortlabel">PRE</string>
<string name="basalshortlabel">Β.Ρ.</string>
<string name="virtualpump_firmware_label">Firmware</string>
<string name="virtualpump_lastconnection_label">Τελευταία σύνδεση</string>
<string name="pump_lastconnection_label">Τελευταία σύνδεση</string>
<string name="danar_bluetooth_status">Κατάσταση Bluetooth</string>
<string name="nav_about">Σχετικά με</string>
<string name="smscommunicator_missingsmspermission">Λείπει εξουσιοδότηση SMS</string>

View file

@ -46,11 +46,11 @@
<string name="treatments_wizard_total_label">TOTAL</string>
<string name="openapsma_run">Ejecutar ahora</string>
<string name="vitualpump_label">BOMBA VIRTUAL</string>
<string name="virtualpump_basebasalrate_label">Dosis Basal Base</string>
<string name="virtualpump_tempbasal_label">Basal Temporal</string>
<string name="pump_basebasalrate_label">Dosis Basal Base</string>
<string name="pump_tempbasal_label">Basal Temporal</string>
<string name="virtualpump_extendedbolus_label">Bolo extendido</string>
<string name="virtualpump_battery_label">Batería</string>
<string name="virtualpump_reservoir_label">Depósito:</string>
<string name="pump_battery_label">Batería</string>
<string name="pump_reservoir_label">Depósito:</string>
<string name="virtualpump_resultok">OK</string>
<string name="virtualpump_sqlerror">Error de SQL</string>
<string name="openapsma_lastrun_label">Última ejecución</string>
@ -210,10 +210,10 @@
<string name="nobtadapter">No se encuentra adaptador Bluetooth</string>
<string name="devicenotfound">El dispositivo seleccionado no se encuentra</string>
<string name="connectionerror">Error de conexión de la bomba</string>
<string name="virtualpump_lastconnection_label">Última conexión</string>
<string name="pump_lastconnection_label">Última conexión</string>
<string name="danar_iob_label">Bomba IOB</string>
<string name="danar_dailyunits">Unidades diarias</string>
<string name="danar_lastbolus">Último bolo:</string>
<string name="pump_lastbolus_label">Último bolo:</string>
<string name="hoursago">h antes</string>
<string name="danar_invalidinput">Datos invalidos</string>
<string name="danar_valuenotsetproperly">Valor no establecido correctamente</string>

View file

@ -115,7 +115,7 @@
<string name="danar_historyreload">Ricaricare</string>
<string name="danar_invalidinput">Data Errata</string>
<string name="danar_iob_label">IOB Microinfusore</string>
<string name="danar_lastbolus">Ultimo Bolo</string>
<string name="pump_lastbolus_label">Ultimo Bolo</string>
<string name="danar_password_title">Password Microinfusore</string>
<string name="danar_pump_settings">Setting Micro</string>
<string name="danar_refill">ricarica</string>
@ -412,7 +412,7 @@
<string name="objectives_6_objective">Abilitazione di funzioni aggiuntive per l\'uso quotidiano, ad esempio assistenza avanzata del pasto</string>
<string name="objectives_manualenacts"></string>
<string name="virtualpump_sqlerror">Errore SQL</string>
<string name="virtualpump_tempbasal_label">Basale temporale</string>
<string name="pump_tempbasal_label">Basale temporale</string>
<string name="visible">Visibile</string>
<string name="vitualpump_label">Pompa Virtuale</string>
<string name="waitingforpump">In attesa del micro</string>
@ -437,12 +437,12 @@
<string name="virtualpump_shortname">VPUMP</string>
<string name="virtualpump_settings">Impostazioni del Micro virtuale</string>
<string name="virtualpump_resultok">ok</string>
<string name="virtualpump_reservoir_label">Serbatoio</string>
<string name="virtualpump_lastconnection_label">Ultima conessione</string>
<string name="pump_reservoir_label">Serbatoio</string>
<string name="pump_lastconnection_label">Ultima conessione</string>
<string name="virtualpump_firmware_label">Firmware</string>
<string name="virtualpump_extendedbolus_label">Bolo Esteso</string>
<string name="virtualpump_battery_label">Batteria</string>
<string name="virtualpump_basebasalrate_label">Base basale</string>
<string name="pump_battery_label">Batteria</string>
<string name="pump_basebasalrate_label">Base basale</string>
<string name="virtualpump">Micro Virtuale</string>
<string name="uploading">UpLoading</string>
<string name="updatingbasalrates">Aggiornamento basale</string>

View file

@ -48,11 +48,11 @@
<string name="treatments_wizard_total_label"></string>
<string name="openapsma_run">지금 실행</string>
<string name="vitualpump_label">가상 펌프</string>
<string name="virtualpump_basebasalrate_label">기본 기초주입량</string>
<string name="virtualpump_tempbasal_label">임시기초주입</string>
<string name="pump_basebasalrate_label">기본 기초주입량</string>
<string name="pump_tempbasal_label">임시기초주입</string>
<string name="virtualpump_extendedbolus_label">확장식사주입</string>
<string name="virtualpump_battery_label">배터리</string>
<string name="virtualpump_reservoir_label">인슐린 잔량</string>
<string name="pump_battery_label">배터리</string>
<string name="pump_reservoir_label">인슐린 잔량</string>
<string name="virtualpump_resultok">OK</string>
<string name="virtualpump_sqlerror">SQL 에러</string>
<string name="openapsma_lastrun_label">최근 실행</string>
@ -224,7 +224,7 @@
<string name="connectionerror">펌프 연결 에러</string>
<string name="danar_iob_label">펌프 IOB</string>
<string name="danar_dailyunits">일 인슐린 총량</string>
<string name="danar_lastbolus">최근 식사주입:</string>
<string name="pump_lastbolus_label">최근 식사주입:</string>
<string name="hoursago">시간 전</string>
<string name="danar_invalidinput">사용할수 없는 입력 데이터</string>
<string name="danar_valuenotsetproperly">값이 제대로 설정되지 않았습니다</string>
@ -553,7 +553,7 @@
<string name="predictionshortlabel">PRE</string>
<string name="basalshortlabel">BAS</string>
<string name="virtualpump_firmware_label">펌웨어</string>
<string name="virtualpump_lastconnection_label">최근 연결</string>
<string name="pump_lastconnection_label">최근 연결</string>
<string name="danar_bluetooth_status">블루투스 상태</string>
<string name="nav_about">버전정보</string>
<string name="smscommunicator_missingsmspermission">SMS 권한 누락</string>
@ -646,7 +646,6 @@
<string name="activate_profile">ACTIVATE PROFILE</string>
<string name="date">Date</string>
<string name="invalid">INVALID</string>
<string name="waitingforpairing">펌프연동 대기중</string>
<string name="pairingok">연동완료</string>
<string name="pairingtimedout">연동시간초과</string>
@ -679,5 +678,4 @@
<string name="wearcontrol_title">워치로 작동하기</string>
<string name="wearcontrol_summary">임시목표와 관리입력을 워치로 설정합니다.</string>
<string name="connectiontimedout">연결시간초과</string>
</resources>

View file

@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">AndroidAPS</string>
<string name="Glimp">Glimp</string>
<string name="MM640g">MM640g</string>
<string name="absolute">Absoluut</string>
@ -13,7 +12,7 @@
<string name="adult">Volwassene</string>
<string name="advancedsettings_title">Uitgebreide instellingen</string>
<string name="alert_dialog_storage_permission_text">Herstart je telefoon of herstart AndroidAPS vanuit de systeem instellingen a.u.b. anders zal AndroidAPS geen logboek hebben (Belangrijk om te controleren of de algoritmes correct werken)!</string>
<string name="always_use_shortavg_summary">Nuttig wanneer gevens van niet gefilterde bronnes zoals Xdrip wispelturig zijn</string>
<string name="always_use_shortavg_summary">Nuttig wanneer gegevens van niet gedempte bronnen zoals Xdrip wispelturig zijn</string>
<string name="androidaps_start">AndroidAPS gestart</string>
<string name="approachingdailylimit">Insuline daglimiet bereikt</string>
<string name="apsmode_title">APS Mode</string>
@ -40,17 +39,17 @@
<string name="vitualpump_label">VIRTUELE POMP</string>
<string name="visible">Toon</string>
<string name="virtualpump_uploadstatus_title">Upload status naar NS</string>
<string name="virtualpump_tempbasal_label">Tijdelijk basaal</string>
<string name="pump_tempbasal_label">Tijdelijk basaal</string>
<string name="virtualpump_sqlerror">SQL Storing</string>
<string name="virtualpump_shortname">VP</string>
<string name="virtualpump_settings">Virtuele pomp instellingen</string>
<string name="virtualpump_resultok">OK</string>
<string name="virtualpump_reservoir_label">Reservoir</string>
<string name="virtualpump_lastconnection_label">Laatste verbinding</string>
<string name="pump_reservoir_label">Reservoir</string>
<string name="pump_lastconnection_label">Laatste verbinding</string>
<string name="virtualpump_firmware_label">Firmware</string>
<string name="virtualpump_extendedbolus_label_short">EXT</string>
<string name="virtualpump_extendedbolus_label">Vertraagde bolus</string>
<string name="virtualpump_battery_label">Batterij</string>
<string name="pump_battery_label">Batterij</string>
<string name="virtualpump">Virtuele Pomp</string>
<string name="uploading">Uploaden</string>
<string name="uploader_short">UPLD</string>
@ -92,7 +91,6 @@
<string name="careportal_cgm_label">CGM &amp; OPENAPS</string>
<string name="careportal_cgmsensorinsert">CGM Sens. ingebracht</string>
<string name="careportal_cgmsensorstart">CGM Sens. Start</string>
<string name="careportal_combobolus">Multiwave bolus</string>
<string name="careportal_correctionbolus">Correctie bolus</string>
<string name="careportal_exercise">Sport</string>
<string name="careportal_insulinage_label">Ouderdom insuline</string>
@ -175,7 +173,7 @@
<string name="danar_enableextendedbolus">Activeer vertraagde bolussen op de pomp</string>
<string name="danar_error">Storing</string>
<string name="danar_glucose">glucose</string>
<string name="danar_history">Geschiedenis</string>
<string name="danar_history">Historiek</string>
<string name="danar_history_alarm">Alarm</string>
<string name="restart">Herstart</string>
<string name="result">Resultaat</string>
@ -275,7 +273,7 @@
<string name="openaps">OpenAPS</string>
<string name="openaps_short">OAPS</string>
<string name="openapsama">OpenAPS AMA</string>
<string name="danar_lastbolus">Laatste bolus</string>
<string name="pump_lastbolus_label">Laatste bolus</string>
<string name="danar_password_title">Pomp wachtwoord</string>
<string name="danar_pump_settings">DanaR pomp instellingen</string>
<string name="danar_refill">Hervullen</string>
@ -454,7 +452,7 @@
<string name="openapsma_maxiob_title">Maximaal basaal IOB OpenAPS kan toedienen [E]</string>
<string name="openapsma_profile_label">Profiel</string>
<string name="openapsma_valueoutofrange">Waarde %s is buiten de toegestane limieten</string>
<string name="virtualpump_basebasalrate_label">Basis basale dosis</string>
<string name="pump_basebasalrate_label">Basis basale dosis</string>
<string name="openapsma_lastrun_label">Laatse berekening</string>
<string name="openapsma_lastenact_label">Laatste uitvoering</string>
<string name="openapsma_glucosestatus_label">Glucose gegevens</string>
@ -462,7 +460,6 @@
<string name="openapsma_inputparameters_label">Berekende gegevens</string>
<string name="openapsma_iobdata_label">IOB gegevens</string>
<string name="openapsma_maxbasal_summary">DIt is de maximale waarde waarop het basaal door OpenAPS ingesteld kan worden</string>
<string name="profileswitch">Profiel wissel</string>
<string name="profileviewer">NS Profiel</string>
<string name="profileviewer_shortname">NSPROFIEL</string>
<string name="pump">Pomp</string>
@ -510,9 +507,9 @@
<string name="overview_quickwizard_item_remove_button">Verwijder</string>
<string name="overview_quickwizard_item_edit_button">Wijzig</string>
<string name="overview_shortname">Home</string>
<string name="overview_editquickwizard_valid">Geldigheid:</string>
<string name="overview_editquickwizard_valid">Beschikbaarheid:</string>
<string name="overview_editquickwizard_carbs">Koolhydraten:</string>
<string name="overview_editquickwizard_buttontext">Knop tekst:</string>
<string name="overview_editquickwizard_buttontext">Naam:</string>
<string name="overview_calibration_bg_label">Kalibratie</string>
<string name="overview_calculator_label">Bolus wizard</string>
<string name="danar_ebolus">E bolus</string>
@ -566,7 +563,7 @@
<string name="objectives_shortname">DOEL</string>
<string name="occlusion">Afsluiting</string>
<string name="ongoingnotificaction">Lopende berichten</string>
<string name="open_settings_on_wear">Opene instellingen op Wear</string>
<string name="open_settings_on_wear">Open instellingen op Wear</string>
<string name="openapsma_maxbasal_title">Maximale E/u dat OpenAPS kan toedienen</string>
<string name="prefs_delta_title">Verschil instellingen</string>
<string name="prefs_range_title">Bereik voor visualisatie</string>
@ -592,8 +589,8 @@
<string name="pumpshutdown">Pomp uitschakelen</string>
<string name="pumpsuspended">Pomp onderbreken</string>
<string name="pumpsuspendedclicktorefresh">Pomp onderbroken. Klik om de status te vernieuwen</string>
<string name="quickwizard">Instelassisten</string>
<string name="quickwizardsettings">Instelassistent instellingen</string>
<string name="quickwizard">Vaste maaltijd</string>
<string name="quickwizardsettings">Vaste maaltijd instellingen</string>
<string name="ratio_short">SEN</string>
<string name="removerecord">Verwijder gegeven:</string>
<string name="resend_all_data">Verzend alle gegevens opnieuw</string>
@ -679,4 +676,115 @@
<string name="wearcontrol_title">Bedieningen via horloge</string>
<string name="emptyreservoir">Ampull leeg</string>
<string name="waitingforpairing">Wachten op koppelen van de pomp</string>
<string name="pump_errors_history">Storingen</string>
<string name="profileswitch">Wijzigingen van profiel</string>
<string name="bluetooth">Bluetooth</string>
<string name="food">Voeding</string>
<string name="enable_pump_unreachable_alert">Waarschuwing bij niet bereikbare pomp</string>
<string name="bolus_frequency_exceeded">Een bolus met dezelfde hoeveelheid was gevraagd binnen de minuut. Om accidentiële of door bugs veroorzaakte dubbele bolussen te vermijden is deze bolus geannuleerd</string>
<string name="bolusstopping">estopt Bolus toediening wordt</string>
<string name="shortfat">Vet</string>
<string name="bolusstopped">Bolus toediening gestopt</string>
<string name="raise_urgent_alarms_as_android_notification">Gebruik systeem notificaties voor waarschuwingen</string>
<string name="wear_detailed_delta_title">Toon gedetaillieerde delta</string>
<string name="unsupportedfirmware">Niet ondersteune pomp firmware</string>
<string name="DexcomG5">DexcomG5 App (aangepast)</string>
<string name="shortgramm">g</string>
<string name="shortkilojoul">kJ</string>
<string name="shortenergy">En</string>
<string name="shortprotein">Prot</string>
<string name="info">INFO</string>
<string name="btwatchdog_title">BT Watchdog</string>
<string name="btwatchdog_summary">Desactiveert de bluetooth functie van de telefoon gedurende een ogenblik. Dit kan op sommige gsm\'s een vastgelopen bluetooth service verhelpen.</string>
<string name="missed_bg_readings">Geen BG metingen</string>
<string name="processinghistory">Uitvoeren van gebeurtenis</string>
<string name="pump_unreachable">Pomp niet beschikbaar</string>
<string name="pump_unreachable_threshold">Pomp niet beschikbaar sinds [min]</string>
<string name="pumpdrivercorrected">Pomp service gecorrigeerd</string>
<string name="localalertsettings_title">Lokaal gegenereerde waarschuwingen</string>
<string name="startingbolus">Bolus toediening gestart</string>
<string name="wear_detailed_delta_summary">Toon delta met eenextra decimaal punt</string>
<string name="waitingforestimatedbolusend">Wacht op complete bolus toediening Resterend %d sec.</string>
<string name="urgent_alarm">Dringend alarm</string>
<string name="treatments_wizard_tt_label">TT</string>
<string name="raise_notifications_as_android_notifications">Gebruik systeem notficaties voor waarchuwingen en notificaties</string>
<string name="executingrightnow">Opdracht is nu uitgevoerd</string>
<string name="enable_missed_bg_readings_alert">Alarm als er geen BG gegevens ontvangen zijn</string>
<string name="customapp">Aangepaste APK downloaden</string>
<string name="dexcomg5_nsupload_title">Upload BG gegevens naar NS</string>
<string name="dexcomg5_upload">G5 Upload instellingen</string>
<string name="loopenabled">Loop Actief</string>
<string name="yes">Ja</string>
<string name="no">Nee</string>
<string name="dexcomg5_xdripupload_summary">In xDrip+ kies 640g/Eversense data bron</string>
<string name="nsclientbg">NSClient BG</string>
<string name="overview_editquickwizard_usebasaliob">Basaal IOB meerekenen</string>
<string name="apsselected">APS geslecteerd</string>
<string name="dexcomg5_xdripupload_title">Stuur BG data naar xDrip+</string>
<string name="minimalbasalvaluereplaced">Basale waarde vervangen door minimaal ondersteunde waarde</string>
<string name="overview_editquickwizard_usetemptarget">Tijdelijk doel berekenen</string>
<string name="overview_editquickwizard_usesuperbolus">Superbolus berekening</string>
<string name="nsclienthaswritepermission">NSClient heeft schrijf rechten</string>
<string name="objectives_7_objective">Activeren van extra functies tijdes de dag zoals SMB</string>
<string name="overview_editquickwizard_usebg">BG meerekenen</string>
<string name="overview_editquickwizard_usebolusiob">Bolus IOB meerekenen</string>
<string name="closedmodeenabled">Closed modus actief</string>
<string name="overview_editquickwizard_usecob">COB berekening</string>
<string name="active"><![CDATA[<Huidig>]]></string>
<string name="none"><![CDATA[<geen>]]></string>
<string name="app_name">AndroidAPS</string>
<string name="zerovalueinprofile">Nul waarde in basaal profiel</string>
<string name="hasbgdata">BG beschikbaar op gekozen bron</string>
<string name="positiveonly">Enkel positief</string>
<string name="negativeonly">Enkel negatief</string>
<string name="maxiobset">Maximum IOB juist ingesteld</string>
<string name="overview_editquickwizard_usetrend">Trend berekening</string>
<string name="nolocaleprofilefound">Profiel wissel ontvangen via NS maar dit profiel bestaat niet op gsm</string>
<string name="combo_programming_bolus">"Bolus in pomp programmeren "</string>
<string name="combo_refresh">Vernieuw</string>
<string name="combo_pump_state_label">Status</string>
<string name="combo_no_pump_connection">Geen verbinding</string><string name="combo_tbr_remaining">%d%% (%d min resterend)</string>
<string name="combo_last_bolus">%.1f E (%s, %s)</string>
<string name="combo_pump_action_initializing">Initialiseren</string>
<string name="combo_pump_state_disconnected">Verbinding verbroken</string>
<string name="combo_error_bolus_recovery_progress">Herstel van verbroken verbindng</string>
<string name="combo_warning">Waarschuwing</string>
<string name="combo_notification_check_time_date">Pomp klok moet bijgesteld worden</string>
<string name="combo_reservoir_empty">Leeg</string>
<string name="combo_reservoir_low">Bijna leeg</string>
<string name="combo_tdd_maximum">Maximum: %3.1f E</string>
<string name="combo_reservoir_normal">Normaal</string>
<string name="combo_pump_never_connected">Nooit</string>
<string name="combo_pump_action_refreshing">Vernieuwen</string>
<string name="combo_history">Historiek</string>
<string name="combo_pump_alerts">Storingen</string>
<string name="combo_pump_battery_low_warrning">Batterij pomp is bijna leeg</string>
<string name="combo_pump_unsupported_operation">Gevraagde is niet momeglijk met de pomp</string>
<string name="combo_pump_connected_now">Zojuist</string>
<string name="combo_pump_tbr_cancelled_warrning">TB GEANNULEERD Waarschuwing is bevestigd</string>
<string name="combo_pump_action_cancelling_tbr">Annuleren van TB</string>
<string name="combo_pump_state_suspended_due_to_error">Gestopt door een storing</string>
<string name="combo_pump_state_suspended_by_user">Gestopt door de gebruiker</string>
<string name="combo_pump_state_running">Actief</string>
<string name="combo_pump_cartridge_low_warrning">Insuline ampul is bijna leeg</string>
<string name="combo_is_in_error_state">Pomp is in storing, controleer op de pomp</string>
<string name="combo_pump_action_bolusing">Bolus (%.1f E)</string>
<string name="combo_tdd_minimum">Minimum: %3.1f E</string>
<string name="combo_tdd_average">Gemiddelde: %3.1f E</string>
<string name="combo_activity_setting_basal_profile">Instellen van basaal profiel</string>
<string name="combo_activity_reading_pump_history">Lezen van pomp historiek</string>
<string name="combo_read_full_history_confirmation">Ben je zeker dat je alle data van de pomp wil ophalen en de consequenties hiervan wil dragen?</string>
<string name="combo_no_alert_data_note">Om de pomp fouthistoriek op te halen, druk lang op de Storingen knop OPGELET: dit kan een bug veroorzaken waardoor de pomp alle verbindingen verbreekt en het vereist is op een knop op de pomp te duwen, dit wordt daarom afgeraden.</string>
<string name="combo_error_partial_bolus_delivered">Maar %.2f E van de gevraagde %.2f E zijn toegediend door een storing. Gelieve op de pomp te controleren en het gepaste gevolg uit te voeren.</string>
<string name="combo_no_tdd_data_note">"Om de TTD van de pomp op te halen, lang duwen op de TDDS knop OPGELET: dit kan een bug veroorzaken waardoor de pomp alle verbindingen verbreekt en het vereist is op een knop op de pomp te duwen, dit wordt daarom afgeraden."</string>
<string name="combo_error_bolus_verification_failed">Toedienen en controleren van de bolus in de pomp historiek is mislukt, controleer de pomp en creëer een manuele bolus in het Careportal tabblad</string>
<string name="combo_error_no_bolus_delivered">Bolus toedienen mislukt. Waarschijnlijk is er geen bolus toegediend. Gelieve de pomp te controleren om een dubbele bolus te vermijden. Als bescherming tegen programmeerfouten worden bolussen niet automatisch opnieuw uitgevoerd.</string>
<string name="combo_pump_activity_label">Actie</string>
<string name="combo_pump_action_setting_tbr">Instellen TBR (%d%% / %d min)</string>
<string name="combo_read_full_history_warning">Dit zal de volledige hystoriek en status van de pomp ophalen. Alles in Mijn Gegevens en basale patronen. Bolussen en TBR zullen aan de behandelingen worden toegevoegd indien deze nog niet aanwezig zijn. Dit kan eveneens dubbele invoeren genereren als de pomp tijd niet synchroon is. Gebruik maken van deze functie tijdens looped wordt afgeraden enkel gebruiken in speciale gevallen. Als je dit echt wil doen, duw lang op deze knop. OPGELET: dit kan een bug veroorzaken waardoor de pomp alle verbindingen verbreekt en het vereist is op een knop op de pomp te duwen, dit wordt daarom afgeraden.</string>
<string name="combo_force_disabled_notification">Onvoorzichtig gebruik: Vertraagde of multi wave bolussen zijn toegediend in de afgelopen 6 uur op het geselecteerde basaal patroon is niet 1. Loop is onderbroken tot de 6 uur nadat deze bolussen of andere basale patronen zijn gedetecteerd. Alleen normale bolussen en basaal patroon 1 zijn mogelijk binnen basaal patroon 1</string>
<string name="combo_tdds">TDDS</string>
<string name="combo_low_suspend_forced_notification">Opgelet: verlengde en multi wafe bolussen zijn actief. Loop is naar onderdruk lage waardes enkel overgeschakeld gedurende 6 uur. Alleen gewone bolussen worden onderdsteund in loop modus.</string>
<string name="combo_reservoir_level_insufficient_for_bolus">Niet genoeg insuline aanwezig in reservoir voor de bolus</string>
<string name="careportal_combobolus">Combinatie-Bolus</string>
</resources>

View file

@ -136,7 +136,7 @@
<string name="danar_historyreload">замена</string>
<string name="danar_invalidinput">введенные данные неверны</string>
<string name="danar_iob_label">активный инсулин на помпе</string>
<string name="danar_lastbolus">предыдущий болюс</string>
<string name="pump_lastbolus_label">предыдущий болюс</string>
<string name="danar_model" formatted="false">модель: %02X протокол: %02X код: %02X</string>
<string name="danar_password_title">пароль помпы</string>
<string name="danar_pump_settings">настройки помпы DanaR</string>
@ -527,17 +527,17 @@
<string name="updatingbasalrates">обновление значений базала</string>
<string name="uploading">передача данных</string>
<string name="virtualpump">виртуальная помпа</string>
<string name="virtualpump_basebasalrate_label">базовая величина базала</string>
<string name="virtualpump_battery_label">батарея</string>
<string name="pump_basebasalrate_label">базовая величина базала</string>
<string name="pump_battery_label">батарея</string>
<string name="virtualpump_extendedbolus_label">продленный болюс</string>
<string name="virtualpump_firmware_label">прошивка</string>
<string name="virtualpump_lastconnection_label">прошлое соединение</string>
<string name="virtualpump_reservoir_label">резервуар</string>
<string name="pump_lastconnection_label">прошлое соединение</string>
<string name="pump_reservoir_label">резервуар</string>
<string name="virtualpump_resultok">OK</string>
<string name="virtualpump_settings">настройки вирт помпы</string>
<string name="virtualpump_shortname">ВиртПомпа</string>
<string name="virtualpump_sqlerror">ошибка SQL</string>
<string name="virtualpump_tempbasal_label">врем базал</string>
<string name="pump_tempbasal_label">врем базал</string>
<string name="virtualpump_uploadstatus_title">статус передачи данных в NS</string>
<string name="visible">виден</string>
<string name="vitualpump_label">ВИРТУАЛЬНАЯ ПОМПА</string>

View file

@ -134,7 +134,7 @@
<string name="danar_historyreload">Ladda om</string>
<string name="danar_invalidinput">Fel på inlagd data</string>
<string name="danar_iob_label">Pump IOB</string>
<string name="danar_lastbolus">Sista bolus</string>
<string name="pump_lastbolus_label">Sista bolus</string>
<string name="danar_password_title">Lösenord Pump</string>
<string name="danar_pump_settings">DanaR pump inställningar</string>
<string name="danar_refill">Påfyllnad</string>
@ -307,17 +307,17 @@
<string name="vitualpump_label">Virtuell</string>
<string name="visible">Synlig</string>
<string name="virtualpump_uploadstatus_title">Ladda upp till NS</string>
<string name="virtualpump_tempbasal_label">Temp basal</string>
<string name="pump_tempbasal_label">Temp basal</string>
<string name="virtualpump_sqlerror">SQL Error</string>
<string name="virtualpump_shortname">VPUMP</string>
<string name="virtualpump_settings">Virtuell pump inställningar</string>
<string name="virtualpump_resultok">OK</string>
<string name="virtualpump_reservoir_label">Reservoir</string>
<string name="virtualpump_lastconnection_label">Sista kontakt</string>
<string name="pump_reservoir_label">Reservoir</string>
<string name="pump_lastconnection_label">Sista kontakt</string>
<string name="virtualpump_firmware_label">Programversion</string>
<string name="virtualpump_extendedbolus_label">Förlängd bolus</string>
<string name="virtualpump_battery_label">Batteri</string>
<string name="virtualpump_basebasalrate_label">Grund basal hastighet</string>
<string name="pump_battery_label">Batteri</string>
<string name="pump_basebasalrate_label">Grund basal hastighet</string>
<string name="virtualpump">Virtuell Pump</string>
<string name="uploading">Uppladdning</string>
<string name="updatingbasalrates">Uppdaterar basal hastigheter</string>

View file

@ -50,11 +50,11 @@
<string name="treatments_wizard_total_label">TOTAL</string>
<string name="openapsma_run">Run now</string>
<string name="vitualpump_label">VIRTUAL PUMP</string>
<string name="virtualpump_basebasalrate_label">Base basal rate</string>
<string name="virtualpump_tempbasal_label">Temp basal</string>
<string name="pump_basebasalrate_label">Base basal rate</string>
<string name="pump_tempbasal_label">Temp basal</string>
<string name="virtualpump_extendedbolus_label">Extended bolus</string>
<string name="virtualpump_battery_label">Battery</string>
<string name="virtualpump_reservoir_label">Reservoir</string>
<string name="pump_battery_label">Battery</string>
<string name="pump_reservoir_label">Reservoir</string>
<string name="virtualpump_resultok">OK</string>
<string name="virtualpump_sqlerror">SQL Error</string>
<string name="openapsma_lastrun_label">Last run</string>
@ -234,7 +234,7 @@
<string name="connectionerror">Pump connection error</string>
<string name="danar_iob_label">Pump IOB</string>
<string name="danar_dailyunits">Daily units</string>
<string name="danar_lastbolus">Last bolus:</string>
<string name="pump_lastbolus_label">Last bolus</string>
<string name="hoursago">h ago</string>
<string name="danar_invalidinput">Invalid input data</string>
<string name="danar_valuenotsetproperly">Value not set properly</string>
@ -268,7 +268,7 @@
<string name="danarprofile_dia">DIA [h]</string>
<string name="danarprofile_dia_summary">Duration of Insulin Activity</string>
<string name="failedupdatebasalprofile">Failed to update basal profile</string>
<string name="danar_history">History</string>
<string name="pump_errors_history">Errors</string>
<string name="danar_historyreload">Reload</string>
<string name="uploading">Uploading</string>
<string name="danar_ebolus">E bolus</string>
@ -397,7 +397,7 @@
<string name="MM640g">MM640g</string>
<string name="ongoingnotificaction">Ongoing Notification</string>
<string name="old_data">OLD DATA</string>
<string name="minago">%dmin ago</string>
<string name="minago">%d min ago</string>
<string name="sms_minago">%dmin ago</string>
<string name="localprofile">Local Profile</string>
<string name="openapsama">OpenAPS AMA</string>
@ -591,7 +591,7 @@
<string name="predictionshortlabel">PRE</string>
<string name="basalshortlabel">BAS</string>
<string name="virtualpump_firmware_label">Firmware</string>
<string name="virtualpump_lastconnection_label">Last connection</string>
<string name="pump_lastconnection_label">Last connection</string>
<string name="danar_bluetooth_status">Bluetooh status</string>
<string name="nav_about">About</string>
<string name="smscommunicator_missingsmspermission">Missing SMS permission</string>
@ -682,6 +682,8 @@
<string name="cpp_valuesnotstored">Values not stored!</string>
<string name="wear_overviewnotifications">Overview Notifications</string>
<string name="wear_overviewnotifications_summary">Pass the Overview Notifications through as wear confirmation messages.</string>
<string name="combopump" translatable="false">Accu-Chek Combo</string>
<string name="combopump_shortname" translatable="false">COMBO</string>
<string name="ns_localbroadcasts">Enable broadcasts to other apps (like xDrip).</string>
<string name="ns_localbroadcasts_title">Enable local Broadcasts.</string>
<string name="careportal_activity_label">ACTIVITY &amp; FEEDBACK</string>
@ -821,5 +823,54 @@
<string name="basalprofilenotaligned">Basal values not aligned to hours</string>
<string name="zerovalueinprofile">Zero value in profile</string>
<string name="nolocaleprofilefound">Received profile switch from NS but profile doesn\'t exist localy</string>
<string name="combo_programming_bolus">Programming pump for bolusing</string>
<string name="combo_refresh">Refresh</string>
<string name="combo_tdds">TDDS</string>
<string name="combo_pump_state_label">State</string>
<string name="combo_pump_activity_label">Activity</string>
<string name="combo_no_pump_connection">No connection for %d min</string>
<string name="combo_tbr_remaining">%d%% (%d min remaining)</string>
<string name="combo_last_bolus">%.1f U (%s, %s)</string>
<string name="combo_pump_action_initializing">Initializing</string>
<string name="combo_pump_state_disconnected">Disconnected</string>
<string name="combo_pump_state_suspended_due_to_error">Suspended due to error</string>
<string name="combo_pump_state_suspended_by_user">Suspended by user</string>
<string name="combo_pump_state_running">Running</string>
<string name="combo_pump_action_cancelling_tbr">Cancelling TBR</string>
<string name="combo_pump_action_setting_tbr">Setting TBR (%d%% / %d min)</string>
<string name="combo_pump_action_bolusing">Bolusing (%.1f U)</string>
<string name="combo_pump_action_refreshing">Refreshing</string>
<string name="combo_pump_never_connected">Never</string>
<string name="combo_pump_unsupported_operation">Requested operation not supported by pump</string>
<string name="combo_low_suspend_forced_notification">Unsafe usage: extended or multiwave boluses are active. Loop mode has been set to low-suspend only 6 hours. Only normal boluses are supported in loop mode</string>
<string name="combo_force_disabled_notification">Unsafe usage: the pump uses a different basal rate profile than the first. The loop has been disabled. Select the first profile on the pump and refresh.</string>
<string name="bolus_frequency_exceeded">A bolus with the same amount was requested within the last minute. To prevent accidental double boluses and to guard against bugs this is disallowed.</string>
<string name="combo_pump_connected_now">Now</string>
<string name="combo_activity_reading_pump_history">Reading pump history</string>
<string name="danar_history">pump history</string>
<string name="combo_pump_alerts">Alerts</string>
<string name="combo_activity_setting_basal_profile">Setting basal profile</string>
<string name="combo_pump_cartridge_low_warrning">Pump cartridge level is low</string>
<string name="combo_pump_battery_low_warrning">Pump battery is low</string>
<string name="combo_is_in_error_state">The pump is showing the error E%d: %s</string>
<string name="combo_no_alert_data_note">To read the pump\'s error history, long press the ALERTS button\n\nWARNING: this can trigger a bug which causes the pump to reject all connection attempts and requires pressing a button on the pump to recover and should therefore be avoided.</string>
<string name="combo_no_tdd_data_note">To read the pump\'s TDD history, long press the TDDS button\n\nWARNING: this can trigger a bug which causes the pump to reject all connection attempts and requires pressing a button on the pump to recover and should therefore be avoided.</string>
<string name="combo_tdd_minimum">Minimum: %3.1f U</string>
<string name="combo_tdd_average">Average: %3.1f U</string>
<string name="combo_tdd_maximum">Maximum: %3.1f U</string>
<string name="combo_reservoir_low">Low</string>
<string name="combo_reservoir_empty">Empty</string>
<string name="combo_reservoir_normal">Normal</string>
<string name="combo_notification_check_time_date">Pump clock update needed</string>
<string name="combo_history">History</string>
<string name="combo_warning">Warning</string>
<string name="combo_read_full_history_warning">This will read the full history and state of the pump. Everything in \"My Data\" and the basal rate. Boluses and TBRs will be added to Treatments if they don\'t already exist. This can cause entries to be duplicated because the pump\'s time is imprecise. Using this when normally looping with the pump is highly discouraged and reserved for special circumstances. If you still want to do this, long press this button again.\n\nWARNING: this can trigger a bug which causes the pump to reject all connection attempts and requires pressing a button on the pump to recover and should therefore be avoided.</string>
<string name="combo_read_full_history_confirmation">Are you really sure you want to read all pump data and take the consequences of this action?</string>
<string name="combo_pump_tbr_cancelled_warrning">TBR CANCELLED warning was confirmed</string>
<string name="combo_error_no_bolus_delivered">Bolus delivery failed. It appears no bolus was delivered. To be sure, please check the pump to avoid a double bolus and then bolus again. To guard against bugs, boluses are not automatically retried.</string>
<string name="combo_error_partial_bolus_delivered">Only %.2f U of the requested bolus of %.2f U was delivered due to an error. Please check the pump to verify this and take appropriate actions.</string>
<string name="combo_error_bolus_verification_failed">Delivering the bolus and verifying the pump\'s history failed, please check the pump and manually create a bolus record using the Careportal tab if a bolus was delivered.</string>
<string name="combo_error_bolus_recovery_progress">Recovering from connection loss</string>
<string name="combo_reservoir_level_insufficient_for_bolus">Not enough insulin for bolus left in reservoir</string>
</resources>

View file

@ -0,0 +1,143 @@
package info.nightscout.androidaps.queue;
import android.content.Context;
import android.text.Html;
import com.squareup.otto.Bus;
import com.squareup.otto.ThreadEnforcer;
import junit.framework.Assert;
import org.json.JSONObject;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.powermock.api.mockito.PowerMockito;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;
import info.nightscout.androidaps.Constants;
import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.data.DetailedBolusInfo;
import info.nightscout.androidaps.data.Profile;
import info.nightscout.androidaps.interfaces.PumpInterface;
import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin;
import info.nightscout.androidaps.plugins.PumpMDI.MDIPlugin;
import info.nightscout.androidaps.queue.commands.Command;
import info.nightscout.utils.ToastUtils;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
/**
* Created by mike on 14.01.2018.
*/
@RunWith(PowerMockRunner.class)
@PrepareForTest({MainApp.class, ConfigBuilderPlugin.class, ConfigBuilderPlugin.class, ToastUtils.class, Context.class})
public class CommandQueueTest extends CommandQueue {
String profileJson = "{\"dia\":\"3\",\"carbratio\":[{\"time\":\"00:00\",\"value\":\"30\"}],\"carbs_hr\":\"20\",\"delay\":\"20\",\"sens\":[{\"time\":\"00:00\",\"value\":\"100\"}],\"timezone\":\"UTC\",\"basal\":[{\"time\":\"00:00\",\"value\":\"0.1\"}],\"target_low\":[{\"time\":\"00:00\",\"value\":\"4\"}],\"target_high\":[{\"time\":\"00:00\",\"value\":\"5\"}],\"startDate\":\"1970-01-01T00:00:00.000Z\",\"units\":\"mmol\"}";
@Test
public void doTests() throws Exception {
prepareMock(0d, 0);
// start with empty queue
Assert.assertEquals(0, size());
// add bolus command
bolus(new DetailedBolusInfo(), null);
Assert.assertEquals(1, size());
// add READSTATUS
readStatus("anyString", null);
Assert.assertEquals(2, size());
// adding another bolus should remove the first one (size still == 2)
bolus(new DetailedBolusInfo(), null);
Assert.assertEquals(2, size());
// clear the queue should reset size
clear();
Assert.assertEquals(0, size());
// add tempbasal
tempBasalAbsolute(0, 30, true, null);
Assert.assertEquals(1, size());
// add tempbasal percent. it should replace previous TEMPBASAL
tempBasalPercent(0, 30, true, null);
Assert.assertEquals(1, size());
// add extended bolus
extendedBolus(1, 30, null);
Assert.assertEquals(2, size());
// add cancel temp basal should remove previous 2 temp basal setting
extendedBolus(1, 30, null);
Assert.assertEquals(2, size());
// cancel extended bolus should replace previous extended
extendedBolus(1, 30, null);
Assert.assertEquals(2, size());
// add setProfile
setProfile(new Profile(new JSONObject(profileJson), Constants.MGDL), null);
Assert.assertEquals(3, size());
// add loadHistory
loadHistory((byte) 0, null);
Assert.assertEquals(4, size());
// add loadEvents
loadEvents(null);
Assert.assertEquals(5, size());
clear();
tempBasalAbsolute(0, 30, true, null);
pickup();
Assert.assertEquals(0, size());
Assert.assertNotNull(performing);
Assert.assertEquals(Command.CommandType.TEMPBASAL, performing.commandType);
resetPerforming();
Assert.assertNull(performing);
}
private void prepareMock(Double insulin, Integer carbs) throws Exception {
ConfigBuilderPlugin configBuilderPlugin = mock(ConfigBuilderPlugin.class);
when(configBuilderPlugin.applyBolusConstraints(insulin)).thenReturn(insulin);
when(configBuilderPlugin.applyCarbsConstraints(carbs)).thenReturn(carbs);
PowerMockito.mockStatic(ConfigBuilderPlugin.class);
PumpInterface pump = MDIPlugin.getPlugin();
when(ConfigBuilderPlugin.getActivePump()).thenReturn(pump);
PowerMockito.mockStatic(MainApp.class);
MainApp mainApp = mock(MainApp.class);
when(MainApp.getConfigBuilder()).thenReturn(configBuilderPlugin);
when(MainApp.instance()).thenReturn(mainApp);
PowerMockito.mockStatic(ToastUtils.class);
Context context = mock(Context.class);
String message = null;
PowerMockito.doNothing().when(ToastUtils.class, "showToastInUiThread", context, message);
Bus bus = new Bus(ThreadEnforcer.ANY);
when(MainApp.bus()).thenReturn(bus);
when(MainApp.gs(0)).thenReturn("");
}
@Override
protected synchronized void notifyAboutNewCommand() {
}
@Override
protected void showBolusProgressDialog(Double insulin, Context context) {
}
@Override
public boolean isThisProfileSet(Profile profile) {
return false;
}
}

View file

@ -14,18 +14,21 @@ public class RoundTest {
public void roundToTest() throws Exception {
assertEquals( 0.55d, Round.roundTo(0.54d, 0.05d), 0.00000001d );
assertEquals( 1d, Round.roundTo(1.49d, 1d), 0.00000001d );
assertEquals( 0d, Round.roundTo(0d, 1d), 0.00000001d );
}
@Test
public void floorToTest() throws Exception {
assertEquals( 0.5d, Round.floorTo(0.54d, 0.05d), 0.00000001d );
assertEquals( 1d, Round.floorTo(1.59d, 1d), 0.00000001d );
assertEquals( 0d, Round.floorTo(0d, 1d), 0.00000001d );
}
@Test
public void ceilToTest() throws Exception {
assertEquals( 0.6d, Round.ceilTo(0.54d, 0.1d), 0.00000001d );
assertEquals( 2d, Round.ceilTo(1.49999d, 1d), 0.00000001d );
assertEquals( 0d, Round.ceilTo(0d, 1d), 0.00000001d );
}
}

View file

@ -1,5 +1,10 @@
apply plugin: 'com.android.application'
ext {
supportLibraryVersion = "23.0.1"
wearableVersion = "2.0.1"
}
def generateGitBuild = { ->
StringBuilder stringBuilder = new StringBuilder();
@ -56,12 +61,12 @@ allprojects {
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
//compile 'com.ustwo.android:clockwise-wearable:1.0.2'
provided 'com.google.android.wearable:wearable:2.0.1'
compile 'com.google.android.support:wearable:2.0.1'
compile 'com.google.android.gms:play-services-wearable:7.3.0'
compile files('libs/hellocharts-library-1.5.5.jar')
compile(name:'ustwo-clockwise-debug', ext:'aar')
compile 'com.android.support:support-v4:23.0.1'
compile 'me.denley.wearpreferenceactivity:wearpreferenceactivity:0.5.0'
compile files("libs/hellocharts-library-1.5.5.jar")
//compile "com.ustwo.android:clockwise-wearable:1.0.2"
provided "com.google.android.wearable:wearable:${wearableVersion}"
compile "com.google.android.support:wearable:${wearableVersion}"
compile "com.google.android.gms:play-services-wearable:7.3.0"
compile(name:"ustwo-clockwise-debug", ext:"aar")
compile "com.android.support:support-v4:23.0.1"
compile "me.denley.wearpreferenceactivity:wearpreferenceactivity:0.5.0"
}

View file

@ -178,7 +178,11 @@ public class Steampunk extends BaseWatchFace {
gridColor = ContextCompat.getColor(getApplicationContext(), R.color.grey_steampunk);
basalBackgroundColor = ContextCompat.getColor(getApplicationContext(), R.color.basal_dark);
basalCenterColor = ContextCompat.getColor(getApplicationContext(), R.color.basal_dark);
if (Integer.parseInt(sharedPrefs.getString("chart_timeframe", "3")) < 3) {
pointSize = 2;
} else {
pointSize = 1;
}
setupCharts();
}
@ -237,7 +241,12 @@ public class Steampunk extends BaseWatchFace {
private void changeChartTimeframe() {
int timeframe = Integer.parseInt(sharedPrefs.getString("chart_timeframe", "3"));
timeframe = (timeframe%5) + 1;
if (timeframe < 3) {
pointSize = 2;
} else {
pointSize = 1;
}
setupCharts();
sharedPrefs.edit().putString("chart_timeframe", "" + timeframe).commit();
}
}