Merge branch 'dev' into dagger3

This commit is contained in:
Milos Kozak 2019-12-26 14:41:52 +01:00
commit f8f1fc54be
53 changed files with 801 additions and 355 deletions

View file

@ -116,7 +116,7 @@
<!-- Auto start -->
<receiver
android:name=".plugins.general.nsclient.receivers.AutoStartReceiver"
android:name=".receivers.AutoStartReceiver"
android:enabled="true"
android:exported="true">
<intent-filter>

View file

@ -94,8 +94,6 @@ public class MainActivity extends NoSplashAppCompatActivity {
// initialize screen wake lock
processPreferenceChange(new EventPreferenceChange(R.string.key_keep_screen_on));
doMigrations();
final ViewPager viewPager = findViewById(R.id.pager);
viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
@ -141,7 +139,7 @@ public class MainActivity extends NoSplashAppCompatActivity {
.subscribe(this::processPreferenceChange, FabricPrivacy::logException)
);
if (!SP.getBoolean(R.string.key_setupwizard_processed, false) || !SP.contains(R.string.key_units)) {
if (!SP.getBoolean(R.string.key_setupwizard_processed, false)) {
Intent intent = new Intent(this, SetupWizardActivity.class);
startActivity(intent);
}
@ -235,17 +233,6 @@ public class MainActivity extends NoSplashAppCompatActivity {
}
}
private void doMigrations() {
// guarantee that the unreachable threshold is at least 30 and of type String
// Added in 1.57 at 21.01.2018
int unreachable_threshold = SP.getInt(R.string.key_pump_unreachable_threshold, 30);
SP.remove(R.string.key_pump_unreachable_threshold);
if (unreachable_threshold < 30) unreachable_threshold = 30;
SP.putString(R.string.key_pump_unreachable_threshold, Integer.toString(unreachable_threshold));
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);

View file

@ -14,6 +14,7 @@ import com.j256.ormlite.android.apptools.OpenHelperManager;
import net.danlew.android.joda.JodaTimeAndroid;
import org.json.JSONException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -25,6 +26,7 @@ import javax.inject.Inject;
import dagger.android.AndroidInjector;
import dagger.android.DaggerApplication;
import info.nightscout.androidaps.data.ConstraintChecker;
import info.nightscout.androidaps.data.Profile;
import info.nightscout.androidaps.db.DatabaseHelper;
import info.nightscout.androidaps.dependencyInjection.DaggerAppComponent;
import info.nightscout.androidaps.interfaces.PluginBase;
@ -36,6 +38,7 @@ import info.nightscout.androidaps.plugins.aps.openAPSAMA.OpenAPSAMAPlugin;
import info.nightscout.androidaps.plugins.aps.openAPSMA.OpenAPSMAPlugin;
import info.nightscout.androidaps.plugins.aps.openAPSSMB.OpenAPSSMBPlugin;
import info.nightscout.androidaps.plugins.configBuilder.ConfigBuilderPlugin;
import info.nightscout.androidaps.plugins.configBuilder.ProfileFunctions;
import info.nightscout.androidaps.plugins.constraints.dstHelper.DstHelperPlugin;
import info.nightscout.androidaps.plugins.constraints.objectives.ObjectivesPlugin;
import info.nightscout.androidaps.plugins.constraints.safety.SafetyPlugin;
@ -94,7 +97,7 @@ import info.nightscout.androidaps.services.Intents;
import info.nightscout.androidaps.utils.ActivityMonitor;
import info.nightscout.androidaps.utils.FabricPrivacy;
import info.nightscout.androidaps.utils.LocaleHelper;
import info.nightscout.androidaps.utils.sharedPreferences.SPImpl;
import info.nightscout.androidaps.utils.SP;
import io.fabric.sdk.android.Fabric;
import static info.nightscout.androidaps.plugins.constraints.versionChecker.VersionCheckerUtilsKt.triggerCheckVersion;
@ -252,6 +255,32 @@ public class MainApp extends DaggerApplication {
startKeepAliveService();
}).start();
}
doMigrations();
}
private void doMigrations() {
// guarantee that the unreachable threshold is at least 30 and of type String
// Added in 1.57 at 21.01.2018
int unreachable_threshold = SP.getInt(R.string.key_pump_unreachable_threshold, 30);
SP.remove(R.string.key_pump_unreachable_threshold);
if (unreachable_threshold < 30) unreachable_threshold = 30;
SP.putString(R.string.key_pump_unreachable_threshold, Integer.toString(unreachable_threshold));
// 2.5 -> 2.6
if (!SP.contains(R.string.key_units)) {
String newUnits = Constants.MGDL;
Profile p = ProfileFunctions.getInstance().getProfile();
if (p != null && p.getData() != null && p.getData().has("units")) {
try {
newUnits = p.getData().getString("units");
} catch (JSONException e) {
log.error("Unhandled exception", e);
}
}
SP.putString(R.string.key_units, newUnits);
}
}
@Override

View file

@ -589,7 +589,7 @@ public class Profile {
public double getMaxDailyBasal() {
double max = 0d;
for (int hour = 0; hour < 24; hour++) {
double value = getBasalTimeFromMidnight((Integer) (hour * 60 * 60));
double value = getBasalTimeFromMidnight(hour * 60 * 60);
if (value > max) max = value;
}
return max;

View file

@ -1,6 +1,7 @@
package info.nightscout.androidaps.data
import androidx.collection.ArrayMap
import info.nightscout.androidaps.utils.JsonHelper
import org.json.JSONException
import org.json.JSONObject
import org.slf4j.LoggerFactory
@ -40,21 +41,19 @@ class ProfileStore(val data: JSONObject) {
fun getSpecificProfile(profileName: String): Profile? {
var profile: Profile? = null
try {
getStore()?.let { store ->
if (store.has(profileName)) {
profile = cachedObjects[profileName]
if (profile == null) {
val profileObject = store.getJSONObject(profileName)
if (profileObject != null && profileObject.has("units")) {
profile = Profile(profileObject, profileObject.getString("units"))
getStore()?.let { store ->
if (store.has(profileName)) {
profile = cachedObjects[profileName]
if (profile == null) {
JsonHelper.safeGetJSONObject(store, profileName, null)?.let { profileObject ->
// take units from profile and if N/A from store
JsonHelper.safeGetStringAllowNull(profileObject, "units", JsonHelper.safeGetString(store, "units"))?.let { units ->
profile = Profile(profileObject, units)
cachedObjects[profileName] = profile
}
}
}
}
} catch (e: JSONException) {
log.error("Unhandled exception", e)
}
return profile
}

View file

@ -0,0 +1,107 @@
package info.nightscout.androidaps.plugins.general.automation.elements;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.LinearLayout;
import android.widget.Spinner;
import androidx.annotation.StringRes;
import java.util.ArrayList;
import java.util.List;
import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.R;
public class InputLocationMode extends Element {
public enum Mode {
INSIDE,
OUTSIDE,
GOING_IN,
GOING_OUT;
public @StringRes
int getStringRes() {
switch (this) {
case INSIDE:
return R.string.location_inside;
case OUTSIDE:
return R.string.location_outside;
case GOING_IN:
return R.string.location_going_in;
case GOING_OUT:
return R.string.location_going_out;
default:
return R.string.unknown;
}
}
public static List<String> labels() {
List<String> list = new ArrayList<>();
for (Mode c : Mode.values()) {
list.add(MainApp.gs(c.getStringRes()));
}
return list;
}
public Mode fromString(String wanted){
for (Mode c : Mode.values()) {
if(c.toString() == wanted)
return c;
}
return null;
}
}
private Mode mode;
public InputLocationMode() {
super();
mode = Mode.INSIDE;
}
public InputLocationMode(InputLocationMode another) {
super();
this.mode = another.mode;
}
@Override
public void addToLayout(LinearLayout root) {
ArrayAdapter<String> adapter = new ArrayAdapter<>(root.getContext(),
R.layout.spinner_centered, Mode.labels());
Spinner spinner = new Spinner(root.getContext());
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
LinearLayout.LayoutParams spinnerParams = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.WRAP_CONTENT
);
spinnerParams.setMargins(0, MainApp.dpToPx(4), 0, MainApp.dpToPx(4));
spinner.setLayoutParams(spinnerParams);
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
setValue(Mode.values()[position]);
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
spinner.setSelection(this.getValue().ordinal());
root.addView(spinner);
}
public Mode getValue() {
return mode;
}
public InputLocationMode setValue(Mode mode) {
this.mode = mode;
return this;
}
}

View file

@ -19,6 +19,7 @@ import info.nightscout.androidaps.R;
import info.nightscout.androidaps.logging.L;
import info.nightscout.androidaps.plugins.general.automation.elements.InputButton;
import info.nightscout.androidaps.plugins.general.automation.elements.InputDouble;
import info.nightscout.androidaps.plugins.general.automation.elements.InputLocationMode;
import info.nightscout.androidaps.plugins.general.automation.elements.InputString;
import info.nightscout.androidaps.plugins.general.automation.elements.LabelWithElement;
import info.nightscout.androidaps.plugins.general.automation.elements.LayoutBuilder;
@ -28,12 +29,17 @@ import info.nightscout.androidaps.utils.DateUtil;
import info.nightscout.androidaps.utils.JsonHelper;
import info.nightscout.androidaps.utils.T;
import static info.nightscout.androidaps.plugins.general.automation.elements.InputLocationMode.Mode.*;
public class TriggerLocation extends Trigger {
private static Logger log = LoggerFactory.getLogger(L.AUTOMATION);
InputDouble latitude = new InputDouble(0d, -90d, +90d, 0.000001d, new DecimalFormat("0.000000"));
InputDouble longitude = new InputDouble(0d, -180d, +180d, 0.000001d, new DecimalFormat("0.000000"));
InputDouble distance = new InputDouble(200d, 0, 100000, 10d, new DecimalFormat("0"));
InputLocationMode modeSelected = new InputLocationMode();
InputLocationMode.Mode lastMode = INSIDE;
InputString name = new InputString();
private Runnable buttonAction = () -> {
@ -54,13 +60,16 @@ public class TriggerLocation extends Trigger {
latitude = new InputDouble(triggerLocation.latitude);
longitude = new InputDouble(triggerLocation.longitude);
distance = new InputDouble(triggerLocation.distance);
modeSelected = new InputLocationMode(triggerLocation.modeSelected);
if (modeSelected.getValue() == GOING_OUT)
lastMode = OUTSIDE;
lastRun = triggerLocation.lastRun;
name = triggerLocation.name;
}
@Override
public synchronized boolean shouldRun() {
Location location = LocationService.getLastLocation();
Location location = this.getCurrentLocation();
if (location == null)
return false;
@ -72,11 +81,20 @@ public class TriggerLocation extends Trigger {
a.setLongitude(longitude.getValue());
double calculatedDistance = location.distanceTo(a);
if (calculatedDistance < distance.getValue()) {
// log.debug("Moded(current/last/wanted): "+(currentMode(calculatedDistance))+"/"+lastMode+"/"+modeSelected.getValue());
// log.debug("Distance: "+calculatedDistance + "("+distance.getValue()+")");
if ((modeSelected.getValue() == INSIDE) && (calculatedDistance <= distance.getValue()) ||
((modeSelected.getValue() == OUTSIDE) && (calculatedDistance > distance.getValue())) ||
((modeSelected.getValue() == GOING_IN) && (calculatedDistance <= distance.getValue()) && (lastMode == OUTSIDE)) ||
((modeSelected.getValue() == GOING_OUT) && (calculatedDistance > distance.getValue()) && (lastMode == INSIDE))
) {
if (L.isEnabled(L.AUTOMATION))
log.debug("Ready for execution: " + friendlyDescription());
lastMode = currentMode(calculatedDistance);
return true;
}
lastMode = currentMode(calculatedDistance); // current mode will be last mode for the next check
return false;
}
@ -90,6 +108,7 @@ public class TriggerLocation extends Trigger {
data.put("longitude", longitude.getValue());
data.put("distance", distance.getValue());
data.put("name", name.getValue());
data.put("mode", modeSelected.getValue());
data.put("lastRun", lastRun);
o.put("data", data);
} catch (JSONException e) {
@ -106,7 +125,10 @@ public class TriggerLocation extends Trigger {
longitude.setValue(JsonHelper.safeGetDouble(d, "longitude"));
distance.setValue(JsonHelper.safeGetDouble(d, "distance"));
name.setValue(JsonHelper.safeGetString(d, "name"));
lastRun = JsonHelper.safeGetLong(d, "lastRun");
modeSelected.setValue(InputLocationMode.Mode.valueOf(JsonHelper.safeGetString(d, "mode")));
if (modeSelected.getValue() == GOING_OUT)
lastMode = OUTSIDE;
lastRun = DateUtil.now(); // set lastRun to now to give the service 5 mins to get the location properly
} catch (Exception e) {
log.error("Unhandled exception", e);
}
@ -120,7 +142,7 @@ public class TriggerLocation extends Trigger {
@Override
public String friendlyDescription() {
return MainApp.gs(R.string.locationis, name.getValue());
return MainApp.gs(R.string.locationis, MainApp.gs(modeSelected.getValue().getStringRes()), " " + name.getValue());
}
@Override
@ -154,6 +176,11 @@ public class TriggerLocation extends Trigger {
return this;
}
TriggerLocation setMode(InputLocationMode.Mode value) {
modeSelected.setValue(value);
return this;
}
@Override
public void generateDialog(LinearLayout root, FragmentManager fragmentManager) {
new LayoutBuilder()
@ -162,7 +189,21 @@ public class TriggerLocation extends Trigger {
.add(new LabelWithElement(MainApp.gs(R.string.latitude_short), "", latitude))
.add(new LabelWithElement(MainApp.gs(R.string.longitude_short), "", longitude))
.add(new LabelWithElement(MainApp.gs(R.string.distance_short), "", distance))
.add(new LabelWithElement(MainApp.gs(R.string.location_mode), "", modeSelected))
.add(new InputButton(MainApp.gs(R.string.currentlocation), buttonAction), LocationService.getLastLocation() != null)
.build(root);
}
// Method to return the actual mode based on the current distance
InputLocationMode.Mode currentMode(double currentDistance){
if ( currentDistance <= this.distance.getValue() )
return INSIDE;
else
return OUTSIDE;
}
static Location getCurrentLocation(){
return LocationService.getLastLocation();
}
}

View file

@ -1,6 +1,5 @@
package info.nightscout.androidaps.plugins.pump.danaR;
import androidx.annotation.Nullable;
import androidx.fragment.app.FragmentActivity;
import org.json.JSONException;
@ -15,7 +14,6 @@ import info.nightscout.androidaps.BuildConfig;
import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.R;
import info.nightscout.androidaps.data.Profile;
import info.nightscout.androidaps.data.ProfileStore;
import info.nightscout.androidaps.data.PumpEnactResult;
import info.nightscout.androidaps.db.ExtendedBolus;
import info.nightscout.androidaps.db.TemporaryBasal;
@ -25,7 +23,6 @@ import info.nightscout.androidaps.interfaces.DanaRInterface;
import info.nightscout.androidaps.interfaces.PluginBase;
import info.nightscout.androidaps.interfaces.PluginDescription;
import info.nightscout.androidaps.interfaces.PluginType;
import info.nightscout.androidaps.interfaces.ProfileInterface;
import info.nightscout.androidaps.interfaces.PumpDescription;
import info.nightscout.androidaps.interfaces.PumpInterface;
import info.nightscout.androidaps.logging.L;
@ -49,7 +46,7 @@ import info.nightscout.androidaps.utils.SP;
* Created by mike on 28.01.2018.
*/
public abstract class AbstractDanaRPlugin extends PluginBase implements PumpInterface, DanaRInterface, ConstraintsInterface, ProfileInterface {
public abstract class AbstractDanaRPlugin extends PluginBase implements PumpInterface, DanaRInterface, ConstraintsInterface {
protected Logger log = LoggerFactory.getLogger(L.PUMP);
protected AbstractDanaRExecutionService sExecutionService;
@ -143,7 +140,6 @@ public abstract class AbstractDanaRPlugin extends PluginBase implements PumpInte
for (int h = 0; h < basalValues; h++) {
Double pumpValue = pump.pumpProfiles[pump.activeProfile][h];
Double profileValue = profile.getBasalTimeFromMidnight(h * basalIncrement);
if (profileValue == null) return true;
if (Math.abs(pumpValue - profileValue) > getPumpDescription().basalStep) {
if (L.isEnabled(L.PUMP))
log.debug("Diff found. Hour: " + h + " Pump: " + pumpValue + " Profile: " + profileValue);
@ -436,19 +432,6 @@ public abstract class AbstractDanaRPlugin extends PluginBase implements PumpInte
return applyBolusConstraints(insulin);
}
@Nullable
@Override
public ProfileStore getProfile() {
if (DanaRPump.getInstance().lastSettingsRead == 0)
return null; // no info now
return DanaRPump.getInstance().createConvertedProfile();
}
@Override
public String getProfileName() {
return DanaRPump.getInstance().createConvertedProfileName();
}
@Override
public PumpEnactResult loadTDDs() {
return loadHistory(RecordTypes.RECORD_TYPE_DAILY);

View file

@ -34,7 +34,6 @@ import info.nightscout.androidaps.interfaces.DanaRInterface;
import info.nightscout.androidaps.interfaces.PluginBase;
import info.nightscout.androidaps.interfaces.PluginDescription;
import info.nightscout.androidaps.interfaces.PluginType;
import info.nightscout.androidaps.interfaces.ProfileInterface;
import info.nightscout.androidaps.interfaces.PumpDescription;
import info.nightscout.androidaps.interfaces.PumpInterface;
import info.nightscout.androidaps.logging.L;
@ -70,7 +69,7 @@ import io.reactivex.schedulers.Schedulers;
* Created by mike on 03.09.2017.
*/
public class DanaRSPlugin extends PluginBase implements PumpInterface, DanaRInterface, ConstraintsInterface, ProfileInterface {
public class DanaRSPlugin extends PluginBase implements PumpInterface, DanaRInterface, ConstraintsInterface {
private Logger log = LoggerFactory.getLogger(L.PUMP);
private CompositeDisposable disposable = new CompositeDisposable();
@ -275,21 +274,6 @@ public class DanaRSPlugin extends PluginBase implements PumpInterface, DanaRInte
return applyBolusConstraints(insulin);
}
// Profile interface
@Nullable
@Override
public ProfileStore getProfile() {
if (DanaRPump.getInstance().lastSettingsRead == 0)
return null; // no info now
return DanaRPump.getInstance().createConvertedProfile();
}
@Override
public String getProfileName() {
return DanaRPump.getInstance().createConvertedProfileName();
}
// Pump interface
@Override
@ -354,8 +338,7 @@ public class DanaRSPlugin extends PluginBase implements PumpInterface, DanaRInte
int basalIncrement = pump.basal48Enable ? 30 * 60 : 60 * 60;
for (int h = 0; h < basalValues; h++) {
Double pumpValue = pump.pumpProfiles[pump.activeProfile][h];
Double profileValue = profile.getBasalTimeFromMidnight((Integer) (h * basalIncrement));
if (profileValue == null) return true;
Double profileValue = profile.getBasalTimeFromMidnight(h * basalIncrement);
if (Math.abs(pumpValue - profileValue) > getPumpDescription().basalStep) {
if (L.isEnabled(L.PUMP))
log.debug("Diff found. Hour: " + h + " Pump: " + pumpValue + " Profile: " + profileValue);

View file

@ -56,7 +56,7 @@ public enum PumpHistoryEntryType // implements CodeEnum
ChangeMaxBasal(0x2c, "Change Max Basal", PumpHistoryEntryGroup.Configuration), //
BolusWizardEnabled(0x2d, "Bolus Wizard Enabled", PumpHistoryEntryGroup.Configuration), // V3 ?
/**/EventUnknown_MM512_0x2e(0x2e, "Unknown Event 0x2e", PumpHistoryEntryGroup.Unknown), //
/**/EventUnknown_MM512_0x2e(0x2e, "Unknown Event 0x2e", PumpHistoryEntryGroup.Unknown, 2, 5, 100), //
BolusWizard512(0x2f, "Bolus Wizard (512)", PumpHistoryEntryGroup.Bolus, 2, 5, 12), //
UnabsorbedInsulin512(0x30, "Unabsorbed Insulin (512)", PumpHistoryEntryGroup.Statistic, 5, 0, 0), // FIXME
ChangeBGReminderOffset(0x31, "Change BG Reminder Offset", PumpHistoryEntryGroup.Configuration), //

View file

@ -279,7 +279,7 @@ public class CommandQueue {
}
removeAll(Command.CommandType.BOLUS);
removeAll(Command.CommandType.SMB_BOLUS);
ConfigBuilderPlugin.getPlugin().getActivePump().stopBolusDelivering();
new Thread(() -> ConfigBuilderPlugin.getPlugin().getActivePump().stopBolusDelivering()).run();
}
// returns true if command is queued

View file

@ -1,4 +1,4 @@
package info.nightscout.androidaps.plugins.general.nsclient.receivers;
package info.nightscout.androidaps.receivers;
import android.content.BroadcastReceiver;
import android.content.Context;

View file

@ -17,11 +17,13 @@ import androidx.core.content.ContextCompat;
import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.R;
import info.nightscout.androidaps.interfaces.PluginType;
import info.nightscout.androidaps.plugins.bus.RxBus;
import info.nightscout.androidaps.plugins.general.overview.events.EventDismissNotification;
import info.nightscout.androidaps.plugins.general.overview.events.EventNewNotification;
import info.nightscout.androidaps.plugins.general.overview.notifications.Notification;
import info.nightscout.androidaps.plugins.general.overview.notifications.NotificationWithAction;
import info.nightscout.androidaps.plugins.general.smsCommunicator.SmsCommunicatorPlugin;
public class AndroidPermission {
@ -79,7 +81,7 @@ public class AndroidPermission {
}
public static synchronized void notifyForSMSPermissions(Activity activity) {
if (SP.getBoolean(R.string.key_smscommunicator_remotecommandsallowed, false)) {
if (SmsCommunicatorPlugin.INSTANCE.isEnabled(PluginType.GENERAL)) {
if (permissionNotGranted(activity, Manifest.permission.RECEIVE_SMS)) {
NotificationWithAction notification = new NotificationWithAction(Notification.PERMISSION_SMS, MainApp.gs(R.string.smscommunicator_missingsmspermission), Notification.URGENT);
notification.action(R.string.request, () -> AndroidPermission.askForPermission(activity, new String[]{Manifest.permission.RECEIVE_SMS,

View file

@ -1,126 +0,0 @@
package info.nightscout.androidaps.utils;
import androidx.annotation.Nullable;
import org.json.JSONException;
import org.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* JSonHelper is a Helper class which contains several methods to safely get data from the ggiven JSONObject.
*
* Created by triplem on 04.01.18.
*/
public class JsonHelper {
private static final Logger log = LoggerFactory.getLogger(JsonHelper.class);
private JsonHelper() {}
public static Object safeGetObject(JSONObject json, String fieldName, Object defaultValue) {
Object result = defaultValue;
if (json != null && json.has(fieldName)) {
try {
result = json.get(fieldName);
} catch (JSONException ignored) {
}
}
return result;
}
@Nullable
public static String safeGetString(JSONObject json, String fieldName) {
String result = null;
if (json != null && json.has(fieldName)) {
try {
result = json.getString(fieldName);
} catch (JSONException ignored) {
}
}
return result;
}
public static String safeGetString(JSONObject json, String fieldName, String defaultValue) {
String result = defaultValue;
if (json != null && json.has(fieldName)) {
try {
result = json.getString(fieldName);
} catch (JSONException ignored) {
}
}
return result;
}
public static double safeGetDouble(JSONObject json, String fieldName) {
double result = 0d;
if (json != null && json.has(fieldName)) {
try {
result = json.getDouble(fieldName);
} catch (JSONException ignored) {
}
}
return result;
}
public static double safeGetDouble(JSONObject json, String fieldName, double defaultValue) {
double result = defaultValue;
if (json != null && json.has(fieldName)) {
try {
result = json.getDouble(fieldName);
} catch (JSONException ignored) {
}
}
return result;
}
public static int safeGetInt(JSONObject json, String fieldName) {
int result = 0;
if (json != null && json.has(fieldName)) {
try {
result = json.getInt(fieldName);
} catch (JSONException ignored) {
}
}
return result;
}
public static long safeGetLong(JSONObject json, String fieldName) {
long result = 0;
if (json != null && json.has(fieldName)) {
try {
result = json.getLong(fieldName);
} catch (JSONException e) {
}
}
return result;
}
public static boolean safeGetBoolean(JSONObject json, String fieldName) {
boolean result = false;
if (json != null && json.has(fieldName)) {
try {
result = json.getBoolean(fieldName);
} catch (JSONException e) {
}
}
return result;
}
}

View file

@ -0,0 +1,126 @@
package info.nightscout.androidaps.utils
import org.json.JSONException
import org.json.JSONObject
object JsonHelper {
@JvmStatic
fun safeGetObject(json: JSONObject?, fieldName: String, defaultValue: Any): Any {
var result = defaultValue
if (json != null && json.has(fieldName)) {
try {
result = json[fieldName]
} catch (ignored: JSONException) {
}
}
return result
}
@JvmStatic
fun safeGetJSONObject(json: JSONObject?, fieldName: String, defaultValue: JSONObject?): JSONObject? {
var result = defaultValue
if (json != null && json.has(fieldName)) {
try {
result = json.getJSONObject(fieldName)
} catch (ignored: JSONException) {
}
}
return result
}
@JvmStatic
fun safeGetString(json: JSONObject?, fieldName: String): String? {
var result: String? = null
if (json != null && json.has(fieldName)) {
try {
result = json.getString(fieldName)
} catch (ignored: JSONException) {
}
}
return result
}
@JvmStatic
fun safeGetString(json: JSONObject?, fieldName: String, defaultValue: String): String {
var result = defaultValue
if (json != null && json.has(fieldName)) {
try {
result = json.getString(fieldName)
} catch (ignored: JSONException) {
}
}
return result
}
@JvmStatic
fun safeGetStringAllowNull(json: JSONObject?, fieldName: String, defaultValue: String?): String? {
var result = defaultValue
if (json != null && json.has(fieldName)) {
try {
result = json.getString(fieldName)
} catch (ignored: JSONException) {
}
}
return result
}
@JvmStatic
fun safeGetDouble(json: JSONObject?, fieldName: String): Double {
var result = 0.0
if (json != null && json.has(fieldName)) {
try {
result = json.getDouble(fieldName)
} catch (ignored: JSONException) {
}
}
return result
}
@JvmStatic
fun safeGetDouble(json: JSONObject?, fieldName: String, defaultValue: Double): Double {
var result = defaultValue
if (json != null && json.has(fieldName)) {
try {
result = json.getDouble(fieldName)
} catch (ignored: JSONException) {
}
}
return result
}
@JvmStatic
fun safeGetInt(json: JSONObject?, fieldName: String): Int {
var result = 0
if (json != null && json.has(fieldName)) {
try {
result = json.getInt(fieldName)
} catch (ignored: JSONException) {
}
}
return result
}
@JvmStatic
fun safeGetLong(json: JSONObject?, fieldName: String): Long {
var result: Long = 0
if (json != null && json.has(fieldName)) {
try {
result = json.getLong(fieldName)
} catch (ignored: JSONException) {
}
}
return result
}
@JvmStatic
fun safeGetBoolean(json: JSONObject?, fieldName: String): Boolean {
var result = false
if (json != null && json.has(fieldName)) {
try {
result = json.getBoolean(fieldName)
} catch (ignored: JSONException) {
}
}
return result
}
}

View file

@ -46,7 +46,7 @@
<string name="unfinshed_button">Следващия неотговорен</string>
<string name="requestcode">Код (request code): %1$s</string>
<string name="objectives_hint">(отбележете всички правилни отговори)</string>
<string name="disconnectpump_hint">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#what-to-do-when-taking-a-shower-or-bath</string>
<string name="disconnectpump_hint" formatted="false">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#what-to-do-when-taking-a-shower-or-bath</string>
<string name="failedretrievetime">Не може да се вземе времето</string>
<string name="requirementnotmet">Задачите не са изпълнени</string>
<plurals name="objective_days">

View file

@ -593,6 +593,7 @@
<string name="overview_newtempbasal_basaltype_label">Тип базал</string>
<string name="invalidprofile">Грешен профил !!!</string>
<string name="profileswitch">Смяна на профил</string>
<string name="doprofileswitch">Смени профил</string>
<string name="careportal_pbage_label">Възраст на батерията на помпата</string>
<string name="careportal_pumpbatterychange">Смяна на батерия</string>
<string name="ns_alarmoptions">Опции за аларми</string>
@ -1435,4 +1436,7 @@
<string name="activitymonitor">Мониторинг на активност</string>
<string name="doyouwantresetstats">Искате да нулирате статистиката?</string>
<string name="statistics">Статистика</string>
<string name="randombg">Произволна КЗ</string>
<string name="description_source_randombg">Генерира произволни захари(демо режим)</string>
<string name="randombg_short">КЗ</string>
</resources>

View file

@ -46,10 +46,10 @@
<string name="unfinshed_button">Další nedokončená</string>
<string name="requestcode">Kód žádosti: %1$s</string>
<string name="objectives_hint">(zatrhněte všechny správné odpovědi)</string>
<string name="disconnectpump_hint">https://androidaps.readthedocs.io/en/latest/CROWDIN/cs/Getting-Started/FAQ.html#co-delat-pri-sprchovani-a-koupani</string>
<string name="usetemptarget_hint">https://androidaps.readthedocs.io/en/latest/CROWDIN/cs/Getting-Started/Screenshots.html#hlavni-stranka</string>
<string name="useaction_hint">https://androidaps.readthedocs.io/en/latest/CROWDIN/cs/Getting-Started/Screenshots.html#konfigurace</string>
<string name="usescale_hint">https://androidaps.readthedocs.io/en/latest/CROWDIN/cs/Getting-Started/Screenshots.html#hlavni-stranka</string>
<string name="disconnectpump_hint" formatted="false">https://androidaps.readthedocs.io/en/latest/CROWDIN/cs/Getting-Started/FAQ.html#co-delat-pri-sprchovani-a-koupani</string>
<string name="usetemptarget_hint" formatted="false">https://androidaps.readthedocs.io/en/latest/CROWDIN/cs/Getting-Started/Screenshots.html#hlavni-stranka</string>
<string name="useaction_hint" formatted="false">https://androidaps.readthedocs.io/en/latest/CROWDIN/cs/Getting-Started/Screenshots.html#konfigurace</string>
<string name="usescale_hint" formatted="false">https://androidaps.readthedocs.io/en/latest/CROWDIN/cs/Getting-Started/Screenshots.html#hlavni-stranka</string>
<string name="notconnected">Chybí připojení k internetu</string>
<string name="failedretrievetime">Nepodařilo se načíst čas</string>
<string name="requirementnotmet">Požadavky cíle nejsou splněny</string>

View file

@ -47,10 +47,10 @@ die Formel maxIOB = durchschnittlicher Essensbolus + 3 x höchste Basalrate</str
<string name="unfinshed_button">Nächste offene</string>
<string name="requestcode">Code anfordern: %1$s</string>
<string name="objectives_hint">(Kreuze alle richtigen Antworten an)</string>
<string name="disconnectpump_hint">https://androidaps.readthedocs.io/en/latest/CROWDIN/de/Getting-Started/FAQ.html#was-mache-ich-wenn-ich-duschen-oder-ein-bad-nehmen-mochte</string>
<string name="usetemptarget_hint">https://androidaps.readthedocs.io/en/latest/CROWDIN/de/Getting-Started/Screenshots.html#die-startseite</string>
<string name="useaction_hint">https://androidaps.readthedocs.io/en/latest/CROWDIN/de/Getting-Started/Screenshots.html#konfiguration</string>
<string name="usescale_hint">https://androidaps.readthedocs.io/en/latest/CROWDIN/de/Getting-Started/Screenshots.html#die-startseite</string>
<string name="disconnectpump_hint" formatted="false">https://androidaps.readthedocs.io/en/latest/CROWDIN/de/Getting-Started/FAQ.html#was-mache-ich-wenn-ich-duschen-oder-ein-bad-nehmen-mochte</string>
<string name="usetemptarget_hint" formatted="false">https://androidaps.readthedocs.io/en/latest/CROWDIN/de/Getting-Started/Screenshots.html#die-startseite</string>
<string name="useaction_hint" formatted="false">https://androidaps.readthedocs.io/en/latest/CROWDIN/de/Getting-Started/Screenshots.html#konfiguration</string>
<string name="usescale_hint" formatted="false">https://androidaps.readthedocs.io/en/latest/CROWDIN/de/Getting-Started/Screenshots.html#die-startseite</string>
<string name="notconnected">Keine Verbindung zum Internet</string>
<string name="failedretrievetime">Abruf der Uhrzeit fehlgeschlagen</string>
<string name="requirementnotmet">Anforderungen des Zieles nicht erfüllt</string>

View file

@ -593,6 +593,7 @@
<string name="overview_newtempbasal_basaltype_label">Basaltyp</string>
<string name="invalidprofile">Ungültiges oder defektes Profil!</string>
<string name="profileswitch">Profilwechsel</string>
<string name="doprofileswitch">Profilwechsel durchführen</string>
<string name="careportal_pbage_label">Batteriealter</string>
<string name="careportal_pumpbatterychange">Pumpenbatterie Wechsel</string>
<string name="ns_alarmoptions">Alarm-Optionen</string>
@ -1436,4 +1437,7 @@ Unerwartetes Verhalten.</string>
<string name="activitymonitor">Aktivitätsmonitor</string>
<string name="doyouwantresetstats">Willst Du die Aktivitätsstatistik zurücksetzen?</string>
<string name="statistics">Statistiken</string>
<string name="randombg">Zufalls-BZ</string>
<string name="description_source_randombg">Zufalls-BZ Daten erstellen (nur Demo-Modus)</string>
<string name="randombg_short">BZ</string>
</resources>

View file

@ -45,10 +45,10 @@
<string name="unfinshed_button">Επόμενο ημιτελές</string>
<string name="requestcode">Κωδικός αιτήματος: %1$s</string>
<string name="objectives_hint">(ελέγξτε όλες τις σωστές απαντήσεις)</string>
<string name="disconnectpump_hint">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#what-to-do-when-taking-a-shower-or-bath</string>
<string name="usetemptarget_hint">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#the-homescreen</string>
<string name="useaction_hint">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#config-builder</string>
<string name="usescale_hint">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#the-homescreen</string>
<string name="disconnectpump_hint" formatted="false">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#what-to-do-when-taking-a-shower-or-bath</string>
<string name="usetemptarget_hint" formatted="false">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#the-homescreen</string>
<string name="useaction_hint" formatted="false">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#config-builder</string>
<string name="usescale_hint" formatted="false">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#the-homescreen</string>
<string name="notconnected">Δεν είστε συνδεδεμένοι στο internet</string>
<string name="failedretrievetime">Απέτυχε η ανάκτηση ώρας</string>
<string name="requirementnotmet">Αντικειμενικές προϋποθέσεις δεν πληρούνται</string>

View file

@ -46,10 +46,10 @@
<string name="unfinshed_button">Siguien&amp;te sin terminar</string>
<string name="requestcode">Solicitar código: %1$s</string>
<string name="objectives_hint">(compruebe todas las respuestas correctas)</string>
<string name="disconnectpump_hint">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#what-to-do-when-taking-a-shower-or-bath</string>
<string name="usetemptarget_hint">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#the-homescreen</string>
<string name="useaction_hint">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#config-builder</string>
<string name="usescale_hint">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#the-homescreen</string>
<string name="disconnectpump_hint" formatted="false">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#what-to-do-when-taking-a-shower-or-bath</string>
<string name="usetemptarget_hint" formatted="false">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#the-homescreen</string>
<string name="useaction_hint" formatted="false">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#config-builder</string>
<string name="usescale_hint" formatted="false">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#the-homescreen</string>
<string name="notconnected">Sin conexión a Internet</string>
<string name="failedretrievetime">Fallo tiempo de recuperación</string>
<string name="requirementnotmet">No se cumplen los requisitos de objetivo</string>

View file

@ -593,6 +593,7 @@
<string name="overview_newtempbasal_basaltype_label">Tipo basal</string>
<string name="invalidprofile">Perfil invalido !!!</string>
<string name="profileswitch">Cambio Perfil</string>
<string name="doprofileswitch">Cambio de perfil</string>
<string name="careportal_pbage_label">Edad batería bomba</string>
<string name="careportal_pumpbatterychange">Cambio batería bomba</string>
<string name="ns_alarmoptions">Opciones alarma</string>
@ -1435,4 +1436,6 @@
<string name="activitymonitor">Monitor de actividad</string>
<string name="doyouwantresetstats">¿Desea restablecer las estadísticas de actividad?</string>
<string name="statistics">Estadísticas</string>
<string name="randombg">BG aleatorio</string>
<string name="randombg_short">BG</string>
</resources>

View file

@ -46,10 +46,10 @@
<string name="unfinshed_button">Prochain non terminé</string>
<string name="requestcode">Code requis : %1$s</string>
<string name="objectives_hint">(Sélectionnez toutes les bonnes réponses)</string>
<string name="disconnectpump_hint">https://androidaps.readthedocs.io/en/latest/CROWDIN/fr/Getting-Started/FAQ.html#what-to-do-when-taking-a-shower-or-bath</string>
<string name="usetemptarget_hint">https://androidaps.readthedocs.io/en/latest/CROWDIN/fr/Getting-Started/Screenshots.html#the-homescreen</string>
<string name="useaction_hint">https://androidaps.readthedocs.io/en/latest/CROWDIN/fr/Getting-Started/Screenshots.html#config-builder</string>
<string name="usescale_hint">https://androidaps.readthedocs.io/en/latest/CROWDIN/fr/Getting-Started/Screenshots.html#the-homescreen</string>
<string name="disconnectpump_hint" formatted="false">https://androidaps.readthedocs.io/en/latest/CROWDIN/fr/Getting-Started/FAQ.html#what-to-do-when-taking-a-shower-or-bath</string>
<string name="usetemptarget_hint" formatted="false">https://androidaps.readthedocs.io/en/latest/CROWDIN/fr/Getting-Started/Screenshots.html#the-homescreen</string>
<string name="useaction_hint" formatted="false">https://androidaps.readthedocs.io/en/latest/CROWDIN/fr/Getting-Started/Screenshots.html#config-builder</string>
<string name="usescale_hint" formatted="false">https://androidaps.readthedocs.io/en/latest/CROWDIN/fr/Getting-Started/Screenshots.html#the-homescreen</string>
<string name="notconnected">Non connecté à Internet</string>
<string name="failedretrievetime">Échec de la récupération de l\'heure</string>
<string name="requirementnotmet">Exigences de l\'objectif non atteintes</string>

View file

@ -46,10 +46,10 @@
<string name="unfinshed_button">Prossimo N.C.</string>
<string name="requestcode">Codice richiesta: %1$s</string>
<string name="objectives_hint">(segna tutte le risposte corrette)</string>
<string name="disconnectpump_hint">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#what-to-do-when-taking-a-shower-or-bath</string>
<string name="usetemptarget_hint">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#the-homescreen</string>
<string name="useaction_hint">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#config-builder</string>
<string name="usescale_hint">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#the-homescreen</string>
<string name="disconnectpump_hint" formatted="false">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#what-to-do-when-taking-a-shower-or-bath</string>
<string name="usetemptarget_hint" formatted="false">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#the-homescreen</string>
<string name="useaction_hint" formatted="false">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#config-builder</string>
<string name="usescale_hint" formatted="false">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#the-homescreen</string>
<string name="notconnected">Non connesso a internet</string>
<string name="failedretrievetime">Impossibile recuperare l\'orario</string>
<string name="requirementnotmet">Requisiti obiettivo non soddisfatti</string>

View file

@ -161,7 +161,7 @@
<string name="carbs">CHO</string>
<string name="changeyourinput">Cambia il tuo input!</string>
<string name="setextendedbolusquestion">Imposta nuovo bolo esteso:</string>
<string name="configbuilder_bgsource">Origine glicemia</string>
<string name="configbuilder_bgsource">Origine BG</string>
<string name="configbuilder_bgsource_description">Da dove AndroidAPS dovrebbe ottenere i suoi dati?</string>
<string name="xdrip">xDrip</string>
<string name="apsmode_title">Modalità APS</string>
@ -178,7 +178,7 @@
<string name="treatments_wizard_basaliob_label">IOB da basale</string>
<string name="bolusconstraintapplied">Vincolo bolo applicato</string>
<string name="carbsconstraintapplied">Vincolo CHO applicato</string>
<string name="careportal_bgcheck">Controllo glicemia</string>
<string name="careportal_bgcheck">Controllo BG</string>
<string name="careportal_announcement">Annuncio</string>
<string name="careportal_note">Nota</string>
<string name="careportal_question">Domanda</string>
@ -401,8 +401,8 @@
<string name="danar_enableextendedbolus">Abilita bolo esteso sul micro</string>
<string name="danar_switchtouhmode">Cambia la modalità da U/d a U/h nel micro</string>
<string name="basalvaluebelowminimum">Valore basale inferiore al minimo. Profilo non impostato!</string>
<string name="sms_actualbg">Glicemia:</string>
<string name="sms_lastbg">Ultima glicemia:</string>
<string name="sms_actualbg">BG:</string>
<string name="sms_lastbg">Ultimo BG:</string>
<string name="mdi">MDI</string>
<string name="MM640g">MM640g</string>
<string name="ongoingnotificaction">Notifica in corso</string>
@ -593,6 +593,7 @@
<string name="overview_newtempbasal_basaltype_label">Tipo basale</string>
<string name="invalidprofile">Profilo non valido !!!</string>
<string name="profileswitch">Cambio profilo</string>
<string name="doprofileswitch">Cambia profilo</string>
<string name="careportal_pbage_label">Età batteria micro</string>
<string name="careportal_pumpbatterychange">Cambio batteria micro</string>
<string name="ns_alarmoptions">Opzioni allarme</string>
@ -709,10 +710,10 @@
<string name="executingrightnow">Il comando verrà eseguito ora</string>
<string name="pumpdrivercorrected">Driver del micro corretto</string>
<string name="pump_unreachable">Micro irraggiungibile</string>
<string name="missed_bg_readings">Letture glicemia mancanti</string>
<string name="missed_bg_readings">Letture BG mancanti</string>
<string name="raise_notifications_as_android_notifications">Usa le notifiche di sistema per gli avvisi</string>
<string name="localalertsettings_title">Allarmi locali</string>
<string name="enable_missed_bg_readings_alert">Allarme se non si ricevono dati glicemia</string>
<string name="enable_missed_bg_readings_alert">Allarme se non si ricevono dati BG</string>
<string name="enable_pump_unreachable_alert">Allarme se il micro non è raggiungibile</string>
<string name="pump_unreachable_threshold">Soglia micro irraggiungibile [min]</string>
<string name="urgent_alarm">Allarme urgente</string>
@ -721,19 +722,19 @@
<string name="btwatchdog_title">BT Watchdog</string>
<string name="btwatchdog_summary">Spegne il bluetooth del telefono per qualche secondo se non è possibile alcuna connessione al micro. Questo può essere utile su alcuni telefoni.</string>
<string name="eversense">Eversense app (modificata)</string>
<string name="dexcomg5_nsupload_title">Carica dati glicemia su NS</string>
<string name="bgsource_upload">Impostazioni caricamento glicemia</string>
<string name="dexcomg5_nsupload_title">Carica dati BG su NS</string>
<string name="bgsource_upload">Impostazioni caricamento BG</string>
<string name="wear_detailed_delta_title">Mostra delta dettagliato</string>
<string name="wear_detailed_delta_summary">Mostra delta con una cifra decimale in più</string>
<string name="smbmaxminutes">Max minuti SMB</string>
<string name="smbmaxminutes_summary">Max minuti di basale a cui limitare SMB</string>
<string name="unsupportedfirmware">Firmware del micro non supportato</string>
<string name="dexcomg5_xdripupload_title">Invia dati glicemia a xDrip+</string>
<string name="dexcomg5_xdripupload_title">Invia dati BG a xDrip+</string>
<string name="dexcomg5_xdripupload_summary">In xDrip+ seleziona origine dati 640g/Eversense</string>
<string name="nsclientbg">Glicemia NSClient</string>
<string name="nsclientbg">BG NSClient</string>
<string name="minimalbasalvaluereplaced">Valore basale sostituito dal minimo valore supportato: %1$s</string>
<string name="maximumbasalvaluereplaced">Valore basale sostituito dal massimo valore supportato: %1$s</string>
<string name="overview_editquickwizard_usebg">Calcolo glicemia</string>
<string name="overview_editquickwizard_usebg">Calcolo BG</string>
<string name="overview_editquickwizard_usebolusiob">Calcolo IOB da bolo</string>
<string name="overview_editquickwizard_usebasaliob">Calcolo IOB da basale</string>
<string name="overview_editquickwizard_usetrend">Calcolo trend</string>
@ -749,7 +750,7 @@
<string name="nsclienthaswritepermission">NSClient ha il permesso di scrittura</string>
<string name="closedmodeenabled">Modalità chiusa abilitata</string>
<string name="maxiobset">Max IOB impostata correttamente</string>
<string name="hasbgdata">Glicemia disponibile da sorgente selezionata</string>
<string name="hasbgdata">BG disponibile da sorgente selezionata</string>
<string name="basalprofilenotaligned">Valori basali non allineati alle ore: %1$s</string>
<string name="zerovalueinprofile">Profilo non valido: %1$s</string>
<string name="combo_programming_bolus">Programmazione micro per erogazione</string>
@ -931,7 +932,7 @@
<string name="virtualpump_definition">Definizione micro</string>
<string name="virtualpump_pump_def">Bolo: Step=%1$s\nBolo Esteso: [Step=%2$s, Durata=%3$smin-%4$sh]\nBasale: Step=%5$s\nTBR: %6$s (di %7$s), Durata=%8$smin-%9$sh\n%10$s</string>
<string name="virtualpump_pump_def_extended_note">* Sono supportati solo valori discreti, non intervalli di valori, come incrementi per basale/bolo nel micro virtuale.</string>
<string name="ns_autobackfill_title">Riempimento automatico glicemie</string>
<string name="ns_autobackfill_title">Riempimento automatico BG</string>
<string name="wear_wizard_settings">Impostazioni Calcolatore</string>
<string name="wear_wizard_settings_summary">Calcoli inclusi nel risultato del Calcolatore:</string>
<string name="wear_display_settings">Impostazioni di visualizzazione</string>
@ -949,7 +950,7 @@
<string name="setupwizard_sensitivity_url">https://github.com/MilosKozak/AndroidAPS/wiki/Sensitivity-detection-and-COB</string>
<string name="nsclientinfotext">NSClient gestisce la connessione a Nightscout. Puoi saltare questa parte ora, ma non sarai in grado di superare gli obiettivi fino a quando non ne porterai a termine la configurazione.</string>
<string name="diawarning">Ricorda: i nuovi profili di insulina richiedono una DIA di almeno 5h. DIA di 5 - 6h sui nuovi profili sono uguali a DIA di 3h sui vecchi profili di insulina.</string>
<string name="bgsourcesetup">Configura sorgente glicemia</string>
<string name="bgsourcesetup">Configura sorgente BG</string>
<string name="setupwizard_profile_description">Seleziona il tipo di profilo. Se il paziente è un bambino dovresti utilizzare il profilo di NS. Se non c\'è nessuno a seguirti su Nightscout probabilmente preferirai il profilo locale. Ricorda che stai solo selezionando la sorgente del profilo. Per utilizzarlo devi attivarlo tramite l\'esecuzione del comando \"Cambio profilo\"</string>
<string name="setupwizard_aps_description">Seleziona uno degli algoritmi disponibili. Sono ordinati dal più vecchio al più recente. L\'algoritmo più recente è solitamente più potente e più aggressivo. Pertanto, se sei un nuovo utente, probabilmente dovresti iniziare con AMA e non con l\'ultimo. Non dimenticare di leggere la documentazione di OpenAPS e di configurarlo prima dell\'uso.</string>
<string name="startobjective">Avvia il tuo primo obiettivo</string>
@ -1164,7 +1165,7 @@
<string name="tidepool_upload_bolus">Carica trattamenti (insulina, carboidrati)</string>
<string name="tidepool_upload_tbr">Carica basali temporanee</string>
<string name="tidepool_upload_profile">Carica cambi profilo, target temporanei</string>
<string name="tidepool_upload_bg">Carica test glicemia</string>
<string name="tidepool_upload_bg">Carica test BG</string>
<string name="dst_in_24h_warning">Cambio all\'ora legale in 24h o meno</string>
<string name="dst_loop_disabled_warning">Cambio all\'ora legale avvenuto meno di 3 ore fa - Loop chiuso disabilitato</string>
<string name="storage">vincolo di archiviazione interna</string>
@ -1210,8 +1211,8 @@
<string name="autosenscompared">Autosens %1$s %2$s %%</string>
<string name="autosenslabel">Autosens %</string>
<string name="deltacompared">%3$s %1$s %2$s</string>
<string name="deltalabel">Differenza glicemia</string>
<string name="deltalabel_u">Differenza glicemia [%1$s]</string>
<string name="deltalabel">Differenza BG</string>
<string name="deltalabel_u">Differenza BG [%1$s]</string>
<string name="currentlocation">Posizione corrente</string>
<string name="location">Posizione</string>
<string name="latitude_short">Lat:</string>
@ -1418,4 +1419,24 @@
<string name="low_mark_comment">Valore più basso per l\'intervallo di visualizzazione dell\'area \"in range\"</string>
<string name="high_mark_comment">Valore più alto per l\'intervallo di visualizzazione dell\'area \"in range\"</string>
<string name="reorder_label">Riordina</string>
<string name="age">Età:</string>
<string name="weight">Peso:</string>
<string name="id">ID:</string>
<string name="submit">Invia</string>
<string name="mostcommonprofile">Profilo più comune:</string>
<string name="survey_comment">Nota: solo i dati visibili su questa schermata verranno caricati (in modo anonimo). Un ID è assegnato a questa installazione di AndroidAPS. Puoi inviare nuovamente i dati se il tuo profilo principale viene modificato, ma lascialo in esecuzione almeno per una settimana per rendere visibili i risultati nel time in range. Il tuo aiuto è apprezzato.</string>
<string name="nav_survey">Sondaggio</string>
<string name="invalidage">Inserimento età non valido</string>
<string name="invalidweight">Inserimento peso non valido</string>
<string name="tddformat"><![CDATA[<b>%1$s:</b> ∑: <b>%2$.2f</b> Bol: <b>%3$.2f</b> Bas: <b>%4$.2f</b>]]></string>
<string name="tirformat"><![CDATA[<b>%1$s:</b> Basso: <b>%2$02d%%</b> In: <b>%3$02d%%</b> Alto: <b>%4$02d%%</b>]]></string>
<string name="average">Media</string>
<string name="tdd">TDD</string>
<string name="tir">TIR</string>
<string name="activitymonitor">Monitor attività</string>
<string name="doyouwantresetstats">Vuoi resettare le statistiche sull\'attività?</string>
<string name="statistics">Statistiche</string>
<string name="randombg">BG casuale</string>
<string name="description_source_randombg">Genera dati glicemia casuali (solo modalità demo)</string>
<string name="randombg_short">BG</string>
</resources>

View file

@ -46,10 +46,10 @@
<string name="unfinshed_button">Kitas neužbaigtas</string>
<string name="requestcode">Paprašyti kodo: %1$s</string>
<string name="objectives_hint">(pasirinkite visus teisingus atsakymus)</string>
<string name="disconnectpump_hint">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#what-to-do-when-taking-a-shower-or-bath</string>
<string name="usetemptarget_hint">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#the-homescreen</string>
<string name="useaction_hint">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#config-builder</string>
<string name="usescale_hint">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#the-homescreen</string>
<string name="disconnectpump_hint" formatted="false">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#what-to-do-when-taking-a-shower-or-bath</string>
<string name="usetemptarget_hint" formatted="false">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#the-homescreen</string>
<string name="useaction_hint" formatted="false">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#config-builder</string>
<string name="usescale_hint" formatted="false">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#the-homescreen</string>
<string name="notconnected">Neprisijungta prie interneto</string>
<string name="failedretrievetime">Nepavyko nuskaityti laiko</string>
<string name="requirementnotmet">Tikslo reikalavimai neįvykdyti</string>

View file

@ -182,18 +182,18 @@
<string name="careportal_announcement">Pranešimas</string>
<string name="careportal_note">Pastaba</string>
<string name="careportal_question">Klausimas</string>
<string name="careportal_exercise">FA-fizinis aktyvumas</string>
<string name="careportal_exercise">Fizinis aktyvumas</string>
<string name="careportal_pumpsitechange">Kateterio keitimas</string>
<string name="careportal_cgmsensorinsert">CGM sensoriaus įvedimas</string>
<string name="careportal_cgmsensorstart">CGM sensoriaus paleidimas</string>
<string name="careportal_cgmsensorinsert">NGJ sensoriaus įvedimas</string>
<string name="careportal_cgmsensorstart">NGJ sensoriaus paleidimas</string>
<string name="careportal_insulincartridgechange">Insulino rezervuaro keitimas</string>
<string name="careportal_profileswitch">Profilio keitimas</string>
<string name="careportal_snackbolus">Užkandžio bolusas</string>
<string name="careportal_snackbolus">Bolusas užkandžiui</string>
<string name="careportal_mealbolus">Bolusas valgiui</string>
<string name="careportal_correctionbolus">Bolusas korekcijai</string>
<string name="careportal_combobolus">Kombinuotas bolusas</string>
<string name="careportal_tempbasalstart">Pradėti laikiną bazę</string>
<string name="careportal_tempbasalend">Užbaigti laikiną bazę</string>
<string name="careportal_tempbasalstart">Pradėta laikina bazė</string>
<string name="careportal_tempbasalend">Užbaigta laikina bazė</string>
<string name="careportal_carbscorrection">Angliavandeniai korekcijai</string>
<string name="careportal_openapsoffline">OpenAPS neprisijungus</string>
<string name="careportal_newnstreatment_eventtype">Įvykio tipas</string>
@ -356,7 +356,7 @@
<string name="ns_upload_only_summary">Duomenys tik perkeliami į Nightscout. Gliukozės duomenys perkeliami tik tada, kai naudojama lokali programa, pvz.: xDrip. Naudojant NS-profilį, kiti profiliai neaktyvūs.</string>
<string name="pumpNotInitialized">Pompa neprijungta!</string>
<string name="pumpNotInitializedProfileNotSet">Pompa neprijungta, profilis nepasirinktas!</string>
<string name="primefill">Užpildyti kateterį/adatą</string>
<string name="primefill">Užpildymas</string>
<string name="fillwarning">Įsitikinkite, kad nurodytas kiekis atitinka Jūsų infuzijos rinkinio specifikaciją!</string>
<string name="othersettings_title">Kita</string>
<string name="fillbolus_title">Standartiniai insulino kiekiai kateterio/kaniulės užpildymui.</string>
@ -412,12 +412,12 @@
<string name="danar_stats_expweight">Eksponentiškai svertinė BPD</string>
<string name="danar_stats_basalrate">Valandinė bazė</string>
<string name="danar_stats_bolus">Bolusas</string>
<string name="danar_stats_tdd">BPD bendroji paros dozė</string>
<string name="danar_stats_tdd">BPD</string>
<string name="danar_stats_date">Data</string>
<string name="danar_stats_ratio">Koeficientas</string>
<string name="danar_stats_amount_days"># dienų</string>
<string name="danar_stats_weight">Svoris</string>
<string name="danar_stats_warning_Message">Duomenys netikslūs, jei bolusai naudojami sistemos ar adatų užpildymui!</string>
<string name="danar_stats_warning_Message">Duomenys netikslūs, jei bolusai naudojami kateterių užpildymui!</string>
<string name="danar_stats_olddata_Message">Duomenys seni, spauskite \"ATNAUJINTI\"</string>
<string name="danar_stats_tbb">Pagrindinė bazė (PB)</string>
<string name="danar_stats_tbb2">PB * 2</string>
@ -545,7 +545,7 @@
<string name="enablesuperbolus_summary">Įgalina superbolusų naudojimą insulino skaičiuoklėje. Nenaudokite, kol nesuprantate, ką superbolus funkcija atlieka. NAUDODAMI AKLAI GALITE PERDOZUOTI INSULINO!</string>
<string name="show_statuslights">Pradžios ekrane rodyti spalvotus indikatorius</string>
<string name="show_statuslights_extended">Pradžios ekrane rodyti papildomus šviesos indikatorius</string>
<string name="show_statuslights_extended_summary">Pradžios ekrane rodyti papildomus šviesos indikatorius adatos, insulino, sensoriaus naudojimo trukmei bei baterijos įkrovimo lygiui.</string>
<string name="show_statuslights_extended_summary">Pradžios ekrane rodyti papildomus šviesos indikatorius kateterio, 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>
@ -570,15 +570,15 @@
<string name="extendedbolus">Ištęstas bolusas</string>
<string name="temptarget">Laik.tikslas</string>
<string name="overview_extendedbolus_cancel_button">Atšaukti ištęstą bolusą</string>
<string name="careportal_sensorage_label">Sensoriaus naudojimo laikas</string>
<string name="careportal_canulaage_label">Adatos naudojimo laikas</string>
<string name="careportal_insulinage_label">Insulino naudojimo laikas</string>
<string name="careportal_sensorage_label">Sensorius</string>
<string name="careportal_canulaage_label">Kateteris</string>
<string name="careportal_insulinage_label">Insulinas</string>
<string name="hours">valandos</string>
<string name="overview_newtempbasal_basaltype_label">Valandinės bazės tipas</string>
<string name="invalidprofile">Netinkamas profilis!!!</string>
<string name="profileswitch">Profilio keitimas</string>
<string name="careportal_pbage_label">Pompos baterijos naudojimo laikas</string>
<string name="careportal_pumpbatterychange">Pompos baterijos pakeitimas</string>
<string name="careportal_pbage_label">Pompos baterija</string>
<string name="careportal_pumpbatterychange">Pompos baterijos keitimas</string>
<string name="ns_alarmoptions">Aliarmų nustatymai</string>
<string name="nsalarm_urgenthigh">Kritiškai aukštas</string>
<string name="nsalarm_high">Aukštas</string>
@ -622,8 +622,8 @@
<string name="ns_localbroadcasts">Įgalinti perdavimą į kitas programas (pvz., „XDrip“). Neįgalinkite, jei įdiegta daugiau nei vienas AAPS arba NSClient egzempliorius!</string>
<string name="ns_localbroadcasts_title">Įgalinti lokalų duomenų perdavimą.</string>
<string name="careportal_activity_label">AKTYVUMAS &amp; ATGALINIS RYŠYS</string>
<string name="careportal_carbsandbolus_label">ANGLIAVANDENIAI &amp; BOLUSAS</string>
<string name="careportal_cgm_label">CGM &amp; OPENAPS</string>
<string name="careportal_carbsandbolus_label">ANGLIAVANDENIAI &amp; BOLUSAI</string>
<string name="careportal_cgm_label">NGJ &amp; OPENAPS</string>
<string name="careportal_pump_label">POMPA</string>
<string name="overview_newtempbasal_basalabsolute">Valandinė bazė [vv/val]</string>
<string name="careportal_newnstreatment_duration_min_label">Trukmė [min]</string>
@ -793,8 +793,8 @@
<string name="show_cgm_button_summary">Atidaro xDrip+, o mygtukas ATGAL gražina į AAPS</string>
<string name="carb_increment_button_message">Paspaudus mygtuką įvedamas nustatytas angliavandenių kiekis</string>
<string name="insulin_increment_button_message">Paspaudus mygtuką įvedamas nustatytas insulino kiekis</string>
<string name="error_starting_cgm">Nepavyko paleisti CGM programos. Įsitikinkite, kad ji įdiegta.</string>
<string name="overview_cgm">CGM</string>
<string name="error_starting_cgm">Nepavyko paleisti NGJ programos. Įsitikinkite, kad ji įdiegta.</string>
<string name="overview_cgm">NGJ</string>
<string name="nav_historybrowser">Istorija</string>
<string name="wear_notifysmb_title">Pranešti apie SMB</string>
<string name="wear_notifysmb_summary">Rodyti SMB laikrodyje kaip standartinį bolusą.</string>
@ -896,7 +896,7 @@
<string name="firstcarbsincrement">Pirmas angliavandenių kiekio žingsnis</string>
<string name="secondcarbsincrement">Antras angliavandenių kiekio žingsnis</string>
<string name="thirdcarbsincrement">Trečias angliavandenių kiekio žingsnis</string>
<string name="cgm">CGM</string>
<string name="cgm">NGJ</string>
<string name="ns_wifionly">Naudoti tik WiFi</string>
<string name="ns_wifi_ssids">WiFi pavadinimas</string>
<string name="ns_chargingonly">Tik įkraunant</string>

View file

@ -10,18 +10,18 @@
<string name="dia_valuemustbedetermined">U moet uw eigen waarde bepalen (maar niet minder dan 5 uur).</string>
<string name="hypott_label">Thema: Hypo Tijdelijk Streefdoel</string>
<string name="hypott_whenhypott">Wat is de primaire reden om een hypo TT in te stellen?</string>
<string name="hypott_goinglow">Voorkomen dat BG te laag wordt als er een tijdelijk basaal van 0 (nul-temp) wordt uitgevoerd.</string>
<string name="hypott_goinglow">Voorkomen dat BG te laag wordt als er al een tijdelijk basaal van 0 (nul-temp) wordt uitgevoerd.</string>
<string name="hypott_preventoversmb">Om te voorkomen dat AAPS te veel insuline toedient na een stijging veroorzaakt door snelwerkende koolhydraten gebruikt voor de behandeling van een lage BG.</string>
<string name="hypott_hint1">https://androidaps.readthedocs.io/en/latest/CROWDIN/nl/Usage/temptarget.html</string>
<string name="offlineprofile_whatprofile">Welk profiel kan offline worden gebruikt en geconfigureerd?</string>
<string name="offlineprofile_whatprofile">Welk profiel kan offline worden gebruikt én worden aangepast?</string>
<string name="offlineprofile_label">Thema: offline profiel</string>
<string name="offlineprofile_nsprofile">NS-Profiel kan worden gebruikt, maar niet geconfigureerd.</string>
<string name="offlineprofile_nsprofile">NS-Profiel kan worden gebruikt, maar niet worden aangepast.</string>
<string name="offlineprofile_hint1">https://androidaps.readthedocs.io/en/latest/CROWDIN/nl/Configuration/Config-Builder.html#profiel</string>
<string name="pumpdisconnect_label">Onderwerp: Ontkoppelen van de Pomp</string>
<string name="pumpdisconnect_whattodo">Wat moet er gebeuren bij het loskoppelen van de pomp?</string>
<string name="pumpdisconnect_letknow">Klik op \'pomp ontkoppelen\' zodat AAPS weet dat er geen insuline wordt afgeleverd.</string>
<string name="pumpdisconnect_suspend">Klik op \'lus onderbreken\' zodat AAPS stopt met loopen terwijl de pomp is losgekoppeld.</string>
<string name="pumpdisconnect_dontchnage">Verander niets in AAPS, koppel de pomp gewoon af.</string>
<string name="pumpdisconnect_dontchnage">Verander niets in AAPS, koppel gewoon de pomp af.</string>
<string name="pumpdisconnect_hint1">https://androidaps.readthedocs.io/en/latest/CROWDIN/nl/Getting-Started/FAQ.html#overige-instellingen</string>
<string name="objectives_label">Onderwerp: AndroidAPS Instellingen</string>
<string name="objectives_howtosave">Welke dingen kun je het beste doen om een back-up van uw instellingen te maken?</string>
@ -41,20 +41,20 @@
<string name="noisycgm_turnoffphone">Schakel de telefoon uit.</string>
<string name="noisycgm_hint1">https://androidaps.readthedocs.io/en/latest/CROWDIN/nl/Usage/Smoothing-Blood-Glucose-Data-in-xDrip.html#filteren-van-bloed-glucose-waardes</string>
<string name="noisycgm_checksmoothing">Zorg dat uw CGM-app de BG-gegevens vloeiend maakt.</string>
<string name="exercise_label">Onderwerp: Inspanning</string>
<string name="exercise_label">Onderwerp: Fysieke inspanning</string>
<string name="exercise_whattodo">Hoe kunt u het systeem helpen zich aan te passen bij sporten?</string>
<string name="exercise_setactivitytt">Met behulp van de tijdelijk streefdoel functie.</string>
<string name="exercise_switchprofilebelow100">Pas het profiel %% aan naar een waarde onder de 100%.</string>
<string name="exercise_switchprofileabove100">Pas het profiel %% aan naar een waarde boven de 100%.</string>
<string name="exercise_switchprofilebelow100">Pas het profiel percentage aan naar een waarde onder de 100%.</string>
<string name="exercise_switchprofileabove100">Pas het profiel percentage aan naar een waarde boven de 100%.</string>
<string name="exercise_stoploop">Stop de Loop.</string>
<string name="exercise_doitbeforestart">Stel een tijdelijk streefdoel in voorafgaand aan het starten met sporten.</string>
<string name="exercise_afterstart">Het instellen van een tijdelijk streefdoel nadat u met sporten bent gestart, leidt tot slechtere resultaten dan wanneer u dit enige tijd voorafgaand aan het sporten had ingesteld.</string>
<string name="exercise_hint1">https://androidaps.readthedocs.io/en/latest/CROWDIN/nl/Usage/temptarget.html#activiteit-tijdelijk-streefdoel</string>
<string name="suspendloop_label">Onderwerp: Uitgeschakelde/onderbroken loop</string>
<string name="suspendloop_doigetinsulin">Ontvang ik insuline wanneer de lus is uitgeschakeld/onderbroken?</string>
<string name="suspendloop_doigetinsulin">Ontvang ik insuline wanneer de Loop is uitgeschakeld/onderbroken?</string>
<string name="suspendloop_yes">Ja, de basale insuline wordt nog steeds geleverd.</string>
<string name="suspendloop_no">Nee, de levering van insuline is gestopt.</string>
<string name="basaltest_label">Onderwerp: Basaal, ISF en IC-tests</string>
<string name="basaltest_label">Onderwerp: Testen van Basaal, ISF en IC</string>
<string name="basaltest_when">Wanneer moet ik de basaal, ISF, en KH-waarden uittesten?</string>
<string name="basaltest_beforeloop">Voordat ik begin te loopen.</string>
<string name="basaltest_havingregularhypo">Wanneer je vaak een lage BG hebt.</string>
@ -89,7 +89,7 @@
<string name="troubleshooting_wiki">Lees de volledige AndroidAPS documentatie (kies voor Nederlands in het menu)</string>
<string name="troubleshooting_gitter">Bezoek de AndroidAPS Gitter Room.</string>
<string name="troubleshooting_googlesupport">Bezoek AndroidAPS Google-ondersteuning</string>
<string name="troubleshooting_yourendo">Praat met je endocrinoloog.</string>
<string name="troubleshooting_yourendo">Praat met je internist.</string>
<string name="troubleshooting_hint1">https://androidaps.readthedocs.io/en/latest/CROWDIN/nl/Installing-AndroidAPS/Update-to-new-version.html#problemen-oplossen</string>
<string name="troubleshooting_hint2">https://www.facebook.com/groups/AndroidAPSUsers/</string>
<string name="troubleshooting_hint3">https://gitter.im/MilosKozak/AndroidAPS</string>
@ -127,7 +127,7 @@
<string name="isf_increasingvalue">Hogere ISF-waarden leiden tot minder insulineafgifte wanneer AAPS voor hoge BG corrigeert.</string>
<string name="isf_decreasingvalue">Lagere ISF-waarden leiden tot minder insulineafgifte wanneer AAPS voor hoge BG corrigeert.</string>
<string name="isf_noeffect">Het wijzigen van de ISF-waarden heeft geen effect op de hoeveelheid insuline die wordt geleverd wanneer AAPS voor hoge BG corrigeert.</string>
<string name="isf_preferences">U moet ISF invoeren in Voorkeuren.</string>
<string name="isf_preferences">U moet ISF invoeren in Instellingen.</string>
<string name="isf_profile">Het wijzigen van de ISF-waarde in uw profiel is voldoende om de wijziging toe te passen.</string>
<string name="isf_hint1">https://androidaps.readthedocs.io/en/latest/CROWDIN/nl/Getting-Started/FAQ.html#insuline-gevoeligheids-factor-insulin-sensitivity-factor-ISF-mmol-l-E-of-mg-dl-E</string>
<string name="isf_hint2">https://androidaps.readthedocs.io/en/latest/CROWDIN/nl/Usage/Profielen.html</string>
@ -135,15 +135,15 @@
<string name="ic_increasingvalue">Hogere KH ratios leiden tot minder insuline afgifte voor een bepaalde hoeveelheid koolhydraten.</string>
<string name="ic_decreasingvalue">Lagere KH ratios leiden tot minder insuline afgifte voor een bepaalde hoeveelheid koolhydraten.</string>
<string name="ic_noeffect">Als je 0 COB hebt zal het veranderen van KH ratio leiden tot een andere hoeveelheid insuline om jouw BG te corrigeren.</string>
<string name="ic_different">KH ratio zal anders zijn als je brood-eenheid telt als 10g of 12g.</string>
<string name="ic_different">KH ratio zal anders zijn als je een brood-eenheid telt als 10g of 12g.</string>
<string name="ic_meaning">KH ratio betekent: Hoeveel brood-eenheden gebruik je voor 1U insuline.</string>
<string name="ic_hint1">https://androidaps.readthedocs.io/en/latest/CROWDIN/nl/Getting-Started/FAQ.html#Koolhydraat-ratio-KH-g-E</string>
<string name="profileswitch_label">Onderwerp: Profiel wissels</string>
<string name="profileswitch_pctwillchange"> Bij het opgeven van 90% in je profiel wissel…</string>
<string name="profileswitch_basalhigher">Basalen zullen 10% hoger zijn.</string>
<string name="profileswitch_basallower">Basalen zullen 10% lager zijn.</string>
<string name="profileswitch_ichigher">De KH ratio wordt 10% hoger.</string>
<string name="profileswitch_iclower">De KH ratio wordt 10% lager.</string>
<string name="profileswitch_ichigher">De KH ratio zal 10% hoger worden.</string>
<string name="profileswitch_iclower">De KH ratio zal 10% lager worden.</string>
<string name="profileswitch_isfhigher">ISF-waarde wordt 10% hoger.</string>
<string name="profileswitch_isflower">ISF-waarde wordt 10% lager.</string>
<string name="profileswitch_overall">In totaal zul je ongeveer 10% minder insuline krijgen.</string>

View file

@ -46,10 +46,10 @@
<string name="unfinshed_button">Volgende onvoltooide</string>
<string name="requestcode">Aanvraagcode: %1$s</string>
<string name="objectives_hint">(controleer alle juiste antwoorden)</string>
<string name="disconnectpump_hint">https://androidaps.readthedocs.io/en/latest/CROWDIN/nl/Getting-Started/FAQ.html#wat-te-doen-tijdens-het-douchen</string>
<string name="usetemptarget_hint">https://androidaps.readthedocs.io/en/latest/CROWDIN/nl/Getting-Started/Screenshots.html#overzicht-scherm</string>
<string name="useaction_hint">https://androidaps.readthedocs.io/en/latest/CROWDIN/nl/Getting-Started/Screenshots.html#configurator</string>
<string name="usescale_hint">https://androidaps.readthedocs.io/en/latest/CROWDIN/nl/Getting-Started/Screenshots.html#overzicht-scherm</string>
<string name="disconnectpump_hint" formatted="false">https://androidaps.readthedocs.io/en/latest/CROWDIN/nl/Getting-Started/FAQ.html#wat-te-doen-tijdens-het-douchen</string>
<string name="usetemptarget_hint" formatted="false">https://androidaps.readthedocs.io/en/latest/CROWDIN/nl/Getting-Started/Screenshots.html#overzicht-scherm</string>
<string name="useaction_hint" formatted="false">https://androidaps.readthedocs.io/en/latest/CROWDIN/nl/Getting-Started/Screenshots.html#configurator</string>
<string name="usescale_hint" formatted="false">https://androidaps.readthedocs.io/en/latest/CROWDIN/nl/Getting-Started/Screenshots.html#overzicht-scherm</string>
<string name="notconnected">Niet verbonden met het internet</string>
<string name="failedretrievetime">Ophalen tijd mislukt</string>
<string name="requirementnotmet">Vereisten van doel niet behaald</string>

View file

@ -46,10 +46,10 @@
<string name="unfinshed_button">Następny niedokończony</string>
<string name="requestcode">Kod zapytania: %1$s</string>
<string name="objectives_hint">(sprawdź wszystkie poprawne odpowiedzi)</string>
<string name="disconnectpump_hint">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#what-to-do-when-taking-a-shower-or-bath</string>
<string name="usetemptarget_hint">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#the-homescreen</string>
<string name="useaction_hint">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#config-builder</string>
<string name="usescale_hint">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#the-homescreen</string>
<string name="disconnectpump_hint" formatted="false">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#what-to-do-when-taking-a-shower-or-bath</string>
<string name="usetemptarget_hint" formatted="false">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#the-homescreen</string>
<string name="useaction_hint" formatted="false">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#config-builder</string>
<string name="usescale_hint" formatted="false">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#the-homescreen</string>
<string name="notconnected">Brak połączenia z Internetem</string>
<string name="failedretrievetime">Nie udało się odzyskać</string>
<string name="requirementnotmet">Wymagania celu nie zostały spełnione</string>

View file

@ -46,10 +46,10 @@
<string name="unfinshed_button">Próximo inacabado</string>
<string name="requestcode">Pedir Código: %1$s</string>
<string name="objectives_hint">(marque todas as respostas correctas)</string>
<string name="disconnectpump_hint">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#what-to-do-when-taking-a-shower-or-bath</string>
<string name="usetemptarget_hint">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#the-homescreen</string>
<string name="useaction_hint">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#config-builder</string>
<string name="usescale_hint">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#the-homescreen</string>
<string name="disconnectpump_hint" formatted="false">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#what-to-do-when-taking-a-shower-or-bath</string>
<string name="usetemptarget_hint" formatted="false">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#the-homescreen</string>
<string name="useaction_hint" formatted="false">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#config-builder</string>
<string name="usescale_hint" formatted="false">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#the-homescreen</string>
<string name="notconnected">Não está ligado à internet</string>
<string name="failedretrievetime">Falha ao recuperar tempo</string>
<string name="requirementnotmet">Requisitos de objectivo não cumpridos</string>

View file

@ -260,12 +260,20 @@
<string name="smscommunicator_allowednumbers">Números de telefone permitidos</string>
<string name="smscommunicator_allowednumbers_summary">+XXXXXXXXXX;+YYYYYYYYYY</string>
<string name="smscommunicator_bolusreplywithcode">Para dar bolus %1$.2fU responder com código %2$s</string>
<string name="smscommunicator_mealbolusreplywithcode">Para dar bólus %1$.2fU responder com código %2$s</string>
<string name="smscommunicator_temptargetwithcode">Para definir o Alvo Tempo %1$s responda com o código %2$s</string>
<string name="smscommunicator_temptargetcancel">Para cancelar Alvo Temp responda com o código %1$s</string>
<string name="smscommunicator_stopsmswithcode">Para desactivar o Serviço Remoto SMS de responda com o código %1$s.\n\nTenha em mente que será capaz de o reactivar directamente apenas a partir do telemóvel mestre do AAPS.</string>
<string name="smscommunicator_stoppedsms">SMS Serviço Remoto interrompido. Para reactivá-lo, use o AAPS no telemóvel mestre.</string>
<string name="smscommunicator_calibrationreplywithcode">Para enviar calibração %1$.2f responder com código %2$s</string>
<string name="smscommunicator_bolusfailed">Bolus falhou</string>
<string name="smscommunicator_remotebolusmindistance_summary">Número mínimo de minutos que deve decorrer entre um bólus remoto e o próximo</string>
<string name="smscommunicator_remotebolusmindistance">Quantos minutos deve decorrer, pelo menos, entre um bólus e o próximo</string>
<string name="smscommunicator_remotebolusmindistance_caveat">Para sua segurança, para editar esta preferência você precisa adicionar pelo menos 2 números de telefone.</string>
<string name="bolusdelivered">Bolus %1$.2fU entregue com sucesso</string>
<string name="bolusrequested">Vão ser administradas %1$.2fU</string>
<string name="smscommunicator_bolusdelivered">Bólus %1$.2fU enviado com êxito</string>
<string name="smscommunicator_mealbolusdelivered">Bólus de refeição %1$.2fU entregue com sucesso</string>
<string name="smscommunicator_mealbolusdelivered_tt">Alvo %1$s para %2$d minutos</string>
<string name="smscommunicator_tt_set">Alvo %1$s para %2$d minutos definido com sucesso</string>
<string name="smscommunicator_tt_canceled">Alvo Temp cancelado com êxito</string>
@ -1182,6 +1190,7 @@
<string name="running_invalid_version">Detectamos que está a correr uma versão inválida. Loop desactivado!</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! Retorno a LGS após %2$d dias, o loop será desactivado após %3$d dias</string>
<string name="twohours">2h</string>
<string name="formatinsulinunits">%1$.2fU</string>
<string name="dexcom_app_patched">App Dexcom (com patch)</string>
@ -1393,6 +1402,7 @@
<string name="objectives_button_unfinish">Limpar terminado</string>
<string name="objectives_button_unstart">Limpar iniciado</string>
<string name="timedetection">Detecção de tempo</string>
<string name="doyouwantresetstart">Deseja reiniciar o objectivo? Pode perder seu progresso.</string>
<string name="nopumpselected">Nenhuma bomba seleccionada</string>
<string name="setupwizard_units_prompt">Seleccione as unidades em que deseja exibir os valores</string>
<string name="ns_ploadlocalprofile">Carregar as alterações do perfil local para NS</string>
@ -1405,5 +1415,24 @@
<string name="deletecurrentprofile">Eliminar perfil actual?</string>
<string name="copytolocalprofile">Criar novo perfil local a partir desta troca de perfil?</string>
<string name="profilenamecontainsdot">Nome do perfil contém pontos.\nIsso não é suportado pelo NS.\nPerfil não é enviado para o NS.</string>
<string name="low_mark_comment">Valor mais baixo da área de intervalo (apenas exibição)</string>
<string name="high_mark_comment">Valor mais alto da área de intervalo (apenas exibição)</string>
<string name="reorder_label">Reordenar</string>
<string name="age">Idade:</string>
<string name="weight">Peso:</string>
<string name="id">ID:</string>
<string name="submit">Enviar</string>
<string name="mostcommonprofile">Perfil mais comum:</string>
<string name="survey_comment">Nota: Apenas os dados visíveis neste ecrã serão enviados anonimamente. O ID é atribuído a esta instalação do AndroidAPS. Você pode enviar dados novamente se o perfil principal for alterado, mas deixá-lo rodar pelo menos uma semana para tornar o resultado visível no intervalo de tempo. Sua ajuda é apreciada.</string>
<string name="nav_survey">Questionário</string>
<string name="invalidage">Entrada de idade inválida</string>
<string name="invalidweight">Entrada de peso inválida</string>
<string name="tddformat"><![CDATA[<b>%1$s:</b> ∑: <b>%2$.2f</b> Bol: <b>%3$.2f</b> Bas: <b>%4$.2f</b>]]></string>
<string name="tirformat"><![CDATA[<b>%1$s:</b> Hipo: <b>%2$02d%%</b> Dentro: <b>%3$02d%%</b> Hiper: <b>%4$02d%%</b>]]></string>
<string name="average">Média</string>
<string name="tdd">TDD</string>
<string name="tir">TIR</string>
<string name="activitymonitor">Monitor de actividade</string>
<string name="doyouwantresetstats">Quer reiniciar as estatísticas de actividade?</string>
<string name="statistics">Estatísticas</string>
</resources>

View file

@ -46,10 +46,10 @@
<string name="unfinshed_button">Próximo inacabado</string>
<string name="requestcode">Pedir Código: %1$s</string>
<string name="objectives_hint">(marque todas as respostas correctas)</string>
<string name="disconnectpump_hint">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#what-to-do-when-taking-a-shower-or-bath</string>
<string name="usetemptarget_hint">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#the-homescreen</string>
<string name="useaction_hint">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#config-builder</string>
<string name="usescale_hint">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#the-homescreen</string>
<string name="disconnectpump_hint" formatted="false">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#what-to-do-when-taking-a-shower-or-bath</string>
<string name="usetemptarget_hint" formatted="false">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#the-homescreen</string>
<string name="useaction_hint" formatted="false">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#config-builder</string>
<string name="usescale_hint" formatted="false">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#the-homescreen</string>
<string name="notconnected">Não está ligado à internet</string>
<string name="failedretrievetime">Falha ao recuperar tempo</string>
<string name="requirementnotmet">Requisitos de objectivo não cumpridos</string>

View file

@ -593,6 +593,7 @@
<string name="overview_newtempbasal_basaltype_label">Tipo de Basal</string>
<string name="invalidprofile">Perfil inválido !!!</string>
<string name="profileswitch">TrocaPerfil</string>
<string name="doprofileswitch">Fazer Mudança De Perfil</string>
<string name="careportal_pbage_label">Idade bateria bomba</string>
<string name="careportal_pumpbatterychange">Troca bateria bomba</string>
<string name="ns_alarmoptions">Opções Alarme</string>
@ -1435,4 +1436,7 @@
<string name="activitymonitor">Monitor de actividade</string>
<string name="doyouwantresetstats">Quer reiniciar as estatísticas de actividade?</string>
<string name="statistics">Estatísticas</string>
<string name="randombg">Glic. Aleatória</string>
<string name="description_source_randombg">Gerar dados de Glic. aleatórios (Somente modo de Demonstração)</string>
<string name="randombg_short">GLIC</string>
</resources>

View file

@ -44,10 +44,10 @@
<string name="unfinshed_button">Următoarea nefinalizată</string>
<string name="requestcode">Solicită codul: %1$s</string>
<string name="objectives_hint">(bifați toate răspunsurile corecte)</string>
<string name="disconnectpump_hint">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#what-to-do-when-taking-a-shower-or-bath</string>
<string name="usetemptarget_hint">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#the-homescreen</string>
<string name="useaction_hint">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#config-builder</string>
<string name="usescale_hint">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#the-homescreen</string>
<string name="disconnectpump_hint" formatted="false">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#what-to-do-when-taking-a-shower-or-bath</string>
<string name="usetemptarget_hint" formatted="false">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#the-homescreen</string>
<string name="useaction_hint" formatted="false">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#config-builder</string>
<string name="usescale_hint" formatted="false">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#the-homescreen</string>
<string name="notconnected">Nu există conexiune la internet</string>
<string name="failedretrievetime">Nu s-a reușit preluarea timpului</string>
<string name="requirementnotmet">Nu au fost îndeplinite cerințele obiectivului</string>

View file

@ -46,10 +46,10 @@
<string name="unfinshed_button">Следующий незавершенный</string>
<string name="requestcode">Код запроса: %1$s</string>
<string name="objectives_hint">(отметьте все правильные ответы)</string>
<string name="disconnectpump_hint">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#what-to-do-when-taking-a-shower-or-bath</string>
<string name="usetemptarget_hint">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#the-homescreen</string>
<string name="useaction_hint">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#config-builder</string>
<string name="usescale_hint">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#the-homescreen</string>
<string name="disconnectpump_hint" formatted="false">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#what-to-do-when-taking-a-shower-or-bath</string>
<string name="usetemptarget_hint" formatted="false">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#the-homescreen</string>
<string name="useaction_hint" formatted="false">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#config-builder</string>
<string name="usescale_hint" formatted="false">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#the-homescreen</string>
<string name="notconnected">Нет подключения к Интернету</string>
<string name="failedretrievetime">Не удалось загрузить время</string>
<string name="requirementnotmet">Требования к цели не выполнены</string>

View file

@ -1420,4 +1420,21 @@ Context | Edit Context</string>
<string name="low_mark_comment">Меньшее значение диапазона целевых значений (только для дисплея)</string>
<string name="high_mark_comment">Большее значение диапазона целевых значений (только для дисплея)</string>
<string name="reorder_label">Повторный заказ</string>
<string name="age">Возраст:</string>
<string name="weight">Вес:</string>
<string name="id">Идентификатор:</string>
<string name="submit">Отправить</string>
<string name="mostcommonprofile">Наиболее часто применяемый профиль:</string>
<string name="survey_comment">Примечание: Данные, видимые на этом экране, будут загружены анонимно. Для этой установки AndroidAPS назначен идентификатор. Вы можете снова передать данные, если ваш основной профиль будет изменен, но пусть он работает по крайней мере в течение недели, чтобы результат был виден в динамике. Ваша помощь ценна.</string>
<string name="nav_survey">Опрос</string>
<string name="invalidage">Некорректное значение возраст</string>
<string name="invalidweight">Некорректное значение вес</string>
<string name="tddformat"><![CDATA[<b>%1$s:</b> ∑: <b>%2$.2f</b> Bol: <b>%3$.2f</b> Bas: <b>%4$.2f</b>]]></string>
<string name="tirformat"><![CDATA[<b>%1$s:</b> Низкий: <b>%2$02d%%</b> В целевом диапазоне: <b>%3$02d%%</b> Высокий: <b>%4$02d%%</b>]]></string>
<string name="average">Средний</string>
<string name="tdd">TDD/общая суточная доза</string>
<string name="tir">Время в целевом диапазоне TIR</string>
<string name="activitymonitor">Монитор активности</string>
<string name="doyouwantresetstats">Хотите сбросить статистику активности?</string>
<string name="statistics">Статистика</string>
</resources>

View file

@ -46,10 +46,10 @@
<string name="unfinshed_button">Ďalšia nedokončená</string>
<string name="requestcode">Kód žiadosti: %1$s</string>
<string name="objectives_hint">(zaškrtnite všetky správne odpovede)</string>
<string name="disconnectpump_hint">https://androidaps.readthedocs.io/en/latest/CROWDIN/cs/Getting-Started/FAQ.html#co-delat-pri-sprchovani-a-koupani</string>
<string name="usetemptarget_hint">https://androidaps.readthedocs.io/en/latest/CROWDIN/cs/Getting-Started/Screenshots.html#hlavni-stranka</string>
<string name="useaction_hint">https://androidaps.readthedocs.io/en/latest/CROWDIN/cs/Getting-Started/Screenshots.html#konfigurace</string>
<string name="usescale_hint">https://androidaps.readthedocs.io/en/latest/CROWDIN/cs/Getting-Started/Screenshots.html#hlavni-stranka</string>
<string name="disconnectpump_hint" formatted="false">https://androidaps.readthedocs.io/en/latest/CROWDIN/cs/Getting-Started/FAQ.html#co-delat-pri-sprchovani-a-koupani</string>
<string name="usetemptarget_hint" formatted="false">https://androidaps.readthedocs.io/en/latest/CROWDIN/cs/Getting-Started/Screenshots.html#hlavni-stranka</string>
<string name="useaction_hint" formatted="false">https://androidaps.readthedocs.io/en/latest/CROWDIN/cs/Getting-Started/Screenshots.html#konfigurace</string>
<string name="usescale_hint" formatted="false">https://androidaps.readthedocs.io/en/latest/CROWDIN/cs/Getting-Started/Screenshots.html#hlavni-stranka</string>
<string name="notconnected">Nie ste pripojený k internetu</string>
<string name="failedretrievetime">Vyčítanie času zlyhalo</string>
<string name="requirementnotmet">Požiadavky cieľa nie sú splnené</string>

View file

@ -593,6 +593,7 @@
<string name="overview_newtempbasal_basaltype_label">Typ bazálu</string>
<string name="invalidprofile">Chybný profil !!!</string>
<string name="profileswitch">Prepnutie profilu</string>
<string name="doprofileswitch">Vykonajte zmenu profilu</string>
<string name="careportal_pbage_label">Vek batérie v pumpe</string>
<string name="careportal_pumpbatterychange">Výmena batérie v pumpe</string>
<string name="ns_alarmoptions">Nastavenie alarmov</string>
@ -1435,4 +1436,7 @@
<string name="activitymonitor">Monitor aktivity</string>
<string name="doyouwantresetstats">Chcete resetovať štatistiky aktivity?</string>
<string name="statistics">Štatistiky</string>
<string name="randombg">Náhodná glykémia</string>
<string name="description_source_randombg">Vygeneruj náhodné dáta glykémií (iba Demo režim)</string>
<string name="randombg_short">Glykémia</string>
</resources>

View file

@ -46,10 +46,10 @@
<string name="unfinshed_button">Nästa icke slutförda</string>
<string name="requestcode">Begärd kod: %1$s</string>
<string name="objectives_hint">(kontrollera alla korrekta svar)</string>
<string name="disconnectpump_hint">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#what-to-do-when-taking-a-shower-or-bath</string>
<string name="usetemptarget_hint">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#the-homescreen</string>
<string name="useaction_hint">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#config-builder</string>
<string name="usescale_hint">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#the-homescreen</string>
<string name="disconnectpump_hint" formatted="false">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#what-to-do-when-taking-a-shower-or-bath</string>
<string name="usetemptarget_hint" formatted="false">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#the-homescreen</string>
<string name="useaction_hint" formatted="false">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#config-builder</string>
<string name="usescale_hint" formatted="false">https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#the-homescreen</string>
<string name="notconnected">Inte ansluten till internet</string>
<string name="failedretrievetime">Fel vid hämtning av tid</string>
<string name="requirementnotmet">Målets krav är inte uppfyllda</string>

View file

@ -200,6 +200,16 @@
<item>@string/key_medtronic_pump_battery_nizn</item>
</string-array>
<string-array name="smbMaxMinutes">
<item>15</item>
<item>30</item>
<item>45</item>
<item>60</item>
<item>75</item>
<item>90</item>
<item>105</item>
<item>120</item>
</string-array>
key_medtronic_bolus_debug

View file

@ -1411,7 +1411,12 @@
<string name="longitude_short">Lon:</string>
<string name="distance_short">Dist [m]:</string>
<string name="name_short">Name:</string>
<string name="locationis">Location is %1$s</string>
<string name="locationis">%1$s %2$s</string>
<string name="location_mode">When </string>
<string name="location_inside">When you are inside the area</string>
<string name="location_outside">When you are outside the area</string>
<string name="location_going_in">When you enter the area named</string>
<string name="location_going_out">When you leave the area named</string>
<string name="lastboluslabel">Last bolus ago</string>
<string name="lastboluscompared">Last bolus time %1$s %2$s min ago</string>
<string name="triggercoblabel">COB</string>

View file

@ -65,19 +65,12 @@
android:summary="@string/enablesmbaftercarbs_summary"
android:title="@string/enablesmbaftercarbs" />
<com.andreabaccega.widget.ValidatingEditTextPreference
<ListPreference
android:defaultValue="30"
android:dialogMessage="@string/smbmaxminutes"
android:digits="0123456789"
android:inputType="number"
android:entries="@array/smbMaxMinutes"
android:entryValues="@array/smbMaxMinutes"
android:key="@string/key_smbmaxminutes"
android:maxLines="20"
android:selectAllOnFocus="true"
android:singleLine="true"
android:title="@string/smbmaxminutes_summary"
validate:maxNumber="120"
validate:minNumber="15"
validate:testType="numericRange" />
android:title="@string/smbmaxminutes_summary" />
<SwitchPreference
android:defaultValue="false"

View file

@ -19,6 +19,7 @@ import info.AAPSMocker;
import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.R;
import info.nightscout.androidaps.plugins.configBuilder.ProfileFunctions;
import info.nightscout.androidaps.plugins.general.automation.elements.InputLocationMode;
import info.nightscout.androidaps.services.LocationService;
import info.nightscout.androidaps.utils.DateUtil;
@ -39,6 +40,7 @@ public class TriggerLocationTest {
PowerMockito.mockStatic(DateUtil.class);
PowerMockito.mockStatic(LocationService.class);
when(DateUtil.now()).thenReturn(now);
PowerMockito.spy(LocationService.class);
PowerMockito.when(LocationService.getLastLocation()).thenReturn(mockedLocation());
@ -53,11 +55,14 @@ public class TriggerLocationTest {
t.latitude.setValue(213);
t.longitude.setValue(212);
t.distance.setValue(2);
t.modeSelected.setValue(InputLocationMode.Mode.INSIDE);
TriggerLocation t1 = (TriggerLocation) t.duplicate();
Assert.assertEquals(213d, t.latitude.getValue(), 0.01d);
Assert.assertEquals(212d, t.longitude.getValue(), 0.01d);
Assert.assertEquals(2d, t.distance.getValue(), 0.01d);
Assert.assertEquals(213d, t1.latitude.getValue(), 0.01d);
Assert.assertEquals(212d, t1.longitude.getValue(), 0.01d);
Assert.assertEquals(2d, t1.distance.getValue(), 0.01d);
Assert.assertEquals(InputLocationMode.Mode.INSIDE, t1.modeSelected.getValue());
}
@Test
@ -66,6 +71,7 @@ public class TriggerLocationTest {
t.latitude.setValue(213);
t.longitude.setValue(212);
t.distance.setValue(2);
// t.modeSelected.setValue(InputLocationMode.Mode.OUTSIDE);
PowerMockito.when(LocationService.getLastLocation()).thenReturn(null);
Assert.assertFalse(t.shouldRun());
PowerMockito.when(LocationService.getLastLocation()).thenReturn(mockedLocation());
@ -76,9 +82,23 @@ public class TriggerLocationTest {
t = new TriggerLocation();
t.distance.setValue(-500);
Assert.assertFalse(t.shouldRun());
//Test of GOING_IN - last mode should be OUTSIDE, and current mode should be INSIDE
t = new TriggerLocation();
t.distance.setValue(50);
t.lastMode = t.currentMode(55d);
PowerMockito.when(LocationService.getLastLocation()).thenReturn(null);
PowerMockito.when(LocationService.getLastLocation()).thenReturn(mockedLocationOut());
t.modeSelected.setValue(InputLocationMode.Mode.GOING_IN);
Assert.assertEquals(t.lastMode, InputLocationMode.Mode.OUTSIDE);
Assert.assertEquals(t.currentMode(5d), InputLocationMode.Mode.INSIDE);
Assert.assertTrue(t.shouldRun());
//Test of GOING_OUT - last mode should be INSIDE, and current mode should be OUTSIDE
// Currently unavailable due to problems with Location mocking
}
String locationJson = "{\"data\":{\"distance\":2,\"lastRun\":0,\"latitude\":213,\"name\":\"\",\"longitude\":212},\"type\":\"info.nightscout.androidaps.plugins.general.automation.triggers.TriggerLocation\"}";
String locationJson = "{\"data\":{\"mode\":\"OUTSIDE\",\"distance\":2,\"lastRun\":0,\"latitude\":213,\"name\":\"\",\"longitude\":212},\"type\":\"info.nightscout.androidaps.plugins.general.automation.triggers.TriggerLocation\"}";
@Test
public void toJSONTest() {
@ -86,6 +106,7 @@ public class TriggerLocationTest {
t.latitude.setValue(213);
t.longitude.setValue(212);
t.distance.setValue(2);
t.modeSelected = t.modeSelected.setValue(InputLocationMode.Mode.OUTSIDE);
Assert.assertEquals(locationJson, t.toJSON());
}
@ -95,11 +116,13 @@ public class TriggerLocationTest {
t.latitude.setValue(213);
t.longitude.setValue(212);
t.distance.setValue(2);
t.modeSelected.setValue(InputLocationMode.Mode.INSIDE);
TriggerLocation t2 = (TriggerLocation) Trigger.instantiate(new JSONObject(t.toJSON()));
Assert.assertEquals(t.latitude.getValue(), t2.latitude.getValue(), 0.01d);
Assert.assertEquals(t.longitude.getValue(), t2.longitude.getValue(), 0.01d);
Assert.assertEquals(t.distance.getValue(), t2.distance.getValue(), 0.01d);
Assert.assertEquals(t.modeSelected.getValue(), t2.modeSelected.getValue());
}
@Test
@ -139,6 +162,13 @@ public class TriggerLocationTest {
Assert.assertEquals(t.distance.getValue(), 2, 0d);
}
@Test
public void setModeTest() {
TriggerLocation t = new TriggerLocation();
t.setMode(InputLocationMode.Mode.INSIDE);
Assert.assertEquals(t.modeSelected.getValue(), InputLocationMode.Mode.INSIDE);
}
@Test
public void lastRunTest() {
TriggerLocation t = new TriggerLocation();
@ -153,4 +183,12 @@ public class TriggerLocationTest {
newLocation.setAccuracy(1f);
return newLocation;
}
public Location mockedLocationOut() {
Location newLocation = new Location("test");
newLocation.setLatitude(12f);
newLocation.setLongitude(13f);
newLocation.setAccuracy(1f);
return newLocation;
}
}

View file

@ -4,7 +4,11 @@ import org.json.JSONException;
import org.json.JSONObject;
import org.junit.Test;
import static org.junit.Assert.*;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotEquals;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
/**
* Created by mike on 12.03.2018.
@ -12,20 +16,78 @@ import static org.junit.Assert.*;
public class JsonHelperTest {
String jsonString = "{\"d\":\"3.0\",\"i\":\"4\",\"s\":\"5\"}";
private String jsonString = "{\"d\":\"3.0\",\"i\":\"4\",\"s\":\"5\",\"b\":\"true\",\"j\":{\"a\": \"1\"}}";
@Test
public void runTest() throws JSONException {
public void safeGetObjectTest() throws JSONException {
JSONObject object = new JSONObject(jsonString);
assertEquals(null, JsonHelper.safeGetString(object, "notexisting"));
Object o = new Object();
assertEquals(o, JsonHelper.safeGetObject(null, "x", o));
assertEquals(o, JsonHelper.safeGetObject(object, "x", o));
assertNotEquals(o, JsonHelper.safeGetObject(object, "d", o));
}
@Test
public void safeGetJSONObjectTest() throws JSONException {
JSONObject object = new JSONObject(jsonString);
JSONObject o = new JSONObject();
assertEquals(o, JsonHelper.safeGetJSONObject(null, "x", o));
assertTrue(JsonHelper.safeGetJSONObject(object, "j", o).has("a"));
assertEquals(o, JsonHelper.safeGetJSONObject(object, "d", o));
}
@Test
public void safeGetStringTest() throws JSONException {
JSONObject object = new JSONObject(jsonString);
Object o = new Object();
assertNull(JsonHelper.safeGetString(null, "s"));
assertNull(JsonHelper.safeGetString(object, "notexisting"));
assertEquals("5", JsonHelper.safeGetString(object, "s"));
assertEquals("default", JsonHelper.safeGetString(null, "notexisting", "default"));
assertEquals("default", JsonHelper.safeGetString(object, "notexisting", "default"));
assertEquals("5", JsonHelper.safeGetString(object, "s", "default"));
assertEquals("default", JsonHelper.safeGetStringAllowNull(null, "notexisting", "default"));
assertEquals("default", JsonHelper.safeGetStringAllowNull(object, "notexisting", "default"));
assertNull(JsonHelper.safeGetStringAllowNull(object, "notexisting", null));
assertEquals("5", JsonHelper.safeGetStringAllowNull(object, "s", "default"));
}
@Test
public void safeGetDoubleTest() throws JSONException {
JSONObject object = new JSONObject(jsonString);
assertEquals(0.0d, JsonHelper.safeGetDouble(object, "notexisting"), 0.0d);
assertEquals(0.0d, JsonHelper.safeGetDouble(null, "notexisting"), 0.0d);
assertEquals(3.0d, JsonHelper.safeGetDouble(object, "d"), 0.000001d);
assertEquals(6d, JsonHelper.safeGetDouble(null, "notexisting", 6d), 0.0d);
assertEquals(6d, JsonHelper.safeGetDouble(object, "notexisting", 6d), 0.0d);
assertEquals(3d, JsonHelper.safeGetDouble(object, "d", 6d), 0.0d);
}
@Test
public void safeGetLntTest() throws JSONException {
JSONObject object = new JSONObject(jsonString);
assertEquals(0, JsonHelper.safeGetInt(null, "notexisting"));
assertEquals(0, JsonHelper.safeGetInt(object, "notexisting"));
assertEquals(4, JsonHelper.safeGetInt(object, "i"));
}
@Test
public void safeGetLongTest() throws JSONException {
JSONObject object = new JSONObject(jsonString);
assertEquals(0, JsonHelper.safeGetInt(null, "notexisting"));
assertEquals(0, JsonHelper.safeGetInt(object, "notexisting"));
assertEquals(4, JsonHelper.safeGetInt(object, "i"));
}
@Test
public void safeGetBooleanTest() throws JSONException {
JSONObject object = new JSONObject(jsonString);
assertFalse(JsonHelper.safeGetBoolean(null, "notexisting"));
assertFalse(JsonHelper.safeGetBoolean(object, "notexisting"));
assertTrue(JsonHelper.safeGetBoolean(object, "b"));
}
}

View file

@ -34,6 +34,7 @@ import com.ustwo.clockwise.common.WatchShape;
import java.text.SimpleDateFormat;
import java.util.Date;
import info.nightscout.androidaps.aaps;
import info.nightscout.androidaps.complications.BaseComplicationProviderService;
import info.nightscout.androidaps.data.RawDisplayData;
import info.nightscout.androidaps.data.ListenerService;
@ -341,7 +342,7 @@ public abstract class BaseWatchFace extends WatchFace implements SharedPreferen
mIOB1.setText(rawData.sIOB1);
mIOB2.setText(rawData.sIOB2);
} else {
mIOB1.setText("IOB");
mIOB1.setText(aaps.gs(R.string.activity_IOB));
mIOB2.setText(rawData.sIOB1);
}
} else {

View file

@ -76,7 +76,7 @@
<string name="action_target" comment="In temp target menu, single target value">Ziel</string>
<string name="action_low" comment="In temp target menu, lower value from range">niedrig</string>
<string name="action_high" comment="In temp target menu, higher value from range">hoch</string>
<string name="action_carbs">Kohlenhydrate</string>
<string name="action_carbs">COB</string>
<string name="action_percentage">Prozentsatz</string>
<string name="action_start_min">Start [min]</string>
<string name="action_duration_h">Dauer [h]</string>
@ -95,7 +95,7 @@
<string name="status_loop">Loop</string>
<string name="status_cpp">CPP</string>
<string name="status_tdd">TDD</string>
<string name="activity_carb">Kohlenhydrate</string>
<string name="activity_carb">g KH</string>
<string name="activity_IOB">IOB</string>
<string name="activity_no_status">Kein Status</string>
<string name="unit_mg_dl">mg/dl</string>

View file

@ -4,13 +4,13 @@
<string name="app_name">AAPS</string>
<string name="label_actions_activity">AAPS</string>
<string name="label_xdrip">AAPS</string>
<string name="label_xdrip_large">AAPS(Large)</string>
<string name="label_xdrip_big_chart">AAPS(GrandGraph)</string>
<string name="label_xdrip_no_chart">AAPS(SansGraph)</string>
<string name="label_xdrip_circle">AAPS(Cercle)</string>
<string name="label_xdrip_large">AAPS (Large)</string>
<string name="label_xdrip_big_chart">AAPS (GrandGraph)</string>
<string name="label_xdrip_no_chart">AAPS (SansGraph)</string>
<string name="label_xdrip_circle">AAPS (Cercle)</string>
<string name="label_xdrip_v2">AAPSv2</string>
<string name="label_xdrip_cockpit">AAPS(Cockpit)</string>
<string name="label_xdrip_steampunk">AAPS(Steampunk)</string>
<string name="label_xdrip_cockpit">AAPS (Cockpit)</string>
<string name="label_xdrip_steampunk">AAPS (Steampunk)</string>
<string name="label_warning_sync">Pas de données !</string>
<string name="label_warning_old">Données anciennes!</string>
<string name="label_warning_since">Depuis %1$s</string>
@ -20,7 +20,7 @@
<string name="pref_on">Oui</string>
<string name="pref_off">Non</string>
<string name="pref_vibrate_on_bolus">Vibrer sur Bolus</string>
<string name="pref_units_for_actions">Unités des Actions</string>
<string name="pref_units_for_actions">Unités pour les Actions</string>
<string name="pref_show_date">Afficher Date</string>
<string name="pref_show_iob">Afficher IA</string>
<string name="pref_show_cob">Afficher GA</string>
@ -93,7 +93,7 @@
<string name="action_bolus">bolus</string>
<string name="status_pump">Pompe</string>
<string name="status_loop">Boucle</string>
<string name="status_cpp">PROFIL</string>
<string name="status_cpp">Profil</string>
<string name="status_tdd">DTI</string>
<string name="activity_carb">GA</string>
<string name="activity_IOB">IA</string>
@ -105,4 +105,5 @@
<string name="unit_u_p_h" comment="Shortcut for: insulin Unit per Hour">U/h</string>
<string name="unit_h" comment="One letter shortcut for: Hour" maxLength="1">h</string>
<string name="unit_d" comment="One letter shortcut for: Day" maxLength="1">j</string>
<string name="unit_w" comment="One letter shortcut for: Week" maxLength="1">s</string>
</resources>

View file

@ -4,14 +4,85 @@
<string name="app_name">AAPS</string>
<string name="label_actions_activity">AAPS</string>
<string name="label_xdrip">AAPS</string>
<string name="label_xdrip_large">AAPS(Largo)</string>
<string name="label_xdrip_big_chart">AAPS(GrandeGrafico)</string>
<string name="label_xdrip_no_chart">AAPS(NoGrafico)</string>
<string name="label_xdrip_circle">AAPS(Cerchio)</string>
<string name="label_warning_sync">Nessun dato!</string>
<string name="label_xdrip_large">AAPS(Large)</string>
<string name="label_xdrip_big_chart">AAPS(BigChart)</string>
<string name="label_xdrip_no_chart">AAPS(NoChart)</string>
<string name="label_xdrip_circle">AAPS(Circle)</string>
<string name="label_xdrip_v2">AAPSv2</string>
<string name="label_xdrip_cockpit">AAPS(Cockpit)</string>
<string name="label_xdrip_steampunk">AAPS(Steampunk)</string>
<string name="label_warning_sync">No dati!</string>
<string name="label_warning_old">Dati vecchi!</string>
<string name="label_warning_since">Da %1$s</string>
<string name="label_warning_sync_aaps">Sincro con AAPS!</string>
<string name="msg_warning_sync">Nessun dato ricevuto da %1$s! Controlla se AAPS sul telefono invia i dati allo smartwatch</string>
<string name="msg_warning_old">I dati di AAPS sono vecchi di %1$s ! Controlla il tuo sensore, xDrip+, NS, la configurazione di AAPS o altro!</string>
<string name="pref_on">On</string>
<string name="pref_off">Off</string>
<string name="pref_vibrate_on_bolus">Vibra durante bolo</string>
<string name="pref_show_date">Mostra data</string>
<string name="pref_show_iob">Mostra IOB</string>
<string name="pref_show_cob">Mostra COB</string>
<string name="pref_show_delta">Mostra delta</string>
<string name="pref_show_phone_battery">Mostra batteria telefono</string>
<string name="pref_show_basal_rate">Mostra velocità basale</string>
<string name="pref_show_loop_status">Mostra stato loop</string>
<string name="pref_show_bg">Mostra BG</string>
<string name="pref_show_direction_arrow">Mostra frecce direzionali</string>
<string name="pref_dark" comment="Enables dark visual theme">Scuro</string>
<string name="pref_highlight_basals">Evidenzia basali</string>
<string name="pref_1_hour">1 ora</string>
<string name="pref_2_hours">2 ore</string>
<string name="pref_3_hours">3 ore</string>
<string name="pref_4_hours">4 ore</string>
<string name="pref_5_hours">5 ore</string>
<string name="pref_low">Basso</string>
<string name="pref_medium">Medio</string>
<string name="pref_high">Alto</string>
<string name="pref_big_numbers">Numeri grandi</string>
<string name="pref_ring_history">Storico Ring</string>
<string name="pref_animations">Animazioni</string>
<string name="pref_wizard_in_menu">Wizard in Menu</string>
<string name="pref_single_target">Target singolo</string>
<string name="pref_unicode_in_complications">Unicode in Complications</string>
<string name="pref_version">Versione:</string>
<string name="menu_tempt">TempT</string>
<string name="menu_wizard">Wizard</string>
<string name="menu_bolus">Bolo</string>
<string name="menu_ecarb">eCarb</string>
<string name="menu_settings">Impostazioni</string>
<string name="menu_status">Stato</string>
<string name="menu_prime_fill">Carica/Riempi</string>
<string name="menu_menu">Menu</string>
<string name="action_duration">durata</string>
<string name="action_target" comment="In temp target menu, single target value">target</string>
<string name="action_low" comment="In temp target menu, lower value from range">basso</string>
<string name="action_high" comment="In temp target menu, higher value from range">alto</string>
<string name="action_carbs">CHO</string>
<string name="action_percentage">percentuale</string>
<string name="action_duration_h">durata [h]</string>
<string name="action_insulin">insulina</string>
<string name="action_preset_1">Preset 1</string>
<string name="action_preset_2">Preset 2</string>
<string name="action_preset_3">Preset 3</string>
<string name="action_free_amount" comment="In prime/fill menu, allows to enter any amount to be used for priming/filling">Quantità libera</string>
<string name="action_confirm">CONFERMA</string>
<string name="action_timeshift">timeshift</string>
<string name="action_tdd_weighted">TDD ponderato</string>
<string name="action_bolus">bolo</string>
<string name="status_pump">Micro</string>
<string name="status_loop">Loop</string>
<string name="status_cpp">CPP</string>
<string name="status_tdd">TDD</string>
<string name="activity_carb">CHO</string>
<string name="activity_IOB">IOB</string>
<string name="activity_no_status">no stato</string>
<string name="unit_mg_dl">mg/dl</string>
<string name="unit_mmol_l">mmol/l</string>
<string name="unit_g" comment="Shortcut for ISO unit: gram">g</string>
<string name="unit_u" comment="Shortcut for: insulin Unit">U</string>
<string name="unit_u_p_h" comment="Shortcut for: insulin Unit per Hour">U/h</string>
<string name="unit_h" comment="One letter shortcut for: Hour" maxLength="1">h</string>
<string name="unit_d" comment="One letter shortcut for: Day" maxLength="1">d</string>
<string name="unit_w" comment="One letter shortcut for: Week" maxLength="1">w</string>
</resources>

View file

@ -9,6 +9,8 @@
<string name="label_xdrip_no_chart">AAPS(BeGrafiko)</string>
<string name="label_xdrip_circle">AAPS(Apvalus)</string>
<string name="label_xdrip_v2">AAPSv2</string>
<string name="label_xdrip_cockpit">AAPS(Cockpit)</string>
<string name="label_xdrip_steampunk">AAPS(Steampunk)</string>
<string name="label_warning_sync">Nėra duomenų!</string>
<string name="label_warning_old">Seni duomenys!</string>
<string name="label_warning_since">Nuo %1$s</string>
@ -24,6 +26,7 @@
<string name="pref_show_delta">Rodyti pokytį</string>
<string name="pref_show_avgdelta">Rodyti vidutinį pokytį</string>
<string name="pref_show_phone_battery">Rodyti telefono bateriją</string>
<string name="pref_show_rig_battery">Rodyti įrenginio bateriją</string>
<string name="pref_show_basal_rate">Rodyti valandinę bazę</string>
<string name="pref_show_loop_status">Rodyti Ciklo statusą</string>
<string name="pref_show_bg">Rodyti KG</string>
@ -31,6 +34,8 @@
<string name="pref_show_ago">Laikas nuo pask. vertės</string>
<string name="pref_dark" comment="Enables dark visual theme">Tamsus</string>
<string name="pref_highlight_basals">Paryškinti valandines bazes</string>
<string name="pref_matching_divider" comment="To make divider match its background with background of whole watchface">Vienodos spalvos skirtukas</string>
<string name="pref_chart_timeframe">Diagramos laikotarpis</string>
<string name="pref_1_hour">1 val.</string>
<string name="pref_2_hours">2 val.</string>
<string name="pref_3_hours">3 val.</string>
@ -38,12 +43,21 @@
<string name="pref_5_hours">5 val.</string>
<string name="pref_input_design">Įvesties Dizainas</string>
<string name="pref_default">Numatytasis</string>
<string name="pref_quick_righty">Greitai dešinėn</string>
<string name="pref_quick_lefty">Greitai kairėn</string>
<string name="pref_modern_sparse">Minimalistinis</string>
<string name="pref_delta_granularity">Detalus pokytis (Steampunk)</string>
<string name="pref_low">Žemas</string>
<string name="pref_medium">Vidutinis</string>
<string name="pref_high">Aukštas</string>
<string name="pref_big_numbers">Dideli Skaičiai</string>
<string name="pref_ring_history">Glikemijos istorija</string>
<string name="pref_light_ring_history">Glikemijos istorija - šviesi</string>
<string name="pref_animations">Animacijos</string>
<string name="pref_wizard_in_menu">Meniu vedlys</string>
<string name="pref_prime_in_menu">Užpildyti per meniu</string>
<string name="pref_single_target">Pavienis tikslas</string>
<string name="pref_wizard_percentage">Vedlys su %</string>
<string name="pref_version">Versija:</string>
<string name="menu_tempt">LaikinasTikslas</string>
<string name="menu_wizard">Vedlys</string>
@ -51,7 +65,7 @@
<string name="menu_ecarb">iAV</string>
<string name="menu_settings">Parametrai</string>
<string name="menu_status">Būsena</string>
<string name="menu_prime_fill">Užpildyti kateterį/adatą</string>
<string name="menu_prime_fill">Užpildymas</string>
<string name="menu_none">Nėra</string>
<string name="menu_default">Numatytasis</string>
<string name="menu_menu">Meniu</string>
@ -78,6 +92,7 @@
<string name="status_tdd">BPD</string>
<string name="activity_carb">AV</string>
<string name="activity_IOB">AIO</string>
<string name="activity_no_status">nėra statuso</string>
<string name="unit_mg_dl">mg/dl</string>
<string name="unit_mmol_l">mmol/l</string>
<string name="unit_g" comment="Shortcut for ISO unit: gram">g</string>

View file

@ -55,4 +55,45 @@
<string name="pref_version">Verzia:</string>
<string name="menu_tempt">TempT</string>
<string name="menu_wizard">Sprievodca</string>
<string name="menu_bolus">Bolus</string>
<string name="menu_ecarb">eCarbs</string>
<string name="menu_settings">Nastavenia</string>
<string name="menu_status">Stav</string>
<string name="menu_prime_fill">Plnenie/Doplňovanie</string>
<string name="menu_none">Žiadny</string>
<string name="menu_default">Štandardný</string>
<string name="menu_menu">Ponuka</string>
<string name="action_duration">trvanie</string>
<string name="action_target" comment="In temp target menu, single target value">cieľ</string>
<string name="action_low" comment="In temp target menu, lower value from range">nízka</string>
<string name="action_high" comment="In temp target menu, higher value from range">vysoká</string>
<string name="action_carbs">sacharidy</string>
<string name="action_percentage">Percento</string>
<string name="action_start_min">začiatok [min]</string>
<string name="action_duration_h">trvanie [h]</string>
<string name="action_insulin">inzulín</string>
<string name="action_preset_1">Predvoľba 1</string>
<string name="action_preset_2">Predvoľba 2</string>
<string name="action_preset_3">Predvoľba 3</string>
<string name="action_free_amount" comment="In prime/fill menu, allows to enter any amount to be used for priming/filling">Ľubovoľné množstvo</string>
<string name="action_confirm">POTVRDIŤ</string>
<string name="action_status_pump">STAV PUMPY</string>
<string name="action_status_loop">STAV UZAVRETÉHO OKRUHU</string>
<string name="action_timeshift">časový posun</string>
<string name="action_tdd_weighted">TDD vážený</string>
<string name="action_bolus">bolus</string>
<string name="status_pump">Pumpa</string>
<string name="status_loop">Uzavretý okruh</string>
<string name="status_tdd">TDD</string>
<string name="activity_carb">Sacharidy</string>
<string name="activity_IOB">IOB</string>
<string name="activity_no_status">žiadny stav</string>
<string name="unit_mg_dl">mg/dL</string>
<string name="unit_mmol_l">mmol/l</string>
<string name="unit_g" comment="Shortcut for ISO unit: gram">g</string>
<string name="unit_u" comment="Shortcut for: insulin Unit">JI</string>
<string name="unit_u_p_h" comment="Shortcut for: insulin Unit per Hour">JI/h</string>
<string name="unit_h" comment="One letter shortcut for: Hour" maxLength="1">h</string>
<string name="unit_d" comment="One letter shortcut for: Day" maxLength="1">d</string>
<string name="unit_w" comment="One letter shortcut for: Week" maxLength="1">t</string>
</resources>

View file

@ -133,14 +133,6 @@
app:wear_iconOff="@drawable/settings_off"
app:wear_iconOn="@drawable/settings_on"/>
<CheckBoxPreference
android:defaultValue="false"
android:key="match_divider"
android:summary="Status bar divider background matches watchface background"
android:title="Matching divider"
app:wear_iconOff="@drawable/settings_off"
app:wear_iconOn="@drawable/settings_on"/>
<ListPreference
android:defaultValue="3"
android:entries="@array/chart_timeframe"