Merge branch 'master' into gradlegit
This commit is contained in:
commit
5a6536c99c
|
@ -10,6 +10,8 @@ buildscript {
|
|||
}
|
||||
}
|
||||
apply plugin: "com.android.application"
|
||||
apply plugin: 'kotlin-android-extensions'
|
||||
apply plugin: 'kotlin-android'
|
||||
apply plugin: 'com.google.gms.google-services'
|
||||
apply plugin: "io.fabric"
|
||||
apply plugin: "jacoco-android"
|
||||
|
@ -27,6 +29,7 @@ ext {
|
|||
repositories {
|
||||
maven { url 'https://maven.fabric.io/public' }
|
||||
jcenter { url "https://jcenter.bintray.com/" }
|
||||
mavenCentral()
|
||||
}
|
||||
|
||||
def generateGitBuild = { ->
|
||||
|
@ -100,7 +103,7 @@ android {
|
|||
targetSdkVersion 25
|
||||
multiDexEnabled true
|
||||
versionCode 1500
|
||||
version "2.2.3-dev"
|
||||
version "2.3"
|
||||
buildConfigField "String", "VERSION", '"' + version + '"'
|
||||
buildConfigField "String", "BUILDVERSION", '"' + generateGitBuild() + '-' + generateDate() + '"'
|
||||
buildConfigField "String", "REMOTE", '"' + generateGitRemote() + '"'
|
||||
|
@ -112,6 +115,9 @@ android {
|
|||
moduleName "BleCommandUtil"
|
||||
}
|
||||
}
|
||||
kotlinOptions {
|
||||
jvmTarget = '1.8'
|
||||
}
|
||||
lintOptions {
|
||||
// TODO remove once wear dependency com.google.android.gms:play-services-wearable:7.3.0
|
||||
// has been upgraded (requiring significant code changes), which currently fails release
|
||||
|
@ -269,6 +275,7 @@ dependencies {
|
|||
androidTestImplementation "org.mockito:mockito-core:2.8.47"
|
||||
androidTestImplementation "com.google.dexmaker:dexmaker:${dexmakerVersion}"
|
||||
androidTestImplementation "com.google.dexmaker:dexmaker-mockito:${dexmakerVersion}"
|
||||
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
|
||||
}
|
||||
|
||||
task unzip(type: Copy) {
|
||||
|
|
|
@ -48,9 +48,12 @@ import info.nightscout.androidaps.events.EventFeatureRunning;
|
|||
import info.nightscout.androidaps.events.EventPreferenceChange;
|
||||
import info.nightscout.androidaps.events.EventRefreshGui;
|
||||
import info.nightscout.androidaps.interfaces.PluginBase;
|
||||
import info.nightscout.androidaps.interfaces.PluginType;
|
||||
import info.nightscout.androidaps.logging.L;
|
||||
import info.nightscout.androidaps.plugins.aps.loop.LoopPlugin;
|
||||
import info.nightscout.androidaps.plugins.configBuilder.ProfileFunctions;
|
||||
import info.nightscout.androidaps.plugins.general.nsclient.data.NSSettingsStatus;
|
||||
import info.nightscout.androidaps.plugins.general.versionChecker.VersionCheckerUtilsKt;
|
||||
import info.nightscout.androidaps.setupwizard.SetupWizardActivity;
|
||||
import info.nightscout.androidaps.tabs.TabPageAdapter;
|
||||
import info.nightscout.androidaps.utils.AndroidPermission;
|
||||
|
@ -59,7 +62,6 @@ import info.nightscout.androidaps.utils.LocaleHelper;
|
|||
import info.nightscout.androidaps.utils.OKDialog;
|
||||
import info.nightscout.androidaps.utils.PasswordProtection;
|
||||
import info.nightscout.androidaps.utils.SP;
|
||||
import info.nightscout.androidaps.utils.VersionChecker;
|
||||
|
||||
public class MainActivity extends AppCompatActivity {
|
||||
private static Logger log = LoggerFactory.getLogger(L.CORE);
|
||||
|
@ -115,7 +117,11 @@ public class MainActivity extends AppCompatActivity {
|
|||
public void onPageScrollStateChanged(int state) {
|
||||
}
|
||||
});
|
||||
VersionChecker.check();
|
||||
|
||||
//Check here if loop plugin is disabled. Else check via constraints
|
||||
if (!LoopPlugin.getPlugin().isEnabled(PluginType.LOOP))
|
||||
VersionCheckerUtilsKt.triggerCheckVersion();
|
||||
|
||||
FabricPrivacy.setUserStats();
|
||||
}
|
||||
|
||||
|
|
|
@ -50,6 +50,7 @@ import info.nightscout.androidaps.plugins.general.nsclient.receivers.DBAccessRec
|
|||
import info.nightscout.androidaps.plugins.general.overview.OverviewPlugin;
|
||||
import info.nightscout.androidaps.plugins.general.persistentNotification.PersistentNotificationPlugin;
|
||||
import info.nightscout.androidaps.plugins.general.smsCommunicator.SmsCommunicatorPlugin;
|
||||
import info.nightscout.androidaps.plugins.general.versionChecker.VersionCheckerPlugin;
|
||||
import info.nightscout.androidaps.plugins.general.wear.WearPlugin;
|
||||
import info.nightscout.androidaps.plugins.general.xdripStatusline.StatuslinePlugin;
|
||||
import info.nightscout.androidaps.plugins.insulin.InsulinOrefFreePeakPlugin;
|
||||
|
@ -88,6 +89,8 @@ import info.nightscout.androidaps.services.Intents;
|
|||
import info.nightscout.androidaps.utils.FabricPrivacy;
|
||||
import io.fabric.sdk.android.Fabric;
|
||||
|
||||
import static info.nightscout.androidaps.plugins.general.versionChecker.VersionCheckerUtilsKt.triggerCheckVersion;
|
||||
|
||||
|
||||
public class MainApp extends Application {
|
||||
private static Logger log = LoggerFactory.getLogger(L.CORE);
|
||||
|
@ -119,7 +122,7 @@ public class MainApp extends Application {
|
|||
log.debug("onCreate");
|
||||
sInstance = this;
|
||||
sResources = getResources();
|
||||
sConstraintsChecker = new ConstraintChecker(this);
|
||||
sConstraintsChecker = new ConstraintChecker();
|
||||
sDatabaseHelper = OpenHelperManager.getHelper(sInstance, DatabaseHelper.class);
|
||||
|
||||
try {
|
||||
|
@ -148,6 +151,9 @@ public class MainApp extends Application {
|
|||
|
||||
registerLocalBroadcastReceiver();
|
||||
|
||||
//trigger here to see the new version on app start after an update
|
||||
triggerCheckVersion();
|
||||
|
||||
if (pluginsList == null) {
|
||||
pluginsList = new ArrayList<>();
|
||||
// Register all tabs in app here
|
||||
|
@ -179,6 +185,7 @@ public class MainApp extends Application {
|
|||
if (Config.OTHERPROFILES) pluginsList.add(LocalProfilePlugin.getPlugin());
|
||||
pluginsList.add(TreatmentsPlugin.getPlugin());
|
||||
if (Config.SAFETY) pluginsList.add(SafetyPlugin.getPlugin());
|
||||
if (Config.SAFETY) pluginsList.add(VersionCheckerPlugin.INSTANCE);
|
||||
if (Config.SAFETY) pluginsList.add(StorageConstraintPlugin.getPlugin());
|
||||
if (Config.APS) pluginsList.add(ObjectivesPlugin.getPlugin());
|
||||
pluginsList.add(SourceXdripPlugin.getPlugin());
|
||||
|
|
|
@ -1,7 +1,11 @@
|
|||
package info.nightscout.androidaps.data;
|
||||
|
||||
import android.support.annotation.NonNull;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
import info.nightscout.androidaps.Constants;
|
||||
import info.nightscout.androidaps.MainApp;
|
||||
import info.nightscout.androidaps.interfaces.Constraint;
|
||||
|
@ -15,13 +19,6 @@ import info.nightscout.androidaps.interfaces.PluginType;
|
|||
|
||||
public class ConstraintChecker implements ConstraintsInterface {
|
||||
|
||||
private MainApp mainApp;
|
||||
|
||||
public ConstraintChecker(MainApp mainApp) {
|
||||
this.mainApp = mainApp;
|
||||
}
|
||||
|
||||
|
||||
public Constraint<Boolean> isLoopInvokationAllowed() {
|
||||
return isLoopInvocationAllowed(new Constraint<>(true));
|
||||
}
|
||||
|
@ -79,9 +76,9 @@ public class ConstraintChecker implements ConstraintsInterface {
|
|||
}
|
||||
|
||||
@Override
|
||||
public Constraint<Boolean> isLoopInvocationAllowed(Constraint<Boolean> value) {
|
||||
public Constraint<Boolean> isLoopInvocationAllowed(@NonNull Constraint<Boolean> value) {
|
||||
|
||||
ArrayList<PluginBase> constraintsPlugins = mainApp.getSpecificPluginsListByInterface(ConstraintsInterface.class);
|
||||
ArrayList<PluginBase> constraintsPlugins = MainApp.getSpecificPluginsListByInterface(ConstraintsInterface.class);
|
||||
for (PluginBase p : constraintsPlugins) {
|
||||
ConstraintsInterface constraint = (ConstraintsInterface) p;
|
||||
if (!p.isEnabled(PluginType.CONSTRAINTS)) continue;
|
||||
|
@ -91,9 +88,9 @@ public class ConstraintChecker implements ConstraintsInterface {
|
|||
}
|
||||
|
||||
@Override
|
||||
public Constraint<Boolean> isClosedLoopAllowed(Constraint<Boolean> value) {
|
||||
public Constraint<Boolean> isClosedLoopAllowed(@NonNull Constraint<Boolean> value) {
|
||||
|
||||
ArrayList<PluginBase> constraintsPlugins = mainApp.getSpecificPluginsListByInterface(ConstraintsInterface.class);
|
||||
ArrayList<PluginBase> constraintsPlugins = MainApp.getSpecificPluginsListByInterface(ConstraintsInterface.class);
|
||||
for (PluginBase p : constraintsPlugins) {
|
||||
ConstraintsInterface constraint = (ConstraintsInterface) p;
|
||||
if (!p.isEnabled(PluginType.CONSTRAINTS)) continue;
|
||||
|
@ -103,9 +100,9 @@ public class ConstraintChecker implements ConstraintsInterface {
|
|||
}
|
||||
|
||||
@Override
|
||||
public Constraint<Boolean> isAutosensModeEnabled(Constraint<Boolean> value) {
|
||||
public Constraint<Boolean> isAutosensModeEnabled(@NonNull Constraint<Boolean> value) {
|
||||
|
||||
ArrayList<PluginBase> constraintsPlugins = mainApp.getSpecificPluginsListByInterface(ConstraintsInterface.class);
|
||||
ArrayList<PluginBase> constraintsPlugins = MainApp.getSpecificPluginsListByInterface(ConstraintsInterface.class);
|
||||
for (PluginBase p : constraintsPlugins) {
|
||||
ConstraintsInterface constraint = (ConstraintsInterface) p;
|
||||
if (!p.isEnabled(PluginType.CONSTRAINTS)) continue;
|
||||
|
@ -115,9 +112,9 @@ public class ConstraintChecker implements ConstraintsInterface {
|
|||
}
|
||||
|
||||
@Override
|
||||
public Constraint<Boolean> isAMAModeEnabled(Constraint<Boolean> value) {
|
||||
public Constraint<Boolean> isAMAModeEnabled(@NonNull Constraint<Boolean> value) {
|
||||
|
||||
ArrayList<PluginBase> constraintsPlugins = mainApp.getSpecificPluginsListByInterface(ConstraintsInterface.class);
|
||||
ArrayList<PluginBase> constraintsPlugins = MainApp.getSpecificPluginsListByInterface(ConstraintsInterface.class);
|
||||
for (PluginBase p : constraintsPlugins) {
|
||||
ConstraintsInterface constrain = (ConstraintsInterface) p;
|
||||
if (!p.isEnabled(PluginType.CONSTRAINTS)) continue;
|
||||
|
@ -127,9 +124,9 @@ public class ConstraintChecker implements ConstraintsInterface {
|
|||
}
|
||||
|
||||
@Override
|
||||
public Constraint<Boolean> isSMBModeEnabled(Constraint<Boolean> value) {
|
||||
public Constraint<Boolean> isSMBModeEnabled(@NonNull Constraint<Boolean> value) {
|
||||
|
||||
ArrayList<PluginBase> constraintsPlugins = mainApp.getSpecificPluginsListByInterface(ConstraintsInterface.class);
|
||||
ArrayList<PluginBase> constraintsPlugins = MainApp.getSpecificPluginsListByInterface(ConstraintsInterface.class);
|
||||
for (PluginBase p : constraintsPlugins) {
|
||||
ConstraintsInterface constraint = (ConstraintsInterface) p;
|
||||
if (!p.isEnabled(PluginType.CONSTRAINTS)) continue;
|
||||
|
@ -139,9 +136,9 @@ public class ConstraintChecker implements ConstraintsInterface {
|
|||
}
|
||||
|
||||
@Override
|
||||
public Constraint<Boolean> isUAMEnabled(Constraint<Boolean> value) {
|
||||
public Constraint<Boolean> isUAMEnabled(@NonNull Constraint<Boolean> value) {
|
||||
|
||||
ArrayList<PluginBase> constraintsPlugins = mainApp.getSpecificPluginsListByInterface(ConstraintsInterface.class);
|
||||
ArrayList<PluginBase> constraintsPlugins = MainApp.getSpecificPluginsListByInterface(ConstraintsInterface.class);
|
||||
for (PluginBase p : constraintsPlugins) {
|
||||
ConstraintsInterface constraint = (ConstraintsInterface) p;
|
||||
if (!p.isEnabled(PluginType.CONSTRAINTS)) continue;
|
||||
|
@ -151,8 +148,8 @@ public class ConstraintChecker implements ConstraintsInterface {
|
|||
}
|
||||
|
||||
@Override
|
||||
public Constraint<Boolean> isAdvancedFilteringEnabled(Constraint<Boolean> value) {
|
||||
ArrayList<PluginBase> constraintsPlugins = mainApp.getSpecificPluginsListByInterface(ConstraintsInterface.class);
|
||||
public Constraint<Boolean> isAdvancedFilteringEnabled(@NonNull Constraint<Boolean> value) {
|
||||
ArrayList<PluginBase> constraintsPlugins = MainApp.getSpecificPluginsListByInterface(ConstraintsInterface.class);
|
||||
for (PluginBase p : constraintsPlugins) {
|
||||
ConstraintsInterface constraint = (ConstraintsInterface) p;
|
||||
if (!p.isEnabled(PluginType.CONSTRAINTS)) continue;
|
||||
|
@ -162,8 +159,8 @@ public class ConstraintChecker implements ConstraintsInterface {
|
|||
}
|
||||
|
||||
@Override
|
||||
public Constraint<Boolean> isSuperBolusEnabled(Constraint<Boolean> value) {
|
||||
ArrayList<PluginBase> constraintsPlugins = mainApp.getSpecificPluginsListByInterface(ConstraintsInterface.class);
|
||||
public Constraint<Boolean> isSuperBolusEnabled(@NonNull Constraint<Boolean> value) {
|
||||
ArrayList<PluginBase> constraintsPlugins = MainApp.getSpecificPluginsListByInterface(ConstraintsInterface.class);
|
||||
for (PluginBase p : constraintsPlugins) {
|
||||
ConstraintsInterface constraint = (ConstraintsInterface) p;
|
||||
if (!p.isEnabled(PluginType.CONSTRAINTS)) continue;
|
||||
|
@ -173,8 +170,8 @@ public class ConstraintChecker implements ConstraintsInterface {
|
|||
}
|
||||
|
||||
@Override
|
||||
public Constraint<Double> applyBasalConstraints(Constraint<Double> absoluteRate, Profile profile) {
|
||||
ArrayList<PluginBase> constraintsPlugins = mainApp.getSpecificPluginsListByInterface(ConstraintsInterface.class);
|
||||
public Constraint<Double> applyBasalConstraints(@NonNull Constraint<Double> absoluteRate, Profile profile) {
|
||||
ArrayList<PluginBase> constraintsPlugins = MainApp.getSpecificPluginsListByInterface(ConstraintsInterface.class);
|
||||
for (PluginBase p : constraintsPlugins) {
|
||||
ConstraintsInterface constraint = (ConstraintsInterface) p;
|
||||
if (!p.isEnabled(PluginType.CONSTRAINTS)) continue;
|
||||
|
@ -184,8 +181,8 @@ public class ConstraintChecker implements ConstraintsInterface {
|
|||
}
|
||||
|
||||
@Override
|
||||
public Constraint<Integer> applyBasalPercentConstraints(Constraint<Integer> percentRate, Profile profile) {
|
||||
ArrayList<PluginBase> constraintsPlugins = mainApp.getSpecificPluginsListByInterface(ConstraintsInterface.class);
|
||||
public Constraint<Integer> applyBasalPercentConstraints(@NonNull Constraint<Integer> percentRate, Profile profile) {
|
||||
ArrayList<PluginBase> constraintsPlugins = MainApp.getSpecificPluginsListByInterface(ConstraintsInterface.class);
|
||||
for (PluginBase p : constraintsPlugins) {
|
||||
ConstraintsInterface constrain = (ConstraintsInterface) p;
|
||||
if (!p.isEnabled(PluginType.CONSTRAINTS)) continue;
|
||||
|
@ -195,8 +192,8 @@ public class ConstraintChecker implements ConstraintsInterface {
|
|||
}
|
||||
|
||||
@Override
|
||||
public Constraint<Double> applyBolusConstraints(Constraint<Double> insulin) {
|
||||
ArrayList<PluginBase> constraintsPlugins = mainApp.getSpecificPluginsListByInterface(ConstraintsInterface.class);
|
||||
public Constraint<Double> applyBolusConstraints(@NonNull Constraint<Double> insulin) {
|
||||
ArrayList<PluginBase> constraintsPlugins = MainApp.getSpecificPluginsListByInterface(ConstraintsInterface.class);
|
||||
for (PluginBase p : constraintsPlugins) {
|
||||
ConstraintsInterface constrain = (ConstraintsInterface) p;
|
||||
if (!p.isEnabled(PluginType.CONSTRAINTS)) continue;
|
||||
|
@ -206,8 +203,8 @@ public class ConstraintChecker implements ConstraintsInterface {
|
|||
}
|
||||
|
||||
@Override
|
||||
public Constraint<Double> applyExtendedBolusConstraints(Constraint<Double> insulin) {
|
||||
ArrayList<PluginBase> constraintsPlugins = mainApp.getSpecificPluginsListByInterface(ConstraintsInterface.class);
|
||||
public Constraint<Double> applyExtendedBolusConstraints(@NonNull Constraint<Double> insulin) {
|
||||
ArrayList<PluginBase> constraintsPlugins = MainApp.getSpecificPluginsListByInterface(ConstraintsInterface.class);
|
||||
for (PluginBase p : constraintsPlugins) {
|
||||
ConstraintsInterface constrain = (ConstraintsInterface) p;
|
||||
if (!p.isEnabled(PluginType.CONSTRAINTS)) continue;
|
||||
|
@ -217,8 +214,8 @@ public class ConstraintChecker implements ConstraintsInterface {
|
|||
}
|
||||
|
||||
@Override
|
||||
public Constraint<Integer> applyCarbsConstraints(Constraint<Integer> carbs) {
|
||||
ArrayList<PluginBase> constraintsPlugins = mainApp.getSpecificPluginsListByInterface(ConstraintsInterface.class);
|
||||
public Constraint<Integer> applyCarbsConstraints(@NonNull Constraint<Integer> carbs) {
|
||||
ArrayList<PluginBase> constraintsPlugins = MainApp.getSpecificPluginsListByInterface(ConstraintsInterface.class);
|
||||
for (PluginBase p : constraintsPlugins) {
|
||||
ConstraintsInterface constrain = (ConstraintsInterface) p;
|
||||
if (!p.isEnabled(PluginType.CONSTRAINTS)) continue;
|
||||
|
@ -228,8 +225,8 @@ public class ConstraintChecker implements ConstraintsInterface {
|
|||
}
|
||||
|
||||
@Override
|
||||
public Constraint<Double> applyMaxIOBConstraints(Constraint<Double> maxIob) {
|
||||
ArrayList<PluginBase> constraintsPlugins = mainApp.getSpecificPluginsListByInterface(ConstraintsInterface.class);
|
||||
public Constraint<Double> applyMaxIOBConstraints(@NonNull Constraint<Double> maxIob) {
|
||||
ArrayList<PluginBase> constraintsPlugins = MainApp.getSpecificPluginsListByInterface(ConstraintsInterface.class);
|
||||
for (PluginBase p : constraintsPlugins) {
|
||||
ConstraintsInterface constrain = (ConstraintsInterface) p;
|
||||
if (!p.isEnabled(PluginType.CONSTRAINTS)) continue;
|
||||
|
|
|
@ -1,178 +0,0 @@
|
|||
package info.nightscout.androidaps.data;
|
||||
|
||||
import android.support.annotation.Nullable;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import info.nightscout.androidaps.db.BgReading;
|
||||
import info.nightscout.androidaps.logging.L;
|
||||
import info.nightscout.androidaps.plugins.iob.iobCobCalculator.IobCobCalculatorPlugin;
|
||||
import info.nightscout.androidaps.utils.DateUtil;
|
||||
import info.nightscout.androidaps.utils.DecimalFormatter;
|
||||
import info.nightscout.androidaps.utils.Round;
|
||||
|
||||
/**
|
||||
* Created by mike on 04.01.2017.
|
||||
*/
|
||||
|
||||
public class GlucoseStatus {
|
||||
private static Logger log = LoggerFactory.getLogger(GlucoseStatus.class);
|
||||
public double glucose = 0d;
|
||||
public double delta = 0d;
|
||||
public double avgdelta = 0d;
|
||||
public double short_avgdelta = 0d;
|
||||
public double long_avgdelta = 0d;
|
||||
public long date = 0L;
|
||||
|
||||
|
||||
public String log() {
|
||||
return "Glucose: " + DecimalFormatter.to0Decimal(glucose) + " mg/dl " +
|
||||
"Delta: " + DecimalFormatter.to0Decimal(delta) + " mg/dl" +
|
||||
"Short avg. delta: " + " " + DecimalFormatter.to2Decimal(short_avgdelta) + " mg/dl " +
|
||||
"Long avg. delta: " + DecimalFormatter.to2Decimal(long_avgdelta) + " mg/dl";
|
||||
}
|
||||
|
||||
public GlucoseStatus() {
|
||||
}
|
||||
|
||||
public GlucoseStatus round() {
|
||||
this.glucose = Round.roundTo(this.glucose, 0.1);
|
||||
this.delta = Round.roundTo(this.delta, 0.01);
|
||||
this.avgdelta = Round.roundTo(this.avgdelta, 0.01);
|
||||
this.short_avgdelta = Round.roundTo(this.short_avgdelta, 0.01);
|
||||
this.long_avgdelta = Round.roundTo(this.long_avgdelta, 0.01);
|
||||
return this;
|
||||
}
|
||||
|
||||
|
||||
@Nullable
|
||||
public static GlucoseStatus getGlucoseStatusData() {
|
||||
return getGlucoseStatusData(false);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static GlucoseStatus getGlucoseStatusData(boolean allowOldData) {
|
||||
// load 45min
|
||||
//long fromtime = DateUtil.now() - 60 * 1000L * 45;
|
||||
//List<BgReading> data = MainApp.getDbHelper().getBgreadingsDataFromTime(fromtime, false);
|
||||
|
||||
List<BgReading> data = IobCobCalculatorPlugin.getPlugin().getBgReadings();
|
||||
|
||||
if (data == null) {
|
||||
if (L.isEnabled(L.GLUCOSE))
|
||||
log.debug("data=null");
|
||||
return null;
|
||||
}
|
||||
|
||||
int sizeRecords = data.size();
|
||||
if (sizeRecords == 0) {
|
||||
if (L.isEnabled(L.GLUCOSE))
|
||||
log.debug("sizeRecords==0");
|
||||
return null;
|
||||
}
|
||||
|
||||
if (data.get(0).date < DateUtil.now() - 7 * 60 * 1000L && !allowOldData) {
|
||||
if (L.isEnabled(L.GLUCOSE))
|
||||
log.debug("olddata");
|
||||
return null;
|
||||
}
|
||||
|
||||
BgReading now = data.get(0);
|
||||
long now_date = now.date;
|
||||
double change;
|
||||
|
||||
if (sizeRecords == 1) {
|
||||
GlucoseStatus status = new GlucoseStatus();
|
||||
status.glucose = now.value;
|
||||
status.short_avgdelta = 0d;
|
||||
status.delta = 0d;
|
||||
status.long_avgdelta = 0d;
|
||||
status.avgdelta = 0d; // for OpenAPS MA
|
||||
status.date = now_date;
|
||||
if (L.isEnabled(L.GLUCOSE))
|
||||
log.debug("sizeRecords==1");
|
||||
return status.round();
|
||||
}
|
||||
|
||||
ArrayList<Double> now_value_list = new ArrayList<>();
|
||||
ArrayList<Double> last_deltas = new ArrayList<>();
|
||||
ArrayList<Double> short_deltas = new ArrayList<>();
|
||||
ArrayList<Double> long_deltas = new ArrayList<>();
|
||||
|
||||
// Use the latest sgv value in the now calculations
|
||||
now_value_list.add(now.value);
|
||||
|
||||
for (int i = 1; i < sizeRecords; i++) {
|
||||
if (data.get(i).value > 38) {
|
||||
BgReading then = data.get(i);
|
||||
long then_date = then.date;
|
||||
double avgdelta;
|
||||
long minutesago;
|
||||
|
||||
minutesago = Math.round((now_date - then_date) / (1000d * 60));
|
||||
// multiply by 5 to get the same units as delta, i.e. mg/dL/5m
|
||||
change = now.value - then.value;
|
||||
avgdelta = change / minutesago * 5;
|
||||
|
||||
if (L.isEnabled(L.GLUCOSE))
|
||||
log.debug(then.toString() + " minutesago=" + minutesago + " avgdelta=" + avgdelta);
|
||||
|
||||
// use the average of all data points in the last 2.5m for all further "now" calculations
|
||||
if (0 < minutesago && minutesago < 2.5) {
|
||||
// Keep and average all values within the last 2.5 minutes
|
||||
now_value_list.add(then.value);
|
||||
now.value = average(now_value_list);
|
||||
// short_deltas are calculated from everything ~5-15 minutes ago
|
||||
} else if (2.5 < minutesago && minutesago < 17.5) {
|
||||
//console.error(minutesago, avgdelta);
|
||||
short_deltas.add(avgdelta);
|
||||
// last_deltas are calculated from everything ~5 minutes ago
|
||||
if (2.5 < minutesago && minutesago < 7.5) {
|
||||
last_deltas.add(avgdelta);
|
||||
}
|
||||
// long_deltas are calculated from everything ~20-40 minutes ago
|
||||
} else if (17.5 < minutesago && minutesago < 42.5) {
|
||||
long_deltas.add(avgdelta);
|
||||
} else {
|
||||
// Do not process any more records after >= 42.5 minutes
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
GlucoseStatus status = new GlucoseStatus();
|
||||
status.glucose = now.value;
|
||||
status.date = now_date;
|
||||
|
||||
status.short_avgdelta = average(short_deltas);
|
||||
|
||||
if (last_deltas.isEmpty()) {
|
||||
status.delta = status.short_avgdelta;
|
||||
} else {
|
||||
status.delta = average(last_deltas);
|
||||
}
|
||||
|
||||
status.long_avgdelta = average(long_deltas);
|
||||
status.avgdelta = status.short_avgdelta; // for OpenAPS MA
|
||||
|
||||
if (L.isEnabled(L.GLUCOSE))
|
||||
log.debug(status.log());
|
||||
return status.round();
|
||||
}
|
||||
|
||||
public static double average(ArrayList<Double> array) {
|
||||
double sum = 0d;
|
||||
|
||||
if (array.size() == 0)
|
||||
return 0d;
|
||||
|
||||
for (Double value : array) {
|
||||
sum += value;
|
||||
}
|
||||
return sum / array.size();
|
||||
}
|
||||
}
|
|
@ -12,6 +12,7 @@ import info.nightscout.androidaps.db.BgReading;
|
|||
import info.nightscout.androidaps.db.TempTarget;
|
||||
import info.nightscout.androidaps.interfaces.TreatmentsInterface;
|
||||
import info.nightscout.androidaps.plugins.iob.iobCobCalculator.CobInfo;
|
||||
import info.nightscout.androidaps.plugins.iob.iobCobCalculator.GlucoseStatus;
|
||||
import info.nightscout.androidaps.plugins.iob.iobCobCalculator.IobCobCalculatorPlugin;
|
||||
import info.nightscout.androidaps.plugins.aps.loop.LoopPlugin;
|
||||
import info.nightscout.androidaps.plugins.treatments.TreatmentsPlugin;
|
||||
|
|
|
@ -45,9 +45,9 @@ import info.nightscout.androidaps.events.EventTempTargetChange;
|
|||
import info.nightscout.androidaps.interfaces.ProfileInterface;
|
||||
import info.nightscout.androidaps.logging.L;
|
||||
import info.nightscout.androidaps.plugins.configBuilder.ConfigBuilderPlugin;
|
||||
import info.nightscout.androidaps.plugins.general.nsclient.NSUpload;
|
||||
import info.nightscout.androidaps.plugins.iob.iobCobCalculator.IobCobCalculatorPlugin;
|
||||
import info.nightscout.androidaps.plugins.iob.iobCobCalculator.events.EventNewHistoryData;
|
||||
import info.nightscout.androidaps.plugins.general.nsclient.NSUpload;
|
||||
import info.nightscout.androidaps.plugins.pump.danaR.activities.DanaRNSHistorySync;
|
||||
import info.nightscout.androidaps.plugins.pump.danaR.comm.RecordTypes;
|
||||
import info.nightscout.androidaps.plugins.pump.insight.database.InsightBolusID;
|
||||
|
@ -83,7 +83,7 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
|
|||
public static final String DATABASE_INSIGHT_BOLUS_IDS = "InsightBolusIDs";
|
||||
public static final String DATABASE_INSIGHT_PUMP_IDS = "InsightPumpIDs";
|
||||
|
||||
private static final int DATABASE_VERSION = 10;
|
||||
private static final int DATABASE_VERSION = 11;
|
||||
|
||||
public static Long earliestDataChange = null;
|
||||
|
||||
|
@ -131,6 +131,10 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
|
|||
TableUtils.createTableIfNotExists(connectionSource, InsightHistoryOffset.class);
|
||||
TableUtils.createTableIfNotExists(connectionSource, InsightBolusID.class);
|
||||
TableUtils.createTableIfNotExists(connectionSource, InsightPumpID.class);
|
||||
database.execSQL("INSERT INTO sqlite_sequence (name, seq) SELECT \"" + DATABASE_INSIGHT_BOLUS_IDS + "\", " + System.currentTimeMillis() + " " +
|
||||
"WHERE NOT EXISTS (SELECT 1 FROM sqlite_sequence WHERE name = \"" + DATABASE_INSIGHT_BOLUS_IDS + "\")");
|
||||
database.execSQL("INSERT INTO sqlite_sequence (name, seq) SELECT \"" + DATABASE_INSIGHT_PUMP_IDS + "\", " + System.currentTimeMillis() + " " +
|
||||
"WHERE NOT EXISTS (SELECT 1 FROM sqlite_sequence WHERE name = \"" + DATABASE_INSIGHT_PUMP_IDS + "\")");
|
||||
} catch (SQLException e) {
|
||||
log.error("Can't create database", e);
|
||||
throw new RuntimeException(e);
|
||||
|
@ -143,15 +147,7 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
|
|||
this.oldVersion = oldVersion;
|
||||
this.newVersion = newVersion;
|
||||
|
||||
if (oldVersion == 7 && newVersion == 8) {
|
||||
log.debug("Upgrading database from v7 to v8");
|
||||
} else if (oldVersion == 8 && newVersion == 9) {
|
||||
log.debug("Upgrading database from v8 to v9");
|
||||
} else if (oldVersion == 9 && newVersion == 10) {
|
||||
TableUtils.createTableIfNotExists(connectionSource, InsightHistoryOffset.class);
|
||||
TableUtils.createTableIfNotExists(connectionSource, InsightBolusID.class);
|
||||
TableUtils.createTableIfNotExists(connectionSource, InsightPumpID.class);
|
||||
} else {
|
||||
if (oldVersion < 7) {
|
||||
log.info(DatabaseHelper.class.getName(), "onUpgrade");
|
||||
TableUtils.dropTable(connectionSource, TempTarget.class, true);
|
||||
TableUtils.dropTable(connectionSource, BgReading.class, true);
|
||||
|
@ -162,6 +158,17 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
|
|||
TableUtils.dropTable(connectionSource, CareportalEvent.class, true);
|
||||
TableUtils.dropTable(connectionSource, ProfileSwitch.class, true);
|
||||
onCreate(database, connectionSource);
|
||||
} else if (oldVersion < 10) {
|
||||
TableUtils.createTableIfNotExists(connectionSource, InsightHistoryOffset.class);
|
||||
TableUtils.createTableIfNotExists(connectionSource, InsightBolusID.class);
|
||||
TableUtils.createTableIfNotExists(connectionSource, InsightPumpID.class);
|
||||
database.execSQL("INSERT INTO sqlite_sequence (name, seq) SELECT \"" + DATABASE_INSIGHT_BOLUS_IDS + "\", " + System.currentTimeMillis() + " " +
|
||||
"WHERE NOT EXISTS (SELECT 1 FROM sqlite_sequence WHERE name = \"" + DATABASE_INSIGHT_BOLUS_IDS + "\")");
|
||||
database.execSQL("INSERT INTO sqlite_sequence (name, seq) SELECT \"" + DATABASE_INSIGHT_PUMP_IDS + "\", " + System.currentTimeMillis() + " " +
|
||||
"WHERE NOT EXISTS (SELECT 1 FROM sqlite_sequence WHERE name = \"" + DATABASE_INSIGHT_PUMP_IDS + "\")");
|
||||
} else if (oldVersion < 11) {
|
||||
database.execSQL("UPDATE sqlite_sequence SET seq = " + System.currentTimeMillis() + " WHERE name = \"" + DATABASE_INSIGHT_BOLUS_IDS + "\"");
|
||||
database.execSQL("UPDATE sqlite_sequence SET seq = " + System.currentTimeMillis() + " WHERE name = \"" + DATABASE_INSIGHT_PUMP_IDS + "\"");
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
log.error("Can't drop databases", e);
|
||||
|
|
|
@ -20,7 +20,7 @@ import java.lang.reflect.InvocationTargetException;
|
|||
import info.nightscout.androidaps.Constants;
|
||||
import info.nightscout.androidaps.MainApp;
|
||||
import info.nightscout.androidaps.R;
|
||||
import info.nightscout.androidaps.data.GlucoseStatus;
|
||||
import info.nightscout.androidaps.plugins.iob.iobCobCalculator.GlucoseStatus;
|
||||
import info.nightscout.androidaps.data.IobTotal;
|
||||
import info.nightscout.androidaps.data.MealData;
|
||||
import info.nightscout.androidaps.data.Profile;
|
||||
|
|
|
@ -6,7 +6,7 @@ import org.slf4j.LoggerFactory;
|
|||
|
||||
import info.nightscout.androidaps.MainApp;
|
||||
import info.nightscout.androidaps.R;
|
||||
import info.nightscout.androidaps.data.GlucoseStatus;
|
||||
import info.nightscout.androidaps.plugins.iob.iobCobCalculator.GlucoseStatus;
|
||||
import info.nightscout.androidaps.data.IobTotal;
|
||||
import info.nightscout.androidaps.data.MealData;
|
||||
import info.nightscout.androidaps.data.Profile;
|
||||
|
|
|
@ -17,7 +17,7 @@ import java.lang.reflect.InvocationTargetException;
|
|||
|
||||
import info.nightscout.androidaps.Constants;
|
||||
import info.nightscout.androidaps.R;
|
||||
import info.nightscout.androidaps.data.GlucoseStatus;
|
||||
import info.nightscout.androidaps.plugins.iob.iobCobCalculator.GlucoseStatus;
|
||||
import info.nightscout.androidaps.data.IobTotal;
|
||||
import info.nightscout.androidaps.data.MealData;
|
||||
import info.nightscout.androidaps.data.Profile;
|
||||
|
|
|
@ -6,7 +6,7 @@ import org.slf4j.LoggerFactory;
|
|||
|
||||
import info.nightscout.androidaps.MainApp;
|
||||
import info.nightscout.androidaps.R;
|
||||
import info.nightscout.androidaps.data.GlucoseStatus;
|
||||
import info.nightscout.androidaps.plugins.iob.iobCobCalculator.GlucoseStatus;
|
||||
import info.nightscout.androidaps.data.IobTotal;
|
||||
import info.nightscout.androidaps.data.MealData;
|
||||
import info.nightscout.androidaps.data.Profile;
|
||||
|
|
|
@ -20,7 +20,7 @@ import java.lang.reflect.InvocationTargetException;
|
|||
import info.nightscout.androidaps.Constants;
|
||||
import info.nightscout.androidaps.MainApp;
|
||||
import info.nightscout.androidaps.R;
|
||||
import info.nightscout.androidaps.data.GlucoseStatus;
|
||||
import info.nightscout.androidaps.plugins.iob.iobCobCalculator.GlucoseStatus;
|
||||
import info.nightscout.androidaps.data.IobTotal;
|
||||
import info.nightscout.androidaps.data.MealData;
|
||||
import info.nightscout.androidaps.data.Profile;
|
||||
|
|
|
@ -6,7 +6,7 @@ import org.slf4j.LoggerFactory;
|
|||
|
||||
import info.nightscout.androidaps.MainApp;
|
||||
import info.nightscout.androidaps.R;
|
||||
import info.nightscout.androidaps.data.GlucoseStatus;
|
||||
import info.nightscout.androidaps.plugins.iob.iobCobCalculator.GlucoseStatus;
|
||||
import info.nightscout.androidaps.data.IobTotal;
|
||||
import info.nightscout.androidaps.data.MealData;
|
||||
import info.nightscout.androidaps.data.Profile;
|
||||
|
|
|
@ -39,7 +39,7 @@ import java.util.List;
|
|||
import info.nightscout.androidaps.Constants;
|
||||
import info.nightscout.androidaps.MainApp;
|
||||
import info.nightscout.androidaps.R;
|
||||
import info.nightscout.androidaps.data.GlucoseStatus;
|
||||
import info.nightscout.androidaps.plugins.iob.iobCobCalculator.GlucoseStatus;
|
||||
import info.nightscout.androidaps.data.Profile;
|
||||
import info.nightscout.androidaps.data.ProfileStore;
|
||||
import info.nightscout.androidaps.db.BgReading;
|
||||
|
|
|
@ -56,7 +56,7 @@ 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.GlucoseStatus;
|
||||
import info.nightscout.androidaps.plugins.iob.iobCobCalculator.GlucoseStatus;
|
||||
import info.nightscout.androidaps.data.IobTotal;
|
||||
import info.nightscout.androidaps.data.Profile;
|
||||
import info.nightscout.androidaps.data.QuickWizardEntry;
|
||||
|
|
|
@ -18,7 +18,7 @@ import java.text.DecimalFormat;
|
|||
|
||||
import info.nightscout.androidaps.Constants;
|
||||
import info.nightscout.androidaps.R;
|
||||
import info.nightscout.androidaps.data.GlucoseStatus;
|
||||
import info.nightscout.androidaps.plugins.iob.iobCobCalculator.GlucoseStatus;
|
||||
import info.nightscout.androidaps.data.Profile;
|
||||
import info.nightscout.androidaps.plugins.configBuilder.ProfileFunctions;
|
||||
import info.nightscout.androidaps.utils.NumberPicker;
|
||||
|
|
|
@ -74,6 +74,7 @@ public class Notification {
|
|||
public static final int DST_LOOP_DISABLED = 49;
|
||||
public static final int DST_IN_24H = 50;
|
||||
public static final int DISKFULL = 51;
|
||||
public static final int OLDVERSION = 52;
|
||||
|
||||
|
||||
public int id;
|
||||
|
|
|
@ -20,7 +20,7 @@ import info.nightscout.androidaps.Constants;
|
|||
import info.nightscout.androidaps.MainActivity;
|
||||
import info.nightscout.androidaps.MainApp;
|
||||
import info.nightscout.androidaps.R;
|
||||
import info.nightscout.androidaps.data.GlucoseStatus;
|
||||
import info.nightscout.androidaps.plugins.iob.iobCobCalculator.GlucoseStatus;
|
||||
import info.nightscout.androidaps.data.IobTotal;
|
||||
import info.nightscout.androidaps.db.BgReading;
|
||||
import info.nightscout.androidaps.db.DatabaseHelper;
|
||||
|
|
|
@ -20,7 +20,7 @@ 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.GlucoseStatus;
|
||||
import info.nightscout.androidaps.plugins.iob.iobCobCalculator.GlucoseStatus;
|
||||
import info.nightscout.androidaps.data.IobTotal;
|
||||
import info.nightscout.androidaps.data.Profile;
|
||||
import info.nightscout.androidaps.data.ProfileStore;
|
||||
|
|
|
@ -0,0 +1,65 @@
|
|||
package info.nightscout.androidaps.plugins.general.versionChecker
|
||||
|
||||
import info.nightscout.androidaps.MainApp
|
||||
import info.nightscout.androidaps.R
|
||||
import info.nightscout.androidaps.interfaces.*
|
||||
import info.nightscout.androidaps.plugins.general.overview.events.EventNewNotification
|
||||
import info.nightscout.androidaps.plugins.general.overview.notifications.Notification
|
||||
import info.nightscout.androidaps.utils.SP
|
||||
import java.util.concurrent.TimeUnit
|
||||
|
||||
/**
|
||||
* Usually we would have a class here.
|
||||
* Instead of having a class we can use an object directly inherited from PluginBase.
|
||||
* This is a lazy loading singleton only loaded when actually used.
|
||||
* */
|
||||
|
||||
object VersionCheckerPlugin : PluginBase(PluginDescription()
|
||||
.mainType(PluginType.CONSTRAINTS)
|
||||
.neverVisible(true)
|
||||
.alwaysEnabled(true)
|
||||
.showInList(false)
|
||||
.pluginName(R.string.versionChecker)), ConstraintsInterface {
|
||||
|
||||
override fun isClosedLoopAllowed(value: Constraint<Boolean>): Constraint<Boolean> {
|
||||
checkWarning()
|
||||
triggerCheckVersion()
|
||||
return if (isOldVersion(GRACE_PERIOD_VERY_OLD))
|
||||
value.set(false, MainApp.gs(R.string.very_old_version), this)
|
||||
else
|
||||
value
|
||||
}
|
||||
|
||||
private fun checkWarning() {
|
||||
val now = System.currentTimeMillis()
|
||||
if (isOldVersion(GRACE_PERIOD_WARNING) && shouldWarnAgain(now)) {
|
||||
// store last notification time
|
||||
SP.putLong(R.string.key_last_versionchecker_plugin_warning, now)
|
||||
|
||||
//notify
|
||||
val message = MainApp.gs(R.string.new_version_warning, Math.round((now - SP.getLong(R.string.key_last_time_this_version_detected, now)) / TimeUnit.DAYS.toMillis(1).toDouble()))
|
||||
val notification = Notification(Notification.OLDVERSION, message, Notification.NORMAL)
|
||||
MainApp.bus().post(EventNewNotification(notification))
|
||||
}
|
||||
}
|
||||
|
||||
private fun shouldWarnAgain(now: Long) =
|
||||
now > SP.getLong(R.string.key_last_versionchecker_plugin_warning, 0) + WARN_EVERY
|
||||
|
||||
override fun applyMaxIOBConstraints(maxIob: Constraint<Double>): Constraint<Double> =
|
||||
if (isOldVersion(GRACE_PERIOD_OLD))
|
||||
maxIob.set(0.toDouble(), MainApp.gs(R.string.old_version), this)
|
||||
else
|
||||
maxIob
|
||||
|
||||
private fun isOldVersion(gracePeriod: Long): Boolean {
|
||||
val now = System.currentTimeMillis()
|
||||
return now > SP.getLong(R.string.key_last_time_this_version_detected, 0) + gracePeriod
|
||||
}
|
||||
|
||||
val WARN_EVERY = TimeUnit.DAYS.toMillis(1)
|
||||
val GRACE_PERIOD_WARNING = TimeUnit.DAYS.toMillis(30)
|
||||
val GRACE_PERIOD_OLD = TimeUnit.DAYS.toMillis(60)
|
||||
val GRACE_PERIOD_VERY_OLD = TimeUnit.DAYS.toMillis(90)
|
||||
|
||||
}
|
|
@ -0,0 +1,111 @@
|
|||
package info.nightscout.androidaps.plugins.general.versionChecker
|
||||
|
||||
import android.content.Context
|
||||
import android.net.ConnectivityManager
|
||||
import info.nightscout.androidaps.BuildConfig
|
||||
import info.nightscout.androidaps.MainApp
|
||||
import info.nightscout.androidaps.R
|
||||
import info.nightscout.androidaps.logging.L
|
||||
import info.nightscout.androidaps.plugins.general.overview.events.EventNewNotification
|
||||
import info.nightscout.androidaps.plugins.general.overview.notifications.Notification
|
||||
import info.nightscout.androidaps.utils.SP
|
||||
import org.apache.http.HttpResponse
|
||||
import org.apache.http.client.methods.HttpGet
|
||||
import org.apache.http.impl.client.DefaultHttpClient
|
||||
import org.slf4j.LoggerFactory
|
||||
import java.io.IOException
|
||||
import java.io.InputStream
|
||||
import java.util.concurrent.TimeUnit
|
||||
|
||||
// check network connection
|
||||
fun isConnected(): Boolean {
|
||||
val connMgr = MainApp.instance().applicationContext.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
|
||||
return connMgr.activeNetworkInfo?.isConnected ?: false
|
||||
}
|
||||
|
||||
// convert inputstream to String
|
||||
@Throws(IOException::class)
|
||||
inline fun InputStream.findVersion(): String? {
|
||||
val regex = "(.*)version(.*)\"(((\\d+)\\.)+(\\d+))\"(.*)".toRegex()
|
||||
return bufferedReader()
|
||||
.readLines()
|
||||
.filter { regex.matches(it) }
|
||||
.mapNotNull { regex.matchEntire(it)?.groupValues?.getOrNull(3) }
|
||||
.firstOrNull()
|
||||
}
|
||||
|
||||
private val log = LoggerFactory.getLogger(L.CORE)
|
||||
|
||||
|
||||
fun triggerCheckVersion() {
|
||||
|
||||
if(!SP.contains(R.string.key_last_time_this_version_detected)) {
|
||||
// On a new installation, set it as 30 days old in order to warn that there is a new version.
|
||||
SP.putLong(R.string.key_last_time_this_version_detected, System.currentTimeMillis() - TimeUnit.DAYS.toMillis(30))
|
||||
}
|
||||
|
||||
// If we are good, only check once every day.
|
||||
if(System.currentTimeMillis() > SP.getLong(R.string.key_last_time_this_version_detected, 0) + CHECK_EVERY){
|
||||
checkVersion()
|
||||
}
|
||||
}
|
||||
|
||||
@Suppress("DEPRECATION")
|
||||
private fun checkVersion() = if (isConnected()) {
|
||||
Thread {
|
||||
try {
|
||||
val request = HttpGet("https://raw.githubusercontent.com/MilosKozak/AndroidAPS/master/app/build.gradle")
|
||||
val response: HttpResponse = DefaultHttpClient().execute(request)
|
||||
val version: String? = response.entity.content?.findVersion()
|
||||
compareWithCurrentVersion(version, BuildConfig.VERSION_NAME)
|
||||
} catch (e: IOException) {
|
||||
log.debug("Github master version check error: $e")
|
||||
}
|
||||
}.start()
|
||||
} else
|
||||
log.debug("Github master version no checked. No connectivity")
|
||||
|
||||
fun compareWithCurrentVersion(newVersion: String?, currentVersion: String) {
|
||||
val comparison: Int? = newVersion?.versionStrip()?.compareTo(currentVersion.versionStrip())
|
||||
when {
|
||||
comparison == null -> onVersionNotDetectable()
|
||||
comparison == 0 -> onSameVersionDetected()
|
||||
comparison > 0 -> onNewVersionDetected(currentVersion = currentVersion, newVersion = newVersion)
|
||||
else -> onOlderVersionDetected()
|
||||
}
|
||||
}
|
||||
|
||||
private fun onOlderVersionDetected() {
|
||||
log.debug("Version newer than master. Are you developer?")
|
||||
SP.putLong(R.string.key_last_time_this_version_detected, System.currentTimeMillis())
|
||||
}
|
||||
|
||||
fun onSameVersionDetected() {
|
||||
SP.putLong(R.string.key_last_time_this_version_detected, System.currentTimeMillis())
|
||||
}
|
||||
|
||||
fun onVersionNotDetectable() {
|
||||
log.debug("fetch failed, ignore and smartcast to non-null")
|
||||
}
|
||||
|
||||
fun onNewVersionDetected(currentVersion: String, newVersion: String?) {
|
||||
val now = System.currentTimeMillis()
|
||||
if(now > SP.getLong(R.string.key_last_versionchecker_warning, 0) + WARN_EVERY) {
|
||||
log.debug("Version ${currentVersion} outdated. Found $newVersion")
|
||||
val notification = Notification(Notification.NEWVERSIONDETECTED, String.format(MainApp.gs(R.string.versionavailable), newVersion.toString()), Notification.LOW)
|
||||
MainApp.bus().post(EventNewNotification(notification))
|
||||
SP.putLong(R.string.key_last_versionchecker_warning, now)
|
||||
}
|
||||
}
|
||||
|
||||
fun String.versionStrip() = this.mapNotNull {
|
||||
when (it) {
|
||||
in '0'..'9' -> it
|
||||
'.' -> it
|
||||
else -> null
|
||||
}
|
||||
}.joinToString(separator = "")
|
||||
|
||||
|
||||
val CHECK_EVERY = TimeUnit.DAYS.toMillis(1)
|
||||
val WARN_EVERY = TimeUnit.DAYS.toMillis(1)
|
|
@ -32,17 +32,11 @@ import com.google.android.gms.wearable.PutDataRequest;
|
|||
import com.google.android.gms.wearable.Wearable;
|
||||
import com.google.android.gms.wearable.WearableListenerService;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import info.nightscout.androidaps.Config;
|
||||
import info.nightscout.androidaps.Constants;
|
||||
import info.nightscout.androidaps.MainApp;
|
||||
import info.nightscout.androidaps.R;
|
||||
import info.nightscout.androidaps.data.GlucoseStatus;
|
||||
import info.nightscout.androidaps.plugins.iob.iobCobCalculator.GlucoseStatus;
|
||||
import info.nightscout.androidaps.data.IobTotal;
|
||||
import info.nightscout.androidaps.data.Profile;
|
||||
import info.nightscout.androidaps.db.BgReading;
|
||||
|
@ -55,15 +49,11 @@ import info.nightscout.androidaps.interfaces.PluginType;
|
|||
import info.nightscout.androidaps.interfaces.TreatmentsInterface;
|
||||
import info.nightscout.androidaps.plugins.aps.loop.LoopPlugin;
|
||||
import info.nightscout.androidaps.plugins.configBuilder.ConfigBuilderPlugin;
|
||||
import info.nightscout.androidaps.plugins.configBuilder.ProfileFunctions;
|
||||
import info.nightscout.androidaps.plugins.general.nsclient.data.NSDeviceStatus;
|
||||
import info.nightscout.androidaps.plugins.general.overview.OverviewPlugin;
|
||||
import info.nightscout.androidaps.plugins.treatments.TreatmentsPlugin;
|
||||
import info.nightscout.androidaps.plugins.general.wear.ActionStringHandler;
|
||||
import info.nightscout.androidaps.plugins.general.wear.WearPlugin;
|
||||
import info.nightscout.androidaps.plugins.iob.iobCobCalculator.IobCobCalculatorPlugin;
|
||||
import info.nightscout.androidaps.plugins.treatments.Treatment;
|
||||
import info.nightscout.androidaps.plugins.treatments.TreatmentsPlugin;
|
||||
import info.nightscout.androidaps.utils.DecimalFormatter;
|
||||
import info.nightscout.androidaps.utils.SP;
|
||||
import info.nightscout.androidaps.utils.SafeParse;
|
||||
|
|
|
@ -0,0 +1,180 @@
|
|||
package info.nightscout.androidaps.plugins.iob.iobCobCalculator;
|
||||
|
||||
import android.support.annotation.Nullable;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import info.nightscout.androidaps.db.BgReading;
|
||||
import info.nightscout.androidaps.logging.L;
|
||||
import info.nightscout.androidaps.utils.DateUtil;
|
||||
import info.nightscout.androidaps.utils.DecimalFormatter;
|
||||
import info.nightscout.androidaps.utils.Round;
|
||||
|
||||
/**
|
||||
* Created by mike on 04.01.2017.
|
||||
*/
|
||||
|
||||
public class GlucoseStatus {
|
||||
private static Logger log = LoggerFactory.getLogger(GlucoseStatus.class);
|
||||
public double glucose = 0d;
|
||||
public double delta = 0d;
|
||||
public double avgdelta = 0d;
|
||||
public double short_avgdelta = 0d;
|
||||
public double long_avgdelta = 0d;
|
||||
public long date = 0L;
|
||||
|
||||
|
||||
public String log() {
|
||||
return "Glucose: " + DecimalFormatter.to0Decimal(glucose) + " mg/dl " +
|
||||
"Delta: " + DecimalFormatter.to0Decimal(delta) + " mg/dl" +
|
||||
"Short avg. delta: " + " " + DecimalFormatter.to2Decimal(short_avgdelta) + " mg/dl " +
|
||||
"Long avg. delta: " + DecimalFormatter.to2Decimal(long_avgdelta) + " mg/dl";
|
||||
}
|
||||
|
||||
public GlucoseStatus() {
|
||||
}
|
||||
|
||||
public GlucoseStatus round() {
|
||||
this.glucose = Round.roundTo(this.glucose, 0.1);
|
||||
this.delta = Round.roundTo(this.delta, 0.01);
|
||||
this.avgdelta = Round.roundTo(this.avgdelta, 0.01);
|
||||
this.short_avgdelta = Round.roundTo(this.short_avgdelta, 0.01);
|
||||
this.long_avgdelta = Round.roundTo(this.long_avgdelta, 0.01);
|
||||
return this;
|
||||
}
|
||||
|
||||
|
||||
@Nullable
|
||||
public static GlucoseStatus getGlucoseStatusData() {
|
||||
return getGlucoseStatusData(false);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static GlucoseStatus getGlucoseStatusData(boolean allowOldData) {
|
||||
// load 45min
|
||||
//long fromtime = DateUtil.now() - 60 * 1000L * 45;
|
||||
//List<BgReading> data = MainApp.getDbHelper().getBgreadingsDataFromTime(fromtime, false);
|
||||
|
||||
synchronized (IobCobCalculatorPlugin.getPlugin().getDataLock()) {
|
||||
|
||||
List<BgReading> data = IobCobCalculatorPlugin.getPlugin().getBgReadings();
|
||||
|
||||
if (data == null) {
|
||||
if (L.isEnabled(L.GLUCOSE))
|
||||
log.debug("data=null");
|
||||
return null;
|
||||
}
|
||||
|
||||
int sizeRecords = data.size();
|
||||
if (sizeRecords == 0) {
|
||||
if (L.isEnabled(L.GLUCOSE))
|
||||
log.debug("sizeRecords==0");
|
||||
return null;
|
||||
}
|
||||
|
||||
if (data.get(0).date < DateUtil.now() - 7 * 60 * 1000L && !allowOldData) {
|
||||
if (L.isEnabled(L.GLUCOSE))
|
||||
log.debug("olddata");
|
||||
return null;
|
||||
}
|
||||
|
||||
BgReading now = data.get(0);
|
||||
long now_date = now.date;
|
||||
double change;
|
||||
|
||||
if (sizeRecords == 1) {
|
||||
GlucoseStatus status = new GlucoseStatus();
|
||||
status.glucose = now.value;
|
||||
status.short_avgdelta = 0d;
|
||||
status.delta = 0d;
|
||||
status.long_avgdelta = 0d;
|
||||
status.avgdelta = 0d; // for OpenAPS MA
|
||||
status.date = now_date;
|
||||
if (L.isEnabled(L.GLUCOSE))
|
||||
log.debug("sizeRecords==1");
|
||||
return status.round();
|
||||
}
|
||||
|
||||
ArrayList<Double> now_value_list = new ArrayList<>();
|
||||
ArrayList<Double> last_deltas = new ArrayList<>();
|
||||
ArrayList<Double> short_deltas = new ArrayList<>();
|
||||
ArrayList<Double> long_deltas = new ArrayList<>();
|
||||
|
||||
// Use the latest sgv value in the now calculations
|
||||
now_value_list.add(now.value);
|
||||
|
||||
for (int i = 1; i < sizeRecords; i++) {
|
||||
if (data.get(i).value > 38) {
|
||||
BgReading then = data.get(i);
|
||||
long then_date = then.date;
|
||||
double avgdelta;
|
||||
long minutesago;
|
||||
|
||||
minutesago = Math.round((now_date - then_date) / (1000d * 60));
|
||||
// multiply by 5 to get the same units as delta, i.e. mg/dL/5m
|
||||
change = now.value - then.value;
|
||||
avgdelta = change / minutesago * 5;
|
||||
|
||||
if (L.isEnabled(L.GLUCOSE))
|
||||
log.debug(then.toString() + " minutesago=" + minutesago + " avgdelta=" + avgdelta);
|
||||
|
||||
// use the average of all data points in the last 2.5m for all further "now" calculations
|
||||
if (0 < minutesago && minutesago < 2.5) {
|
||||
// Keep and average all values within the last 2.5 minutes
|
||||
now_value_list.add(then.value);
|
||||
now.value = average(now_value_list);
|
||||
// short_deltas are calculated from everything ~5-15 minutes ago
|
||||
} else if (2.5 < minutesago && minutesago < 17.5) {
|
||||
//console.error(minutesago, avgdelta);
|
||||
short_deltas.add(avgdelta);
|
||||
// last_deltas are calculated from everything ~5 minutes ago
|
||||
if (2.5 < minutesago && minutesago < 7.5) {
|
||||
last_deltas.add(avgdelta);
|
||||
}
|
||||
// long_deltas are calculated from everything ~20-40 minutes ago
|
||||
} else if (17.5 < minutesago && minutesago < 42.5) {
|
||||
long_deltas.add(avgdelta);
|
||||
} else {
|
||||
// Do not process any more records after >= 42.5 minutes
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
GlucoseStatus status = new GlucoseStatus();
|
||||
status.glucose = now.value;
|
||||
status.date = now_date;
|
||||
|
||||
status.short_avgdelta = average(short_deltas);
|
||||
|
||||
if (last_deltas.isEmpty()) {
|
||||
status.delta = status.short_avgdelta;
|
||||
} else {
|
||||
status.delta = average(last_deltas);
|
||||
}
|
||||
|
||||
status.long_avgdelta = average(long_deltas);
|
||||
status.avgdelta = status.short_avgdelta; // for OpenAPS MA
|
||||
|
||||
if (L.isEnabled(L.GLUCOSE))
|
||||
log.debug(status.log());
|
||||
return status.round();
|
||||
}
|
||||
}
|
||||
|
||||
public static double average(ArrayList<Double> array) {
|
||||
double sum = 0d;
|
||||
|
||||
if (array.size() == 0)
|
||||
return 0d;
|
||||
|
||||
for (Double value : array) {
|
||||
sum += value;
|
||||
}
|
||||
return sum / array.size();
|
||||
}
|
||||
}
|
|
@ -65,7 +65,7 @@ public class IobCobCalculatorPlugin extends PluginBase {
|
|||
private volatile List<BgReading> bgReadings = null; // newest at index 0
|
||||
private volatile List<BgReading> bucketed_data = null;
|
||||
|
||||
final Object dataLock = new Object();
|
||||
private final Object dataLock = new Object();
|
||||
|
||||
boolean stopCalculationTrigger = false;
|
||||
private Thread thread = null;
|
||||
|
@ -108,6 +108,10 @@ public class IobCobCalculatorPlugin extends PluginBase {
|
|||
return bucketed_data;
|
||||
}
|
||||
|
||||
public Object getDataLock() {
|
||||
return dataLock;
|
||||
}
|
||||
|
||||
// roundup to whole minute
|
||||
public static long roundUpTime(long time) {
|
||||
if (time % 60000 == 0)
|
||||
|
|
|
@ -96,7 +96,7 @@ public class IobCobOref1Thread extends Thread {
|
|||
|
||||
long oldestTimeWithData = iobCobCalculatorPlugin.calculateDetectionStart(end, limitDataToOldestAvailable);
|
||||
|
||||
synchronized (iobCobCalculatorPlugin.dataLock) {
|
||||
synchronized (iobCobCalculatorPlugin.getDataLock()) {
|
||||
if (bgDataReload) {
|
||||
iobCobCalculatorPlugin.loadBgData(end);
|
||||
iobCobCalculatorPlugin.createBucketedData();
|
||||
|
|
|
@ -95,7 +95,7 @@ public class IobCobThread extends Thread {
|
|||
|
||||
long oldestTimeWithData = iobCobCalculatorPlugin.calculateDetectionStart(end, limitDataToOldestAvailable);
|
||||
|
||||
synchronized (iobCobCalculatorPlugin.dataLock) {
|
||||
synchronized (iobCobCalculatorPlugin.getDataLock()) {
|
||||
if (bgDataReload) {
|
||||
iobCobCalculatorPlugin.loadBgData(end);
|
||||
iobCobCalculatorPlugin.createBucketedData();
|
||||
|
|
|
@ -75,8 +75,11 @@ public class AlarmSoundService extends Service {
|
|||
|
||||
@Override
|
||||
public void onDestroy() {
|
||||
player.stop();
|
||||
player.release();
|
||||
if (player != null) {
|
||||
player.stop();
|
||||
player.release();
|
||||
}
|
||||
|
||||
if (L.isEnabled(L.CORE))
|
||||
log.debug("onDestroy");
|
||||
}
|
||||
|
|
|
@ -3,7 +3,7 @@ package info.nightscout.androidaps.utils;
|
|||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import info.nightscout.androidaps.data.GlucoseStatus;
|
||||
import info.nightscout.androidaps.plugins.iob.iobCobCalculator.GlucoseStatus;
|
||||
import info.nightscout.androidaps.data.IobTotal;
|
||||
import info.nightscout.androidaps.data.Profile;
|
||||
import info.nightscout.androidaps.db.TempTarget;
|
||||
|
|
|
@ -1,100 +0,0 @@
|
|||
package info.nightscout.androidaps.utils;
|
||||
|
||||
import android.net.ConnectivityManager;
|
||||
import android.net.NetworkInfo;
|
||||
|
||||
import org.apache.http.HttpResponse;
|
||||
import org.apache.http.client.HttpClient;
|
||||
import org.apache.http.client.methods.HttpGet;
|
||||
import org.apache.http.impl.client.DefaultHttpClient;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.InputStreamReader;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import info.nightscout.androidaps.BuildConfig;
|
||||
import info.nightscout.androidaps.MainApp;
|
||||
import info.nightscout.androidaps.R;
|
||||
import info.nightscout.androidaps.logging.L;
|
||||
import info.nightscout.androidaps.plugins.general.overview.events.EventNewNotification;
|
||||
import info.nightscout.androidaps.plugins.general.overview.notifications.Notification;
|
||||
|
||||
import static android.content.Context.CONNECTIVITY_SERVICE;
|
||||
|
||||
public class VersionChecker {
|
||||
private static Logger log = LoggerFactory.getLogger(L.CORE);
|
||||
|
||||
public static void check() {
|
||||
if (isConnected())
|
||||
new Thread(() -> {
|
||||
HttpClient client = new DefaultHttpClient();
|
||||
HttpGet request = new HttpGet("https://raw.githubusercontent.com/MilosKozak/AndroidAPS/master/app/build.gradle");
|
||||
HttpResponse response;
|
||||
|
||||
try {
|
||||
response = client.execute(request);
|
||||
InputStream inputStream = response.getEntity().getContent();
|
||||
|
||||
if (inputStream != null) {
|
||||
String result = findLine(inputStream);
|
||||
if (result != null) {
|
||||
int compare = result.compareTo(BuildConfig.VERSION_NAME.replace("\"", ""));
|
||||
if (compare == 0) {
|
||||
log.debug("Version equal to master");
|
||||
return;
|
||||
} else if (compare > 0) {
|
||||
log.debug("Version outdated. Found " + result);
|
||||
Notification notification = new Notification(Notification.NEWVERSIONDETECTED, String.format(MainApp.gs(R.string.versionavailable), result), Notification.LOW);
|
||||
MainApp.bus().post(new EventNewNotification(notification));
|
||||
return;
|
||||
} else {
|
||||
log.debug("Version newer than master. Are you developer?");
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
log.debug("Github master version not found");
|
||||
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
log.debug("Github master version check error");
|
||||
}
|
||||
}).start();
|
||||
else
|
||||
log.debug("Github master version no checked. No connectivity");
|
||||
}
|
||||
|
||||
// convert inputstream to String
|
||||
private static String findLine(InputStream inputStream) throws IOException {
|
||||
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
|
||||
String line;
|
||||
String regex = "(.*)version(.*)\"(((\\d+)\\.)+(\\d+))\"(.*)";
|
||||
Pattern p = Pattern.compile(regex);
|
||||
|
||||
while ((line = bufferedReader.readLine()) != null) {
|
||||
Matcher m = p.matcher(line);
|
||||
if (m.matches()) {
|
||||
log.debug("+++ " + line);
|
||||
return m.group(3);
|
||||
} else {
|
||||
log.debug("--- " + line);
|
||||
}
|
||||
}
|
||||
inputStream.close();
|
||||
return null;
|
||||
}
|
||||
|
||||
// check network connection
|
||||
public static boolean isConnected() {
|
||||
ConnectivityManager connMgr = (ConnectivityManager) MainApp.instance().getApplicationContext().getSystemService(CONNECTIVITY_SERVICE);
|
||||
NetworkInfo networkInfo = connMgr.getActiveNetworkInfo();
|
||||
return networkInfo != null && networkInfo.isConnected();
|
||||
}
|
||||
|
||||
}
|
|
@ -147,8 +147,6 @@
|
|||
<string name="constraints_violation">Beperkings skending</string>
|
||||
<string name="treatmentdeliveryerror">Bolus aflewering fout</string>
|
||||
<string name="tempbasaldeliveryerror">Tempbasal aflewering fout</string>
|
||||
<string name="overview_newtempbasal_basalpercent">Basale waarde [%]</string>
|
||||
<string name="overview_newtempbasal_percent_label">% (100% =huidig)</string>
|
||||
<string name="setbasalquestion">Aanvaar nuwe tydelike basale:</string>
|
||||
<string name="overview_treatment_label">Behandeling</string>
|
||||
<string name="overview_calculator_label">Rekenaar</string>
|
||||
|
@ -248,7 +246,6 @@
|
|||
<string name="danar_iob_label">Pomp IAB</string>
|
||||
<string name="danar_dailyunits">Daaglikse eenhede</string>
|
||||
<string name="pump_lastbolus_label">Laaste bolus</string>
|
||||
<string name="hoursago">%.1fh gelede</string>
|
||||
<string name="danar_invalidinput">Ongeldige invoer</string>
|
||||
<string name="danar_valuenotsetproperly">Waarde nie behoorlik gestel</string>
|
||||
<string name="reloadprofile">Herlaai profiel</string>
|
||||
|
@ -528,7 +525,6 @@
|
|||
<string name="resistantadult">Insulien weerstandige volwasse</string>
|
||||
<string name="patientage_summary">Kies asseblief pasiënt ouderdom om veiligheids limiete te stel</string>
|
||||
<string name="Glimp">Glimp</string>
|
||||
<string name="needwhitelisting">%s benodig battery optimisering whitelisting vir behoorlike prestasie</string>
|
||||
<string name="loopsuspended">Lus opgeskort</string>
|
||||
<string name="loopsuspendedfor">Opgeskort (%1$d m)</string>
|
||||
<string name="loopsuperbolusfor">Superbolus (%1$d m)</string>
|
||||
|
@ -564,8 +560,6 @@
|
|||
<string name="show_statuslights_summary">Wys status vlae vir cage, iage, sage, stoor en battery vlak op tuisskerm.</string>
|
||||
<string name="statuslights_res_warning">Drempel waarskuwings stoor vlak [U]</string>
|
||||
<string name="statuslights_res_critical">Drempel kritieke stoor vlak [U]</string>
|
||||
<string name="statuslights_bat_warning">Drempel waarskuwing battery vlak [%]</string>
|
||||
<string name="statuslights_bat_critical">Drempel kritieke battery vlak [%]</string>
|
||||
<string name="iob">IAB</string>
|
||||
<string name="cob">KOB</string>
|
||||
<string name="virtualpump_firmware_label">Firmware</string>
|
||||
|
@ -764,7 +758,6 @@
|
|||
<string name="combo_pump_state_running">Loop tans</string>
|
||||
<string name="combo_pump_action_cancelling_tbr">Kanselleer TBR</string>
|
||||
<string name="combo_pump_action_setting_tbr">Stel TBR (%1$d%% / %2$d min)</string>
|
||||
<string name="combo_pump_action_bolusing">Bolusing (%.1f U)</string>
|
||||
<string name="combo_pump_action_refreshing">Verfris</string>
|
||||
<string name="combo_pump_unsupported_operation">Versoekte bewerking nie ondersteun deur pomp</string>
|
||||
<string name="combo_low_suspend_forced_notification">Onveilige gebruik: uitgebreide of multigolf boluses is aktief. Lus modus is gestel om laag te opskort net 6 ure. Net gewone boluses is ondersteun in lus modus</string>
|
||||
|
|
|
@ -147,8 +147,8 @@
|
|||
<string name="constraints_violation">Нарушено ограничение</string>
|
||||
<string name="treatmentdeliveryerror">Грешка при подаване на болус</string>
|
||||
<string name="tempbasaldeliveryerror">Грешка при подаване на временен базал</string>
|
||||
<string name="overview_newtempbasal_basalpercent">Стойност на базал [%]</string>
|
||||
<string name="overview_newtempbasal_percent_label">% (100% = текущ)</string>
|
||||
<string name="overview_newtempbasal_basalpercent">Базална стойност [%%]</string>
|
||||
<string name="overview_newtempbasal_percent_label">%% (100%% = текущ)</string>
|
||||
<string name="setbasalquestion">Приложи нов временен базал:</string>
|
||||
<string name="overview_treatment_label">Болус</string>
|
||||
<string name="overview_calculator_label">Калкулатор</string>
|
||||
|
@ -248,7 +248,7 @@
|
|||
<string name="danar_iob_label">IOB на помпата</string>
|
||||
<string name="danar_dailyunits">Инсулин за деня</string>
|
||||
<string name="pump_lastbolus_label">Последен болус:</string>
|
||||
<string name="hoursago">преди %.1fч</string>
|
||||
<string name="hoursago">преди %1$.1fч</string>
|
||||
<string name="danar_invalidinput">Грешни входящи данни</string>
|
||||
<string name="danar_valuenotsetproperly">Неправилна стойност</string>
|
||||
<string name="reloadprofile">Презареди профил</string>
|
||||
|
@ -528,7 +528,7 @@
|
|||
<string name="resistantadult">Възрастни с голяма инсулинова резистентност</string>
|
||||
<string name="patientage_summary">Изберете възраст за определяне лимитите на безопасност</string>
|
||||
<string name="Glimp">Glimp</string>
|
||||
<string name="needwhitelisting">%s се нуждае от зключване на оптимизиране на батерията за пълна функционалност</string>
|
||||
<string name="needwhitelisting">%1$s се нуждае от изключване от списъка за оптимизиране на батерията за пълна функционалност</string>
|
||||
<string name="loopsuspended">Loop изключен</string>
|
||||
<string name="loopsuspendedfor">Изключен (%1$d мин)</string>
|
||||
<string name="loopsuperbolusfor">Суперболус (%1$d мин)</string>
|
||||
|
@ -564,8 +564,8 @@
|
|||
<string name="show_statuslights_summary">Покажи статус светлини за канула, инсулин, сензор, резервоар и батерията на началния екран.</string>
|
||||
<string name="statuslights_res_warning">Ниво за аларма за останал инсулин в резервоара [Е]</string>
|
||||
<string name="statuslights_res_critical">Критично ниво на останал инсулин в резервоар [Е]</string>
|
||||
<string name="statuslights_bat_warning">Аларма за заряд на батерия [%]</string>
|
||||
<string name="statuslights_bat_critical">Критично ниво на батерията под [%]</string>
|
||||
<string name="statuslights_bat_warning">Ниско ниво на батерията под [%%]</string>
|
||||
<string name="statuslights_bat_critical">Критично ниво на батерията под [%%]</string>
|
||||
<string name="iob">IOB</string>
|
||||
<string name="cob">СОВ</string>
|
||||
<string name="virtualpump_firmware_label">Фърмуер</string>
|
||||
|
@ -764,7 +764,7 @@
|
|||
<string name="combo_pump_state_running">Изпълнява</string>
|
||||
<string name="combo_pump_action_cancelling_tbr">Отказва временен базал</string>
|
||||
<string name="combo_pump_action_setting_tbr">Задава временен базал (%1$d%% / %2$d min)</string>
|
||||
<string name="combo_pump_action_bolusing">Болус (%.1f U)</string>
|
||||
<string name="combo_pump_action_bolusing">Болус (%1$.1f Е)</string>
|
||||
<string name="combo_pump_action_refreshing">Обновява</string>
|
||||
<string name="combo_pump_unsupported_operation">Исканата операция не се поддържа от помпата</string>
|
||||
<string name="combo_low_suspend_forced_notification">Опасно използване: удължени или многовълнови болуси са активни. Помпата е изключена за само 6 часа. Само нормални болуси се поддържат.</string>
|
||||
|
@ -1156,6 +1156,10 @@
|
|||
<string name="sms_wrongcode">Грешен код. Командата не е изпълнена.</string>
|
||||
<string name="notconfigured">Не е конфигуриран</string>
|
||||
<string name="profileswitchcreated">Създаден запис - Промяна на профил</string>
|
||||
<string name="versionChecker">Проверка на версията</string>
|
||||
<string name="old_version">стара версия</string>
|
||||
<string name="very_old_version">много стара версия</string>
|
||||
<string name="new_version_warning">Има нова версия от най-малко %1$d дни! Връщане към LGS след 60 дни, цикълът ще бъде изключен след 90 дни</string>
|
||||
<plurals name="objective_days">
|
||||
<item quantity="one">%1$d дeн</item>
|
||||
<item quantity="other">%1$d дни</item>
|
||||
|
|
|
@ -147,8 +147,8 @@
|
|||
<string name="constraints_violation">Mimo povolený rozsah</string>
|
||||
<string name="treatmentdeliveryerror">Chyba podání bolusu</string>
|
||||
<string name="tempbasaldeliveryerror">Chyba nastavování dočasného bazálu</string>
|
||||
<string name="overview_newtempbasal_basalpercent">Hodnota bazálu [%]</string>
|
||||
<string name="overview_newtempbasal_percent_label">% (100% = současný)</string>
|
||||
<string name="overview_newtempbasal_basalpercent">Hodnota bazálu [%%]</string>
|
||||
<string name="overview_newtempbasal_percent_label">%% (100%% = současný)</string>
|
||||
<string name="setbasalquestion">Spustit nový dočasný bazál:</string>
|
||||
<string name="overview_treatment_label">Bolus</string>
|
||||
<string name="overview_calculator_label">Kalkulačka</string>
|
||||
|
@ -248,7 +248,7 @@
|
|||
<string name="danar_iob_label">IOB z pumpy</string>
|
||||
<string name="danar_dailyunits">Jednotek za den</string>
|
||||
<string name="pump_lastbolus_label">Poslední bolus</string>
|
||||
<string name="hoursago">před %.1fh</string>
|
||||
<string name="hoursago">před %1$.1fh</string>
|
||||
<string name="danar_invalidinput">Chybná vstupní data</string>
|
||||
<string name="danar_valuenotsetproperly">Hodnota nenastavena správně</string>
|
||||
<string name="reloadprofile">Obnovit profil</string>
|
||||
|
@ -528,7 +528,7 @@
|
|||
<string name="resistantadult">Dospělý s nízkou citlivostí</string>
|
||||
<string name="patientage_summary">Vyberte věk pacienta pro nastavení bezpečnostních limitů</string>
|
||||
<string name="Glimp">Glimp</string>
|
||||
<string name="needwhitelisting">%s potřebuje vypnout optimalizace baterie pro optimální výkon</string>
|
||||
<string name="needwhitelisting">%1$s potřebuje vypnout optimalizace baterie pro optimální výkon</string>
|
||||
<string name="loopsuspended">Smyčka pozastavena</string>
|
||||
<string name="loopsuspendedfor">Pozastaveno (%1$d min)</string>
|
||||
<string name="loopsuperbolusfor">Superbolus (%1$d m)</string>
|
||||
|
@ -564,8 +564,8 @@
|
|||
<string name="show_statuslights_summary">Povolte stavové indikátory pro stáří kanyly, inzulínu, senzoru, zásobníku a baterie na domovské obrazovce.</string>
|
||||
<string name="statuslights_res_warning">Úroveň varování stavu zásobníku [U]</string>
|
||||
<string name="statuslights_res_critical">Úroveň kritického varování stavu zásobníku [U]</string>
|
||||
<string name="statuslights_bat_warning">Úroveň varování stavu baterie [%]</string>
|
||||
<string name="statuslights_bat_critical">Úroveň kritického varování stavu baterie [%]</string>
|
||||
<string name="statuslights_bat_warning">Úroveň varování stavu baterie [%%]</string>
|
||||
<string name="statuslights_bat_critical">Úroveň kritického varování stavu baterie [%%]</string>
|
||||
<string name="iob">IOB</string>
|
||||
<string name="cob">COB</string>
|
||||
<string name="virtualpump_firmware_label">Firmware</string>
|
||||
|
@ -764,7 +764,7 @@
|
|||
<string name="combo_pump_state_running">Běží</string>
|
||||
<string name="combo_pump_action_cancelling_tbr">Rušení dočasného bazálu</string>
|
||||
<string name="combo_pump_action_setting_tbr">Nastavování doč. bazálu (%1$d%% / %2$d min)</string>
|
||||
<string name="combo_pump_action_bolusing">Bolus (%.1f U)</string>
|
||||
<string name="combo_pump_action_bolusing">Bolus (%1$.1f U)</string>
|
||||
<string name="combo_pump_action_refreshing">Obnovování</string>
|
||||
<string name="combo_pump_unsupported_operation">Požadovaná operace není pumpou podporována</string>
|
||||
<string name="combo_low_suspend_forced_notification">Nebezpečné použití: extended nebo multiwave bolus je aktivní. Pumpa byla vypnuta jen na 6 hodin. Povolené jsou pouze normální bolusy.</string>
|
||||
|
@ -1156,6 +1156,10 @@
|
|||
<string name="sms_wrongcode">Nesprávný kód. Příkaz zrušen.</string>
|
||||
<string name="notconfigured">Není nakonfigurováno</string>
|
||||
<string name="profileswitchcreated">Přepnutí profilu vytvořeno</string>
|
||||
<string name="versionChecker">Kontrola verze</string>
|
||||
<string name="old_version">stará verze</string>
|
||||
<string name="very_old_version">velmi stará verze</string>
|
||||
<string name="new_version_warning">Nová verze je dostupná minimálně %1$d dní! Přepnutí na ochranu před nízkou glykémií po 60 dnech, vypnutí smyčky po 90 dnech</string>
|
||||
<plurals name="objective_days">
|
||||
<item quantity="one">%1$d den</item>
|
||||
<item quantity="few">%1$d dnů</item>
|
||||
|
|
|
@ -147,8 +147,8 @@
|
|||
<string name="constraints_violation">Beschränkungen wurden verletzt oder Limit erreicht.</string>
|
||||
<string name="treatmentdeliveryerror">Bolus-Abgabefehler</string>
|
||||
<string name="tempbasaldeliveryerror">TBR Abgabe-Fehler</string>
|
||||
<string name="overview_newtempbasal_basalpercent">Basal-Wert [%]</string>
|
||||
<string name="overview_newtempbasal_percent_label">% (100% = aktuell)</string>
|
||||
<string name="overview_newtempbasal_basalpercent">Basal-Wert [%%]</string>
|
||||
<string name="overview_newtempbasal_percent_label">%% (100%% = aktuell)</string>
|
||||
<string name="setbasalquestion">Akzeptiere neue TBR:</string>
|
||||
<string name="overview_treatment_label">Bolus</string>
|
||||
<string name="overview_calculator_label">Rechner</string>
|
||||
|
@ -248,7 +248,7 @@
|
|||
<string name="danar_iob_label">Pumpen-IOB</string>
|
||||
<string name="danar_dailyunits">Tägliche Einheiten</string>
|
||||
<string name="pump_lastbolus_label">Letzter Bolus:</string>
|
||||
<string name="hoursago">vor %.1f h</string>
|
||||
<string name="hoursago">vor %1$.1f Stunde</string>
|
||||
<string name="danar_invalidinput">Ungültige Eingabedaten</string>
|
||||
<string name="danar_valuenotsetproperly">Wert nicht korrekt gesetzt</string>
|
||||
<string name="reloadprofile">Profil neuladen</string>
|
||||
|
@ -529,7 +529,7 @@ maxIOB = durchschnittlicher Essensbolus + 3 x maximale Basalrate</string>
|
|||
<string name="resistantadult">Insulinresistenter Erwachsener</string>
|
||||
<string name="patientage_summary">Bitte wähle das Patientenalter, um die Sicherheits-Limits festzulegen</string>
|
||||
<string name="Glimp">Glimp</string>
|
||||
<string name="needwhitelisting">%s benötigt eine deaktivierte Akku-Leistungsoptimierung, um korrekt arbeiten zu können.</string>
|
||||
<string name="needwhitelisting">%1$s benötigt eine deaktivierte Akku-Leistungsoptimierung, um korrekt arbeiten zu können.</string>
|
||||
<string name="loopsuspended">Loop pausiert</string>
|
||||
<string name="loopsuspendedfor">Pausiert (%1$d min)</string>
|
||||
<string name="loopsuperbolusfor">Superbolus (%1$d m)</string>
|
||||
|
@ -565,8 +565,8 @@ maxIOB = durchschnittlicher Essensbolus + 3 x maximale Basalrate</string>
|
|||
<string name="show_statuslights_summary">Statusanzeige für CAGE, IAGE, SAGE, Reservoir- und Batteriestand auf dem Homescreen.</string>
|
||||
<string name="statuslights_res_warning">Warnschwelle Reservoirstand [IE]</string>
|
||||
<string name="statuslights_res_critical">Warnschwelle kritischer Reservoirstand [IE]</string>
|
||||
<string name="statuslights_bat_warning">Warnschwelle Batteriestand [%]</string>
|
||||
<string name="statuslights_bat_critical">Warnschwelle kritischer Batteriestand [%]</string>
|
||||
<string name="statuslights_bat_warning">Warnschwelle Batteriestand [%%]</string>
|
||||
<string name="statuslights_bat_critical">Warnschwelle kritischer Batteriestand [%%]</string>
|
||||
<string name="iob">IOB</string>
|
||||
<string name="cob">COB</string>
|
||||
<string name="virtualpump_firmware_label">Firmware</string>
|
||||
|
@ -1158,6 +1158,10 @@ Unerwartetes Verhalten.</string>
|
|||
<string name="sms_wrongcode">Falscher Code. Befehl wurde abgebrochen.</string>
|
||||
<string name="notconfigured">Nicht konfiguriert</string>
|
||||
<string name="profileswitchcreated">Profilwechsel wurde erstellt</string>
|
||||
<string name="versionChecker">Versionsprüfer</string>
|
||||
<string name="old_version">Vorherige Version</string>
|
||||
<string name="very_old_version">sehr alte Version</string>
|
||||
<string name="new_version_warning">Neue Version für mindestens %1$d Tage verfügbar! Rückfall zur sensorunterstützten Pumpentherapie nach 60 Tagen, Loop wird nach 90 Tagen deaktiviert</string>
|
||||
<plurals name="objective_days">
|
||||
<item quantity="one">%1$d Tag</item>
|
||||
<item quantity="other">%1$d Tage</item>
|
||||
|
|
|
@ -147,8 +147,8 @@
|
|||
<string name="constraints_violation">Παραβίαση Περιορισμών</string>
|
||||
<string name="treatmentdeliveryerror">Σφάλμα παράδοσης Bolus</string>
|
||||
<string name="tempbasaldeliveryerror">Σφάλμα παράδοσης Προσ Ρυθμού</string>
|
||||
<string name="overview_newtempbasal_basalpercent">Τιμή Βασικού [%]</string>
|
||||
<string name="overview_newtempbasal_percent_label">% (100% = τρέχων)</string>
|
||||
<string name="overview_newtempbasal_basalpercent">Τιμή Βασικού [%%]</string>
|
||||
<string name="overview_newtempbasal_percent_label">%% (100%% = τρέχων)</string>
|
||||
<string name="setbasalquestion">Αποδοχή νέου Προσ Ρυθμού:</string>
|
||||
<string name="overview_treatment_label">Θεραπεία</string>
|
||||
<string name="overview_calculator_label">Υπολογιστής</string>
|
||||
|
@ -248,7 +248,7 @@
|
|||
<string name="danar_iob_label">IOB αντλίας</string>
|
||||
<string name="danar_dailyunits">Μονάδες ανά ημέρα </string>
|
||||
<string name="pump_lastbolus_label">Τελευταίο Bolus:</string>
|
||||
<string name="hoursago">πριν από %.1fh</string>
|
||||
<string name="hoursago">%1$.1fώρες πριν</string>
|
||||
<string name="danar_invalidinput">Μη έγκυρα δεδομένα</string>
|
||||
<string name="danar_valuenotsetproperly">Η τιμή δεν μπήκε σωστά</string>
|
||||
<string name="reloadprofile">Ξαναφορτώστε το προφίλ</string>
|
||||
|
@ -528,7 +528,7 @@
|
|||
<string name="resistantadult">Αντίσταση ινσουλίνης ενηλίκων</string>
|
||||
<string name="patientage_summary">Παρακαλώ επιλέξτε ηλικία χρήστη για να ορισθούν όρια ασφαλείας</string>
|
||||
<string name="Glimp">Glimp</string>
|
||||
<string name="needwhitelisting">Το %s πρέπει να απενεργοποιήσει τη βελτιστοποίηση της μπαταρίας για βέλτιστη απόδοση</string>
|
||||
<string name="needwhitelisting">%1$s χρειάζεται λίστα βελτιστοποίησης μπαταρίας για σωστή απόδοση</string>
|
||||
<string name="loopsuspended">Κύκλωμα σε αναστολή</string>
|
||||
<string name="loopsuspendedfor">Αναστολή (%1$d m)</string>
|
||||
<string name="loopsuperbolusfor">Superbolus (%1$d m)</string>
|
||||
|
@ -564,8 +564,8 @@
|
|||
<string name="show_statuslights_summary">Ενεργοποίηση του φωτισμού κατάστασης για cage, iage, sage, reservoir και επίπεδο μπεταρίας στην αρχική οθόνη.</string>
|
||||
<string name="statuslights_res_warning">Όριο προειδοποίησης χαμηλής αμπούλας [U]</string>
|
||||
<string name="statuslights_res_critical">Όριο προειδοποίησης πολύ χαμηλής αμπούλας [U]</string>
|
||||
<string name="statuslights_bat_warning">Όριο προειδοποίησης χαμηλής μπαταρίας [%]</string>
|
||||
<string name="statuslights_bat_critical">Όριο προειδοποίησης πολύ χαμηλής μπαταρίας [%]</string>
|
||||
<string name="statuslights_bat_warning">Όριο προειδοποίησης χαμηλής μπαταρίας [%%]</string>
|
||||
<string name="statuslights_bat_critical">Όριο προειδοποίησης πολύ χαμηλής μπαταρίας [%%]</string>
|
||||
<string name="iob">IOB</string>
|
||||
<string name="cob">COB</string>
|
||||
<string name="virtualpump_firmware_label">Έκδοση</string>
|
||||
|
@ -764,7 +764,7 @@
|
|||
<string name="combo_pump_state_running">Εκτελείτε</string>
|
||||
<string name="combo_pump_action_cancelling_tbr">Ακυρώνεται TBR</string>
|
||||
<string name="combo_pump_action_setting_tbr">Ρύθμιση TBR (%1$d%% / %2$d λεπτά)</string>
|
||||
<string name="combo_pump_action_bolusing">Bolus (%.1f U)</string>
|
||||
<string name="combo_pump_action_bolusing">Bolus (%1$.1f U)</string>
|
||||
<string name="combo_pump_action_refreshing">Ανανέωση</string>
|
||||
<string name="combo_pump_unsupported_operation">Η λειτουργία που ζητήθηκε δεν υποστηρίζεται από την αντλία</string>
|
||||
<string name="combo_low_suspend_forced_notification">Επικίνδυνη χρήση: Εκτεταμένο ή πολλαπλά bolus είναι ενεργό. Το κύκλωμα απενεργοποιήθηκε λόγω low-suspend μόνο για 6 ώρες. Επιτρέπονται μόνο κανονικά bolus</string>
|
||||
|
@ -1156,6 +1156,10 @@
|
|||
<string name="sms_wrongcode">Λάθος κωδικός. Η εντολή ακυρώθηκε.</string>
|
||||
<string name="notconfigured">Δεν έχει ρυθμιστεί</string>
|
||||
<string name="profileswitchcreated">Δημιουργήθηκε αλλαγή προφίλ</string>
|
||||
<string name="versionChecker">Έλεγχος Έκδοσης</string>
|
||||
<string name="old_version">παλιά έκδοση</string>
|
||||
<string name="very_old_version">πολύ παλιά έκδοση</string>
|
||||
<string name="new_version_warning">Νέα έκδοση για τουλάχιστον %1$d ημέρες διαθέσιμη! Επιστροφή σε LGS μετά από 60 ημέρες, το κύκλωμα θα απενεργοποιηθεί μετά από 90 ημέρες</string>
|
||||
<plurals name="objective_days">
|
||||
<item quantity="one">%1$d ημέρα</item>
|
||||
<item quantity="other">%1$d ημέρες</item>
|
||||
|
|
|
@ -143,8 +143,6 @@
|
|||
<string name="constraints_violation">Violación restricciones</string>
|
||||
<string name="treatmentdeliveryerror">Error de administración del bolo</string>
|
||||
<string name="tempbasaldeliveryerror">Basal Temporal no emitida</string>
|
||||
<string name="overview_newtempbasal_basalpercent">Valor basal [%]</string>
|
||||
<string name="overview_newtempbasal_percent_label">% (100% = actual)</string>
|
||||
<string name="setbasalquestion">Aceptar nueva basal temporal:</string>
|
||||
<string name="overview_treatment_label">Tratamiento</string>
|
||||
<string name="overview_calculator_label">Calculadora</string>
|
||||
|
@ -244,7 +242,6 @@
|
|||
<string name="danar_iob_label">Bomba IOB</string>
|
||||
<string name="danar_dailyunits">Unidades diarias</string>
|
||||
<string name="pump_lastbolus_label">Último bolo</string>
|
||||
<string name="hoursago">Hace %.1fh</string>
|
||||
<string name="danar_invalidinput">Datos inválidos</string>
|
||||
<string name="danar_valuenotsetproperly">Valor no establecido correctamente</string>
|
||||
<string name="reloadprofile">Recargar Perfil</string>
|
||||
|
@ -503,7 +500,6 @@
|
|||
<string name="resistantadult">Adulto resistente a la insulina</string>
|
||||
<string name="patientage_summary">Por favor elige la edad del paciente para ajustar los límites de seguridad</string>
|
||||
<string name="Glimp">Glimp</string>
|
||||
<string name="needwhitelisting">%s necesita optimización de batería lista blanca para funcionar bien</string>
|
||||
<string name="loopsuspended">Loop desactivado</string>
|
||||
<string name="loopsuspendedfor">Desactivado (%1$d m)</string>
|
||||
<string name="loopsuperbolusfor">Superbolo (%1$d m)</string>
|
||||
|
@ -539,8 +535,6 @@
|
|||
<string name="show_statuslights_summary">Habilitar las luces de estado para tiempo de la canula, tiempo de la insulina, tiempo del sensor y nivel de bateria en la pantalla de inicio.</string>
|
||||
<string name="statuslights_res_warning">Umbral de advertencia de nivel de reservorio [U]</string>
|
||||
<string name="statuslights_res_critical">Umbral crítico de nivel de reservorio [U]</string>
|
||||
<string name="statuslights_bat_warning">Umbral de advertencia de nivel de pila [%]</string>
|
||||
<string name="statuslights_bat_critical">Umbral crítico de nivel de batería [%]</string>
|
||||
<string name="iob">IOB</string>
|
||||
<string name="cob">COB</string>
|
||||
<string name="virtualpump_firmware_label">Firmware</string>
|
||||
|
@ -734,7 +728,6 @@
|
|||
<string name="combo_pump_state_running">Funcionando</string>
|
||||
<string name="combo_pump_action_cancelling_tbr">Cancelando TBR</string>
|
||||
<string name="combo_pump_action_setting_tbr">Poniendo TBR (%1$d%% / %2$d min)</string>
|
||||
<string name="combo_pump_action_bolusing">Emitiendo bolo (%.1f U)</string>
|
||||
<string name="combo_pump_action_refreshing">Actualizando</string>
|
||||
<string name="combo_pump_unsupported_operation">Acción requerida no disponible por la bomba</string>
|
||||
<string name="combo_low_suspend_forced_notification">Uso inseguro: bolo extendido o multionda activo. El modo del lazo ha sido fijado a sólo suspensión en baja glucosa durante 6 horas. En modo lazo sólo se soportan los bolo estándar.</string>
|
||||
|
|
|
@ -147,8 +147,8 @@
|
|||
<string name="constraints_violation">Violation des restrictions</string>
|
||||
<string name="treatmentdeliveryerror">Erreur injection bolus</string>
|
||||
<string name="tempbasaldeliveryerror">Erreur injection basal temporaire</string>
|
||||
<string name="overview_newtempbasal_basalpercent">Valeur Basal [%]</string>
|
||||
<string name="overview_newtempbasal_percent_label">% (100% = actuel)</string>
|
||||
<string name="overview_newtempbasal_basalpercent">Valeur de Basal [%%]</string>
|
||||
<string name="overview_newtempbasal_percent_label">%% (100%% = actuel)</string>
|
||||
<string name="setbasalquestion">Accepter nouveau basal temporaire :</string>
|
||||
<string name="overview_treatment_label">Traitement</string>
|
||||
<string name="overview_calculator_label">Calculatrice</string>
|
||||
|
@ -249,7 +249,7 @@ L\'ENSEMBLE DES RISQUES LIÉS À LA QUALITÉ ET À LA PERFORMANCE DU PROGRAMME S
|
|||
<string name="danar_iob_label">Insuline Active pompe</string>
|
||||
<string name="danar_dailyunits">Unités journalières</string>
|
||||
<string name="pump_lastbolus_label">Dernier bolus</string>
|
||||
<string name="hoursago">%.1fh passées</string>
|
||||
<string name="hoursago">il y a %1$.1fh</string>
|
||||
<string name="danar_invalidinput">Données saisies invalides</string>
|
||||
<string name="danar_valuenotsetproperly">Valeur pas correctement définie</string>
|
||||
<string name="reloadprofile">Actualiser le profil</string>
|
||||
|
@ -529,7 +529,7 @@ L\'ENSEMBLE DES RISQUES LIÉS À LA QUALITÉ ET À LA PERFORMANCE DU PROGRAMME S
|
|||
<string name="resistantadult">Adulte résistant à l\'insuline</string>
|
||||
<string name="patientage_summary">Veuillez svp sélectionner l’âge du patient pour définir les limites de sécurité</string>
|
||||
<string name="Glimp">Glimp</string>
|
||||
<string name="needwhitelisting">%s a besoin de la liste blanche de l’optimisation batterie pour une bonne performance</string>
|
||||
<string name="needwhitelisting">%1$s a besoin d\'optimisation de la batterie (whitelisting) pour une performance correcte</string>
|
||||
<string name="loopsuspended">La Boucle est suspendue</string>
|
||||
<string name="loopsuspendedfor">Suspendu (%1$d m)</string>
|
||||
<string name="loopsuperbolusfor">Superbolus (%1$d m)</string>
|
||||
|
@ -565,8 +565,8 @@ L\'ENSEMBLE DES RISQUES LIÉS À LA QUALITÉ ET À LA PERFORMANCE DU PROGRAMME S
|
|||
<string name="show_statuslights_summary">Activer les lumières d\'état pour AgeC, AgeI, AgeS, niveaux du réservoir et de batterie sur l\'écran d\'accueil.</string>
|
||||
<string name="statuslights_res_warning">Seuil d\'avertissement de niveau du réservoir [U]</string>
|
||||
<string name="statuslights_res_critical">Seuil critique de niveau du réservoir [U]</string>
|
||||
<string name="statuslights_bat_warning">Seuil d’avertissement du niveau de batterie [%]</string>
|
||||
<string name="statuslights_bat_critical">Seuil critique du niveau de la batterie [%]</string>
|
||||
<string name="statuslights_bat_warning">Seuil d’avertissement du niveau de batterie [%%]</string>
|
||||
<string name="statuslights_bat_critical">Seuil critique du niveau de la batterie [%%]</string>
|
||||
<string name="iob">IA</string>
|
||||
<string name="cob">GA</string>
|
||||
<string name="virtualpump_firmware_label">Firmware</string>
|
||||
|
@ -765,7 +765,7 @@ L\'ENSEMBLE DES RISQUES LIÉS À LA QUALITÉ ET À LA PERFORMANCE DU PROGRAMME S
|
|||
<string name="combo_pump_state_running">En cours d\'exécution</string>
|
||||
<string name="combo_pump_action_cancelling_tbr">Annulation en cours du TBR</string>
|
||||
<string name="combo_pump_action_setting_tbr">Paramétrer TBR (%1$d%% / %2$d min) </string>
|
||||
<string name="combo_pump_action_bolusing">Injection du bolus en cours (%.1f U)</string>
|
||||
<string name="combo_pump_action_bolusing">Injection du Bolus en cours (%1$.1f U)</string>
|
||||
<string name="combo_pump_action_refreshing">Actualisation en cours</string>
|
||||
<string name="combo_pump_unsupported_operation">L\'opération demandée n\'est pas prise en charge par la pompe</string>
|
||||
<string name="combo_low_suspend_forced_notification">Utilisation dangereuse : les bolus étendus ou carrés sont actifs. Le mode Boucle a été programmé pour des suspensions seulement pour 6 heures. Uniquement les bolus normaux sont pris en charge par le mode Boucle</string>
|
||||
|
@ -1157,6 +1157,10 @@ L\'ENSEMBLE DES RISQUES LIÉS À LA QUALITÉ ET À LA PERFORMANCE DU PROGRAMME S
|
|||
<string name="sms_wrongcode">Code incorrect. Commande annulée.</string>
|
||||
<string name="notconfigured">Non configuré</string>
|
||||
<string name="profileswitchcreated">Changement de profil effectué</string>
|
||||
<string name="versionChecker">Vérificateur de version</string>
|
||||
<string name="old_version">ancienne version</string>
|
||||
<string name="very_old_version">très ancienne version</string>
|
||||
<string name="new_version_warning">Une nouvelle version est disponible depuis au moins %1$d jours ! Retour au traitement par pompe assistée par capteur (Arrêt par Glycémie Basse (AGB), Low Glucose Suspend (LGS) ) après 60 jours et la Boucle sera désactivée après 90 jours</string>
|
||||
<plurals name="objective_days">
|
||||
<item quantity="one">%1$d jour</item>
|
||||
<item quantity="other">%1$d jours</item>
|
||||
|
|
|
@ -143,8 +143,6 @@
|
|||
<string name="constraints_violation">Vincolo Violato</string>
|
||||
<string name="treatmentdeliveryerror">Errore di erogazione del bolo</string>
|
||||
<string name="tempbasaldeliveryerror">Errore di somministrazione basale temporale</string>
|
||||
<string name="overview_newtempbasal_basalpercent">Valore Basale [%]</string>
|
||||
<string name="overview_newtempbasal_percent_label">% (100% = corrente)</string>
|
||||
<string name="setbasalquestion">Accettare il nuovo basale temp</string>
|
||||
<string name="overview_treatment_label">Boli</string>
|
||||
<string name="overview_calculator_label">Calcolatore</string>
|
||||
|
@ -244,7 +242,6 @@
|
|||
<string name="danar_iob_label">IOB Microinfusore</string>
|
||||
<string name="danar_dailyunits">Unita\' giornaliera</string>
|
||||
<string name="pump_lastbolus_label">Ultimo Bolo</string>
|
||||
<string name="hoursago">%.1fh fa</string>
|
||||
<string name="danar_invalidinput">Data Errata</string>
|
||||
<string name="danar_valuenotsetproperly">Valore non impostato correttamente</string>
|
||||
<string name="reloadprofile">Aggiorna Profilo</string>
|
||||
|
@ -502,7 +499,6 @@
|
|||
<string name="resistantadult">Insulina resistente</string>
|
||||
<string name="patientage_summary">Si prega di selezionare l\'età paziente e di impostare i limiti di sicurezza</string>
|
||||
<string name="Glimp">Glimp</string>
|
||||
<string name="needwhitelisting">%s ha bisogno di whitelisting di ottimizzazione della batteria per un buon funzionamento</string>
|
||||
<string name="loopsuspended">Sospensione Loop</string>
|
||||
<string name="loopsuspendedfor">Sospendi (%1$d m)</string>
|
||||
<string name="loopsuperbolusfor">Superbolo (%1$d m)</string>
|
||||
|
@ -722,7 +718,6 @@
|
|||
<string name="combo_pump_state_running">In esecuzione</string>
|
||||
<string name="combo_pump_action_cancelling_tbr">Annullamento di TBR</string>
|
||||
<string name="combo_pump_action_setting_tbr">L\'impostazione di TBR (%1$d%% / %2$d min)</string>
|
||||
<string name="combo_pump_action_bolusing">Bolusing (%.1f U)</string>
|
||||
<string name="combo_pump_action_refreshing">Aggiornando</string>
|
||||
<string name="combo_pump_unsupported_operation">Richiesta operazione non supportata dal micro</string>
|
||||
<string name="combo_low_suspend_forced_notification">L\'utilizzo non sicuro: estesi o multiwave boli sono attivi. Modalità loop è stato impostato basso-sospendere solo 6 ore. Solo normali boli sono supportati in modalità loop</string>
|
||||
|
|
|
@ -143,8 +143,6 @@
|
|||
<string name="constraints_violation">제한 위반</string>
|
||||
<string name="treatmentdeliveryerror">Bolus 주입 에러</string>
|
||||
<string name="tempbasaldeliveryerror">임시Basal 주입 에러</string>
|
||||
<string name="overview_newtempbasal_basalpercent">Basal값[%]</string>
|
||||
<string name="overview_newtempbasal_percent_label">% (100% = 현재)</string>
|
||||
<string name="setbasalquestion">새 임시Basal 적용:</string>
|
||||
<string name="overview_treatment_label">관리</string>
|
||||
<string name="overview_calculator_label">계산기</string>
|
||||
|
@ -244,7 +242,6 @@
|
|||
<string name="danar_iob_label">펌프 IOB</string>
|
||||
<string name="danar_dailyunits">일 인슐린 총량</string>
|
||||
<string name="pump_lastbolus_label">최근 Bolus:</string>
|
||||
<string name="hoursago">%.1f시간 전</string>
|
||||
<string name="danar_invalidinput">사용할수 없는 입력 데이터</string>
|
||||
<string name="danar_valuenotsetproperly">값이 제대로 설정되지 않았습니다</string>
|
||||
<string name="reloadprofile">프로파일 새로고침</string>
|
||||
|
@ -502,7 +499,6 @@
|
|||
<string name="resistantadult">인슐린 저항성 높은 성인</string>
|
||||
<string name="patientage_summary">안전제한을 설정하기 위해 당뇨인의 나이를 선택하세요</string>
|
||||
<string name="Glimp">Glimp</string>
|
||||
<string name="needwhitelisting">최적의 성능을 위해 %s에서 배터리 최적화를 해제해야합니다.</string>
|
||||
<string name="loopsuspended">Loop 일시중지</string>
|
||||
<string name="loopsuspendedfor">일시중지중 (%d분)</string>
|
||||
<string name="loopsuperbolusfor">Superbolus (%1$d 분)</string>
|
||||
|
@ -722,7 +718,6 @@
|
|||
<string name="combo_pump_state_running">실행중</string>
|
||||
<string name="combo_pump_action_cancelling_tbr">임시기초주입 취소중</string>
|
||||
<string name="combo_pump_action_setting_tbr">임시기초주입 설정중 (%1$d%% / %2$d분)</string>
|
||||
<string name="combo_pump_action_bolusing">Bolus 주입중(%.1f U)</string>
|
||||
<string name="combo_pump_action_refreshing">새로고침중</string>
|
||||
<string name="combo_pump_unsupported_operation">요청하신 동작은 펌프에서 지원하지 않습니다.</string>
|
||||
<string name="combo_low_suspend_forced_notification">위험한 사용: 확장Bolus 혹은 멀티웨이브Bolus가 활성화 됩니다. Loop 모드가 저혈당 방지로 오직 6시간만 설정됩니다. Loop 모드에선 일반 Bolus만 지원합니다.</string>
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
<string name="danar_useextended_title">Naudoti ištęstinį bolusą >200%%</string>
|
||||
<string name="danar_bt_name_title">DanaR Bluetooth įrenginys</string>
|
||||
<string name="ns_sync_use_absolute_title">Visada naudoti bazės absoliučias vertes</string>
|
||||
<string name="alert_dialog_storage_permission_text">Prašome iš naujo paleisti telefoną arba sistemos nustatymuose iš naujo paleisti AndroidAPS \nkitaip AndroidAPS negalės registruoti prisijungimų (svarbu stebint ir tikrinant, ar algoritmai veikia tinkamai)!</string>
|
||||
<string name="alert_dialog_storage_permission_text">Prašome iš naujo paleisti telefoną arba sistemos nustatymuose iš naujo paleisti AndroidAPS \nkitaip AndroidAPS negalės registruoti prisijungimų (svarbu stebėti ir tikrinti ar algoritmai veikia tinkamai)!</string>
|
||||
<string name="description_actions">Mygtukai greitesniam pagrindinių funkcijų paleidimui</string>
|
||||
<string name="description_careportal">Papildomų įrašų žurnalas.</string>
|
||||
<string name="description_config_builder">Naudojama aktyvių įskiepių konfigūravimui</string>
|
||||
|
@ -147,8 +147,8 @@
|
|||
<string name="constraints_violation">Apribojimų pažeidimas</string>
|
||||
<string name="treatmentdeliveryerror">Boluso suleidimo klaida</string>
|
||||
<string name="tempbasaldeliveryerror">Laikinos bazės suleidimo klaida</string>
|
||||
<string name="overview_newtempbasal_basalpercent">Valandinė bazė [%]</string>
|
||||
<string name="overview_newtempbasal_percent_label">% (100 % = dabartinis)</string>
|
||||
<string name="overview_newtempbasal_basalpercent">Valandinė bazė [%%]</string>
|
||||
<string name="overview_newtempbasal_percent_label">%%(100%% - pasirinkta)</string>
|
||||
<string name="setbasalquestion">Patvirtinti naują laikiną bazę:</string>
|
||||
<string name="overview_treatment_label">Terapija</string>
|
||||
<string name="overview_calculator_label">Skaičiuotuvas</string>
|
||||
|
@ -248,7 +248,7 @@
|
|||
<string name="danar_iob_label">Pompos AIO</string>
|
||||
<string name="danar_dailyunits">Paros insulinas</string>
|
||||
<string name="pump_lastbolus_label">Paskutinis bolusas</string>
|
||||
<string name="hoursago">prieš %.1fval</string>
|
||||
<string name="hoursago">Prieš %1$.1f valandų</string>
|
||||
<string name="danar_invalidinput">Neteisingai įvesti duomenys</string>
|
||||
<string name="danar_valuenotsetproperly">Vertė nėra tinkamai nustatyta</string>
|
||||
<string name="reloadprofile">Atnaujinti profilį</string>
|
||||
|
@ -528,7 +528,7 @@
|
|||
<string name="resistantadult">Insulinui rezistentiškas suaugęs</string>
|
||||
<string name="patientage_summary">Pasirinkite paciento amžių saugumo riboms nustatyti</string>
|
||||
<string name="Glimp">Glimp</string>
|
||||
<string name="needwhitelisting">%s įtraukite baterijos optimizavimą į baltąjį sąrašą, tinkamam veikimui užtikrinti</string>
|
||||
<string name="needwhitelisting">%1$s įtraukite į baterijos optimizavimo baltąjį sąrašą tinkamam veikimui užtikrinti</string>
|
||||
<string name="loopsuspended">Ciklas sustabdytas</string>
|
||||
<string name="loopsuspendedfor">Sustabdyta (%1$d m)</string>
|
||||
<string name="loopsuperbolusfor">Superbolusas (%1$d m)</string>
|
||||
|
@ -564,8 +564,8 @@
|
|||
<string name="show_statuslights_summary">Pradžios ekrane rodyti spalvotus indikatorius adatos, insulino, sensoriaus naudojimo trukmei bei baterijos įkrovimo lygiui.</string>
|
||||
<string name="statuslights_res_warning">Įspėjimo apie žemą rezervuaro lygį riba [U]</string>
|
||||
<string name="statuslights_res_critical">Įspėjimo apie kritiškai žemą rezervuaro lygį riba [U]</string>
|
||||
<string name="statuslights_bat_warning">Įspėjimo apie žemą baterijos įkrovimo lygį riba [%]</string>
|
||||
<string name="statuslights_bat_critical">Įspėjimo apie kritiškai žemą baterijos įkrovimo lygį riba [%]</string>
|
||||
<string name="statuslights_bat_warning">Įspėjimo apie žemą baterijos įkrovimo lygį riba [%%]</string>
|
||||
<string name="statuslights_bat_critical">Įspėjimo apie kritiškai žemą baterijos įkrovimo lygį riba [%%]</string>
|
||||
<string name="iob">AIO</string>
|
||||
<string name="cob">AAO</string>
|
||||
<string name="virtualpump_firmware_label">Programinė įranga</string>
|
||||
|
@ -764,7 +764,7 @@
|
|||
<string name="combo_pump_state_running">Vykdoma</string>
|
||||
<string name="combo_pump_action_cancelling_tbr">Laikina bazė atšaukiama</string>
|
||||
<string name="combo_pump_action_setting_tbr">Nustatyti laikiną bazę (%1$d%% / %2$d min)</string>
|
||||
<string name="combo_pump_action_bolusing">Bolusas (%.1f vv)</string>
|
||||
<string name="combo_pump_action_bolusing">Leidžiamas bolusas (%1$.1f vv)</string>
|
||||
<string name="combo_pump_action_refreshing">Atnaujinama</string>
|
||||
<string name="combo_pump_unsupported_operation">Pompa negali įvykdyti prašomos operacijos</string>
|
||||
<string name="combo_low_suspend_forced_notification">Nesaugu: aktyvus ištęstinis arba dvibangis bolusas. Ciklas nustatytas stabdymui prie žemo tik 6 valandoms. Aktyvūs tik paprasti bolusai.</string>
|
||||
|
@ -1156,6 +1156,10 @@
|
|||
<string name="sms_wrongcode">Neteisingas kodas. Komanda atšaukta.</string>
|
||||
<string name="notconfigured">Nesukonfigūruota</string>
|
||||
<string name="profileswitchcreated">Profilio perjungimas sukurtas</string>
|
||||
<string name="versionChecker">Versijos tikrintuvas</string>
|
||||
<string name="old_version">sena versija</string>
|
||||
<string name="very_old_version">labai sena versija</string>
|
||||
<string name="new_version_warning">Nauja versija pasiekiama mažiausiai %1$d dienų! Po 60 d. grįšite prie stabdymo prie žemo, po 90 d. ciklas bus išjungtas.</string>
|
||||
<plurals name="objective_days">
|
||||
<item quantity="one">%1$d diena</item>
|
||||
<item quantity="few">%1$d diena</item>
|
||||
|
|
|
@ -145,8 +145,6 @@
|
|||
<string name="constraints_violation">In strijd met beperkingen</string>
|
||||
<string name="treatmentdeliveryerror">Bolus toedien storing</string>
|
||||
<string name="tempbasaldeliveryerror">Tijdelijk basaal toedien storing</string>
|
||||
<string name="overview_newtempbasal_basalpercent">Basale waarde [%]</string>
|
||||
<string name="overview_newtempbasal_percent_label">% (100% = actueel)</string>
|
||||
<string name="setbasalquestion">Accepteer nieuw tijdelijk basaal:</string>
|
||||
<string name="overview_treatment_label">Bolus</string>
|
||||
<string name="overview_calculator_label">Bolus wizard</string>
|
||||
|
@ -246,7 +244,6 @@
|
|||
<string name="danar_iob_label">Pomp IOB</string>
|
||||
<string name="danar_dailyunits">Dag totaal</string>
|
||||
<string name="pump_lastbolus_label">Laatste bolus</string>
|
||||
<string name="hoursago">%.1fu geleden</string>
|
||||
<string name="danar_invalidinput">Verkeerde ingave</string>
|
||||
<string name="danar_valuenotsetproperly">Waarde niet correct ingesteld</string>
|
||||
<string name="reloadprofile">Herlaad profiel</string>
|
||||
|
@ -506,7 +503,6 @@ Stel in en gebruik tijdelijk en standaard tijdelijke streefdoelen (bv. bij sport
|
|||
<string name="resistantadult">insuline resistente volwassene</string>
|
||||
<string name="patientage_summary">Kies leeftijd van de patient voor veiligheids limieten</string>
|
||||
<string name="Glimp">Glimp</string>
|
||||
<string name="needwhitelisting">%s benodigd batterij optimalistaie vrijwaring voor goede werking</string>
|
||||
<string name="loopsuspended">Loop pauzeren</string>
|
||||
<string name="loopsuspendedfor">Gepauzeerd (%1$d m)</string>
|
||||
<string name="loopsuperbolusfor">Superbolus (%1$d m)</string>
|
||||
|
@ -542,8 +538,6 @@ Stel in en gebruik tijdelijk en standaard tijdelijke streefdoelen (bv. bij sport
|
|||
<string name="show_statuslights_summary">Statusindicatoren inschakelen voor cage, iage, sage, reservoir en batterijniveau op het beginscherm.</string>
|
||||
<string name="statuslights_res_warning">Drempel waarschuwing reservoir niveau [E]</string>
|
||||
<string name="statuslights_res_critical">Drempel alarm reservoir niveau [E]</string>
|
||||
<string name="statuslights_bat_warning">Drempel waarschuwing batterij niveau [%]</string>
|
||||
<string name="statuslights_bat_critical">Drempel alarm batterij niveau [%]</string>
|
||||
<string name="iob">IOB</string>
|
||||
<string name="cob">COB</string>
|
||||
<string name="virtualpump_firmware_label">Firmware</string>
|
||||
|
@ -737,7 +731,6 @@ Stel in en gebruik tijdelijk en standaard tijdelijke streefdoelen (bv. bij sport
|
|||
<string name="combo_pump_state_running">Actief</string>
|
||||
<string name="combo_pump_action_cancelling_tbr">Annuleren van TB</string>
|
||||
<string name="combo_pump_action_setting_tbr">Instellen TBR (%1$d%% / %2$d min)</string>
|
||||
<string name="combo_pump_action_bolusing">Bolus (%.1f E)</string>
|
||||
<string name="combo_pump_action_refreshing">Vernieuwen</string>
|
||||
<string name="combo_pump_unsupported_operation">Gevraagde is niet mogelijk met de pomp</string>
|
||||
<string name="combo_low_suspend_forced_notification">Opgelet: verlengde en multi wave bolussen zijn actief. Loop is overgeschakeld naar low-suspend modus gedurende 6 uur. Alleen gewone bolussen worden ondersteund in loop modus</string>
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
<string name="nav_resetdb">Zresetuj bazy danych</string>
|
||||
<string name="reset_db_confirm">Na pewno chcesz zresetować bazy danych?</string>
|
||||
<string name="nav_exit">Wyjście</string>
|
||||
<string name="danar_useextended_title">Używaj przedłużonych bolusów dla >200%%</string>
|
||||
<string name="danar_bt_name_title">Urządzenie Bluetooth DanaR</string>
|
||||
<string name="ns_sync_use_absolute_title">Zawsze używaj wartości bezwzględnych bazy</string>
|
||||
<string name="alert_dialog_storage_permission_text">Proszę uruchomić ponownie telefon lub zrestartować AndroidAPS w ustawieniach systemu telefonu \ninaczej AndroidAPS nie będzie otrzymywał logowań (ważne ze względu na śledzenie i sprawdzanie poprawności działania algorytmów)!</string>
|
||||
|
@ -146,8 +147,8 @@
|
|||
<string name="constraints_violation">Naruszenie ograniczeń</string>
|
||||
<string name="treatmentdeliveryerror">Błąd podania bolusa</string>
|
||||
<string name="tempbasaldeliveryerror">Błąd podania bazy tymczasowej</string>
|
||||
<string name="overview_newtempbasal_basalpercent">Wartość bazy [%]</string>
|
||||
<string name="overview_newtempbasal_percent_label">% (100% = aktualny)</string>
|
||||
<string name="overview_newtempbasal_basalpercent">Wartość bazy [%%]</string>
|
||||
<string name="overview_newtempbasal_percent_label">%% (100%% = aktualny)</string>
|
||||
<string name="setbasalquestion">Akceptuj nową bazę tymczasową:</string>
|
||||
<string name="overview_treatment_label">Leczenie</string>
|
||||
<string name="overview_calculator_label">Kalkulator</string>
|
||||
|
@ -247,7 +248,7 @@
|
|||
<string name="danar_iob_label">IOB w pompie</string>
|
||||
<string name="danar_dailyunits">Jednostki dzienne</string>
|
||||
<string name="pump_lastbolus_label">Ostatni bolus</string>
|
||||
<string name="hoursago">%.1fh temu</string>
|
||||
<string name="hoursago">%1$.1fh temu</string>
|
||||
<string name="danar_invalidinput">Błędne dane wejściowe</string>
|
||||
<string name="danar_valuenotsetproperly">Wartość ustawiona nieprawidłowo</string>
|
||||
<string name="reloadprofile">Załaduj profil ponownie</string>
|
||||
|
@ -313,6 +314,7 @@
|
|||
<string name="overview_bolusprogress_stop">Stop</string>
|
||||
<string name="overview_bolusprogress_stoppressed">NACIŚNIĘTY STOP</string>
|
||||
<string name="waitingforpump">Czekam na pompę</string>
|
||||
<string name="overview_bolusprogress_goingtodeliver">Zamierzam dostarczyć %1$.2fU</string>
|
||||
<string name="objectives_0_objective">Konfiguracja wizualizacji i monitorowania, analiza dawek i wartości bazowych</string>
|
||||
<string name="objectives_0_gate">Sprawdź czy BG (pomiary cukru) są dostępne w Nightscout, i dane pompy insulinowej są ładowane</string>
|
||||
<string name="objectives_1_objective">Uruchamiam otwartą pętle (OpenLoop)</string>
|
||||
|
@ -335,12 +337,26 @@
|
|||
<string name="smscommunicator_loopisdisabled">Pętla (Loop) jest wyłączona</string>
|
||||
<string name="smscommunicator_loopisenabled">Pętla (Loop) jest włączona</string>
|
||||
<string name="valuelimitedto">%1$.2f ograniczone do %2$.2f</string>
|
||||
<string name="valueoutofrange">Wartość %1$s jest poza dopuszczalną granicą</string>
|
||||
<string name="smscommunicator_remotecommandnotallowed">Zdalne komendy nie są dozwolone</string>
|
||||
<string name="smscommunicator_remotebolusnotallowed">Bolus zdalny niedostępny. Spróbuj ponownie później.</string>
|
||||
<string name="smscommunicator_basalreplywithcode">Aby rozpocząć bazę %1$.2fU/h przez %2$d min. odpowiedz kodem %3$s</string>
|
||||
<string name="smscommunicator_profilereplywithcode">Aby przełączyć profil na %1$s %2$d%% odpowiedz kodem %3$s</string>
|
||||
<string name="smscommunicator_extendedreplywithcode">Aby rozpocząć bolus przedłużony %1$.2fU przez %2$d min. odpowiedz kodem %3$s</string>
|
||||
<string name="smscommunicator_basalpctreplywithcode">Aby rozpocząć bolus przedłużony %1$d%% przez %2$d min. odpowiedz kodem %3$s</string>
|
||||
<string name="smscommunicator_suspendreplywithcode">Aby wstrzymać pętle na %1$d minut odpowiedz kodem %2$s</string>
|
||||
<string name="smscommunicator_tempbasalset">Tymczasowa baza %1$.2fU/h przez %2$d min rozpoczęta</string>
|
||||
<string name="smscommunicator_extendedset">Bolus przedłużony %1$.2fU na %2$d min. rozpoczęty pomyślnie</string>
|
||||
<string name="smscommunicator_tempbasalset_percent">Tymczasowa baza %1$d%% przez %2$d min. pomyślnie rozpoczęta</string>
|
||||
<string name="smscommunicator_tempbasalfailed">Rozpoczęcie tymczasowej bazy nie powiodło się</string>
|
||||
<string name="smscommunicator_extendedfailed">Nie powiodło się podanie bolusa przedłużonego</string>
|
||||
<string name="smscommunicator_basalstopreplywithcode">Aby zatrzymać bazę tymczasową wprowadź kod %1$s</string>
|
||||
<string name="smscommunicator_extendedstopreplywithcode">Aby zatrzymać bolus przedłużony wprowadź kod %1$s</string>
|
||||
<string name="smscommunicator_tempbasalcanceled">Baza tymczasowa anulowana</string>
|
||||
<string name="smscommunicator_extendedcanceled">Przedłużony bolus anulowano</string>
|
||||
<string name="smscommunicator_tempbasalcancelfailed">Anulowanie tymczasowej bazy nie powiodło się</string>
|
||||
<string name="smscommunicator_extendedcancelfailed">Anulowanie bolusa przedłużonego nie powiodło się</string>
|
||||
<string name="smscommunicator_unknowncommand">Nieznane polecenie lub błędna odpowiedź</string>
|
||||
<string name="quickwizard">Bolus zdefiniowany</string>
|
||||
<string name="quickwizardsettings">Ustaw szybkie bolusy</string>
|
||||
<string name="overview_editquickwizard_buttontext">Tekst przycisku:</string>
|
||||
|
@ -448,6 +464,7 @@
|
|||
<string name="profile">Profil</string>
|
||||
<string name="openapsama_max_daily_safety_multiplier_summary">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 dzienna; 4x aktualna” dla współczynników bezpieczeństwa.</string>
|
||||
<string name="openapsama_current_basal_safety_multiplier_summary">Wartość domyślna: 4 To jest drugi kluczowy współczynnik bezpieczeństwa OpenAPS, i druga wartość z “3x max dzienna; 4x aktualna”. To oznacza, że Twoja dawka bazowa niezależnie od maksymalnej bazy ustawionej na pompie nie może być większa niż ta ustawiona wartość razy twoja aktualna dawka bazowa. To ma na celu przestrzec 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 zbliżają się do współczynnika bezpieczeństwa.</string>
|
||||
<string name="openapsama_autosens_max_summary">Wartość domyślna: 1.2\nTo jest mnożnik dla autosens (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 zwiększyć bazę, jak nisko może ustawić współczynnik wrażliwości insuliny ISF, i jak nisko może ustawić docelową wartość glikemii.</string>
|
||||
<string name="openapsama_autosens_min_summary">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.</string>
|
||||
<string name="openapsama_autosens_adjusttargets">Autosens wpływa na wartości docelowe</string>
|
||||
<string name="openapsama_autosens_adjusttargets_summary">Domyślnie włączone\nTa funkcja pozwala wpływać na zmianę wartości docelowe BG, wartości bazy i oraz współczynnika wrażliwości na insulinę ISF.</string>
|
||||
|
@ -460,6 +477,7 @@
|
|||
<string name="error_phone_not_valid">Nieprawidłowy numer telefonu</string>
|
||||
<string name="smscommunicator_invalidphonennumber">Nieprawidłowy numer telefonu SMS</string>
|
||||
<string name="overview_calibration">Kalibracja</string>
|
||||
<string name="send_calibration">Wysłać kalibrację %1$.1f do xDrip?</string>
|
||||
<string name="xdripnotinstalled">xDrip+ nie zainstalowany</string>
|
||||
<string name="calibrationsent">Kalibracja przesłana do xDrip</string>
|
||||
<string name="smscommunicator_calibrationsent">Kalibracja wysłana. Odbiór musi być dozwolony w xDrip.</string>
|
||||
|
@ -510,7 +528,7 @@
|
|||
<string name="resistantadult">Osoba dorosła insulino odporna</string>
|
||||
<string name="patientage_summary">Proszę wybierz wiek pacjenta w celu ustawienia wartości limitów bezpieczeństwa</string>
|
||||
<string name="Glimp">Glimp</string>
|
||||
<string name="needwhitelisting">%s Potrzebuję wpisu na białą listę optymalizacji baterii, w celu zapewnienia poprawnego działania</string>
|
||||
<string name="needwhitelisting">%1$s potrzebuję wyłączenia z optymalizacji baterii, w celu zapewnienia poprawnego działania</string>
|
||||
<string name="loopsuspended">Pętla wstrzymana</string>
|
||||
<string name="loopsuspendedfor">Wstrzymana (%1$d m)</string>
|
||||
<string name="loopsuperbolusfor">Superbolus (%1$d m)</string>
|
||||
|
@ -546,8 +564,8 @@
|
|||
<string name="show_statuslights_summary">Włącz diody stanu dla cage, iage, sage, rezerwuar i poziom baterii na ekranie głównym.</string>
|
||||
<string name="statuslights_res_warning">Próg ostrzeżenia o poziomie zbiornika [U]</string>
|
||||
<string name="statuslights_res_critical">Próg ostrzeżenia o krytycznym poziomie zbiornika [U]</string>
|
||||
<string name="statuslights_bat_warning">Próg ostrzeżenia o poziomie baterii [%]</string>
|
||||
<string name="statuslights_bat_critical">Próg ostrzeżenia o krytycznym poziomie baterii [%]</string>
|
||||
<string name="statuslights_bat_warning">Próg ostrzeżenia o poziomie baterii [%%]</string>
|
||||
<string name="statuslights_bat_critical">Próg ostrzeżenia o krytycznym poziomie baterii [%%]</string>
|
||||
<string name="iob">IOB</string>
|
||||
<string name="cob">COB</string>
|
||||
<string name="virtualpump_firmware_label">Firmware</string>
|
||||
|
@ -601,6 +619,7 @@
|
|||
<string name="absorptionsettings_title">Ustawienia wchłaniania</string>
|
||||
<string name="absorption_maxtime_title">Maks. czas wchłaniania posiłku [h]</string>
|
||||
<string name="absorption_maxtime_summary">Oczekiwany czas w godzinach, w którym wszystkie węglowodany zostają wchłonięte</string>
|
||||
<string name="danar_visualizeextendedaspercentage_title">Wizualizacja bolusa przedłużonego jako %%</string>
|
||||
<string name="careportal_sensorage_label_short">SAGE</string>
|
||||
<string name="careportal_insulinage_label_short">IAGE</string>
|
||||
<string name="careportal_canulaage_label_short">CAGE</string>
|
||||
|
@ -713,6 +732,8 @@
|
|||
<string name="dexcomg5_xdripupload_title">Prześlij dane BG do xDrip+</string>
|
||||
<string name="dexcomg5_xdripupload_summary">W xDrip+ wybierz źródło danych 640g/Eversense</string>
|
||||
<string name="nsclientbg">NSClient BG</string>
|
||||
<string name="minimalbasalvaluereplaced">Wartość bazy zastąpiona minimalną obsługiwaną wartością: %1$s</string>
|
||||
<string name="maximumbasalvaluereplaced">Wartość bazy zastąpiona maksymalną obsługiwaną wartością: %1$s</string>
|
||||
<string name="overview_editquickwizard_usebg">Obliczenia BG</string>
|
||||
<string name="overview_editquickwizard_usebolusiob">Obliczenia Bolus IOB</string>
|
||||
<string name="overview_editquickwizard_usebasaliob">Obliczenia IOB</string>
|
||||
|
@ -730,6 +751,8 @@
|
|||
<string name="closedmodeenabled">Tryb zamknięty włączony</string>
|
||||
<string name="maxiobset">Maks. IOB ustawione poprawnie</string>
|
||||
<string name="hasbgdata">BG dostępne z wybranego źródła</string>
|
||||
<string name="basalprofilenotaligned">Wartości bazy nie są ustawione w pełnych godzinach: %1$s</string>
|
||||
<string name="zerovalueinprofile">Nieprawidłowy profil: %1$s</string>
|
||||
<string name="combo_programming_bolus">Programowanie pompy do podawania bolusa</string>
|
||||
<string name="combo_refresh">Odśwież</string>
|
||||
<string name="combo_pump_state_label">Stan</string>
|
||||
|
@ -742,7 +765,7 @@
|
|||
<string name="combo_pump_state_running">W działaniu</string>
|
||||
<string name="combo_pump_action_cancelling_tbr">Anulowanie TBR</string>
|
||||
<string name="combo_pump_action_setting_tbr">Ustawianie TBR (%1$d%% / %2$d min)</string>
|
||||
<string name="combo_pump_action_bolusing">Podawanie bolusa (%.1f U)</string>
|
||||
<string name="combo_pump_action_bolusing">Podawanie bolusa (%1$.1f U)</string>
|
||||
<string name="combo_pump_action_refreshing">Odświeżanie</string>
|
||||
<string name="combo_pump_unsupported_operation">Żądana operacja nie jest obsługiwana przez pompę</string>
|
||||
<string name="combo_low_suspend_forced_notification">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</string>
|
||||
|
@ -1065,11 +1088,13 @@
|
|||
<string name="mute_alert">Wycisz</string>
|
||||
<string name="pump_alert">Alarm pompy</string>
|
||||
<string name="log_site_changes">Melduj zmianę miejsca wkłucia</string>
|
||||
<string name="log_reservoir_changes">Zapisz zmianę zbiornika</string>
|
||||
<string name="log_tube_changes">Melduj zmianę drenu</string>
|
||||
<string name="log_battery_changes">Melduj zmiany baterii</string>
|
||||
<string name="log_operating_mode_changes">Melduj zmiany trybu pracy</string>
|
||||
<string name="log_alerts">Melduj ostrzeżenia</string>
|
||||
<string name="enable_tbr_emulation">Włącz emulację TBR</string>
|
||||
<string name="enable_tbr_emulation_summary">Użyj rozszerzonych bolusów zamiast TBR by ominąć limit 250%% bazy</string>
|
||||
<string name="disconnect_delay">Opóźnienie rozłączenie [s]</string>
|
||||
<string name="serial_number">Numer seryjny</string>
|
||||
<string name="release_software_version">Wersja oprogramowania</string>
|
||||
|
@ -1124,6 +1149,18 @@
|
|||
<string name="dexcom_lognssensorchange_summary">Podaj \"Zmiana Sensora\" do NS do NS automatycznie przy uruchomieniu sensora</string>
|
||||
<string name="tomato">Tomato (MiaoMiao)</string>
|
||||
<string name="tomato_short">Tomato</string>
|
||||
<string name="dst_in_24h_warning">Zmiana na czas letni w ciągu 24 godzin lub krócej</string>
|
||||
<string name="dst_loop_disabled_warning">Zmiana czasu nastąpiła mniej niż 3 godziny temu - Zamknięta pętla wyłączona</string>
|
||||
<string name="storage">limit wielkości pamięci wewnętrznej</string>
|
||||
<string name="diskfull">Zwolnij co najmniej %1$d MB z pamięci wewnętrznej! Pętla zatrzymana!</string>
|
||||
<string name="wrongformat">Błędny format</string>
|
||||
<string name="sms_wrongcode">Zły kod. Polecenie anulowano.</string>
|
||||
<string name="notconfigured">Nie skonfigurowano</string>
|
||||
<string name="profileswitchcreated">Zmiana profilu wykonana</string>
|
||||
<string name="versionChecker">Kontroler wersji</string>
|
||||
<string name="old_version">stara wersja</string>
|
||||
<string name="very_old_version">bardzo stara wersja</string>
|
||||
<string name="new_version_warning">Nowa wersja dostępna co najmniej %1$d dni! Powrót do LGS (zawieszania podawania bazy przy niskim poziomie) po 60 dniach, pętla zostanie wyłączona po 90 dniach</string>
|
||||
<plurals name="objective_days">
|
||||
<item quantity="one">%1$d dzień</item>
|
||||
<item quantity="few">%1$d dni</item>
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
<string name="nav_resetdb">Reinicializar base de dados</string>
|
||||
<string name="reset_db_confirm">Quer realmente reiniciar a base de dados?</string>
|
||||
<string name="nav_exit">Sair</string>
|
||||
<string name="danar_useextended_title">Usar bólus prolongado de >200%%</string>
|
||||
<string name="danar_bt_name_title">Dispositivo Bluetooth DanaR</string>
|
||||
<string name="ns_sync_use_absolute_title">Usar sempre valores absolutos de basal</string>
|
||||
<string name="alert_dialog_storage_permission_text">Por favor, reinicie o seu telefone ou reinicie o AndroidAPS a partir das Configurações do Sistema \ncaso contrário, o AndroidAPS não terá registro (importante para controlar e verificar se os algoritmos estão a funcionar corretamente)!</string>
|
||||
|
@ -146,8 +147,8 @@
|
|||
<string name="constraints_violation">Violação das restrições</string>
|
||||
<string name="treatmentdeliveryerror">Erro na entrega do bolus</string>
|
||||
<string name="tempbasaldeliveryerror">Erro na entrega da basal temporária</string>
|
||||
<string name="overview_newtempbasal_basalpercent">Valor da Basal [%]</string>
|
||||
<string name="overview_newtempbasal_percent_label">% (100% = atual)</string>
|
||||
<string name="overview_newtempbasal_basalpercent">Valor da Basal [%%]</string>
|
||||
<string name="overview_newtempbasal_percent_label">%% (100%% = actual)</string>
|
||||
<string name="setbasalquestion">Aceitar nova basal temporária:</string>
|
||||
<string name="overview_treatment_label">Tratamento</string>
|
||||
<string name="overview_calculator_label">Calculadora</string>
|
||||
|
@ -247,7 +248,7 @@
|
|||
<string name="danar_iob_label">IOB Bomba</string>
|
||||
<string name="danar_dailyunits">Unidades diárias</string>
|
||||
<string name="pump_lastbolus_label">Último bólus</string>
|
||||
<string name="hoursago">%.1fh atrás</string>
|
||||
<string name="hoursago">%1$.1fh atrás</string>
|
||||
<string name="danar_invalidinput">Entrada Inválida</string>
|
||||
<string name="danar_valuenotsetproperly">Valor não definido corretamente</string>
|
||||
<string name="reloadprofile">Recarregar perfil</string>
|
||||
|
@ -313,6 +314,7 @@
|
|||
<string name="overview_bolusprogress_stop">Parar</string>
|
||||
<string name="overview_bolusprogress_stoppressed">STOP PRESSIONADO</string>
|
||||
<string name="waitingforpump">À espera da bomba</string>
|
||||
<string name="overview_bolusprogress_goingtodeliver">Vão ser administradas %1$.2fU</string>
|
||||
<string name="objectives_0_objective">Configuração da visualização e monitoramento, e análise de rácios e basals</string>
|
||||
<string name="objectives_0_gate">Verificar se a BG está disponível no Nightscout, e se os dados de insulina da bomba estão a ser carregados</string>
|
||||
<string name="objectives_1_objective">A iniciar um open loop</string>
|
||||
|
@ -335,11 +337,23 @@
|
|||
<string name="smscommunicator_loopisdisabled">Loop desactivado</string>
|
||||
<string name="smscommunicator_loopisenabled">Loop activado</string>
|
||||
<string name="valuelimitedto">%1$.2f limitado a %2$.2f</string>
|
||||
<string name="valueoutofrange">O valor %1$s está fora dos limites permitidos</string>
|
||||
<string name="smscommunicator_remotecommandnotallowed">O comando remoto não é permitido</string>
|
||||
<string name="smscommunicator_remotebolusnotallowed">O bólus remoto não está disponível. Tente novamente mais tarde.</string>
|
||||
<string name="smscommunicator_basalreplywithcode">Para começar a basal %1$.2fU/h durante%2$d min responda com o código %3$s</string>
|
||||
<string name="smscommunicator_profilereplywithcode">Para mudar o perfil para %1$s %2$d%% responda com o código %3$s</string>
|
||||
<string name="smscommunicator_extendedreplywithcode">Para começar o bólus estendido %1$.2fU/h para %2$d min responda com o código %3$s</string>
|
||||
<string name="smscommunicator_basalpctreplywithcode">Para começar a basal %1$d% U/h durante %2$d min responda com o código %3$s</string>
|
||||
<string name="smscommunicator_suspendreplywithcode">Para suspender o loop por %1$d minutos resposta com código %2$s</string>
|
||||
<string name="smscommunicator_tempbasalset">Basal temporária %1$.2fU/h para %2$d min iniciada com êxito</string>
|
||||
<string name="smscommunicator_extendedset">Bólus estendido %1$.2fU/h para %2$d min iniciado com êxito</string>
|
||||
<string name="smscommunicator_tempbasalset_percent">Basal temporária %1$d% U/h durante%2$d min iniciada com êxito</string>
|
||||
<string name="smscommunicator_tempbasalfailed">Início basal temp falhou </string>
|
||||
<string name="smscommunicator_extendedfailed">Falha ao iniciar o bólus estendido</string>
|
||||
<string name="smscommunicator_basalstopreplywithcode">Para parar a basal temporária responda com o código %1$s</string>
|
||||
<string name="smscommunicator_extendedstopreplywithcode">Para parar o bólus temporário responda com o código %1$s</string>
|
||||
<string name="smscommunicator_tempbasalcanceled">Basal temp cancelada</string>
|
||||
<string name="smscommunicator_extendedcanceled">Bólus estendido cancelado</string>
|
||||
<string name="smscommunicator_tempbasalcancelfailed">Não foi possivel cancelar a basal temp</string>
|
||||
<string name="smscommunicator_extendedcancelfailed">Falhou o cancelamento do bolus extendido</string>
|
||||
<string name="smscommunicator_unknowncommand">Comando desconhecido ou resposta errada</string>
|
||||
|
@ -450,6 +464,7 @@
|
|||
<string name="profile">Perfil</string>
|
||||
<string name="openapsama_max_daily_safety_multiplier_summary">Valor padrão: 3 Por segurança é o valor limite estabelecido por OpenAPS. O que faz é limitar a basal a x3 a basal mázima. Se necessário modificar este valor, por favor ter em conta que os dados apontam para que os limites de segurança sejam - 3 x max diario ou 4x valor actual (qual seja menor) como valores máximos.</string>
|
||||
<string name="openapsama_current_basal_safety_multiplier_summary">Valor padrão: 4 Esta é a outra parte dos valores limites de segurança - 3 x max diário ou 4x valor actual - do OpenAPS. Isto define que não importa o valor da basal máxima definido na bomba, o valor máximo da basal temporária não pode ser maior que 4 x o valor da basal definida na bomba. O objectivo é evitar que sejam determinadas basais temporárias demasiado elevadas antes que se perceba como o algoritmo funciona. 4x é um valor que a maior parte das pessoas nunca necessitará de alterar pois o mais provável é necessitar de alterar outras definições para não necessitar de \"ultrapassar\" este limite de segurança.</string>
|
||||
<string name="openapsama_autosens_max_summary">Valor predefinido: 1.2\n Este é um multiplicador para autosens (e em breve autotune) que coloca um limite máximo de 20%% aos rácios superiores e inferiores de autosens, o que por sua vez calcula o quão alto autosens pode ajustar a basal, quão pode baixar o Factor de Sensibilidade (FSI) e baixar o valor alvo de glicose no sangue.</string>
|
||||
<string name="openapsama_autosens_min_summary">Valor padrão: 0.7\nO outro lado dos limites de segurança do autosens. Coloca um tecto no quão baixo autosens pode ajustar as basais, e quão alto pode ajustar os valores de ISF e valor alvo de glucose no sangue (BG).</string>
|
||||
<string name="openapsama_autosens_adjusttargets">Autosens também ajusta os alvos</string>
|
||||
<string name="openapsama_autosens_adjusttargets_summary">Valor padrão: true\nÉ usado para permitir que autosens possa ajustar os valores alvo de glucose no sangue (BG), além de ISF e basais.</string>
|
||||
|
@ -462,6 +477,7 @@
|
|||
<string name="error_phone_not_valid">Número de telefone não é válido</string>
|
||||
<string name="smscommunicator_invalidphonennumber">SMS número de telefone inválido</string>
|
||||
<string name="overview_calibration">Calibração</string>
|
||||
<string name="send_calibration">Enviar calibração %1$.1f para o xDrip?</string>
|
||||
<string name="xdripnotinstalled">xDrip+ não está instalado</string>
|
||||
<string name="calibrationsent">Calibração enviada para o xDrip</string>
|
||||
<string name="smscommunicator_calibrationsent">Calibração enviada. Recepção têm de estar activada no xDrip.</string>
|
||||
|
@ -512,7 +528,7 @@
|
|||
<string name="resistantadult">Adulto resistente insulina</string>
|
||||
<string name="patientage_summary">Por favor seleccione a idade do diabético para definir os limites de segurança</string>
|
||||
<string name="Glimp">Glimp</string>
|
||||
<string name="needwhitelisting">%s necessita de autorizar a não optimização da bateria para assegurar a performance necessária</string>
|
||||
<string name="needwhitelisting">%1$s necessita de autorizar a não optimização da bateria para assegurar a performance necessária</string>
|
||||
<string name="loopsuspended">Loop suspenso</string>
|
||||
<string name="loopsuspendedfor">Suspendido (%1$d m)</string>
|
||||
<string name="loopsuperbolusfor">Superbólus (%1$d m)</string>
|
||||
|
@ -548,8 +564,8 @@
|
|||
<string name="show_statuslights_summary">Ativar as luzes de status para idade da cânula, idade da insulina, idade do sensor, reservatório e bateria no ecrã inicial.</string>
|
||||
<string name="statuslights_res_warning">Limite de aviso de nível de reservatório [U]</string>
|
||||
<string name="statuslights_res_critical">Limite crítico de nível de reservatório [U]</string>
|
||||
<string name="statuslights_bat_warning">Limite de aviso de nível de bateria [%]</string>
|
||||
<string name="statuslights_bat_critical">Limite crítico de nível de bateria [%]</string>
|
||||
<string name="statuslights_bat_warning">Limite de aviso de nível de bateria [%%]</string>
|
||||
<string name="statuslights_bat_critical">Limite crítico de nível de bateria [%%]</string>
|
||||
<string name="iob">IOB</string>
|
||||
<string name="cob">COB</string>
|
||||
<string name="virtualpump_firmware_label">Firmware</string>
|
||||
|
@ -602,6 +618,7 @@
|
|||
<string name="absorptionsettings_title">Configurações de absorção</string>
|
||||
<string name="absorption_maxtime_title">Tempo máx. absorção refeição [h]</string>
|
||||
<string name="absorption_maxtime_summary">Tempo em horas, espectável para que todos os hidratos de carbono da refeição sejam absorvidos</string>
|
||||
<string name="danar_visualizeextendedaspercentage_title">Visualizar bólus prolongado como %%</string>
|
||||
<string name="careportal_sensorage_label_short">SAGE</string>
|
||||
<string name="careportal_insulinage_label_short">IAGE</string>
|
||||
<string name="careportal_canulaage_label_short">CAGE</string>
|
||||
|
@ -714,6 +731,8 @@
|
|||
<string name="dexcomg5_xdripupload_title">Enviar dados Glic. para xDrip+</string>
|
||||
<string name="dexcomg5_xdripupload_summary">Seleccionar 640g/Eversense como fonte no xDrip+</string>
|
||||
<string name="nsclientbg">Glic NSCliente</string>
|
||||
<string name="minimalbasalvaluereplaced">Valor da basal alterado para o valor mínimo suportado: %1$s</string>
|
||||
<string name="maximumbasalvaluereplaced">Valor da basal alterado para o valor máximo suportado: %1$s</string>
|
||||
<string name="overview_editquickwizard_usebg">Cálculos Glic</string>
|
||||
<string name="overview_editquickwizard_usebolusiob">Cálculo de Bólus IOB</string>
|
||||
<string name="overview_editquickwizard_usebasaliob">Cálculo de Basal IOB</string>
|
||||
|
@ -731,6 +750,8 @@
|
|||
<string name="closedmodeenabled">Modo fechado ativado</string>
|
||||
<string name="maxiobset">IOB máxima definida correctamente</string>
|
||||
<string name="hasbgdata">Glicemia disponivel desde a fonte selecionada</string>
|
||||
<string name="basalprofilenotaligned">Valores das basais não definidos por horas: %1$s</string>
|
||||
<string name="zerovalueinprofile">Perfil inválido: %1$s</string>
|
||||
<string name="combo_programming_bolus">A programar a bomba para injectar o bolus</string>
|
||||
<string name="combo_refresh">Actualizar</string>
|
||||
<string name="combo_pump_state_label">Estado</string>
|
||||
|
@ -743,7 +764,7 @@
|
|||
<string name="combo_pump_state_running">A correr</string>
|
||||
<string name="combo_pump_action_cancelling_tbr">Cancelar TBR</string>
|
||||
<string name="combo_pump_action_setting_tbr">A definir TBR (%1$d%% / %2$d min)</string>
|
||||
<string name="combo_pump_action_bolusing">Injectando (%.1f U)</string>
|
||||
<string name="combo_pump_action_bolusing">Injectando (%1$.1f U)</string>
|
||||
<string name="combo_pump_action_refreshing">A actualizar</string>
|
||||
<string name="combo_pump_unsupported_operation">Operação solicitada não suportada pela bomba</string>
|
||||
<string name="combo_low_suspend_forced_notification">Ultilização nao segura: bolus estendudos ou multionda estão activos. Modo do loop foi alterado para apenas suspender em limite inferior por 6h. Apenas são suportados bolus normais em modo loop</string>
|
||||
|
@ -1072,6 +1093,7 @@
|
|||
<string name="log_operating_mode_changes">Alterações do modo de funcionamento de registo</string>
|
||||
<string name="log_alerts">Alertas de registo</string>
|
||||
<string name="enable_tbr_emulation">Ativar a emulação TBR</string>
|
||||
<string name="enable_tbr_emulation_summary">Usar bólus prolongados em vez de basais temporárias para contornar o limite de 250%%</string>
|
||||
<string name="disconnect_delay">Atraso de desconexão [s]</string>
|
||||
<string name="serial_number">Número de série</string>
|
||||
<string name="release_software_version">Lançar versão de software</string>
|
||||
|
@ -1107,15 +1129,17 @@
|
|||
<string name="refresh">Actualizar</string>
|
||||
<string name="description_pump_insight_local">Integração de bomba para bombas Accu-Chek Insight</string>
|
||||
<string name="not_inserted">Não inserido</string>
|
||||
<string name="short_status_last_connected">Última conexão:%1$d minutos atrás</string>
|
||||
<string name="short_status_last_connected">Última ligação:%1$d minutos atrás</string>
|
||||
<string name="short_status_tbr">Basal temporária: %1$d%% para %2$d / %3$d minutos</string>
|
||||
<string name="short_status_extended">Estendido: %1$.2f / %2$.2f U por %3$d min</string>
|
||||
<string name="short_status_multiwave">Multionda: %1$.2f / %2$.2f U por %3$d min</string>
|
||||
<string name="short_status_tdd">TDD: %1$.2f</string>
|
||||
<string name="short_status_reservoir">Reser:%1$.2fU</string>
|
||||
<string name="short_status_battery">Bat.: %1$d%%</string>
|
||||
<string name="max_recovery_duration">Duração máxima da recuperação [s]</string>
|
||||
<string name="min_recovery_duration">Duração mínima da recuperação [s]</string>
|
||||
<string name="recovery_duration">Duração da recuperação</string>
|
||||
<string name="timeout_during_handshake">Tempo de operação excedido - reinicar bluetooth</string>
|
||||
<string name="profile_total">== ∑ %1$s U</string>
|
||||
<string name="profile_ins_units_per_hout">U/h</string>
|
||||
<string name="profile_carbs_per_unit">g/U</string>
|
||||
|
@ -1124,12 +1148,18 @@
|
|||
<string name="dexcom_lognssensorchange_summary">Criar evento \"Mudança de Sensor\" automaticamente no NS aquando do início do sensor</string>
|
||||
<string name="tomato">Tomato (MiaoMiao)</string>
|
||||
<string name="tomato_short">Tomato</string>
|
||||
<string name="dst_in_24h_warning">Horário de Verão em 24h ou menos</string>
|
||||
<string name="dst_loop_disabled_warning">Horário de Verão a menos de 3 horas - Closed Loop desligado</string>
|
||||
<string name="storage">restrição de armazenamento interno</string>
|
||||
<string name="diskfull">Liberte pelo menos %1$d MB do armazenamento interno! Loop desativado!</string>
|
||||
<string name="wrongformat">Formato incorrecto</string>
|
||||
<string name="sms_wrongcode">Código errado. Comando cancelado.</string>
|
||||
<string name="notconfigured">Não configurado</string>
|
||||
<string name="profileswitchcreated">Troca de perfil criada</string>
|
||||
<string name="versionChecker">Verificador de Versão</string>
|
||||
<string name="old_version">versão antiga</string>
|
||||
<string name="very_old_version">versão muito antiga</string>
|
||||
<string name="new_version_warning">Nova versão para pelo menos %1$d dias disponíveis! Voltar para o LGS após 60 dias, o loop será desativado após 90 dias</string>
|
||||
<plurals name="objective_days">
|
||||
<item quantity="one">%1$d dia</item>
|
||||
<item quantity="other">%1$d dias</item>
|
||||
|
|
|
@ -145,8 +145,6 @@
|
|||
<string name="constraints_violation">Încălcare a unei limite</string>
|
||||
<string name="treatmentdeliveryerror">Eroare la livrarea bolusului</string>
|
||||
<string name="tempbasaldeliveryerror">Eroare la setare bazală temporară</string>
|
||||
<string name="overview_newtempbasal_basalpercent">Valoare bazală [%]</string>
|
||||
<string name="overview_newtempbasal_percent_label">% (100% = curent)</string>
|
||||
<string name="setbasalquestion">Acceptă noua bazală temporară:</string>
|
||||
<string name="overview_treatment_label">Tratament</string>
|
||||
<string name="overview_calculator_label">Calculator</string>
|
||||
|
@ -246,7 +244,6 @@
|
|||
<string name="danar_iob_label">IOB din pompă</string>
|
||||
<string name="danar_dailyunits">Unități zilnic</string>
|
||||
<string name="pump_lastbolus_label">Ultimul bolus</string>
|
||||
<string name="hoursago">%.1f o în urmă</string>
|
||||
<string name="danar_invalidinput">Date de intrare incorecte</string>
|
||||
<string name="danar_valuenotsetproperly">Valoare setată incorect</string>
|
||||
<string name="reloadprofile">Reîncarcă profilul</string>
|
||||
|
@ -505,7 +502,6 @@
|
|||
<string name="resistantadult">Adult rezistent la insulină</string>
|
||||
<string name="patientage_summary">Vă rog să selectați vârsta pacientului în vederea stabilirii valorilor maxime admise de siguranță</string>
|
||||
<string name="Glimp">Glimp</string>
|
||||
<string name="needwhitelisting">%s necesită excluderea din lista de optimizare a bateriei pentru funcționare corespunzătoare</string>
|
||||
<string name="loopsuspended">Buclă suspendată</string>
|
||||
<string name="loopsuspendedfor">Suspendat (%1$d min)</string>
|
||||
<string name="loopsuperbolusfor">Superbolus (%1$d min)</string>
|
||||
|
@ -541,8 +537,6 @@
|
|||
<string name="show_statuslights_summary">Activați indicatori pentru CAGE, IAGE, SAGE, nivel baterie și rezervor pe ecranul principal.</string>
|
||||
<string name="statuslights_res_warning">Pragul de avertisment pentru insulina din rezervor [U]</string>
|
||||
<string name="statuslights_res_critical">Pragul critic al nivelului insulinei în rezervor [U]</string>
|
||||
<string name="statuslights_bat_warning">Pragul de avertizare nivel baterie [%]</string>
|
||||
<string name="statuslights_bat_critical">Pragul critic al nivelului baterie [%]</string>
|
||||
<string name="iob">IOB</string>
|
||||
<string name="cob">COB</string>
|
||||
<string name="virtualpump_firmware_label">Firmware</string>
|
||||
|
@ -736,7 +730,6 @@
|
|||
<string name="combo_pump_state_running">Rulează</string>
|
||||
<string name="combo_pump_action_cancelling_tbr">Se oprește TBR</string>
|
||||
<string name="combo_pump_action_setting_tbr">Se setează TBR (%1$d%% / %2$d min)</string>
|
||||
<string name="combo_pump_action_bolusing">Bolusare (%.1f U)</string>
|
||||
<string name="combo_pump_action_refreshing">Reîncărcare</string>
|
||||
<string name="combo_pump_unsupported_operation">Operațiunea nu este suportată de pompă</string>
|
||||
<string name="combo_low_suspend_forced_notification">Folosire nesigură: un bolus extins sau multiwave este activ. Modul buclă este setat să funcționeze în low-suspend pentru 6 ore. Doar bolusurile normale sunt posibile.</string>
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--Generated by crowdin.com-->
|
||||
<resources>
|
||||
<string name="treatmentssafety_title">Безопасность назначений</string>
|
||||
<string name="treatmentssafety_title">Безопасность терапии</string>
|
||||
<string name="treatmentssafety_maxbolus_title">Макс разрешенный болюс [U] ед.</string>
|
||||
<string name="treatmentssafety_maxcarbs_title">макс разрешенные углеводы (г)</string>
|
||||
<string name="nav_preferences">опции</string>
|
||||
<string name="nav_refreshtreatments">синхронисировать назначения с NS</string>
|
||||
<string name="nav_refreshtreatments">Синхронизировать назначения с NS</string>
|
||||
<string name="nav_resetdb">обнулить базы</string>
|
||||
<string name="reset_db_confirm">Вы действительно хотите обнулить базы данных?</string>
|
||||
<string name="nav_exit">Выход</string>
|
||||
|
@ -116,7 +116,7 @@
|
|||
<string name="nsprofile">профиль NS</string>
|
||||
<string name="simpleprofile">простой профиль</string>
|
||||
<string name="tempbasal">ВремБазал</string>
|
||||
<string name="treatments">назначения</string>
|
||||
<string name="treatments">Терапия</string>
|
||||
<string name="virtualpump">виртуальная помпа</string>
|
||||
<string name="careportal">Портал лечения / назначений</string>
|
||||
<string name="configbuilder_pump">помпа</string>
|
||||
|
@ -147,14 +147,14 @@
|
|||
<string name="constraints_violation">ограничение нарушено</string>
|
||||
<string name="treatmentdeliveryerror">Ошибка подачи болюса</string>
|
||||
<string name="tempbasaldeliveryerror">Ошибка подачи врем базала</string>
|
||||
<string name="overview_newtempbasal_basalpercent">величина базала (%)</string>
|
||||
<string name="overview_newtempbasal_percent_label">% (100% = текущий)</string>
|
||||
<string name="overview_newtempbasal_basalpercent">Величина базала [%%]</string>
|
||||
<string name="overview_newtempbasal_percent_label">%% (100%% = текущее)</string>
|
||||
<string name="setbasalquestion">принять новый врем базал:</string>
|
||||
<string name="overview_treatment_label">болюс</string>
|
||||
<string name="overview_calculator_label">калькулятор</string>
|
||||
<string name="constraintapllied">применено ограничение!</string>
|
||||
<string name="confirmation">подтверждение</string>
|
||||
<string name="entertreatmentquestion">введите новое назначение</string>
|
||||
<string name="entertreatmentquestion">Ввести новое назначение:</string>
|
||||
<string name="bolus">болюс</string>
|
||||
<string name="sms_bolus">болюс:</string>
|
||||
<string name="basal">базал</string>
|
||||
|
@ -248,7 +248,7 @@
|
|||
<string name="danar_iob_label">активный инсулин на помпе</string>
|
||||
<string name="danar_dailyunits">суточные единицы</string>
|
||||
<string name="pump_lastbolus_label">предыдущий болюс</string>
|
||||
<string name="hoursago">%.1fч назад</string>
|
||||
<string name="hoursago">%1$.1fч назад</string>
|
||||
<string name="danar_invalidinput">введенные данные неверны</string>
|
||||
<string name="danar_valuenotsetproperly">величина не задана должным образом</string>
|
||||
<string name="reloadprofile">обновить профиль</string>
|
||||
|
@ -528,7 +528,7 @@
|
|||
<string name="resistantadult">Инсулинорезистентный взрослый</string>
|
||||
<string name="patientage_summary">выберите возраст пациента для определения ограничителей безопасности</string>
|
||||
<string name="Glimp">Glimp</string>
|
||||
<string name="needwhitelisting">%s необходимо включить в белый список для корректной работы</string>
|
||||
<string name="needwhitelisting">%1$s необходимо включить в белый список оптимизации батареи для корректной работы</string>
|
||||
<string name="loopsuspended">ЗЦ остановлен</string>
|
||||
<string name="loopsuspendedfor">Остановлен на(%1$d m)</string>
|
||||
<string name="loopsuperbolusfor">Суперболюс(%1$d m)</string>
|
||||
|
@ -564,8 +564,8 @@
|
|||
<string name="show_statuslights_summary">Включить на главном экране индикаторы отработанного времени для канюли помпы, инсулина, сенсора, резервуара, а также показать уровень аккумулятора.</string>
|
||||
<string name="statuslights_res_warning">Порог уровня наполненности резервуара для оповещения [ед.]</string>
|
||||
<string name="statuslights_res_critical">Порог критического уровня наполненности резервуара [U]</string>
|
||||
<string name="statuslights_bat_warning">Порог предупреждения о разрядке батареи [%]</string>
|
||||
<string name="statuslights_bat_critical">Порог предупреждения о критическом уровне разрядки батареи [%]</string>
|
||||
<string name="statuslights_bat_warning">Порог предупреждения о разрядке батареи [%%]</string>
|
||||
<string name="statuslights_bat_critical">Порог предупреждения о критическом уровне разрядки батареи [%%]</string>
|
||||
<string name="iob">IOB акт инс</string>
|
||||
<string name="cob">акт углев</string>
|
||||
<string name="virtualpump_firmware_label">прошивка</string>
|
||||
|
@ -690,7 +690,7 @@
|
|||
<string name="gettingpumptime">Получение времени помпы</string>
|
||||
<string name="reuse">повторное использование</string>
|
||||
<string name="wearcontrol_title">Контроль с часов</string>
|
||||
<string name="wearcontrol_summary">Поставить временные цели и ввести назначения с часов.</string>
|
||||
<string name="wearcontrol_summary">Ставить временные цели и вводить назначения с часов.</string>
|
||||
<string name="connectiontimedout">Истекло время ожидания соединения</string>
|
||||
<string name="food">Еда</string>
|
||||
<string name="shortgramm">грамм</string>
|
||||
|
@ -764,7 +764,7 @@
|
|||
<string name="combo_pump_state_running">Выполняется</string>
|
||||
<string name="combo_pump_action_cancelling_tbr">Отмена врем базала TBR</string>
|
||||
<string name="combo_pump_action_setting_tbr">Установка врем базала TBR на (%1$d%% / %2$d мин)</string>
|
||||
<string name="combo_pump_action_bolusing">Введение болюса (%.1f ед)</string>
|
||||
<string name="combo_pump_action_bolusing">Введение болюса (%1$.1f ед)</string>
|
||||
<string name="combo_pump_action_refreshing">Обновление</string>
|
||||
<string name="combo_pump_unsupported_operation">Запрашиваемая операция не поддерживается помпой</string>
|
||||
<string name="combo_low_suspend_forced_notification">Небезопасное использование: Удлиненный или многоволновой болюс активны. Режим цикла Loop установлен на приостановку при низкой гликемии только на 6 часов. В режиме loop поддерживаются только обычные болюсы</string>
|
||||
|
@ -1044,7 +1044,7 @@ Context | Edit Context</string>
|
|||
<string name="careportal_removestartedevents">AndroidAPS перезапущен</string>
|
||||
<string name="storedsettingsfound">Найдены сохраненные параметры</string>
|
||||
<string name="allow_hardware_pump_text">Внимание: Если вы активируете подключение к невиртуальной помпе, AndroidAPS скопирует настройки базала в профиль помпы, перезаписывая существующие настройки, хранящиеся в ней. Убедитесь, что настройки базала в AndroidAPS корректны. Если вы не уверены или не хотите перезаписать настройки базала на помпу, нажмите отменить и повторите подключение в другое время.</string>
|
||||
<string name="error_adding_treatment_title">Данные назначений неполные</string>
|
||||
<string name="error_adding_treatment_title">Данные терапии неполные</string>
|
||||
<string name="maintenance_settings">Параметры обслуживания</string>
|
||||
<string name="maintenance_email">Адрес электронной почты</string>
|
||||
<string name="invalid_email_message">Недопустимый e-mail</string>
|
||||
|
@ -1158,4 +1158,8 @@ Context | Edit Context</string>
|
|||
<string name="sms_wrongcode">Неверный код. Команда отменена.</string>
|
||||
<string name="notconfigured">Не сконфигурировано</string>
|
||||
<string name="profileswitchcreated">Переключатель профиля создан</string>
|
||||
<string name="versionChecker">Проверка версии</string>
|
||||
<string name="old_version">старая версия</string>
|
||||
<string name="very_old_version">очень старая версия</string>
|
||||
<string name="new_version_warning">Новая версия доступна не менее %1$d дней! После 60 дней переход на остановку при низкой гликемии LGS, замкнутый цикл будет отключен через 90 дней</string>
|
||||
</resources>
|
||||
|
|
|
@ -147,8 +147,8 @@
|
|||
<string name="constraints_violation">Mimo povolený rozsah</string>
|
||||
<string name="treatmentdeliveryerror">Chyba podania bolusu</string>
|
||||
<string name="tempbasaldeliveryerror">Chyba podávania dočasného bazálu</string>
|
||||
<string name="overview_newtempbasal_basalpercent">Hodnota bazálu [%]</string>
|
||||
<string name="overview_newtempbasal_percent_label">% (100% = aktuálny)</string>
|
||||
<string name="overview_newtempbasal_basalpercent">Hodnota bazálu [%%]</string>
|
||||
<string name="overview_newtempbasal_percent_label">%% (100%% = aktuálny)</string>
|
||||
<string name="setbasalquestion">Povoliť nový dočasný bazál:</string>
|
||||
<string name="overview_treatment_label">Bolus</string>
|
||||
<string name="overview_calculator_label">Kalkulačka</string>
|
||||
|
@ -248,7 +248,7 @@
|
|||
<string name="danar_iob_label">IOB z pumpy</string>
|
||||
<string name="danar_dailyunits">Jednotiek za deň</string>
|
||||
<string name="pump_lastbolus_label">Posledný bolus</string>
|
||||
<string name="hoursago">pred %.1fh</string>
|
||||
<string name="hoursago">pred %1$.1fh</string>
|
||||
<string name="danar_invalidinput">Chybné vstupné dáta</string>
|
||||
<string name="danar_valuenotsetproperly">Hodnota nenastavená správne</string>
|
||||
<string name="reloadprofile">Obnoviť profil</string>
|
||||
|
@ -528,7 +528,7 @@
|
|||
<string name="resistantadult">Dospelý z nízkou citlivosťou</string>
|
||||
<string name="patientage_summary">Vyberte vek pacienta pre nastavenie bezpečnostných limitov</string>
|
||||
<string name="Glimp">Glimp</string>
|
||||
<string name="needwhitelisting">%s potrebuje vypnúť optimalizáciu baterie pre optimálny výkon</string>
|
||||
<string name="needwhitelisting">%1$s potrebuje vypnúť optimalizáciu batérie pre optimálny výkon</string>
|
||||
<string name="loopsuspended">Uzavretý okruh pozastavený</string>
|
||||
<string name="loopsuspendedfor">Pozastavený (%1$d min)</string>
|
||||
<string name="loopsuperbolusfor">Superbolus (%1$d m)</string>
|
||||
|
@ -564,8 +564,8 @@
|
|||
<string name="show_statuslights_summary">Povoliť indikátory stavu pre CAGE, IAGE, SAGE, Reservoir a Battery Level na domovskej obrazovke.</string>
|
||||
<string name="statuslights_res_warning">Prah upozornenia na úroveň hladiny zásobníka [U]</string>
|
||||
<string name="statuslights_res_critical">Prah kritickej úrovne hladiny zásobníka [U]</string>
|
||||
<string name="statuslights_bat_warning">Prah upozornenia na úroveň batérie [%]</string>
|
||||
<string name="statuslights_bat_critical">Prah kritickej úrovne batérie [%]</string>
|
||||
<string name="statuslights_bat_warning">Prah upozornenia na úroveň batérie [%%]</string>
|
||||
<string name="statuslights_bat_critical">Prah kritickej úrovne batérie [%%]</string>
|
||||
<string name="iob">IOB</string>
|
||||
<string name="cob">COB</string>
|
||||
<string name="virtualpump_firmware_label">Firmware</string>
|
||||
|
@ -764,7 +764,7 @@
|
|||
<string name="combo_pump_state_running">V prevádzke</string>
|
||||
<string name="combo_pump_action_cancelling_tbr">Rušenie dočasného bazálu</string>
|
||||
<string name="combo_pump_action_setting_tbr">Nastavovanie doč. bazálu (%1$d%% / %2$d min)</string>
|
||||
<string name="combo_pump_action_bolusing">Podávanie bolusu (%.1f U)</string>
|
||||
<string name="combo_pump_action_bolusing">Podávanie bolusu (%1$.1f U)</string>
|
||||
<string name="combo_pump_action_refreshing">Aktualizuje sa stav</string>
|
||||
<string name="combo_pump_unsupported_operation">Požadovaná operácia nie je pumpou podporovaná</string>
|
||||
<string name="combo_low_suspend_forced_notification">Nebezpečné použitie: predĺžený alebo multiwave bolus je aktívny. Pumpa bola vypnutá len na 6 hodín. Povolené sú iba normálne bolusy.</string>
|
||||
|
@ -1156,6 +1156,10 @@
|
|||
<string name="sms_wrongcode">Nesprávný kód. Príkaz zrušený.</string>
|
||||
<string name="notconfigured">Nie je nakonfigurované</string>
|
||||
<string name="profileswitchcreated">Prepnutie profilu vytvorené</string>
|
||||
<string name="versionChecker">Kontrola verzie</string>
|
||||
<string name="old_version">stará verzia</string>
|
||||
<string name="very_old_version">veľmi stará verzia</string>
|
||||
<string name="new_version_warning">Nová verzia dostupná najmenej %1$d dní! Návrat k liečbe inzulínovou pumpou s podporou senzora po 60 dňoch, okruh bude deaktivovaný po 90 dňoch.</string>
|
||||
<plurals name="objective_days">
|
||||
<item quantity="one">%1$d deň</item>
|
||||
<item quantity="few">%1$d dní</item>
|
||||
|
|
|
@ -148,8 +148,6 @@ Eversense-appen.</string>
|
|||
<string name="constraints_violation">Begränsning nådd</string>
|
||||
<string name="treatmentdeliveryerror">Fel vid bolusleverans</string>
|
||||
<string name="tempbasaldeliveryerror">Fel vid justering av temp basal</string>
|
||||
<string name="overview_newtempbasal_basalpercent">Basal [%]</string>
|
||||
<string name="overview_newtempbasal_percent_label">% (100% = profilens värde)</string>
|
||||
<string name="setbasalquestion">Acceptera ny temp basal:</string>
|
||||
<string name="overview_treatment_label">Behandling</string>
|
||||
<string name="overview_calculator_label">Kalkylator</string>
|
||||
|
@ -249,7 +247,6 @@ Eversense-appen.</string>
|
|||
<string name="danar_iob_label">Pumpens IOB</string>
|
||||
<string name="danar_dailyunits">Enheter per dag</string>
|
||||
<string name="pump_lastbolus_label">Senaste bolus</string>
|
||||
<string name="hoursago">%.1f tim sedan</string>
|
||||
<string name="danar_invalidinput">Fel på inmatning</string>
|
||||
<string name="danar_valuenotsetproperly">Misslyckades med inställning</string>
|
||||
<string name="reloadprofile">Ladda om profil</string>
|
||||
|
@ -529,7 +526,6 @@ Eversense-appen.</string>
|
|||
<string name="resistantadult">Insulinresistent vuxen</string>
|
||||
<string name="patientage_summary">Vg ange personens ålder för inställningar av gränser</string>
|
||||
<string name="Glimp">Glimp</string>
|
||||
<string name="needwhitelisting">%s behöver kunna kringgå batterisparfunktionerna för att fungera korrekt</string>
|
||||
<string name="loopsuspended">Loop pausad</string>
|
||||
<string name="loopsuspendedfor">Pausad (%1$d min)</string>
|
||||
<string name="loopsuperbolusfor">Superbolus (%1$d min)</string>
|
||||
|
@ -565,8 +561,6 @@ Eversense-appen.</string>
|
|||
<string name="show_statuslights_summary">Aktivera statusindikationerna för cage, iage, sage, reservoar och batterinivå på hemskärmen.</string>
|
||||
<string name="statuslights_res_warning">Varningsnivå för reservoar [U]</string>
|
||||
<string name="statuslights_res_critical">Akut varningsnivå för reservoar [U]</string>
|
||||
<string name="statuslights_bat_warning">Varningsnivå för batteri [%]</string>
|
||||
<string name="statuslights_bat_critical">Akut varningsnivå för batteri [%]</string>
|
||||
<string name="iob">IOB</string>
|
||||
<string name="cob">COB</string>
|
||||
<string name="virtualpump_firmware_label">Firmwareversion</string>
|
||||
|
@ -765,7 +759,6 @@ Eversense-appen.</string>
|
|||
<string name="combo_pump_state_running">Körs</string>
|
||||
<string name="combo_pump_action_cancelling_tbr">Avbryter temp basal</string>
|
||||
<string name="combo_pump_action_setting_tbr">Sätter temp basal (%1$d%% / %2$d min)</string>
|
||||
<string name="combo_pump_action_bolusing">Levererar bolus (%.1f enheter)</string>
|
||||
<string name="combo_pump_action_refreshing">Uppdaterar</string>
|
||||
<string name="combo_pump_unsupported_operation">Önskad åtgärd stöds inte av pumpen</string>
|
||||
<string name="combo_low_suspend_forced_notification">Osäker användning: Förlängd- eller kombibolus är aktiv. Loop mode är satt till att bromsa vid lågt BG i 6 timmar. Endast normala bolusar tillåtna i loopläge.</string>
|
||||
|
|
|
@ -143,8 +143,6 @@
|
|||
<string name="constraints_violation">Kısıtlamalar ihlali</string>
|
||||
<string name="treatmentdeliveryerror">Bolus teslimat hatası</string>
|
||||
<string name="tempbasaldeliveryerror">Geçici Bazal teslimat hatası</string>
|
||||
<string name="overview_newtempbasal_basalpercent">Bazal değeri [%]</string>
|
||||
<string name="overview_newtempbasal_percent_label">% ( 100% = aktuel)</string>
|
||||
<string name="setbasalquestion">Yeni geçici bazal oranını kabul et:</string>
|
||||
<string name="overview_treatment_label">Tedavi</string>
|
||||
<string name="overview_calculator_label">Hesap makinesi</string>
|
||||
|
@ -244,7 +242,6 @@
|
|||
<string name="danar_iob_label">IOB(Aktif insülin) pompa</string>
|
||||
<string name="danar_dailyunits">Günlük birimleri</string>
|
||||
<string name="pump_lastbolus_label">Son bolus</string>
|
||||
<string name="hoursago">%.1fs önce</string>
|
||||
<string name="danar_invalidinput">Geçersiz bilgi girişi</string>
|
||||
<string name="danar_valuenotsetproperly">Değer düzgün ayarlanmamış</string>
|
||||
<string name="reloadprofile">Dosyayı yeniden yükle</string>
|
||||
|
@ -503,7 +500,6 @@ Aktif Karbonhidratın ne kadar hızlı sindirildiğine ve KŞ\'nin beklenenden d
|
|||
<string name="resistantadult">Yetişkin İnsülin direnci</string>
|
||||
<string name="patientage_summary">Güvenlik sınırlarını ayarlamak için lütfen hasta yaşını seçiniz</string>
|
||||
<string name="Glimp">Glimp</string>
|
||||
<string name="needwhitelisting">%s, düzgün bir şekilde çalışması için devre dışı bırakılmış pil performans ayarlaması gerektirir</string>
|
||||
<string name="loopsuspended">Döngü durduldu</string>
|
||||
<string name="loopsuspendedfor">Askıya alındı (%1$d m)</string>
|
||||
<string name="loopsuperbolusfor">Superbolus (%1$d m)</string>
|
||||
|
@ -725,7 +721,6 @@ Aktif Karbonhidratın ne kadar hızlı sindirildiğine ve KŞ\'nin beklenenden d
|
|||
<string name="combo_pump_state_running">Çalışıyor</string>
|
||||
<string name="combo_pump_action_cancelling_tbr">TBR (Geçici Bazal Oranı) İptal ediliyor</string>
|
||||
<string name="combo_pump_action_setting_tbr">TBR(Geçici Bazal Oranı) ayarı (%1$d%% / %2$d dak)</string>
|
||||
<string name="combo_pump_action_bolusing">Bolus (%.1f U) teslim ediliyor</string>
|
||||
<string name="combo_pump_action_refreshing">Yenileniyor...</string>
|
||||
<string name="combo_pump_unsupported_operation">İstenen işlem pompası tarafından desteklenmiyor</string>
|
||||
<string name="combo_low_suspend_forced_notification">Güvensiz kullanım: yayım veya çoklu dalgalı (kare dalgalı) boluslar aktiftir. Döngü modu 6 saat içinde ekstra insülin vermeyecektir. Döngü modunda sadece normal boluslar desteklenir</string>
|
||||
|
|
|
@ -53,6 +53,7 @@
|
|||
<string name="description_wear">使用您的 WearOS 手表监视和控制 AndroidAPS。</string>
|
||||
<string name="description_xdrip_status_line">在 xDrip + 表盘上显示有关闭环的信息。</string>
|
||||
<string name="description_sms_communicator">远程控制 AndroidAPS 使用 SMS 短信命令。</string>
|
||||
<string name="objectives_button_back">返回</string>
|
||||
<string name="objectives_button_start">开始</string>
|
||||
<string name="objectives_button_verify">校验</string>
|
||||
<string name="nsprofileview_units_label">单位</string>
|
||||
|
@ -145,8 +146,6 @@
|
|||
<string name="constraints_violation">违反约束条件</string>
|
||||
<string name="treatmentdeliveryerror">大剂量输注错误</string>
|
||||
<string name="tempbasaldeliveryerror">临时基础输注错误</string>
|
||||
<string name="overview_newtempbasal_basalpercent">基础率数值 [%]</string>
|
||||
<string name="overview_newtempbasal_percent_label">% (100% = 当前)</string>
|
||||
<string name="setbasalquestion">接受新的临时基础率</string>
|
||||
<string name="overview_treatment_label">治疗</string>
|
||||
<string name="overview_calculator_label">计算器</string>
|
||||
|
@ -246,7 +245,6 @@
|
|||
<string name="danar_iob_label">泵 IOB</string>
|
||||
<string name="danar_dailyunits">每日单位数</string>
|
||||
<string name="pump_lastbolus_label">上次大剂量</string>
|
||||
<string name="hoursago">%.1fh 前</string>
|
||||
<string name="danar_invalidinput">无效的输入数据</string>
|
||||
<string name="danar_valuenotsetproperly">数值设定的不正确</string>
|
||||
<string name="reloadprofile">重新加载配置文件</string>
|
||||
|
@ -264,6 +262,10 @@
|
|||
<string name="smscommunicator_bolusreplywithcode">要输注大剂量胰岛素%1$.2fU 回复如下代码 %2$s</string>
|
||||
<string name="smscommunicator_calibrationreplywithcode">要发送校准值 %1$.2f 回复如下代码 %2$s</string>
|
||||
<string name="smscommunicator_bolusfailed">大剂量输注失败</string>
|
||||
<string name="bolusdelivered">已经成功输注大剂量%1$.2fU</string>
|
||||
<string name="bolusrequested">将要输注 %1$.2fU</string>
|
||||
<string name="smscommunicator_bolusdelivered">已经成功输注大剂量%1$.2fU</string>
|
||||
<string name="bolusdelivering">正在输注 %1$.2fU</string>
|
||||
<string name="smscommunicator_remotecommandsallowed">通过SMS短信允许远程命令</string>
|
||||
<string name="glucosetype_finger">手指</string>
|
||||
<string name="glucosetype_sensor">传感器</string>
|
||||
|
@ -331,11 +333,24 @@
|
|||
<string name="smscommunicator_loopisenabled">闭环被启用</string>
|
||||
<string name="valuelimitedto">%1$.2f 超过 %2$.2f的限制</string>
|
||||
<string name="smscommunicator_remotecommandnotallowed">远程命令没有被允许</string>
|
||||
<string name="smscommunicator_remotebolusnotallowed">远程大剂量不可用。请稍后再试。</string>
|
||||
<string name="smscommunicator_basalreplywithcode">要开始基础率 %1$.2fU/h 持续时间%2$d 分钟,请回复如下代码 %3$s</string>
|
||||
<string name="smscommunicator_profilereplywithcode">要切换配置文件到 %1$s %2$d%% 请回复代码 %3$s</string>
|
||||
<string name="smscommunicator_extendedreplywithcode">要开始扩展大剂量 %1$.2fU/h 持续时间%2$d 分钟,请回复如下代码 %3$s</string>
|
||||
<string name="smscommunicator_basalpctreplywithcode">要开始基础率 %1$d%% 持续时间%2$d 分钟,请回复如下代码 %3$s</string>
|
||||
<string name="smscommunicator_suspendreplywithcode">要暂停闭环 %1$d 分钟请回复如下代码 %2$s</string>
|
||||
<string name="smscommunicator_tempbasalset">临时基础率 %1$.2fU/h 持续 %2$d 分钟启用成功了</string>
|
||||
<string name="smscommunicator_extendedset">扩展大剂量 %1$.2fU/h 持续时间 %2$d 分钟已经启用成功了</string>
|
||||
<string name="smscommunicator_tempbasalset_percent">临时基础率 %1$d%% 持续时间 %2$d 分钟 启用成功了</string>
|
||||
<string name="smscommunicator_tempbasalfailed">开始临时基础率失败了</string>
|
||||
<string name="smscommunicator_extendedfailed">开始扩展大剂量失败了</string>
|
||||
<string name="smscommunicator_basalstopreplywithcode">要停止临时基础率,请回复如下代码 %1$s</string>
|
||||
<string name="smscommunicator_extendedstopreplywithcode">要停止扩展大剂量,请回复如下代码 %1$s</string>
|
||||
<string name="smscommunicator_tempbasalcanceled">临时基础率取消了</string>
|
||||
<string name="smscommunicator_extendedcanceled">扩展大剂量已经取消了</string>
|
||||
<string name="smscommunicator_tempbasalcancelfailed">取消临时基础率失败</string>
|
||||
<string name="smscommunicator_extendedcancelfailed">取消扩展大剂量失败</string>
|
||||
<string name="smscommunicator_unknowncommand">未知的命令或者错误的回复</string>
|
||||
<string name="quickwizard">快速向导</string>
|
||||
<string name="quickwizardsettings">快速向导设置</string>
|
||||
<string name="overview_editquickwizard_buttontext">按钮文本:</string>
|
||||
|
@ -505,7 +520,6 @@
|
|||
<string name="resistantadult">胰岛素抵抗成人</string>
|
||||
<string name="patientage_summary">请选择患者年龄以设置安全限制</string>
|
||||
<string name="Glimp">Glimp</string>
|
||||
<string name="needwhitelisting">%s 需要加入电池优化白名单才能正常运行</string>
|
||||
<string name="loopsuspended">闭环暂停了</string>
|
||||
<string name="loopsuspendedfor">暂停了 (%1$d m)</string>
|
||||
<string name="loopsuperbolusfor">超级大剂量 (%1$d m)</string>
|
||||
|
@ -541,8 +555,6 @@
|
|||
<string name="show_statuslights_summary">在主屏幕上启用cage(碳水时间)、iage(胰岛素时间)、sage(探头使用时间)、储药器和电池电量的状态指示灯。</string>
|
||||
<string name="statuslights_res_warning">储药器药量低于阈值[U] 警告</string>
|
||||
<string name="statuslights_res_critical">储药器药量低于阈值[U] 严重警告</string>
|
||||
<string name="statuslights_bat_warning">电池电量低于阈值[%] 警告</string>
|
||||
<string name="statuslights_bat_critical">电池电量低于阈值[%] 严重警告</string>
|
||||
<string name="iob">IOB活性胰岛素</string>
|
||||
<string name="cob">COB活性碳水</string>
|
||||
<string name="virtualpump_firmware_label">固件</string>
|
||||
|
@ -550,6 +562,7 @@
|
|||
<string name="danar_bluetooth_status">蓝牙状态</string>
|
||||
<string name="nav_about">关于</string>
|
||||
<string name="smscommunicator_missingsmspermission">缺少 SMS 短信权限</string>
|
||||
<string name="smscommunicator_missingphonestatepermission">缺少手机状态权限</string>
|
||||
<string name="xdripstatus_settings">xDrip 状态 (手表)</string>
|
||||
<string name="xdripstatus">xDrip 状态线 (手表)</string>
|
||||
<string name="xdripstatus_shortname">xdrip</string>
|
||||
|
@ -735,7 +748,6 @@
|
|||
<string name="combo_pump_state_running">正在运行</string>
|
||||
<string name="combo_pump_action_cancelling_tbr">正在取消临时基础率</string>
|
||||
<string name="combo_pump_action_setting_tbr">正在设置临时基础率 (%1$d%% / %2$d 分钟)</string>
|
||||
<string name="combo_pump_action_bolusing">正在输注大剂量 (%.1f U)</string>
|
||||
<string name="combo_pump_action_refreshing">正在刷新</string>
|
||||
<string name="combo_pump_unsupported_operation">泵不支持请求的操作</string>
|
||||
<string name="combo_low_suspend_forced_notification">不安全的用法: 扩展大剂量(方波) 或者双波被启用了,闭环只支持常规大剂量, 闭环已经被设置为6个小时的低血糖暂停模式(low-suspend only 6 hours).</string>
|
||||
|
@ -1001,6 +1013,7 @@
|
|||
<string name="nth_objective">%1$d.目标</string>
|
||||
<string name="poctech">Poctech</string>
|
||||
<string name="description_source_poctech">从 Poctech app 接收血糖值。</string>
|
||||
<string name="description_source_tomato">从番茄app(喵喵设备) 接收血糖值</string>
|
||||
<string name="high_temptarget_raises_sensitivity_title">高临时目标增加灵敏度</string>
|
||||
<string name="high_temptarget_raises_sensitivity_summary"><![CDATA[当临时目标 >=100 mg/dl (5.5 mmol/l) 时提高灵敏度]]></string>
|
||||
<string name="low_temptarget_lowers_sensitivity_title">低临时目标降低灵敏度</string>
|
||||
|
@ -1057,6 +1070,7 @@
|
|||
<string name="mute_alert">静音</string>
|
||||
<string name="pump_alert">泵警报</string>
|
||||
<string name="log_site_changes">记录位置更换</string>
|
||||
<string name="log_reservoir_changes">记录储药器更换</string>
|
||||
<string name="log_tube_changes">记录管路更换</string>
|
||||
<string name="log_battery_changes">记录电池更换</string>
|
||||
<string name="log_operating_mode_changes">记录操作模式更改</string>
|
||||
|
@ -1100,6 +1114,7 @@
|
|||
<string name="short_status_last_connected">最后一次连接: %1$d 分钟前</string>
|
||||
<string name="short_status_tbr">临时基础率: %1$d%% for %2$d / %3$d 分钟</string>
|
||||
<string name="short_status_extended">扩展: %1$.2f / %2$.2f U 为 %3$d 分钟</string>
|
||||
<string name="short_status_multiwave">多波: %1$.2f / %2$.2f U 持续时间 %3$d 分钟</string>
|
||||
<string name="short_status_tdd">TDD(日输注总量): %1$.2f</string>
|
||||
<string name="short_status_reservoir">Reser.: %1$.2fU</string>
|
||||
<string name="short_status_battery">电池: %1$d%%</string>
|
||||
|
@ -1113,6 +1128,16 @@
|
|||
<string name="profile_per_unit">/U</string>
|
||||
<string name="dexcom_lognssensorchange_title">记录传感器更换至NS服务器</string>
|
||||
<string name="dexcom_lognssensorchange_summary">在传感器启动时在 NS服务器 自动创建事件 \"传感器更改\"</string>
|
||||
<string name="tomato">番茄(喵喵)</string>
|
||||
<string name="tomato_short">番茄</string>
|
||||
<string name="dst_in_24h_warning">在24小时内或更少时间内更夏令时时间</string>
|
||||
<string name="dst_loop_disabled_warning">不到3小时前夏令时时间变化了-已禁用闭环</string>
|
||||
<string name="storage">内部储存空间不足</string>
|
||||
<string name="diskfull">至少 剩余%1$d MB 内部存储!闭环已禁用!</string>
|
||||
<string name="wrongformat">格式错误</string>
|
||||
<string name="sms_wrongcode">错误的代码。命令取消</string>
|
||||
<string name="notconfigured">未配置</string>
|
||||
<string name="profileswitchcreated">配置文件切换已创建</string>
|
||||
<plurals name="objective_days">
|
||||
<item quantity="other">%1$d 天</item>
|
||||
</plurals>
|
||||
|
|
|
@ -152,8 +152,8 @@
|
|||
<string name="constraints_violation">Constraints violation</string>
|
||||
<string name="treatmentdeliveryerror">Bolus delivery error</string>
|
||||
<string name="tempbasaldeliveryerror">Tempbasal delivery error</string>
|
||||
<string name="overview_newtempbasal_basalpercent">Basal value [%]</string>
|
||||
<string name="overview_newtempbasal_percent_label">% (100% = current)</string>
|
||||
<string name="overview_newtempbasal_basalpercent">Basal value [%%]</string>
|
||||
<string name="overview_newtempbasal_percent_label">%% (100%% = current)</string>
|
||||
<string name="setbasalquestion">Accept new temp basal:</string>
|
||||
<string name="overview_treatment_label">Treatment</string>
|
||||
<string name="overview_calculator_label">Calculator</string>
|
||||
|
@ -276,7 +276,7 @@
|
|||
<string name="danar_iob_label">Pump IOB</string>
|
||||
<string name="danar_dailyunits">Daily units</string>
|
||||
<string name="pump_lastbolus_label">Last bolus</string>
|
||||
<string name="hoursago">%.1fh ago</string>
|
||||
<string name="hoursago">%1$.1fh ago</string>
|
||||
<string name="danar_invalidinput">Invalid input data</string>
|
||||
<string name="danar_valuenotsetproperly">Value not set properly</string>
|
||||
<string name="reloadprofile">Reload profile</string>
|
||||
|
@ -582,7 +582,7 @@
|
|||
<string name="patientage_summary">Please select patient age to setup safety limits</string>
|
||||
<string name="key_i_understand" translatable="false">I_understand</string>
|
||||
<string name="Glimp">Glimp</string>
|
||||
<string name="needwhitelisting">%s needs battery optimalization whitelisting for proper performance</string>
|
||||
<string name="needwhitelisting">%1$s needs battery optimalization whitelisting for proper performance</string>
|
||||
<string name="loopsuspended">Loop suspended</string>
|
||||
<string name="loopsuspendedfor">Suspended (%1$d m)</string>
|
||||
<string name="loopsuperbolusfor">Superbolus (%1$d m)</string>
|
||||
|
@ -624,9 +624,9 @@
|
|||
<string name="key_statuslights_res_critical" translatable="false">key_statuslights_res_critical</string>
|
||||
<string name="statuslights_res_critical">Threshold critical reservoir level [U]</string>
|
||||
<string name="key_statuslights_bat_warning" translatable="false">key_statuslights_bat_warning</string>
|
||||
<string name="statuslights_bat_warning">Threshold warning battery level [%]</string>
|
||||
<string name="statuslights_bat_warning">Threshold warning battery level [%%]</string>
|
||||
<string name="key_statuslights_bat_critical" translatable="false">key_statuslights_bat_critical</string>
|
||||
<string name="statuslights_bat_critical">Threshold critical battery level [%]</string>
|
||||
<string name="statuslights_bat_critical">Threshold critical battery level [%%]</string>
|
||||
<string name="iob">IOB</string>
|
||||
<string name="cob">COB</string>
|
||||
<string name="virtualpump_firmware_label">Firmware</string>
|
||||
|
@ -869,7 +869,7 @@
|
|||
<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 (%1$d%% / %2$d min)</string>
|
||||
<string name="combo_pump_action_bolusing">Bolusing (%.1f U)</string>
|
||||
<string name="combo_pump_action_bolusing">Bolusing (%1$.1f U)</string>
|
||||
<string name="combo_pump_action_refreshing">Refreshing</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>
|
||||
|
@ -1326,6 +1326,15 @@
|
|||
<string name="sms_wrongcode">Wrong code. Command cancelled.</string>
|
||||
<string name="notconfigured">Not configured</string>
|
||||
<string name="profileswitchcreated">Profile switch created</string>
|
||||
<string name="versionChecker">Version Checker</string>
|
||||
<string name="key_last_time_this_version_detected" translatable="false">last_time_this_version_detected</string>
|
||||
<string name="key_last_versionchecker_warning" translatable="false">last_versionchecker_waring</string>
|
||||
<string name="key_last_versionchecker_plugin_warning" translatable="false">last_versionchecker_plugin_waring</string>
|
||||
|
||||
<string name="old_version">old version</string>
|
||||
<string name="very_old_version">very old version</string>
|
||||
<string name="new_version_warning">New version for at least %1$d days available! Fallback to LGS after 60 days, loop will be disabled after 90 days</string>
|
||||
|
||||
<plurals name="objective_days">
|
||||
<item quantity="one">%1$d day</item>
|
||||
<item quantity="other">%1$d days</item>
|
||||
|
|
|
@ -282,10 +282,13 @@ public class AAPSMocker {
|
|||
PowerMockito.when(ProfileFunctions.getInstance().getProfileName()).thenReturn(TESTPROFILENAME);
|
||||
}
|
||||
|
||||
public static void mockIobCobCalculatorPlugin() {
|
||||
public static IobCobCalculatorPlugin mockIobCobCalculatorPlugin() {
|
||||
PowerMockito.mockStatic(IobCobCalculatorPlugin.class);
|
||||
IobCobCalculatorPlugin iobCobCalculatorPlugin = PowerMockito.mock(IobCobCalculatorPlugin.class);
|
||||
PowerMockito.when(IobCobCalculatorPlugin.getPlugin()).thenReturn(iobCobCalculatorPlugin);
|
||||
Object dataLock = new Object();
|
||||
PowerMockito.when(iobCobCalculatorPlugin.getDataLock()).thenReturn(dataLock);
|
||||
return iobCobCalculatorPlugin;
|
||||
}
|
||||
|
||||
private static MockedBus bus = new MockedBus();
|
||||
|
|
|
@ -289,7 +289,7 @@ public class ConstraintsCheckerTest {
|
|||
//SafetyPlugin
|
||||
when(ConfigBuilderPlugin.getPlugin().getActivePump()).thenReturn(pump);
|
||||
|
||||
constraintChecker = new ConstraintChecker(mainApp);
|
||||
constraintChecker = new ConstraintChecker();
|
||||
|
||||
safetyPlugin = SafetyPlugin.getPlugin();
|
||||
objectivesPlugin = ObjectivesPlugin.getPlugin();
|
||||
|
|
|
@ -0,0 +1,230 @@
|
|||
package info.nightscout.androidaps.plugins.general.versionChecker
|
||||
|
||||
import com.squareup.otto.Bus
|
||||
import info.nightscout.androidaps.MainApp
|
||||
import info.nightscout.androidaps.R
|
||||
import info.nightscout.androidaps.logging.L
|
||||
import info.nightscout.androidaps.utils.SP
|
||||
import org.junit.Assert.assertEquals
|
||||
import org.junit.Test
|
||||
import org.junit.runner.RunWith
|
||||
import org.mockito.ArgumentMatchers
|
||||
import org.mockito.Mockito.*
|
||||
import org.powermock.api.mockito.PowerMockito
|
||||
import org.powermock.core.classloader.annotations.PrepareForTest
|
||||
import org.powermock.modules.junit4.PowerMockRunner
|
||||
|
||||
|
||||
@RunWith(PowerMockRunner::class)
|
||||
class VersionCheckerUtilsKtTest {
|
||||
@Test
|
||||
fun findVersionMatchesRegularVersion() {
|
||||
val buildGradle = """blabla
|
||||
| android {
|
||||
| aosenuthoae
|
||||
| }
|
||||
| version = "2.2.2"
|
||||
| appName = "Aaoeu"
|
||||
""".trimMargin()
|
||||
val detectedVersion: String? = buildGradle.byteInputStream().findVersion()
|
||||
assertEquals("2.2.2", detectedVersion)
|
||||
}
|
||||
|
||||
|
||||
// In case we merge a "x.x.x-dev" into master, don't see it as update.
|
||||
@Test
|
||||
fun `should return null on non-digit versions on master`() {
|
||||
val buildGradle = """blabla
|
||||
| android {
|
||||
| aosenuthoae
|
||||
| }
|
||||
| version = "2.2.2-nefarious-underground-mod"
|
||||
| appName = "Aaoeu"
|
||||
""".trimMargin()
|
||||
val detectedVersion: String? = buildGradle.byteInputStream().findVersion()
|
||||
assertEquals(null, detectedVersion)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun findVersionMatchesDoesNotMatchErrorResponse() {
|
||||
val buildGradle = """<html><body>Balls! No build.gradle here. Move along</body><html>"""
|
||||
val detectedVersion: String? = buildGradle.byteInputStream().findVersion()
|
||||
assertEquals(null, detectedVersion)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testVersionStrip() {
|
||||
assertEquals("2.2.2", "2.2.2".versionStrip())
|
||||
assertEquals("2.2.2", "2.2.2-dev".versionStrip())
|
||||
assertEquals("2.2.2", "2.2.2dev".versionStrip())
|
||||
assertEquals("2.2.2", """"2.2.2"""".versionStrip())
|
||||
}
|
||||
|
||||
@Test
|
||||
@PrepareForTest(MainApp::class, L::class, SP::class)
|
||||
fun `should find update1`() {
|
||||
val bus = prepareBus()
|
||||
|
||||
compareWithCurrentVersion(newVersion = "2.2.3", currentVersion = "2.2.1")
|
||||
|
||||
verify(bus, times(1)).post(any())
|
||||
|
||||
PowerMockito.verifyStatic(SP::class.java, times(1))
|
||||
SP.getLong(eq(R.string.key_last_versionchecker_warning), ArgumentMatchers.anyLong())
|
||||
PowerMockito.verifyStatic(SP::class.java, times(1))
|
||||
SP.putLong(eq(R.string.key_last_versionchecker_warning), ArgumentMatchers.anyLong())
|
||||
PowerMockito.verifyNoMoreInteractions(SP::class.java)
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
@PrepareForTest(MainApp::class, L::class, SP::class)
|
||||
fun `should find update2`() {
|
||||
val bus = prepareBus()
|
||||
|
||||
compareWithCurrentVersion(newVersion = "2.2.3", currentVersion = "2.2.1-dev")
|
||||
|
||||
verify(bus, times(1)).post(any())
|
||||
|
||||
PowerMockito.verifyStatic(SP::class.java, times(1))
|
||||
SP.getLong(eq(R.string.key_last_versionchecker_warning), ArgumentMatchers.anyLong())
|
||||
PowerMockito.verifyStatic(SP::class.java, times(1))
|
||||
SP.putLong(eq(R.string.key_last_versionchecker_warning), ArgumentMatchers.anyLong())
|
||||
PowerMockito.verifyNoMoreInteractions(SP::class.java)
|
||||
}
|
||||
|
||||
@Test
|
||||
@PrepareForTest(MainApp::class, L::class, SP::class)
|
||||
fun `should find update3`() {
|
||||
val bus = prepareBus()
|
||||
|
||||
compareWithCurrentVersion(newVersion = "2.2.3", currentVersion = "2.1")
|
||||
|
||||
verify(bus, times(1)).post(any())
|
||||
|
||||
PowerMockito.verifyStatic(SP::class.java, times(1))
|
||||
SP.getLong(eq(R.string.key_last_versionchecker_warning), ArgumentMatchers.anyLong())
|
||||
PowerMockito.verifyStatic(SP::class.java, times(1))
|
||||
SP.putLong(eq(R.string.key_last_versionchecker_warning), ArgumentMatchers.anyLong())
|
||||
PowerMockito.verifyNoMoreInteractions(SP::class.java)
|
||||
}
|
||||
|
||||
@Test
|
||||
@PrepareForTest(MainApp::class, L::class, SP::class)
|
||||
fun `should find update4`() {
|
||||
val bus = prepareBus()
|
||||
|
||||
compareWithCurrentVersion(newVersion = "2.2", currentVersion = "2.1.1")
|
||||
|
||||
verify(bus, times(1)).post(any())
|
||||
|
||||
PowerMockito.verifyStatic(SP::class.java, times(1))
|
||||
SP.getLong(eq(R.string.key_last_versionchecker_warning), ArgumentMatchers.anyLong())
|
||||
PowerMockito.verifyStatic(SP::class.java, times(1))
|
||||
SP.putLong(eq(R.string.key_last_versionchecker_warning), ArgumentMatchers.anyLong())
|
||||
PowerMockito.verifyNoMoreInteractions(SP::class.java)
|
||||
}
|
||||
|
||||
@Test
|
||||
@PrepareForTest(MainApp::class, L::class, SP::class)
|
||||
fun `should find update5`() {
|
||||
val bus = prepareBus()
|
||||
compareWithCurrentVersion(newVersion = "2.2.1", currentVersion = "2.2-dev")
|
||||
|
||||
verify(bus, times(1)).post(any())
|
||||
|
||||
PowerMockito.verifyStatic(SP::class.java, times(1))
|
||||
SP.getLong(eq(R.string.key_last_versionchecker_warning), ArgumentMatchers.anyLong())
|
||||
PowerMockito.verifyStatic(SP::class.java, times(1))
|
||||
SP.putLong(eq(R.string.key_last_versionchecker_warning), ArgumentMatchers.anyLong())
|
||||
PowerMockito.verifyNoMoreInteractions(SP::class.java)
|
||||
}
|
||||
|
||||
@Test
|
||||
@PrepareForTest(MainApp::class, L::class, SP::class)
|
||||
fun `should find update6`() {
|
||||
val bus = prepareBus()
|
||||
compareWithCurrentVersion(newVersion = "2.2.1", currentVersion = "2.2dev")
|
||||
|
||||
verify(bus, times(1)).post(any())
|
||||
|
||||
PowerMockito.verifyStatic(SP::class.java, times(1))
|
||||
SP.getLong(eq(R.string.key_last_versionchecker_warning), ArgumentMatchers.anyLong())
|
||||
PowerMockito.verifyStatic(SP::class.java, times(1))
|
||||
SP.putLong(eq(R.string.key_last_versionchecker_warning), ArgumentMatchers.anyLong())
|
||||
PowerMockito.verifyNoMoreInteractions(SP::class.java)
|
||||
}
|
||||
|
||||
@Test
|
||||
@PrepareForTest(MainApp::class, L::class, SP::class)
|
||||
fun `find same version`() {
|
||||
val buildGradle = """blabla
|
||||
| android {
|
||||
| aosenuthoae
|
||||
| }
|
||||
| version = "2.2.2"
|
||||
| appName = "Aaoeu"
|
||||
""".trimMargin()
|
||||
val bus = prepareBus()
|
||||
compareWithCurrentVersion(buildGradle.byteInputStream().findVersion(), currentVersion = "2.2.2")
|
||||
|
||||
verify(bus, times(0)).post(any())
|
||||
|
||||
PowerMockito.verifyStatic(SP::class.java, times(1))
|
||||
SP.putLong(eq(R.string.key_last_time_this_version_detected), ArgumentMatchers.anyLong())
|
||||
PowerMockito.verifyNoMoreInteractions(SP::class.java)
|
||||
}
|
||||
|
||||
@Test
|
||||
@PrepareForTest(MainApp::class, L::class, SP::class)
|
||||
fun `find higher version`() {
|
||||
val buildGradle = """blabla
|
||||
| android {
|
||||
| aosenuthoae
|
||||
| }
|
||||
| version = "3.0"
|
||||
| appName = "Aaoeu"
|
||||
""".trimMargin()
|
||||
val bus = prepareBus()
|
||||
compareWithCurrentVersion(buildGradle.byteInputStream().findVersion(), currentVersion = "2.2.2")
|
||||
|
||||
verify(bus, times(1)).post(any())
|
||||
|
||||
PowerMockito.verifyStatic(SP::class.java, times(1))
|
||||
SP.getLong(eq(R.string.key_last_versionchecker_warning), ArgumentMatchers.anyLong())
|
||||
PowerMockito.verifyStatic(SP::class.java, times(1))
|
||||
SP.putLong(eq(R.string.key_last_versionchecker_warning), ArgumentMatchers.anyLong())
|
||||
PowerMockito.verifyNoMoreInteractions(SP::class.java)
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
@PrepareForTest(System::class)
|
||||
fun `set time`() {
|
||||
PowerMockito.spy(System::class.java)
|
||||
PowerMockito.`when`(System.currentTimeMillis()).thenReturn(100L)
|
||||
|
||||
assertEquals(100L, System.currentTimeMillis())
|
||||
}
|
||||
|
||||
private fun prepareBus(): Bus {
|
||||
PowerMockito.mockStatic(MainApp::class.java)
|
||||
val mainApp = mock<MainApp>(MainApp::class.java)
|
||||
`when`(MainApp.instance()).thenReturn(mainApp)
|
||||
val bus = mock(Bus::class.java)
|
||||
`when`(MainApp.bus()).thenReturn(bus)
|
||||
`when`(MainApp.gs(ArgumentMatchers.anyInt())).thenReturn("some dummy string")
|
||||
prepareSP()
|
||||
return bus
|
||||
}
|
||||
|
||||
private fun prepareSP() {
|
||||
PowerMockito.mockStatic(SP::class.java)
|
||||
}
|
||||
|
||||
private fun prepareLogging() {
|
||||
PowerMockito.mockStatic(L::class.java)
|
||||
`when`(L.isEnabled(any())).thenReturn(true)
|
||||
}
|
||||
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
package info.nightscout.androidaps.data;
|
||||
package info.nightscout.androidaps.plugins.iob.iobCobCalculatorPlugin;
|
||||
|
||||
import org.json.JSONException;
|
||||
import org.json.JSONObject;
|
||||
|
@ -16,6 +16,7 @@ import java.util.List;
|
|||
import info.AAPSMocker;
|
||||
import info.nightscout.androidaps.MainApp;
|
||||
import info.nightscout.androidaps.db.BgReading;
|
||||
import info.nightscout.androidaps.plugins.iob.iobCobCalculator.GlucoseStatus;
|
||||
import info.nightscout.androidaps.plugins.iob.iobCobCalculator.IobCobCalculatorPlugin;
|
||||
import info.nightscout.androidaps.plugins.general.nsclient.data.NSSgv;
|
||||
import info.nightscout.androidaps.utils.DateUtil;
|
||||
|
@ -133,10 +134,7 @@ public class GlucoseStatusTest {
|
|||
public void initMocking() {
|
||||
AAPSMocker.mockMainApp();
|
||||
AAPSMocker.mockStrings();
|
||||
|
||||
PowerMockito.mockStatic(IobCobCalculatorPlugin.class);
|
||||
iobCobCalculatorPlugin = mock(IobCobCalculatorPlugin.class);
|
||||
when(IobCobCalculatorPlugin.getPlugin()).thenReturn(iobCobCalculatorPlugin);
|
||||
iobCobCalculatorPlugin = AAPSMocker.mockIobCobCalculatorPlugin();
|
||||
|
||||
PowerMockito.mockStatic(DateUtil.class);
|
||||
when(DateUtil.now()).thenReturn(1514766900000L + T.mins(1).msecs());
|
|
@ -9,7 +9,7 @@ import org.powermock.modules.junit4.PowerMockRunner;
|
|||
|
||||
import info.AAPSMocker;
|
||||
import info.nightscout.androidaps.MainApp;
|
||||
import info.nightscout.androidaps.data.GlucoseStatus;
|
||||
import info.nightscout.androidaps.plugins.iob.iobCobCalculator.GlucoseStatus;
|
||||
import info.nightscout.androidaps.data.IobTotal;
|
||||
import info.nightscout.androidaps.data.Profile;
|
||||
import info.nightscout.androidaps.interfaces.PumpInterface;
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
// Top-level build file where you can add configuration options common to all sub-projects/modules.
|
||||
|
||||
buildscript {
|
||||
ext.kotlin_version = '1.3.21'
|
||||
repositories {
|
||||
google()
|
||||
jcenter()
|
||||
|
@ -16,6 +17,7 @@ buildscript {
|
|||
// in the individual module build.gradle files
|
||||
|
||||
classpath 'com.jakewharton:butterknife-gradle-plugin:9.0.0-SNAPSHOT'
|
||||
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue