diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 8462fa3800..a35b2fabe9 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -116,7 +116,7 @@ diff --git a/app/src/main/java/info/nightscout/androidaps/MainActivity.java b/app/src/main/java/info/nightscout/androidaps/MainActivity.java index 919e4abd10..5bdf7fc8bd 100644 --- a/app/src/main/java/info/nightscout/androidaps/MainActivity.java +++ b/app/src/main/java/info/nightscout/androidaps/MainActivity.java @@ -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); diff --git a/app/src/main/java/info/nightscout/androidaps/MainApp.java b/app/src/main/java/info/nightscout/androidaps/MainApp.java index c4bfe32cbe..7d743cbf7d 100644 --- a/app/src/main/java/info/nightscout/androidaps/MainApp.java +++ b/app/src/main/java/info/nightscout/androidaps/MainApp.java @@ -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 diff --git a/app/src/main/java/info/nightscout/androidaps/data/Profile.java b/app/src/main/java/info/nightscout/androidaps/data/Profile.java index 00d4bafebe..6ac3517054 100644 --- a/app/src/main/java/info/nightscout/androidaps/data/Profile.java +++ b/app/src/main/java/info/nightscout/androidaps/data/Profile.java @@ -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; diff --git a/app/src/main/java/info/nightscout/androidaps/data/ProfileStore.kt b/app/src/main/java/info/nightscout/androidaps/data/ProfileStore.kt index 0fa0bf277f..ca48a72296 100644 --- a/app/src/main/java/info/nightscout/androidaps/data/ProfileStore.kt +++ b/app/src/main/java/info/nightscout/androidaps/data/ProfileStore.kt @@ -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 } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/elements/InputLocationMode.java b/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/elements/InputLocationMode.java new file mode 100644 index 0000000000..3fea8b7c33 --- /dev/null +++ b/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/elements/InputLocationMode.java @@ -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 labels() { + List 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 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; + } + + +} diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/triggers/TriggerLocation.java b/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/triggers/TriggerLocation.java index 19965cfc9a..8070e074be 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/triggers/TriggerLocation.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/triggers/TriggerLocation.java @@ -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(); + } + } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/pump/danaR/AbstractDanaRPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/pump/danaR/AbstractDanaRPlugin.java index d8b2873a50..57dadbdc55 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/pump/danaR/AbstractDanaRPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/pump/danaR/AbstractDanaRPlugin.java @@ -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); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/pump/danaRS/DanaRSPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/pump/danaRS/DanaRSPlugin.java index 0eedd374b2..8c8780d021 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/pump/danaRS/DanaRSPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/pump/danaRS/DanaRSPlugin.java @@ -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); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/pump/medtronic/comm/history/pump/PumpHistoryEntryType.java b/app/src/main/java/info/nightscout/androidaps/plugins/pump/medtronic/comm/history/pump/PumpHistoryEntryType.java index dec0cb80f6..90cb11f71f 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/pump/medtronic/comm/history/pump/PumpHistoryEntryType.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/pump/medtronic/comm/history/pump/PumpHistoryEntryType.java @@ -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), // diff --git a/app/src/main/java/info/nightscout/androidaps/queue/CommandQueue.java b/app/src/main/java/info/nightscout/androidaps/queue/CommandQueue.java index f24b02171f..35d33ab884 100644 --- a/app/src/main/java/info/nightscout/androidaps/queue/CommandQueue.java +++ b/app/src/main/java/info/nightscout/androidaps/queue/CommandQueue.java @@ -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 diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/general/nsclient/receivers/AutoStartReceiver.java b/app/src/main/java/info/nightscout/androidaps/receivers/AutoStartReceiver.java similarity index 89% rename from app/src/main/java/info/nightscout/androidaps/plugins/general/nsclient/receivers/AutoStartReceiver.java rename to app/src/main/java/info/nightscout/androidaps/receivers/AutoStartReceiver.java index 6c8c7ae159..8abfb22953 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/general/nsclient/receivers/AutoStartReceiver.java +++ b/app/src/main/java/info/nightscout/androidaps/receivers/AutoStartReceiver.java @@ -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; diff --git a/app/src/main/java/info/nightscout/androidaps/utils/AndroidPermission.java b/app/src/main/java/info/nightscout/androidaps/utils/AndroidPermission.java index 9f7986cb97..fdee5417a3 100644 --- a/app/src/main/java/info/nightscout/androidaps/utils/AndroidPermission.java +++ b/app/src/main/java/info/nightscout/androidaps/utils/AndroidPermission.java @@ -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, diff --git a/app/src/main/java/info/nightscout/androidaps/utils/JsonHelper.java b/app/src/main/java/info/nightscout/androidaps/utils/JsonHelper.java deleted file mode 100644 index 5308c62420..0000000000 --- a/app/src/main/java/info/nightscout/androidaps/utils/JsonHelper.java +++ /dev/null @@ -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; - } -} diff --git a/app/src/main/java/info/nightscout/androidaps/utils/JsonHelper.kt b/app/src/main/java/info/nightscout/androidaps/utils/JsonHelper.kt new file mode 100644 index 0000000000..484f679345 --- /dev/null +++ b/app/src/main/java/info/nightscout/androidaps/utils/JsonHelper.kt @@ -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 + } +} \ No newline at end of file diff --git a/app/src/main/res/values-bg-rBG/objectives.xml b/app/src/main/res/values-bg-rBG/objectives.xml index 677b26f326..d2e47ec386 100644 --- a/app/src/main/res/values-bg-rBG/objectives.xml +++ b/app/src/main/res/values-bg-rBG/objectives.xml @@ -46,7 +46,7 @@ Следващия неотговорен Код (request code): %1$s (отбележете всички правилни отговори) - https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#what-to-do-when-taking-a-shower-or-bath + https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#what-to-do-when-taking-a-shower-or-bath Не може да се вземе времето Задачите не са изпълнени diff --git a/app/src/main/res/values-bg-rBG/strings.xml b/app/src/main/res/values-bg-rBG/strings.xml index 58f9c36cd5..da41205629 100644 --- a/app/src/main/res/values-bg-rBG/strings.xml +++ b/app/src/main/res/values-bg-rBG/strings.xml @@ -593,6 +593,7 @@ Тип базал Грешен профил !!! Смяна на профил + Смени профил Възраст на батерията на помпата Смяна на батерия Опции за аларми @@ -1435,4 +1436,7 @@ Мониторинг на активност Искате да нулирате статистиката? Статистика + Произволна КЗ + Генерира произволни захари(демо режим) + КЗ diff --git a/app/src/main/res/values-cs-rCZ/objectives.xml b/app/src/main/res/values-cs-rCZ/objectives.xml index 259403ad81..76597c063d 100644 --- a/app/src/main/res/values-cs-rCZ/objectives.xml +++ b/app/src/main/res/values-cs-rCZ/objectives.xml @@ -46,10 +46,10 @@ Další nedokončená Kód žádosti: %1$s (zatrhněte všechny správné odpovědi) - https://androidaps.readthedocs.io/en/latest/CROWDIN/cs/Getting-Started/FAQ.html#co-delat-pri-sprchovani-a-koupani - https://androidaps.readthedocs.io/en/latest/CROWDIN/cs/Getting-Started/Screenshots.html#hlavni-stranka - https://androidaps.readthedocs.io/en/latest/CROWDIN/cs/Getting-Started/Screenshots.html#konfigurace - https://androidaps.readthedocs.io/en/latest/CROWDIN/cs/Getting-Started/Screenshots.html#hlavni-stranka + https://androidaps.readthedocs.io/en/latest/CROWDIN/cs/Getting-Started/FAQ.html#co-delat-pri-sprchovani-a-koupani + https://androidaps.readthedocs.io/en/latest/CROWDIN/cs/Getting-Started/Screenshots.html#hlavni-stranka + https://androidaps.readthedocs.io/en/latest/CROWDIN/cs/Getting-Started/Screenshots.html#konfigurace + https://androidaps.readthedocs.io/en/latest/CROWDIN/cs/Getting-Started/Screenshots.html#hlavni-stranka Chybí připojení k internetu Nepodařilo se načíst čas Požadavky cíle nejsou splněny diff --git a/app/src/main/res/values-de-rDE/objectives.xml b/app/src/main/res/values-de-rDE/objectives.xml index 1158cee370..c2a3fe603e 100644 --- a/app/src/main/res/values-de-rDE/objectives.xml +++ b/app/src/main/res/values-de-rDE/objectives.xml @@ -47,10 +47,10 @@ die Formel maxIOB = durchschnittlicher Essensbolus + 3 x höchste BasalrateNächste offene Code anfordern: %1$s (Kreuze alle richtigen Antworten an) - https://androidaps.readthedocs.io/en/latest/CROWDIN/de/Getting-Started/FAQ.html#was-mache-ich-wenn-ich-duschen-oder-ein-bad-nehmen-mochte - https://androidaps.readthedocs.io/en/latest/CROWDIN/de/Getting-Started/Screenshots.html#die-startseite - https://androidaps.readthedocs.io/en/latest/CROWDIN/de/Getting-Started/Screenshots.html#konfiguration - https://androidaps.readthedocs.io/en/latest/CROWDIN/de/Getting-Started/Screenshots.html#die-startseite + https://androidaps.readthedocs.io/en/latest/CROWDIN/de/Getting-Started/FAQ.html#was-mache-ich-wenn-ich-duschen-oder-ein-bad-nehmen-mochte + https://androidaps.readthedocs.io/en/latest/CROWDIN/de/Getting-Started/Screenshots.html#die-startseite + https://androidaps.readthedocs.io/en/latest/CROWDIN/de/Getting-Started/Screenshots.html#konfiguration + https://androidaps.readthedocs.io/en/latest/CROWDIN/de/Getting-Started/Screenshots.html#die-startseite Keine Verbindung zum Internet Abruf der Uhrzeit fehlgeschlagen Anforderungen des Zieles nicht erfüllt diff --git a/app/src/main/res/values-de-rDE/strings.xml b/app/src/main/res/values-de-rDE/strings.xml index 06debb3412..5b232a0404 100644 --- a/app/src/main/res/values-de-rDE/strings.xml +++ b/app/src/main/res/values-de-rDE/strings.xml @@ -593,6 +593,7 @@ Basaltyp Ungültiges oder defektes Profil! Profilwechsel + Profilwechsel durchführen Batteriealter Pumpenbatterie Wechsel Alarm-Optionen @@ -1436,4 +1437,7 @@ Unerwartetes Verhalten. Aktivitätsmonitor Willst Du die Aktivitätsstatistik zurücksetzen? Statistiken + Zufalls-BZ + Zufalls-BZ Daten erstellen (nur Demo-Modus) + BZ diff --git a/app/src/main/res/values-el-rGR/objectives.xml b/app/src/main/res/values-el-rGR/objectives.xml index 7941ad4e61..4a2ce25a1e 100644 --- a/app/src/main/res/values-el-rGR/objectives.xml +++ b/app/src/main/res/values-el-rGR/objectives.xml @@ -45,10 +45,10 @@ Επόμενο ημιτελές Κωδικός αιτήματος: %1$s (ελέγξτε όλες τις σωστές απαντήσεις) - https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#what-to-do-when-taking-a-shower-or-bath - https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#the-homescreen - https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#config-builder - https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#the-homescreen + https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#what-to-do-when-taking-a-shower-or-bath + https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#the-homescreen + https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#config-builder + https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#the-homescreen Δεν είστε συνδεδεμένοι στο internet Απέτυχε η ανάκτηση ώρας Αντικειμενικές προϋποθέσεις δεν πληρούνται diff --git a/app/src/main/res/values-es-rES/objectives.xml b/app/src/main/res/values-es-rES/objectives.xml index 08ffcf5887..9f6a95c2b1 100644 --- a/app/src/main/res/values-es-rES/objectives.xml +++ b/app/src/main/res/values-es-rES/objectives.xml @@ -46,10 +46,10 @@ Siguien&te sin terminar Solicitar código: %1$s (compruebe todas las respuestas correctas) - https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#what-to-do-when-taking-a-shower-or-bath - https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#the-homescreen - https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#config-builder - https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#the-homescreen + https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#what-to-do-when-taking-a-shower-or-bath + https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#the-homescreen + https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#config-builder + https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#the-homescreen Sin conexión a Internet Fallo tiempo de recuperación No se cumplen los requisitos de objetivo diff --git a/app/src/main/res/values-es-rES/strings.xml b/app/src/main/res/values-es-rES/strings.xml index 0be62bf9c5..e76dc0ed6b 100644 --- a/app/src/main/res/values-es-rES/strings.xml +++ b/app/src/main/res/values-es-rES/strings.xml @@ -593,6 +593,7 @@ Tipo basal Perfil invalido !!! Cambio Perfil + Cambio de perfil Edad batería bomba Cambio batería bomba Opciones alarma @@ -1435,4 +1436,6 @@ Monitor de actividad ¿Desea restablecer las estadísticas de actividad? Estadísticas + BG aleatorio + BG diff --git a/app/src/main/res/values-fr-rFR/objectives.xml b/app/src/main/res/values-fr-rFR/objectives.xml index b39e5ce285..89af39e082 100644 --- a/app/src/main/res/values-fr-rFR/objectives.xml +++ b/app/src/main/res/values-fr-rFR/objectives.xml @@ -46,10 +46,10 @@ Prochain non terminé Code requis : %1$s (Sélectionnez toutes les bonnes réponses) - https://androidaps.readthedocs.io/en/latest/CROWDIN/fr/Getting-Started/FAQ.html#what-to-do-when-taking-a-shower-or-bath - https://androidaps.readthedocs.io/en/latest/CROWDIN/fr/Getting-Started/Screenshots.html#the-homescreen - https://androidaps.readthedocs.io/en/latest/CROWDIN/fr/Getting-Started/Screenshots.html#config-builder - https://androidaps.readthedocs.io/en/latest/CROWDIN/fr/Getting-Started/Screenshots.html#the-homescreen + https://androidaps.readthedocs.io/en/latest/CROWDIN/fr/Getting-Started/FAQ.html#what-to-do-when-taking-a-shower-or-bath + https://androidaps.readthedocs.io/en/latest/CROWDIN/fr/Getting-Started/Screenshots.html#the-homescreen + https://androidaps.readthedocs.io/en/latest/CROWDIN/fr/Getting-Started/Screenshots.html#config-builder + https://androidaps.readthedocs.io/en/latest/CROWDIN/fr/Getting-Started/Screenshots.html#the-homescreen Non connecté à Internet Échec de la récupération de l\'heure Exigences de l\'objectif non atteintes diff --git a/app/src/main/res/values-it-rIT/objectives.xml b/app/src/main/res/values-it-rIT/objectives.xml index 6097ec7ddd..cd0360f973 100644 --- a/app/src/main/res/values-it-rIT/objectives.xml +++ b/app/src/main/res/values-it-rIT/objectives.xml @@ -46,10 +46,10 @@ Prossimo N.C. Codice richiesta: %1$s (segna tutte le risposte corrette) - https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#what-to-do-when-taking-a-shower-or-bath - https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#the-homescreen - https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#config-builder - https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#the-homescreen + https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#what-to-do-when-taking-a-shower-or-bath + https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#the-homescreen + https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#config-builder + https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#the-homescreen Non connesso a internet Impossibile recuperare l\'orario Requisiti obiettivo non soddisfatti diff --git a/app/src/main/res/values-it-rIT/strings.xml b/app/src/main/res/values-it-rIT/strings.xml index f20330c7a7..512528de50 100644 --- a/app/src/main/res/values-it-rIT/strings.xml +++ b/app/src/main/res/values-it-rIT/strings.xml @@ -161,7 +161,7 @@ CHO Cambia il tuo input! Imposta nuovo bolo esteso: - Origine glicemia + Origine BG Da dove AndroidAPS dovrebbe ottenere i suoi dati? xDrip Modalità APS @@ -178,7 +178,7 @@ IOB da basale Vincolo bolo applicato Vincolo CHO applicato - Controllo glicemia + Controllo BG Annuncio Nota Domanda @@ -401,8 +401,8 @@ Abilita bolo esteso sul micro Cambia la modalità da U/d a U/h nel micro Valore basale inferiore al minimo. Profilo non impostato! - Glicemia: - Ultima glicemia: + BG: + Ultimo BG: MDI MM640g Notifica in corso @@ -593,6 +593,7 @@ Tipo basale Profilo non valido !!! Cambio profilo + Cambia profilo Età batteria micro Cambio batteria micro Opzioni allarme @@ -709,10 +710,10 @@ Il comando verrà eseguito ora Driver del micro corretto Micro irraggiungibile - Letture glicemia mancanti + Letture BG mancanti Usa le notifiche di sistema per gli avvisi Allarmi locali - Allarme se non si ricevono dati glicemia + Allarme se non si ricevono dati BG Allarme se il micro non è raggiungibile Soglia micro irraggiungibile [min] Allarme urgente @@ -721,19 +722,19 @@ BT Watchdog Spegne il bluetooth del telefono per qualche secondo se non è possibile alcuna connessione al micro. Questo può essere utile su alcuni telefoni. Eversense app (modificata) - Carica dati glicemia su NS - Impostazioni caricamento glicemia + Carica dati BG su NS + Impostazioni caricamento BG Mostra delta dettagliato Mostra delta con una cifra decimale in più Max minuti SMB Max minuti di basale a cui limitare SMB Firmware del micro non supportato - Invia dati glicemia a xDrip+ + Invia dati BG a xDrip+ In xDrip+ seleziona origine dati 640g/Eversense - Glicemia NSClient + BG NSClient Valore basale sostituito dal minimo valore supportato: %1$s Valore basale sostituito dal massimo valore supportato: %1$s - Calcolo glicemia + Calcolo BG Calcolo IOB da bolo Calcolo IOB da basale Calcolo trend @@ -749,7 +750,7 @@ NSClient ha il permesso di scrittura Modalità chiusa abilitata Max IOB impostata correttamente - Glicemia disponibile da sorgente selezionata + BG disponibile da sorgente selezionata Valori basali non allineati alle ore: %1$s Profilo non valido: %1$s Programmazione micro per erogazione @@ -931,7 +932,7 @@ Definizione micro 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 * Sono supportati solo valori discreti, non intervalli di valori, come incrementi per basale/bolo nel micro virtuale. - Riempimento automatico glicemie + Riempimento automatico BG Impostazioni Calcolatore Calcoli inclusi nel risultato del Calcolatore: Impostazioni di visualizzazione @@ -949,7 +950,7 @@ https://github.com/MilosKozak/AndroidAPS/wiki/Sensitivity-detection-and-COB 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. 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. - Configura sorgente glicemia + Configura sorgente BG 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\" 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. Avvia il tuo primo obiettivo @@ -1164,7 +1165,7 @@ Carica trattamenti (insulina, carboidrati) Carica basali temporanee Carica cambi profilo, target temporanei - Carica test glicemia + Carica test BG Cambio all\'ora legale in 24h o meno Cambio all\'ora legale avvenuto meno di 3 ore fa - Loop chiuso disabilitato vincolo di archiviazione interna @@ -1210,8 +1211,8 @@ Autosens %1$s %2$s %% Autosens % %3$s %1$s %2$s - Differenza glicemia - Differenza glicemia [%1$s] + Differenza BG + Differenza BG [%1$s] Posizione corrente Posizione Lat: @@ -1418,4 +1419,24 @@ Valore più basso per l\'intervallo di visualizzazione dell\'area \"in range\" Valore più alto per l\'intervallo di visualizzazione dell\'area \"in range\" Riordina + Età: + Peso: + ID: + Invia + Profilo più comune: + 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. + Sondaggio + Inserimento età non valido + Inserimento peso non valido + %1$s: ∑: %2$.2f Bol: %3$.2f Bas: %4$.2f]]> + %1$s: Basso: %2$02d%% In: %3$02d%% Alto: %4$02d%%]]> + Media + TDD + TIR + Monitor attività + Vuoi resettare le statistiche sull\'attività? + Statistiche + BG casuale + Genera dati glicemia casuali (solo modalità demo) + BG diff --git a/app/src/main/res/values-lt-rLT/objectives.xml b/app/src/main/res/values-lt-rLT/objectives.xml index 4ae0a59bdf..bf4a460fae 100644 --- a/app/src/main/res/values-lt-rLT/objectives.xml +++ b/app/src/main/res/values-lt-rLT/objectives.xml @@ -46,10 +46,10 @@ Kitas neužbaigtas Paprašyti kodo: %1$s (pasirinkite visus teisingus atsakymus) - https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#what-to-do-when-taking-a-shower-or-bath - https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#the-homescreen - https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#config-builder - https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#the-homescreen + https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#what-to-do-when-taking-a-shower-or-bath + https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#the-homescreen + https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#config-builder + https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#the-homescreen Neprisijungta prie interneto Nepavyko nuskaityti laiko Tikslo reikalavimai neįvykdyti diff --git a/app/src/main/res/values-lt-rLT/strings.xml b/app/src/main/res/values-lt-rLT/strings.xml index 2bfac2bc4b..fbed3010b7 100644 --- a/app/src/main/res/values-lt-rLT/strings.xml +++ b/app/src/main/res/values-lt-rLT/strings.xml @@ -182,18 +182,18 @@ Pranešimas Pastaba Klausimas - FA-fizinis aktyvumas + Fizinis aktyvumas Kateterio keitimas - CGM sensoriaus įvedimas - CGM sensoriaus paleidimas + NGJ sensoriaus įvedimas + NGJ sensoriaus paleidimas Insulino rezervuaro keitimas Profilio keitimas - Užkandžio bolusas + Bolusas užkandžiui Bolusas valgiui Bolusas korekcijai Kombinuotas bolusas - Pradėti laikiną bazę - Užbaigti laikiną bazę + Pradėta laikina bazė + Užbaigta laikina bazė Angliavandeniai korekcijai OpenAPS neprisijungus Įvykio tipas @@ -356,7 +356,7 @@ Duomenys tik perkeliami į Nightscout. Gliukozės duomenys perkeliami tik tada, kai naudojama lokali programa, pvz.: xDrip. Naudojant NS-profilį, kiti profiliai neaktyvūs. Pompa neprijungta! Pompa neprijungta, profilis nepasirinktas! - Užpildyti kateterį/adatą + Užpildymas Įsitikinkite, kad nurodytas kiekis atitinka Jūsų infuzijos rinkinio specifikaciją! Kita Standartiniai insulino kiekiai kateterio/kaniulės užpildymui. @@ -412,12 +412,12 @@ Eksponentiškai svertinė BPD Valandinė bazė Bolusas - BPD bendroji paros dozė + BPD Data Koeficientas # dienų Svoris - Duomenys netikslūs, jei bolusai naudojami sistemos ar adatų užpildymui! + Duomenys netikslūs, jei bolusai naudojami kateterių užpildymui! Duomenys seni, spauskite \"ATNAUJINTI\" Pagrindinė bazė (PB) PB * 2 @@ -545,7 +545,7 @@ Įgalina superbolusų naudojimą insulino skaičiuoklėje. Nenaudokite, kol nesuprantate, ką superbolus funkcija atlieka. NAUDODAMI AKLAI GALITE PERDOZUOTI INSULINO! Pradžios ekrane rodyti spalvotus indikatorius Pradžios ekrane rodyti papildomus šviesos indikatorius - Pradžios ekrane rodyti papildomus šviesos indikatorius adatos, insulino, sensoriaus naudojimo trukmei bei baterijos įkrovimo lygiui. + Pradžios ekrane rodyti papildomus šviesos indikatorius kateterio, insulino, sensoriaus naudojimo trukmei bei baterijos įkrovimo lygiui. Įspėjimo apie žemą rezervuaro lygį riba [U] Įspėjimo apie kritiškai žemą rezervuaro lygį riba [U] Įspėjimo apie žemą baterijos įkrovimo lygį riba [%] @@ -570,15 +570,15 @@ Ištęstas bolusas Laik.tikslas Atšaukti ištęstą bolusą - Sensoriaus naudojimo laikas - Adatos naudojimo laikas - Insulino naudojimo laikas + Sensorius + Kateteris + Insulinas valandos Valandinės bazės tipas Netinkamas profilis!!! Profilio keitimas - Pompos baterijos naudojimo laikas - Pompos baterijos pakeitimas + Pompos baterija + Pompos baterijos keitimas Aliarmų nustatymai Kritiškai aukštas Aukštas @@ -622,8 +622,8 @@ Įgalinti perdavimą į kitas programas (pvz., „XDrip“). Neįgalinkite, jei įdiegta daugiau nei vienas AAPS arba NSClient egzempliorius! Įgalinti lokalų duomenų perdavimą. AKTYVUMAS & ATGALINIS RYŠYS - ANGLIAVANDENIAI & BOLUSAS - CGM & OPENAPS + ANGLIAVANDENIAI & BOLUSAI + NGJ & OPENAPS POMPA Valandinė bazė [vv/val] Trukmė [min] @@ -793,8 +793,8 @@ Atidaro xDrip+, o mygtukas ATGAL gražina į AAPS Paspaudus mygtuką įvedamas nustatytas angliavandenių kiekis Paspaudus mygtuką įvedamas nustatytas insulino kiekis - Nepavyko paleisti CGM programos. Įsitikinkite, kad ji įdiegta. - CGM + Nepavyko paleisti NGJ programos. Įsitikinkite, kad ji įdiegta. + NGJ Istorija Pranešti apie SMB Rodyti SMB laikrodyje kaip standartinį bolusą. @@ -896,7 +896,7 @@ Pirmas angliavandenių kiekio žingsnis Antras angliavandenių kiekio žingsnis Trečias angliavandenių kiekio žingsnis - CGM + NGJ Naudoti tik WiFi WiFi pavadinimas Tik įkraunant diff --git a/app/src/main/res/values-nl-rNL/exam.xml b/app/src/main/res/values-nl-rNL/exam.xml index 489aec894a..9768183305 100644 --- a/app/src/main/res/values-nl-rNL/exam.xml +++ b/app/src/main/res/values-nl-rNL/exam.xml @@ -10,18 +10,18 @@ U moet uw eigen waarde bepalen (maar niet minder dan 5 uur). Thema: Hypo Tijdelijk Streefdoel Wat is de primaire reden om een hypo TT in te stellen? - Voorkomen dat BG te laag wordt als er een tijdelijk basaal van 0 (nul-temp) wordt uitgevoerd. + Voorkomen dat BG te laag wordt als er al een tijdelijk basaal van 0 (nul-temp) wordt uitgevoerd. Om te voorkomen dat AAPS te veel insuline toedient na een stijging veroorzaakt door snelwerkende koolhydraten gebruikt voor de behandeling van een lage BG. https://androidaps.readthedocs.io/en/latest/CROWDIN/nl/Usage/temptarget.html - Welk profiel kan offline worden gebruikt en geconfigureerd? + Welk profiel kan offline worden gebruikt én worden aangepast? Thema: offline profiel - NS-Profiel kan worden gebruikt, maar niet geconfigureerd. + NS-Profiel kan worden gebruikt, maar niet worden aangepast. https://androidaps.readthedocs.io/en/latest/CROWDIN/nl/Configuration/Config-Builder.html#profiel Onderwerp: Ontkoppelen van de Pomp Wat moet er gebeuren bij het loskoppelen van de pomp? Klik op \'pomp ontkoppelen\' zodat AAPS weet dat er geen insuline wordt afgeleverd. Klik op \'lus onderbreken\' zodat AAPS stopt met loopen terwijl de pomp is losgekoppeld. - Verander niets in AAPS, koppel de pomp gewoon af. + Verander niets in AAPS, koppel gewoon de pomp af. https://androidaps.readthedocs.io/en/latest/CROWDIN/nl/Getting-Started/FAQ.html#overige-instellingen Onderwerp: AndroidAPS Instellingen Welke dingen kun je het beste doen om een back-up van uw instellingen te maken? @@ -41,20 +41,20 @@ Schakel de telefoon uit. https://androidaps.readthedocs.io/en/latest/CROWDIN/nl/Usage/Smoothing-Blood-Glucose-Data-in-xDrip.html#filteren-van-bloed-glucose-waardes Zorg dat uw CGM-app de BG-gegevens vloeiend maakt. - Onderwerp: Inspanning + Onderwerp: Fysieke inspanning Hoe kunt u het systeem helpen zich aan te passen bij sporten? Met behulp van de tijdelijk streefdoel functie. - Pas het profiel %% aan naar een waarde onder de 100%. - Pas het profiel %% aan naar een waarde boven de 100%. + Pas het profiel percentage aan naar een waarde onder de 100%. + Pas het profiel percentage aan naar een waarde boven de 100%. Stop de Loop. Stel een tijdelijk streefdoel in voorafgaand aan het starten met sporten. 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. https://androidaps.readthedocs.io/en/latest/CROWDIN/nl/Usage/temptarget.html#activiteit-tijdelijk-streefdoel Onderwerp: Uitgeschakelde/onderbroken loop - Ontvang ik insuline wanneer de lus is uitgeschakeld/onderbroken? + Ontvang ik insuline wanneer de Loop is uitgeschakeld/onderbroken? Ja, de basale insuline wordt nog steeds geleverd. Nee, de levering van insuline is gestopt. - Onderwerp: Basaal, ISF en IC-tests + Onderwerp: Testen van Basaal, ISF en IC Wanneer moet ik de basaal, ISF, en KH-waarden uittesten? Voordat ik begin te loopen. Wanneer je vaak een lage BG hebt. @@ -89,7 +89,7 @@ Lees de volledige AndroidAPS documentatie (kies voor Nederlands in het menu) Bezoek de AndroidAPS Gitter Room. Bezoek AndroidAPS Google-ondersteuning - Praat met je endocrinoloog. + Praat met je internist. https://androidaps.readthedocs.io/en/latest/CROWDIN/nl/Installing-AndroidAPS/Update-to-new-version.html#problemen-oplossen https://www.facebook.com/groups/AndroidAPSUsers/ https://gitter.im/MilosKozak/AndroidAPS @@ -127,7 +127,7 @@ Hogere ISF-waarden leiden tot minder insulineafgifte wanneer AAPS voor hoge BG corrigeert. Lagere ISF-waarden leiden tot minder insulineafgifte wanneer AAPS voor hoge BG corrigeert. Het wijzigen van de ISF-waarden heeft geen effect op de hoeveelheid insuline die wordt geleverd wanneer AAPS voor hoge BG corrigeert. - U moet ISF invoeren in Voorkeuren. + U moet ISF invoeren in Instellingen. Het wijzigen van de ISF-waarde in uw profiel is voldoende om de wijziging toe te passen. 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 https://androidaps.readthedocs.io/en/latest/CROWDIN/nl/Usage/Profielen.html @@ -135,15 +135,15 @@ Hogere KH ratios leiden tot minder insuline afgifte voor een bepaalde hoeveelheid koolhydraten. Lagere KH ratios leiden tot minder insuline afgifte voor een bepaalde hoeveelheid koolhydraten. Als je 0 COB hebt zal het veranderen van KH ratio leiden tot een andere hoeveelheid insuline om jouw BG te corrigeren. - KH ratio zal anders zijn als je brood-eenheid telt als 10g of 12g. + KH ratio zal anders zijn als je een brood-eenheid telt als 10g of 12g. KH ratio betekent: Hoeveel brood-eenheden gebruik je voor 1U insuline. https://androidaps.readthedocs.io/en/latest/CROWDIN/nl/Getting-Started/FAQ.html#Koolhydraat-ratio-KH-g-E Onderwerp: Profiel wissels Bij het opgeven van 90% in je profiel wissel… Basalen zullen 10% hoger zijn. Basalen zullen 10% lager zijn. - De KH ratio wordt 10% hoger. - De KH ratio wordt 10% lager. + De KH ratio zal 10% hoger worden. + De KH ratio zal 10% lager worden. ISF-waarde wordt 10% hoger. ISF-waarde wordt 10% lager. In totaal zul je ongeveer 10% minder insuline krijgen. diff --git a/app/src/main/res/values-nl-rNL/objectives.xml b/app/src/main/res/values-nl-rNL/objectives.xml index f85af9f2c5..bd41e6d26e 100644 --- a/app/src/main/res/values-nl-rNL/objectives.xml +++ b/app/src/main/res/values-nl-rNL/objectives.xml @@ -46,10 +46,10 @@ Volgende onvoltooide Aanvraagcode: %1$s (controleer alle juiste antwoorden) - https://androidaps.readthedocs.io/en/latest/CROWDIN/nl/Getting-Started/FAQ.html#wat-te-doen-tijdens-het-douchen - https://androidaps.readthedocs.io/en/latest/CROWDIN/nl/Getting-Started/Screenshots.html#overzicht-scherm - https://androidaps.readthedocs.io/en/latest/CROWDIN/nl/Getting-Started/Screenshots.html#configurator - https://androidaps.readthedocs.io/en/latest/CROWDIN/nl/Getting-Started/Screenshots.html#overzicht-scherm + https://androidaps.readthedocs.io/en/latest/CROWDIN/nl/Getting-Started/FAQ.html#wat-te-doen-tijdens-het-douchen + https://androidaps.readthedocs.io/en/latest/CROWDIN/nl/Getting-Started/Screenshots.html#overzicht-scherm + https://androidaps.readthedocs.io/en/latest/CROWDIN/nl/Getting-Started/Screenshots.html#configurator + https://androidaps.readthedocs.io/en/latest/CROWDIN/nl/Getting-Started/Screenshots.html#overzicht-scherm Niet verbonden met het internet Ophalen tijd mislukt Vereisten van doel niet behaald diff --git a/app/src/main/res/values-pl-rPL/objectives.xml b/app/src/main/res/values-pl-rPL/objectives.xml index 48b9fb6eca..3e529a5c92 100644 --- a/app/src/main/res/values-pl-rPL/objectives.xml +++ b/app/src/main/res/values-pl-rPL/objectives.xml @@ -46,10 +46,10 @@ Następny niedokończony Kod zapytania: %1$s (sprawdź wszystkie poprawne odpowiedzi) - https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#what-to-do-when-taking-a-shower-or-bath - https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#the-homescreen - https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#config-builder - https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#the-homescreen + https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#what-to-do-when-taking-a-shower-or-bath + https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#the-homescreen + https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#config-builder + https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#the-homescreen Brak połączenia z Internetem Nie udało się odzyskać Wymagania celu nie zostały spełnione diff --git a/app/src/main/res/values-pt-rBR/objectives.xml b/app/src/main/res/values-pt-rBR/objectives.xml index 684b9bfa21..112ee86451 100644 --- a/app/src/main/res/values-pt-rBR/objectives.xml +++ b/app/src/main/res/values-pt-rBR/objectives.xml @@ -46,10 +46,10 @@ Próximo inacabado Pedir Código: %1$s (marque todas as respostas correctas) - https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#what-to-do-when-taking-a-shower-or-bath - https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#the-homescreen - https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#config-builder - https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#the-homescreen + https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#what-to-do-when-taking-a-shower-or-bath + https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#the-homescreen + https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#config-builder + https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#the-homescreen Não está ligado à internet Falha ao recuperar tempo Requisitos de objectivo não cumpridos diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index d23b6de437..209854824c 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -260,12 +260,20 @@ Números de telefone permitidos +XXXXXXXXXX;+YYYYYYYYYY Para dar bolus %1$.2fU responder com código %2$s + Para dar bólus %1$.2fU responder com código %2$s + Para definir o Alvo Tempo %1$s responda com o código %2$s Para cancelar Alvo Temp responda com o código %1$s + 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. + SMS Serviço Remoto interrompido. Para reactivá-lo, use o AAPS no telemóvel mestre. Para enviar calibração %1$.2f responder com código %2$s Bolus falhou + Número mínimo de minutos que deve decorrer entre um bólus remoto e o próximo + Quantos minutos deve decorrer, pelo menos, entre um bólus e o próximo + Para sua segurança, para editar esta preferência você precisa adicionar pelo menos 2 números de telefone. Bolus %1$.2fU entregue com sucesso Vão ser administradas %1$.2fU Bólus %1$.2fU enviado com êxito + Bólus de refeição %1$.2fU entregue com sucesso Alvo %1$s para %2$d minutos Alvo %1$s para %2$d minutos definido com sucesso Alvo Temp cancelado com êxito @@ -1182,6 +1190,7 @@ Detectamos que está a correr uma versão inválida. Loop desactivado! versão antiga versão muito antiga + 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 2h %1$.2fU App Dexcom (com patch) @@ -1393,6 +1402,7 @@ Limpar terminado Limpar iniciado Detecção de tempo + Deseja reiniciar o objectivo? Pode perder seu progresso. Nenhuma bomba seleccionada Seleccione as unidades em que deseja exibir os valores Carregar as alterações do perfil local para NS @@ -1405,5 +1415,24 @@ Eliminar perfil actual? Criar novo perfil local a partir desta troca de perfil? Nome do perfil contém pontos.\nIsso não é suportado pelo NS.\nPerfil não é enviado para o NS. + Valor mais baixo da área de intervalo (apenas exibição) + Valor mais alto da área de intervalo (apenas exibição) Reordenar + Idade: + Peso: + ID: + Enviar + Perfil mais comum: + 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. + Questionário + Entrada de idade inválida + Entrada de peso inválida + %1$s: ∑: %2$.2f Bol: %3$.2f Bas: %4$.2f]]> + %1$s: Hipo: %2$02d%% Dentro: %3$02d%% Hiper: %4$02d%%]]> + Média + TDD + TIR + Monitor de actividade + Quer reiniciar as estatísticas de actividade? + Estatísticas diff --git a/app/src/main/res/values-pt-rPT/objectives.xml b/app/src/main/res/values-pt-rPT/objectives.xml index dae6fcc431..875a605631 100644 --- a/app/src/main/res/values-pt-rPT/objectives.xml +++ b/app/src/main/res/values-pt-rPT/objectives.xml @@ -46,10 +46,10 @@ Próximo inacabado Pedir Código: %1$s (marque todas as respostas correctas) - https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#what-to-do-when-taking-a-shower-or-bath - https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#the-homescreen - https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#config-builder - https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#the-homescreen + https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#what-to-do-when-taking-a-shower-or-bath + https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#the-homescreen + https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#config-builder + https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#the-homescreen Não está ligado à internet Falha ao recuperar tempo Requisitos de objectivo não cumpridos diff --git a/app/src/main/res/values-pt-rPT/strings.xml b/app/src/main/res/values-pt-rPT/strings.xml index 8cefbe09ef..9aa4f6f8eb 100644 --- a/app/src/main/res/values-pt-rPT/strings.xml +++ b/app/src/main/res/values-pt-rPT/strings.xml @@ -593,6 +593,7 @@ Tipo de Basal Perfil inválido !!! TrocaPerfil + Fazer Mudança De Perfil Idade bateria bomba Troca bateria bomba Opções Alarme @@ -1435,4 +1436,7 @@ Monitor de actividade Quer reiniciar as estatísticas de actividade? Estatísticas + Glic. Aleatória + Gerar dados de Glic. aleatórios (Somente modo de Demonstração) + GLIC diff --git a/app/src/main/res/values-ro-rRO/objectives.xml b/app/src/main/res/values-ro-rRO/objectives.xml index 0c4e5ad161..c37a61470e 100644 --- a/app/src/main/res/values-ro-rRO/objectives.xml +++ b/app/src/main/res/values-ro-rRO/objectives.xml @@ -44,10 +44,10 @@ Următoarea nefinalizată Solicită codul: %1$s (bifați toate răspunsurile corecte) - https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#what-to-do-when-taking-a-shower-or-bath - https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#the-homescreen - https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#config-builder - https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#the-homescreen + https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#what-to-do-when-taking-a-shower-or-bath + https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#the-homescreen + https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#config-builder + https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#the-homescreen Nu există conexiune la internet Nu s-a reușit preluarea timpului Nu au fost îndeplinite cerințele obiectivului diff --git a/app/src/main/res/values-ru-rRU/objectives.xml b/app/src/main/res/values-ru-rRU/objectives.xml index 97fac47306..71faff0d36 100644 --- a/app/src/main/res/values-ru-rRU/objectives.xml +++ b/app/src/main/res/values-ru-rRU/objectives.xml @@ -46,10 +46,10 @@ Следующий незавершенный Код запроса: %1$s (отметьте все правильные ответы) - https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#what-to-do-when-taking-a-shower-or-bath - https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#the-homescreen - https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#config-builder - https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#the-homescreen + https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#what-to-do-when-taking-a-shower-or-bath + https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#the-homescreen + https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#config-builder + https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#the-homescreen Нет подключения к Интернету Не удалось загрузить время Требования к цели не выполнены diff --git a/app/src/main/res/values-ru-rRU/strings.xml b/app/src/main/res/values-ru-rRU/strings.xml index 07933d7eee..820f0c2113 100644 --- a/app/src/main/res/values-ru-rRU/strings.xml +++ b/app/src/main/res/values-ru-rRU/strings.xml @@ -1420,4 +1420,21 @@ Context | Edit Context Меньшее значение диапазона целевых значений (только для дисплея) Большее значение диапазона целевых значений (только для дисплея) Повторный заказ + Возраст: + Вес: + Идентификатор: + Отправить + Наиболее часто применяемый профиль: + Примечание: Данные, видимые на этом экране, будут загружены анонимно. Для этой установки AndroidAPS назначен идентификатор. Вы можете снова передать данные, если ваш основной профиль будет изменен, но пусть он работает по крайней мере в течение недели, чтобы результат был виден в динамике. Ваша помощь ценна. + Опрос + Некорректное значение возраст + Некорректное значение вес + %1$s: ∑: %2$.2f Bol: %3$.2f Bas: %4$.2f]]> + %1$s: Низкий: %2$02d%% В целевом диапазоне: %3$02d%% Высокий: %4$02d%%]]> + Средний + TDD/общая суточная доза + Время в целевом диапазоне TIR + Монитор активности + Хотите сбросить статистику активности? + Статистика diff --git a/app/src/main/res/values-sk-rSK/objectives.xml b/app/src/main/res/values-sk-rSK/objectives.xml index 0b55a38e96..467ae4f0de 100644 --- a/app/src/main/res/values-sk-rSK/objectives.xml +++ b/app/src/main/res/values-sk-rSK/objectives.xml @@ -46,10 +46,10 @@ Ďalšia nedokončená Kód žiadosti: %1$s (zaškrtnite všetky správne odpovede) - https://androidaps.readthedocs.io/en/latest/CROWDIN/cs/Getting-Started/FAQ.html#co-delat-pri-sprchovani-a-koupani - https://androidaps.readthedocs.io/en/latest/CROWDIN/cs/Getting-Started/Screenshots.html#hlavni-stranka - https://androidaps.readthedocs.io/en/latest/CROWDIN/cs/Getting-Started/Screenshots.html#konfigurace - https://androidaps.readthedocs.io/en/latest/CROWDIN/cs/Getting-Started/Screenshots.html#hlavni-stranka + https://androidaps.readthedocs.io/en/latest/CROWDIN/cs/Getting-Started/FAQ.html#co-delat-pri-sprchovani-a-koupani + https://androidaps.readthedocs.io/en/latest/CROWDIN/cs/Getting-Started/Screenshots.html#hlavni-stranka + https://androidaps.readthedocs.io/en/latest/CROWDIN/cs/Getting-Started/Screenshots.html#konfigurace + https://androidaps.readthedocs.io/en/latest/CROWDIN/cs/Getting-Started/Screenshots.html#hlavni-stranka Nie ste pripojený k internetu Vyčítanie času zlyhalo Požiadavky cieľa nie sú splnené diff --git a/app/src/main/res/values-sk-rSK/strings.xml b/app/src/main/res/values-sk-rSK/strings.xml index 95564c4b3b..1130427c16 100644 --- a/app/src/main/res/values-sk-rSK/strings.xml +++ b/app/src/main/res/values-sk-rSK/strings.xml @@ -593,6 +593,7 @@ Typ bazálu Chybný profil !!! Prepnutie profilu + Vykonajte zmenu profilu Vek batérie v pumpe Výmena batérie v pumpe Nastavenie alarmov @@ -1435,4 +1436,7 @@ Monitor aktivity Chcete resetovať štatistiky aktivity? Štatistiky + Náhodná glykémia + Vygeneruj náhodné dáta glykémií (iba Demo režim) + Glykémia diff --git a/app/src/main/res/values-sv-rSE/objectives.xml b/app/src/main/res/values-sv-rSE/objectives.xml index 98ade1c143..f049262c18 100644 --- a/app/src/main/res/values-sv-rSE/objectives.xml +++ b/app/src/main/res/values-sv-rSE/objectives.xml @@ -46,10 +46,10 @@ Nästa icke slutförda Begärd kod: %1$s (kontrollera alla korrekta svar) - https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#what-to-do-when-taking-a-shower-or-bath - https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#the-homescreen - https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#config-builder - https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#the-homescreen + https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#what-to-do-when-taking-a-shower-or-bath + https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#the-homescreen + https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#config-builder + https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#the-homescreen Inte ansluten till internet Fel vid hämtning av tid Målets krav är inte uppfyllda diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml index 0133d299e6..eca0961ca5 100644 --- a/app/src/main/res/values/arrays.xml +++ b/app/src/main/res/values/arrays.xml @@ -200,6 +200,16 @@ @string/key_medtronic_pump_battery_nizn + + 15 + 30 + 45 + 60 + 75 + 90 + 105 + 120 + key_medtronic_bolus_debug diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 29a40248e8..ddd9543714 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1411,7 +1411,12 @@ Lon: Dist [m]: Name: - Location is %1$s + %1$s %2$s + When + When you are inside the area + When you are outside the area + When you enter the area named + When you leave the area named Last bolus ago Last bolus time %1$s %2$s min ago COB diff --git a/app/src/main/res/xml/pref_openapssmb.xml b/app/src/main/res/xml/pref_openapssmb.xml index 63d007d1cb..1fd18d9fb5 100644 --- a/app/src/main/res/xml/pref_openapssmb.xml +++ b/app/src/main/res/xml/pref_openapssmb.xml @@ -65,19 +65,12 @@ android:summary="@string/enablesmbaftercarbs_summary" android:title="@string/enablesmbaftercarbs" /> - + android:title="@string/smbmaxminutes_summary" /> Ziel niedrig hoch - Kohlenhydrate + COB Prozentsatz Start [min] Dauer [h] @@ -95,7 +95,7 @@ Loop CPP TDD - Kohlenhydrate + g KH IOB Kein Status mg/dl diff --git a/wear/src/main/res/values-fr-rFR/strings.xml b/wear/src/main/res/values-fr-rFR/strings.xml index 282d7af377..4fb24f0e5e 100644 --- a/wear/src/main/res/values-fr-rFR/strings.xml +++ b/wear/src/main/res/values-fr-rFR/strings.xml @@ -4,13 +4,13 @@ AAPS AAPS AAPS - AAPS(Large) - AAPS(GrandGraph) - AAPS(SansGraph) - AAPS(Cercle) + AAPS (Large) + AAPS (GrandGraph) + AAPS (SansGraph) + AAPS (Cercle) AAPSv2 - AAPS(Cockpit) - AAPS(Steampunk) + AAPS (Cockpit) + AAPS (Steampunk) Pas de données ! Données anciennes! Depuis %1$s @@ -20,7 +20,7 @@ Oui Non Vibrer sur Bolus - Unités des Actions + Unités pour les Actions Afficher Date Afficher IA Afficher GA @@ -93,7 +93,7 @@ bolus Pompe Boucle - PROFIL + Profil DTI GA IA @@ -105,4 +105,5 @@ U/h h j + s diff --git a/wear/src/main/res/values-it-rIT/strings.xml b/wear/src/main/res/values-it-rIT/strings.xml index cf82f35552..8c5dd41041 100644 --- a/wear/src/main/res/values-it-rIT/strings.xml +++ b/wear/src/main/res/values-it-rIT/strings.xml @@ -4,14 +4,85 @@ AAPS AAPS AAPS - AAPS(Largo) - AAPS(GrandeGrafico) - AAPS(NoGrafico) - AAPS(Cerchio) - Nessun dato! + AAPS(Large) + AAPS(BigChart) + AAPS(NoChart) + AAPS(Circle) + AAPSv2 + AAPS(Cockpit) + AAPS(Steampunk) + No dati! Dati vecchi! Da %1$s Sincro con AAPS! Nessun dato ricevuto da %1$s! Controlla se AAPS sul telefono invia i dati allo smartwatch I dati di AAPS sono vecchi di %1$s ! Controlla il tuo sensore, xDrip+, NS, la configurazione di AAPS o altro! + On + Off + Vibra durante bolo + Mostra data + Mostra IOB + Mostra COB + Mostra delta + Mostra batteria telefono + Mostra velocità basale + Mostra stato loop + Mostra BG + Mostra frecce direzionali + Scuro + Evidenzia basali + 1 ora + 2 ore + 3 ore + 4 ore + 5 ore + Basso + Medio + Alto + Numeri grandi + Storico Ring + Animazioni + Wizard in Menu + Target singolo + Unicode in Complications + Versione: + TempT + Wizard + Bolo + eCarb + Impostazioni + Stato + Carica/Riempi + Menu + durata + target + basso + alto + CHO + percentuale + durata [h] + insulina + Preset 1 + Preset 2 + Preset 3 + Quantità libera + CONFERMA + timeshift + TDD ponderato + bolo + Micro + Loop + CPP + TDD + CHO + IOB + no stato + mg/dl + mmol/l + g + U + U/h + h + d + w diff --git a/wear/src/main/res/values-lt-rLT/strings.xml b/wear/src/main/res/values-lt-rLT/strings.xml index 0d9bc498ad..4ca8521149 100644 --- a/wear/src/main/res/values-lt-rLT/strings.xml +++ b/wear/src/main/res/values-lt-rLT/strings.xml @@ -9,6 +9,8 @@ AAPS(BeGrafiko) AAPS(Apvalus) AAPSv2 + AAPS(Cockpit) + AAPS(Steampunk) Nėra duomenų! Seni duomenys! Nuo %1$s @@ -24,6 +26,7 @@ Rodyti pokytį Rodyti vidutinį pokytį Rodyti telefono bateriją + Rodyti įrenginio bateriją Rodyti valandinę bazę Rodyti Ciklo statusą Rodyti KG @@ -31,6 +34,8 @@ Laikas nuo pask. vertės Tamsus Paryškinti valandines bazes + Vienodos spalvos skirtukas + Diagramos laikotarpis 1 val. 2 val. 3 val. @@ -38,12 +43,21 @@ 5 val. Įvesties Dizainas Numatytasis + Greitai dešinėn + Greitai kairėn + Minimalistinis + Detalus pokytis (Steampunk) Žemas Vidutinis Aukštas Dideli Skaičiai + Glikemijos istorija + Glikemijos istorija - šviesi Animacijos + Meniu vedlys + Užpildyti per meniu Pavienis tikslas + Vedlys su % Versija: LaikinasTikslas Vedlys @@ -51,7 +65,7 @@ iAV Parametrai Būsena - Užpildyti kateterį/adatą + Užpildymas Nėra Numatytasis Meniu @@ -78,6 +92,7 @@ BPD AV AIO + nėra statuso mg/dl mmol/l g diff --git a/wear/src/main/res/values-sk-rSK/strings.xml b/wear/src/main/res/values-sk-rSK/strings.xml index a4459ad09b..e50dc6221a 100644 --- a/wear/src/main/res/values-sk-rSK/strings.xml +++ b/wear/src/main/res/values-sk-rSK/strings.xml @@ -55,4 +55,45 @@ Verzia: TempT Sprievodca + Bolus + eCarbs + Nastavenia + Stav + Plnenie/Doplňovanie + Žiadny + Štandardný + Ponuka + trvanie + cieľ + nízka + vysoká + sacharidy + Percento + začiatok [min] + trvanie [h] + inzulín + Predvoľba 1 + Predvoľba 2 + Predvoľba 3 + Ľubovoľné množstvo + POTVRDIŤ + STAV PUMPY + STAV UZAVRETÉHO OKRUHU + časový posun + TDD vážený + bolus + Pumpa + Uzavretý okruh + TDD + Sacharidy + IOB + žiadny stav + mg/dL + mmol/l + g + JI + JI/h + h + d + t diff --git a/wear/src/main/res/xml/preferences.xml b/wear/src/main/res/xml/preferences.xml index 5899f43cab..3c114cb59c 100644 --- a/wear/src/main/res/xml/preferences.xml +++ b/wear/src/main/res/xml/preferences.xml @@ -133,14 +133,6 @@ app:wear_iconOff="@drawable/settings_off" app:wear_iconOn="@drawable/settings_on"/> - -