- * A summary of event-receiver calls that occurred so far is logged
- * after 10s (after startup) and then again every 60s.
- */
-public class LoggingBus extends Bus {
- private static Logger log = LoggerFactory.getLogger(L.EVENTS);
-
- private static long everyMinute = System.currentTimeMillis() + 10 * 1000;
- private Map> event2Receiver = new HashMap<>();
-
- public LoggingBus(ThreadEnforcer enforcer) {
- super(enforcer);
- }
-
- @Override
- public void post(Object event) {
- if (event instanceof DeadEvent) {
- log.debug("Event has no receiver: " + ((DeadEvent) event).event + ", source: " + ((DeadEvent) event).source);
- return;
- }
-
- if (!(event instanceof Event)) {
- log.error("Posted event not an event class: " + event.getClass());
- }
-
- log.debug("<<< " + event);
- try {
- StackTraceElement caller = new Throwable().getStackTrace()[1];
- String className = caller.getClassName();
- className = className.substring(className.lastIndexOf(".") + 1);
- log.debug(" source: " + className + "." + caller.getMethodName() + ":" + caller.getLineNumber());
- } catch (RuntimeException e) {
- log.debug(" source: ");
- }
-
- try {
- super.post(event);
- } catch (IllegalStateException ignored) {
- }
- }
-
- @Override
- protected void dispatch(Object event, EventHandler wrapper) {
- try {
- log.debug(">>> " + event);
- Field methodField = wrapper.getClass().getDeclaredField("method");
- methodField.setAccessible(true);
- Method targetMethod = (Method) methodField.get(wrapper);
- String className = targetMethod.getDeclaringClass().getSimpleName();
- String methodName = targetMethod.getName();
- String receiverMethod = className + "." + methodName;
- log.debug(" receiver: " + receiverMethod);
-
- String key = event.getClass().getSimpleName();
- if (!event2Receiver.containsKey(key)) event2Receiver.put(key, new HashSet());
- event2Receiver.get(key).add(receiverMethod);
- } catch (ReflectiveOperationException e) {
- log.debug(" receiver: ");
- }
-
- try {
- if (everyMinute < System.currentTimeMillis()) {
- log.debug("***************** Event -> receiver pairings seen so far ****************");
- for (Map.Entry> stringSetEntry : event2Receiver.entrySet()) {
- log.debug(" " + stringSetEntry.getKey());
- for (String s : stringSetEntry.getValue()) {
- log.debug(" -> " + s);
- }
- }
- log.debug("*************************************************************************");
- everyMinute = System.currentTimeMillis() + 60 * 1000;
- }
- } catch (ConcurrentModificationException ignored) {
- }
-
- super.dispatch(event, wrapper);
- }
-}
diff --git a/app/src/main/java/info/nightscout/androidaps/Config.java b/app/src/main/java/info/nightscout/androidaps/Config.java
index ae0e14c9b6..bb967cdeb6 100644
--- a/app/src/main/java/info/nightscout/androidaps/Config.java
+++ b/app/src/main/java/info/nightscout/androidaps/Config.java
@@ -12,13 +12,4 @@ public class Config {
public static final boolean PUMPCONTROL = BuildConfig.FLAVOR.equals("pumpcontrol");
public static final boolean PUMPDRIVERS = BuildConfig.FLAVOR.equals("full") || BuildConfig.FLAVOR.equals("pumpcontrol");
-
- public static final boolean ACTION = !NSCLIENT;
- public static final boolean MDI = !NSCLIENT;
- public static final boolean OTHERPROFILES = !NSCLIENT;
- public static final boolean SAFETY = !NSCLIENT;
-
- public static final boolean SMSCOMMUNICATORENABLED = !NSCLIENT;
-
-
}
diff --git a/app/src/main/java/info/nightscout/androidaps/Constants.java b/app/src/main/java/info/nightscout/androidaps/Constants.java
index adb3be4dc0..21a89d8920 100644
--- a/app/src/main/java/info/nightscout/androidaps/Constants.java
+++ b/app/src/main/java/info/nightscout/androidaps/Constants.java
@@ -36,6 +36,8 @@ public class Constants {
public static final int CPP_MIN_TIMESHIFT = -6;
public static final int CPP_MAX_TIMESHIFT = 23;
+ public static final double MAX_PROFILE_SWITCH_DURATION = 7 * 24 * 60; // [min] ~ 7 days
+
//DanaR
public static final double dailyLimitWarning = 0.95d;
diff --git a/app/src/main/java/info/nightscout/androidaps/MainActivity.java b/app/src/main/java/info/nightscout/androidaps/MainActivity.java
index 47cf8ba1ae..64c2656086 100644
--- a/app/src/main/java/info/nightscout/androidaps/MainActivity.java
+++ b/app/src/main/java/info/nightscout/androidaps/MainActivity.java
@@ -6,7 +6,6 @@ import android.content.pm.PackageManager;
import android.graphics.Rect;
import android.os.Bundle;
import android.os.PersistableBundle;
-import android.os.PowerManager;
import android.text.SpannableString;
import android.text.method.LinkMovementMethod;
import android.text.util.Linkify;
@@ -21,6 +20,7 @@ import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.TextView;
+import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.ActionBarDrawerToggle;
import androidx.appcompat.app.AlertDialog;
@@ -33,7 +33,6 @@ import com.google.android.material.navigation.NavigationView;
import com.google.android.material.tabs.TabLayout;
import com.joanzapata.iconify.Iconify;
import com.joanzapata.iconify.fonts.FontAwesomeModule;
-import com.squareup.otto.Subscribe;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -45,16 +44,16 @@ import info.nightscout.androidaps.activities.PreferencesActivity;
import info.nightscout.androidaps.activities.SingleFragmentActivity;
import info.nightscout.androidaps.data.Profile;
import info.nightscout.androidaps.events.EventAppExit;
-import info.nightscout.androidaps.events.EventFeatureRunning;
import info.nightscout.androidaps.events.EventPreferenceChange;
-import info.nightscout.androidaps.events.EventRefreshGui;
+import info.nightscout.androidaps.events.EventRebuildTabs;
import info.nightscout.androidaps.interfaces.PluginBase;
import info.nightscout.androidaps.interfaces.PluginType;
import info.nightscout.androidaps.logging.L;
import info.nightscout.androidaps.plugins.aps.loop.LoopPlugin;
+import info.nightscout.androidaps.plugins.bus.RxBus;
import info.nightscout.androidaps.plugins.configBuilder.ProfileFunctions;
+import info.nightscout.androidaps.plugins.constraints.versionChecker.VersionCheckerUtilsKt;
import info.nightscout.androidaps.plugins.general.nsclient.data.NSSettingsStatus;
-import info.nightscout.androidaps.plugins.general.versionChecker.VersionCheckerUtilsKt;
import info.nightscout.androidaps.setupwizard.SetupWizardActivity;
import info.nightscout.androidaps.tabs.TabPageAdapter;
import info.nightscout.androidaps.utils.AndroidPermission;
@@ -63,11 +62,12 @@ import info.nightscout.androidaps.utils.LocaleHelper;
import info.nightscout.androidaps.utils.OKDialog;
import info.nightscout.androidaps.utils.PasswordProtection;
import info.nightscout.androidaps.utils.SP;
+import io.reactivex.android.schedulers.AndroidSchedulers;
+import io.reactivex.disposables.CompositeDisposable;
public class MainActivity extends NoSplashAppCompatActivity {
private static Logger log = LoggerFactory.getLogger(L.CORE);
-
- protected PowerManager.WakeLock mWakeLock;
+ private CompositeDisposable disposable = new CompositeDisposable();
private ActionBarDrawerToggle actionBarDrawerToggle;
@@ -77,11 +77,8 @@ public class MainActivity extends NoSplashAppCompatActivity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- if (L.isEnabled(L.CORE))
- log.debug("onCreate");
-
Iconify.with(new FontAwesomeModule());
- LocaleHelper.onCreate(this, "en");
+ LocaleHelper.INSTANCE.update(getApplicationContext());
setContentView(R.layout.activity_main);
setSupportActionBar(findViewById(R.id.toolbar));
@@ -95,14 +92,10 @@ public class MainActivity extends NoSplashAppCompatActivity {
actionBarDrawerToggle.syncState();
// initialize screen wake lock
- onEventPreferenceChange(new EventPreferenceChange(R.string.key_keep_screen_on));
+ processPreferenceChange(new EventPreferenceChange(R.string.key_keep_screen_on));
doMigrations();
- registerBus();
- setupTabs();
- setupViews(false);
-
final ViewPager viewPager = findViewById(R.id.pager);
viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
@@ -124,6 +117,43 @@ public class MainActivity extends NoSplashAppCompatActivity {
VersionCheckerUtilsKt.triggerCheckVersion();
FabricPrivacy.setUserStats();
+
+ setupTabs();
+ setupViews();
+
+ disposable.add(RxBus.INSTANCE
+ .toObservable(EventRebuildTabs.class)
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe(event -> {
+ LocaleHelper.INSTANCE.update(getApplicationContext());
+ if (event.getRecreate()) {
+ recreate();
+ } else {
+ setupTabs();
+ setupViews();
+ }
+ setWakeLock();
+ }, FabricPrivacy::logException)
+ );
+ disposable.add(RxBus.INSTANCE
+ .toObservable(EventPreferenceChange.class)
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe(this::processPreferenceChange, FabricPrivacy::logException)
+ );
+
+ if (!SP.getBoolean(R.string.key_setupwizard_processed, false)) {
+ Intent intent = new Intent(this, SetupWizardActivity.class);
+ startActivity(intent);
+ } else {
+ checkEula();
+ }
+
+ AndroidPermission.notifyForStoragePermission(this);
+ AndroidPermission.notifyForBatteryOptimizationPermission(this);
+ if (Config.PUMPDRIVERS) {
+ AndroidPermission.notifyForLocationPermissions(this);
+ AndroidPermission.notifyForSMSPermissions(this);
+ }
}
private void checkPluginPreferences(ViewPager viewPager) {
@@ -139,86 +169,29 @@ public class MainActivity extends NoSplashAppCompatActivity {
actionBarDrawerToggle.syncState();
}
- @Override
- protected void onResume() {
- super.onResume();
-
- if (L.isEnabled(L.CORE))
- log.debug("onResume");
-
- if (!SP.getBoolean(R.string.key_setupwizard_processed, false)) {
- Intent intent = new Intent(this, SetupWizardActivity.class);
- startActivity(intent);
- } else {
- checkEula();
- }
-
- AndroidPermission.notifyForStoragePermission(this);
- AndroidPermission.notifyForBatteryOptimizationPermission(this);
- if (Config.PUMPDRIVERS) {
- AndroidPermission.notifyForLocationPermissions(this);
- AndroidPermission.notifyForSMSPermissions(this);
- }
-
- MainApp.bus().post(new EventFeatureRunning(EventFeatureRunning.Feature.MAIN));
- }
-
@Override
public void onDestroy() {
- if (L.isEnabled(L.CORE))
- log.debug("onDestroy");
- if (mWakeLock != null)
- if (mWakeLock.isHeld())
- mWakeLock.release();
super.onDestroy();
+ disposable.clear();
}
- @Subscribe
- public void onEventPreferenceChange(final EventPreferenceChange ev) {
- if (ev.isChanged(R.string.key_keep_screen_on)) {
- boolean keepScreenOn = SP.getBoolean(R.string.key_keep_screen_on, false);
- final PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
- if (keepScreenOn) {
- mWakeLock = pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK, "AndroidAPS:MainActivity_onEventPreferenceChange");
- if (!mWakeLock.isHeld())
- mWakeLock.acquire();
- } else {
- if (mWakeLock != null && mWakeLock.isHeld())
- mWakeLock.release();
- }
- }
+ private void setWakeLock() {
+ boolean keepScreenOn = SP.getBoolean(R.string.key_keep_screen_on, false);
+ if (keepScreenOn)
+ getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
+ else
+ getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
}
- @Subscribe
- public void onStatusEvent(final EventRefreshGui ev) {
- String lang = SP.getString(R.string.key_language, "en");
- LocaleHelper.setLocale(getApplicationContext(), lang);
- runOnUiThread(() -> {
- if (ev.recreate) {
- recreate();
- } else {
- try { // activity may be destroyed
- setupTabs();
- setupViews(true);
- } catch (IllegalStateException e) {
- log.error("Unhandled exception", e);
- }
- }
-
- boolean keepScreenOn = Config.NSCLIENT && SP.getBoolean(R.string.key_keep_screen_on, false);
- if (keepScreenOn)
- getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
- else
- getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
- });
+ public void processPreferenceChange(final EventPreferenceChange ev) {
+ if (ev.isChanged(R.string.key_keep_screen_on))
+ setWakeLock();
}
- private void setupViews(boolean switchToLast) {
+ private void setupViews() {
TabPageAdapter pageAdapter = new TabPageAdapter(getSupportFragmentManager(), this);
NavigationView navigationView = findViewById(R.id.navigation_view);
- navigationView.setNavigationItemSelectedListener(menuItem -> {
- return true;
- });
+ navigationView.setNavigationItemSelectedListener(menuItem -> true);
Menu menu = navigationView.getMenu();
menu.clear();
for (PluginBase p : MainApp.getPluginsList()) {
@@ -237,8 +210,8 @@ public class MainActivity extends NoSplashAppCompatActivity {
}
ViewPager mPager = findViewById(R.id.pager);
mPager.setAdapter(pageAdapter);
- if (switchToLast)
- mPager.setCurrentItem(pageAdapter.getCount() - 1, false);
+ //if (switchToLast)
+ // mPager.setCurrentItem(pageAdapter.getCount() - 1, false);
checkPluginPreferences(mPager);
}
@@ -264,15 +237,6 @@ public class MainActivity extends NoSplashAppCompatActivity {
}
}
- private void registerBus() {
- try {
- MainApp.bus().unregister(this);
- } catch (RuntimeException x) {
- // Ignore
- }
- MainApp.bus().register(this);
- }
-
private void checkEula() {
//SP.removeBoolean(R.string.key_i_understand);
boolean IUnderstand = SP.getBoolean(R.string.key_i_understand, false);
@@ -289,10 +253,10 @@ public class MainActivity extends NoSplashAppCompatActivity {
// guarantee that the unreachable threshold is at least 30 and of type String
// Added in 1.57 at 21.01.2018
- Integer unreachable_threshold = SP.getInt(R.string.key_pump_unreachable_threshold, 30);
+ 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, unreachable_threshold.toString());
+ SP.putString(R.string.key_pump_unreachable_threshold, Integer.toString(unreachable_threshold));
}
@@ -308,19 +272,16 @@ public class MainActivity extends NoSplashAppCompatActivity {
String message = "Target range is changed in current version.\n\nIt's not taken from preferences but from profile.\n\n!!! REVIEW YOUR SETTINGS !!!";
message += "\n\nOld settings: " + oldRange;
message += "\nProfile settings: " + newRange;
- OKDialog.show(this, "Target range change", message, new Runnable() {
- @Override
- public void run() {
- SP.remove("openapsma_min_bg");
- SP.remove("openapsma_max_bg");
- SP.remove("openapsma_target_bg");
- }
+ OKDialog.show(this, "Target range change", message, () -> {
+ SP.remove("openapsma_min_bg");
+ SP.remove("openapsma_max_bg");
+ SP.remove("openapsma_target_bg");
});
}
}
@Override
- public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
+ public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (permissions.length != 0) {
if (ActivityCompat.checkSelfPermission(this, permissions[0]) == PackageManager.PERMISSION_GRANTED) {
@@ -405,7 +366,7 @@ public class MainActivity extends NoSplashAppCompatActivity {
case R.id.nav_exit:
log.debug("Exiting");
MainApp.instance().stopKeepAliveService();
- MainApp.bus().post(new EventAppExit());
+ RxBus.INSTANCE.send(new EventAppExit());
MainApp.closeDbHelper();
finish();
System.runFinalization();
diff --git a/app/src/main/java/info/nightscout/androidaps/MainApp.java b/app/src/main/java/info/nightscout/androidaps/MainApp.java
index 89696ad12f..55f4897652 100644
--- a/app/src/main/java/info/nightscout/androidaps/MainApp.java
+++ b/app/src/main/java/info/nightscout/androidaps/MainApp.java
@@ -6,16 +6,12 @@ import android.content.IntentFilter;
import android.content.res.Resources;
import android.os.SystemClock;
-import androidx.annotation.Nullable;
import androidx.annotation.PluralsRes;
import androidx.localbroadcastmanager.content.LocalBroadcastManager;
import com.crashlytics.android.Crashlytics;
import com.google.firebase.analytics.FirebaseAnalytics;
import com.j256.ormlite.android.apptools.OpenHelperManager;
-import com.squareup.otto.Bus;
-import com.squareup.otto.LoggingBus;
-import com.squareup.otto.ThreadEnforcer;
import net.danlew.android.joda.JodaTimeAndroid;
@@ -39,7 +35,9 @@ import info.nightscout.androidaps.plugins.configBuilder.ConfigBuilderPlugin;
import info.nightscout.androidaps.plugins.constraints.dstHelper.DstHelperPlugin;
import info.nightscout.androidaps.plugins.constraints.objectives.ObjectivesPlugin;
import info.nightscout.androidaps.plugins.constraints.safety.SafetyPlugin;
+import info.nightscout.androidaps.plugins.constraints.signatureVerifier.SignatureVerifierPlugin;
import info.nightscout.androidaps.plugins.constraints.storage.StorageConstraintPlugin;
+import info.nightscout.androidaps.plugins.constraints.versionChecker.VersionCheckerPlugin;
import info.nightscout.androidaps.plugins.general.actions.ActionsPlugin;
import info.nightscout.androidaps.plugins.general.automation.AutomationPlugin;
import info.nightscout.androidaps.plugins.general.careportal.CareportalPlugin;
@@ -52,10 +50,7 @@ import info.nightscout.androidaps.plugins.general.nsclient.receivers.AckAlarmRec
import info.nightscout.androidaps.plugins.general.nsclient.receivers.DBAccessReceiver;
import info.nightscout.androidaps.plugins.general.overview.OverviewPlugin;
import info.nightscout.androidaps.plugins.general.persistentNotification.PersistentNotificationPlugin;
-import info.nightscout.androidaps.plugins.general.signatureVerifier.SignatureVerifier;
import info.nightscout.androidaps.plugins.general.smsCommunicator.SmsCommunicatorPlugin;
-import info.nightscout.androidaps.plugins.general.tidepool.TidepoolPlugin;
-import info.nightscout.androidaps.plugins.general.versionChecker.VersionCheckerPlugin;
import info.nightscout.androidaps.plugins.general.wear.WearPlugin;
import info.nightscout.androidaps.plugins.general.xdripStatusline.StatuslinePlugin;
import info.nightscout.androidaps.plugins.insulin.InsulinOrefFreePeakPlugin;
@@ -73,7 +68,6 @@ import info.nightscout.androidaps.plugins.pump.danaRv2.DanaRv2Plugin;
import info.nightscout.androidaps.plugins.pump.insight.LocalInsightPlugin;
import info.nightscout.androidaps.plugins.pump.mdi.MDIPlugin;
import info.nightscout.androidaps.plugins.pump.medtronic.MedtronicPumpPlugin;
-import info.nightscout.androidaps.plugins.pump.omnipod.OmnipodPumpPlugin;
import info.nightscout.androidaps.plugins.pump.virtual.VirtualPumpPlugin;
import info.nightscout.androidaps.plugins.sensitivity.SensitivityAAPSPlugin;
import info.nightscout.androidaps.plugins.sensitivity.SensitivityOref0Plugin;
@@ -94,16 +88,16 @@ import info.nightscout.androidaps.receivers.NSAlarmReceiver;
import info.nightscout.androidaps.receivers.TimeDateOrTZChangeReceiver;
import info.nightscout.androidaps.services.Intents;
import info.nightscout.androidaps.utils.FabricPrivacy;
+import info.nightscout.androidaps.utils.LocaleHelper;
import io.fabric.sdk.android.Fabric;
-import static info.nightscout.androidaps.plugins.general.versionChecker.VersionCheckerUtilsKt.triggerCheckVersion;
+import static info.nightscout.androidaps.plugins.constraints.versionChecker.VersionCheckerUtilsKt.triggerCheckVersion;
public class MainApp extends Application {
private static Logger log = LoggerFactory.getLogger(L.CORE);
private static KeepAliveReceiver keepAliveReceiver;
- private static Bus sBus;
private static MainApp sInstance;
public static Resources sResources;
@@ -131,6 +125,7 @@ public class MainApp extends Application {
log.debug("onCreate");
sInstance = this;
sResources = getResources();
+ LocaleHelper.INSTANCE.update(this);
sConstraintsChecker = new ConstraintChecker();
sDatabaseHelper = OpenHelperManager.getHelper(sInstance, DatabaseHelper.class);
@@ -159,8 +154,6 @@ public class MainApp extends Application {
engineeringMode = engineeringModeSemaphore.exists() && engineeringModeSemaphore.isFile();
devBranch = BuildConfig.VERSION.contains("-") || BuildConfig.VERSION.matches(".*[a-zA-Z]+.*");
- sBus = L.isEnabled(L.EVENTS) && devBranch ? new LoggingBus(ThreadEnforcer.ANY) : new Bus(ThreadEnforcer.ANY);
-
registerLocalBroadcastReceiver();
//trigger here to see the new version on app start after an update
@@ -170,9 +163,9 @@ public class MainApp extends Application {
if (pluginsList == null) {
pluginsList = new ArrayList<>();
// Register all tabs in app here
- pluginsList.add(OverviewPlugin.getPlugin());
+ pluginsList.add(OverviewPlugin.INSTANCE);
pluginsList.add(IobCobCalculatorPlugin.getPlugin());
- if (Config.ACTION) pluginsList.add(ActionsPlugin.INSTANCE);
+ if (!Config.NSCLIENT) pluginsList.add(ActionsPlugin.INSTANCE);
pluginsList.add(InsulinOrefRapidActingPlugin.getPlugin());
pluginsList.add(InsulinOrefUltraRapidActingPlugin.getPlugin());
pluginsList.add(InsulinOrefFreePeakPlugin.getPlugin());
@@ -185,26 +178,25 @@ public class MainApp extends Application {
if (Config.PUMPDRIVERS) pluginsList.add(DanaRv2Plugin.getPlugin());
if (Config.PUMPDRIVERS) pluginsList.add(DanaRSPlugin.getPlugin());
if (Config.PUMPDRIVERS) pluginsList.add(LocalInsightPlugin.getPlugin());
- pluginsList.add(CareportalPlugin.getPlugin());
if (Config.PUMPDRIVERS) pluginsList.add(ComboPlugin.getPlugin());
- if (Config.PUMPDRIVERS && engineeringMode)
- pluginsList.add(MedtronicPumpPlugin.getPlugin());
+ if (Config.PUMPDRIVERS) pluginsList.add(MedtronicPumpPlugin.getPlugin());
if (Config.PUMPDRIVERS && engineeringMode)
pluginsList.add(OmnipodPumpPlugin.getPlugin());
- if (Config.MDI) pluginsList.add(MDIPlugin.getPlugin());
+ if (!Config.NSCLIENT) pluginsList.add(MDIPlugin.getPlugin());
pluginsList.add(VirtualPumpPlugin.getPlugin());
+ pluginsList.add(CareportalPlugin.getPlugin());
if (Config.APS) pluginsList.add(LoopPlugin.getPlugin());
if (Config.APS) pluginsList.add(OpenAPSMAPlugin.getPlugin());
if (Config.APS) pluginsList.add(OpenAPSAMAPlugin.getPlugin());
if (Config.APS) pluginsList.add(OpenAPSSMBPlugin.getPlugin());
pluginsList.add(NSProfilePlugin.getPlugin());
- if (Config.OTHERPROFILES) pluginsList.add(SimpleProfilePlugin.getPlugin());
- if (Config.OTHERPROFILES) pluginsList.add(LocalProfilePlugin.getPlugin());
+ if (!Config.NSCLIENT) pluginsList.add(SimpleProfilePlugin.getPlugin());
+ if (!Config.NSCLIENT) pluginsList.add(LocalProfilePlugin.getPlugin());
pluginsList.add(TreatmentsPlugin.getPlugin());
- if (Config.SAFETY) pluginsList.add(SafetyPlugin.getPlugin());
- if (Config.SAFETY) pluginsList.add(VersionCheckerPlugin.INSTANCE);
- if (Config.SAFETY) pluginsList.add(StorageConstraintPlugin.getPlugin());
- if (Config.SAFETY) pluginsList.add(SignatureVerifier.getPlugin());
+ if (!Config.NSCLIENT) pluginsList.add(SafetyPlugin.getPlugin());
+ if (!Config.NSCLIENT) pluginsList.add(VersionCheckerPlugin.INSTANCE);
+ if (Config.APS) pluginsList.add(StorageConstraintPlugin.getPlugin());
+ if (Config.APS) pluginsList.add(SignatureVerifierPlugin.getPlugin());
if (Config.APS) pluginsList.add(ObjectivesPlugin.INSTANCE);
pluginsList.add(SourceXdripPlugin.getPlugin());
pluginsList.add(SourceNSClientPlugin.getPlugin());
@@ -214,7 +206,7 @@ public class MainApp extends Application {
pluginsList.add(SourcePoctechPlugin.getPlugin());
pluginsList.add(SourceTomatoPlugin.getPlugin());
pluginsList.add(SourceEversensePlugin.getPlugin());
- if (Config.SMSCOMMUNICATORENABLED) pluginsList.add(SmsCommunicatorPlugin.getPlugin());
+ if (!Config.NSCLIENT) pluginsList.add(SmsCommunicatorPlugin.getPlugin());
pluginsList.add(FoodPlugin.getPlugin());
pluginsList.add(WearPlugin.initPlugin(this));
@@ -289,10 +281,6 @@ public class MainApp extends Application {
KeepAliveReceiver.cancelAlarm(this);
}
- public static Bus bus() {
- return sBus;
- }
-
public static String gs(int id) {
return sResources.getString(id);
}
@@ -394,19 +382,6 @@ public class MainApp extends Application {
return newList;
}
- @Nullable
- public static T getSpecificPlugin(Class pluginClass) {
- if (pluginsList != null) {
- for (PluginBase p : pluginsList) {
- if (pluginClass.isAssignableFrom(p.getClass()))
- return (T) p;
- }
- } else {
- log.error("pluginsList=null");
- }
- return null;
- }
-
public static boolean isEngineeringModeOrRelease() {
if (!Config.APS)
return true;
diff --git a/app/src/main/java/info/nightscout/androidaps/activities/HistoryBrowseActivity.java b/app/src/main/java/info/nightscout/androidaps/activities/HistoryBrowseActivity.java
index db7a86e7f4..79f3fbf4d4 100644
--- a/app/src/main/java/info/nightscout/androidaps/activities/HistoryBrowseActivity.java
+++ b/app/src/main/java/info/nightscout/androidaps/activities/HistoryBrowseActivity.java
@@ -16,7 +16,6 @@ import androidx.appcompat.widget.PopupMenu;
import androidx.core.content.res.ResourcesCompat;
import com.jjoe64.graphview.GraphView;
-import com.squareup.otto.Subscribe;
import com.wdullaer.materialdatetimepicker.date.DatePickerDialog;
import org.slf4j.Logger;
@@ -30,6 +29,7 @@ import info.nightscout.androidaps.R;
import info.nightscout.androidaps.data.Profile;
import info.nightscout.androidaps.events.EventCustomCalculationFinished;
import info.nightscout.androidaps.interfaces.PumpInterface;
+import info.nightscout.androidaps.plugins.bus.RxBus;
import info.nightscout.androidaps.plugins.configBuilder.ConfigBuilderPlugin;
import info.nightscout.androidaps.plugins.configBuilder.ProfileFunctions;
import info.nightscout.androidaps.plugins.general.overview.OverviewFragment;
@@ -39,12 +39,15 @@ import info.nightscout.androidaps.plugins.iob.iobCobCalculator.IobCobCalculatorP
import info.nightscout.androidaps.plugins.iob.iobCobCalculator.events.EventAutosensCalculationFinished;
import info.nightscout.androidaps.plugins.iob.iobCobCalculator.events.EventIobCalculationProgress;
import info.nightscout.androidaps.utils.DateUtil;
+import info.nightscout.androidaps.utils.FabricPrivacy;
import info.nightscout.androidaps.utils.SP;
import info.nightscout.androidaps.utils.T;
+import io.reactivex.android.schedulers.AndroidSchedulers;
+import io.reactivex.disposables.CompositeDisposable;
public class HistoryBrowseActivity extends NoSplashActivity {
private static Logger log = LoggerFactory.getLogger(HistoryBrowseActivity.class);
-
+ private CompositeDisposable disposable = new CompositeDisposable();
ImageButton chartButton;
@@ -165,14 +168,33 @@ public class HistoryBrowseActivity extends NoSplashActivity {
@Override
public void onPause() {
super.onPause();
- MainApp.bus().unregister(this);
+ disposable.clear();
iobCobCalculatorPlugin.stopCalculation("onPause");
}
@Override
public void onResume() {
super.onResume();
- MainApp.bus().register(this);
+ disposable.add(RxBus.INSTANCE
+ .toObservable(EventAutosensCalculationFinished.class)
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe(event -> {
+ if (event.getCause() == eventCustomCalculationFinished) {
+ log.debug("EventAutosensCalculationFinished");
+ synchronized (HistoryBrowseActivity.this) {
+ updateGUI("EventAutosensCalculationFinished");
+ }
+ }
+ }, FabricPrivacy::logException)
+ );
+ disposable.add(RxBus.INSTANCE
+ .toObservable(EventIobCalculationProgress.class)
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe(event -> {
+ if (iobCalculationProgressView != null)
+ iobCalculationProgressView.setText(event.getProgress());
+ }, FabricPrivacy::logException)
+ );
// set start of current day
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
@@ -193,26 +215,6 @@ public class HistoryBrowseActivity extends NoSplashActivity {
iobCobCalculatorPlugin.runCalculation(from, end, true, false, eventCustomCalculationFinished);
}
- @Subscribe
- public void onStatusEvent(final EventAutosensCalculationFinished e) {
- if (e.getCause() == eventCustomCalculationFinished) {
- log.debug("EventAutosensCalculationFinished");
- runOnUiThread(() -> {
- synchronized (HistoryBrowseActivity.this) {
- updateGUI("EventAutosensCalculationFinished");
- }
- });
- }
- }
-
- @Subscribe
- public void onStatusEvent(final EventIobCalculationProgress e) {
- runOnUiThread(() -> {
- if (iobCalculationProgressView != null)
- iobCalculationProgressView.setText(e.progress);
- });
- }
-
void updateGUI(String from) {
log.debug("updateGUI from: " + from);
@@ -230,8 +232,8 @@ public class HistoryBrowseActivity extends NoSplashActivity {
}
final String units = profile.getUnits();
- final double lowLine = OverviewPlugin.getPlugin().determineLowLine(units);
- final double highLine = OverviewPlugin.getPlugin().determineHighLine(units);
+ final double lowLine = OverviewPlugin.INSTANCE.determineLowLine(units);
+ final double highLine = OverviewPlugin.INSTANCE.determineHighLine(units);
buttonDate.setText(DateUtil.dateAndTimeString(start));
buttonZoom.setText(String.valueOf(rangeToDisplay));
diff --git a/app/src/main/java/info/nightscout/androidaps/activities/PreferencesActivity.java b/app/src/main/java/info/nightscout/androidaps/activities/PreferencesActivity.java
index c5539f29d2..367429dbbf 100644
--- a/app/src/main/java/info/nightscout/androidaps/activities/PreferencesActivity.java
+++ b/app/src/main/java/info/nightscout/androidaps/activities/PreferencesActivity.java
@@ -17,7 +17,7 @@ import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.R;
import info.nightscout.androidaps.plugins.bus.RxBus;
import info.nightscout.androidaps.events.EventPreferenceChange;
-import info.nightscout.androidaps.events.EventRefreshGui;
+import info.nightscout.androidaps.events.EventRebuildTabs;
import info.nightscout.androidaps.interfaces.PluginBase;
import info.nightscout.androidaps.interfaces.PluginType;
import info.nightscout.androidaps.plugins.general.careportal.CareportalPlugin;
@@ -68,17 +68,14 @@ public class PreferencesActivity extends PreferenceActivity implements SharedPre
@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
- MainApp.bus().post(new EventPreferenceChange(key));
RxBus.INSTANCE.send(new EventPreferenceChange(key));
if (key.equals("language")) {
- String lang = sharedPreferences.getString("language", "en");
- LocaleHelper.setLocale(getApplicationContext(), lang);
- MainApp.bus().post(new EventRefreshGui(true));
+ RxBus.INSTANCE.send(new EventRebuildTabs(true));
//recreate() does not update language so better close settings
finish();
}
if (key.equals("short_tabtitles")) {
- MainApp.bus().post(new EventRefreshGui());
+ RxBus.INSTANCE.send(new EventRebuildTabs());
}
if (key.equals(MainApp.gs(R.string.key_openapsama_useautosens)) && SP.getBoolean(R.string.key_openapsama_useautosens, false)) {
OKDialog.show(this, MainApp.gs(R.string.configbuilder_sensitivity), MainApp.gs(R.string.sensitivity_warning), null);
@@ -209,6 +206,7 @@ public class PreferencesActivity extends PreferenceActivity implements SharedPre
scrnAdvancedSettings.removePreference(getPreference(getString(R.string.key_statuslights_bat_warning)));
scrnAdvancedSettings.removePreference(getPreference(getString(R.string.key_statuslights_bat_critical)));
scrnAdvancedSettings.removePreference(getPreference(getString(R.string.key_show_statuslights)));
+ scrnAdvancedSettings.removePreference(getPreference(getString(R.string.key_show_statuslights_extended)));
}
}
diff --git a/app/src/main/java/info/nightscout/androidaps/activities/TDDStatsActivity.java b/app/src/main/java/info/nightscout/androidaps/activities/TDDStatsActivity.java
index 487def0241..24cdceada6 100644
--- a/app/src/main/java/info/nightscout/androidaps/activities/TDDStatsActivity.java
+++ b/app/src/main/java/info/nightscout/androidaps/activities/TDDStatsActivity.java
@@ -1,10 +1,8 @@
package info.nightscout.androidaps.activities;
-import android.app.Activity;
import android.graphics.Color;
import android.graphics.Rect;
import android.os.Bundle;
-import androidx.recyclerview.widget.LinearLayoutManager;
import android.text.TextUtils;
import android.view.KeyEvent;
import android.view.MotionEvent;
@@ -18,7 +16,7 @@ import android.widget.TableLayout;
import android.widget.TableRow;
import android.widget.TextView;
-import com.squareup.otto.Subscribe;
+import androidx.recyclerview.widget.LinearLayoutManager;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -39,6 +37,7 @@ import info.nightscout.androidaps.data.Profile;
import info.nightscout.androidaps.db.TDD;
import info.nightscout.androidaps.events.EventPumpStatusChanged;
import info.nightscout.androidaps.interfaces.PumpInterface;
+import info.nightscout.androidaps.plugins.bus.RxBus;
import info.nightscout.androidaps.plugins.configBuilder.ConfigBuilderPlugin;
import info.nightscout.androidaps.plugins.configBuilder.ProfileFunctions;
import info.nightscout.androidaps.plugins.pump.danaR.DanaRPlugin;
@@ -49,11 +48,15 @@ import info.nightscout.androidaps.plugins.pump.danaRv2.DanaRv2Plugin;
import info.nightscout.androidaps.plugins.pump.insight.LocalInsightPlugin;
import info.nightscout.androidaps.queue.Callback;
import info.nightscout.androidaps.utils.DecimalFormatter;
+import info.nightscout.androidaps.utils.FabricPrivacy;
import info.nightscout.androidaps.utils.SP;
import info.nightscout.androidaps.utils.SafeParse;
+import io.reactivex.android.schedulers.AndroidSchedulers;
+import io.reactivex.disposables.CompositeDisposable;
public class TDDStatsActivity extends NoSplashActivity {
private static Logger log = LoggerFactory.getLogger(TDDStatsActivity.class);
+ private CompositeDisposable disposable = new CompositeDisposable();
TextView statusView, statsMessage, totalBaseBasal2;
EditText totalBaseBasal;
@@ -74,13 +77,25 @@ public class TDDStatsActivity extends NoSplashActivity {
@Override
protected void onResume() {
super.onResume();
- MainApp.bus().register(this);
+ disposable.add(RxBus.INSTANCE
+ .toObservable(EventPumpStatusChanged.class)
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe(event -> statusView.setText(event.getStatus()), FabricPrivacy::logException)
+ );
+ disposable.add(RxBus.INSTANCE
+ .toObservable(EventDanaRSyncStatus.class)
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe(event -> {
+ log.debug("EventDanaRSyncStatus: " + event.getMessage());
+ statusView.setText(event.getMessage());
+ }, FabricPrivacy::logException)
+ );
}
@Override
protected void onPause() {
super.onPause();
- MainApp.bus().unregister(this);
+ disposable.clear();
}
@Override
@@ -239,7 +254,7 @@ public class TDDStatsActivity extends NoSplashActivity {
statsMessage.setText(MainApp.gs(R.string.danar_stats_warning_Message));
}
});
- ConfigBuilderPlugin.getPlugin().getCommandQueue().loadTDDs( new Callback() {
+ ConfigBuilderPlugin.getPlugin().getCommandQueue().loadTDDs(new Callback() {
@Override
public void run() {
loadDataFromDB();
@@ -399,7 +414,7 @@ public class TDDStatsActivity extends NoSplashActivity {
//cumulative TDDs
for (TDD record : historyList) {
- if(!historyList.isEmpty() && df.format(new Date(record.date)).equals(df.format(new Date()))) {
+ if (!historyList.isEmpty() && df.format(new Date(record.date)).equals(df.format(new Date()))) {
//Today should not be included
continue;
}
@@ -448,7 +463,7 @@ public class TDDStatsActivity extends NoSplashActivity {
tl.setBackgroundColor(Color.TRANSPARENT);
}
- if(!historyList.isEmpty() && df.format(new Date(historyList.get(0).date)).equals(df.format(new Date()))) {
+ if (!historyList.isEmpty() && df.format(new Date(historyList.get(0).date)).equals(df.format(new Date()))) {
//Today should not be included
historyList.remove(0);
}
@@ -519,42 +534,17 @@ public class TDDStatsActivity extends NoSplashActivity {
}
}
- @Subscribe
- public void onStatusEvent(final EventDanaRSyncStatus s) {
- log.debug("EventDanaRSyncStatus: " + s.message);
- runOnUiThread(
- new Runnable() {
- @Override
- public void run() {
- statusView.setText(s.message);
- }
- });
- }
-
- @Subscribe
- public void onStatusEvent(final EventPumpStatusChanged c) {
- runOnUiThread(
- new Runnable() {
- @Override
- public void run() {
- statusView.setText(c.textStatus());
- }
- }
- );
- }
-
-
public static boolean isOldData(List historyList) {
Object activePump = ConfigBuilderPlugin.getPlugin().getActivePump();
- PumpInterface dana = MainApp.getSpecificPlugin(DanaRPlugin.class);
- PumpInterface danaRS = MainApp.getSpecificPlugin(DanaRSPlugin.class);
- PumpInterface danaV2 = MainApp.getSpecificPlugin(DanaRv2Plugin.class);
- PumpInterface danaKorean = MainApp.getSpecificPlugin(DanaRKoreanPlugin.class);
- PumpInterface insight = MainApp.getSpecificPlugin(LocalInsightPlugin.class);
+ PumpInterface dana = DanaRPlugin.getPlugin();
+ PumpInterface danaRS = DanaRSPlugin.getPlugin();
+ PumpInterface danaV2 = DanaRv2Plugin.getPlugin();
+ PumpInterface danaKorean = DanaRKoreanPlugin.getPlugin();
+ PumpInterface insight = LocalInsightPlugin.getPlugin();
boolean startsYesterday = activePump == dana || activePump == danaRS || activePump == danaV2 || activePump == danaKorean || activePump == insight;
DateFormat df = new SimpleDateFormat("dd.MM.");
- return (historyList.size() < 3 || !(df.format(new Date(historyList.get(0).date)).equals(df.format(new Date(System.currentTimeMillis() - (startsYesterday?1000 * 60 * 60 * 24:0))))));
+ return (historyList.size() < 3 || !(df.format(new Date(historyList.get(0).date)).equals(df.format(new Date(System.currentTimeMillis() - (startsYesterday ? 1000 * 60 * 60 * 24 : 0))))));
}
}
\ No newline at end of file
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 ea63605ceb..2a9a7b2783 100644
--- a/app/src/main/java/info/nightscout/androidaps/data/Profile.java
+++ b/app/src/main/java/info/nightscout/androidaps/data/Profile.java
@@ -17,6 +17,7 @@ import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.R;
import info.nightscout.androidaps.interfaces.PumpDescription;
import info.nightscout.androidaps.interfaces.PumpInterface;
+import info.nightscout.androidaps.plugins.bus.RxBus;
import info.nightscout.androidaps.plugins.configBuilder.ConfigBuilderPlugin;
import info.nightscout.androidaps.plugins.general.overview.events.EventNewNotification;
import info.nightscout.androidaps.plugins.general.overview.notifications.Notification;
@@ -231,7 +232,7 @@ public class Profile {
if (notify && secondsFromMidnight % 3600 != 0) {
if (Config.APS) {
Notification notification = new Notification(Notification.BASAL_PROFILE_NOT_ALIGNED_TO_HOURS, String.format(MainApp.gs(R.string.basalprofilenotaligned), from), Notification.NORMAL);
- MainApp.bus().post(new EventNewNotification(notification));
+ RxBus.INSTANCE.send(new EventNewNotification(notification));
}
}
}
@@ -263,11 +264,11 @@ public class Profile {
}
protected void sendBelowMinimumNotification(String from) {
- MainApp.bus().post(new EventNewNotification(new Notification(Notification.MINIMAL_BASAL_VALUE_REPLACED, String.format(MainApp.gs(R.string.minimalbasalvaluereplaced), from), Notification.NORMAL)));
+ RxBus.INSTANCE.send(new EventNewNotification(new Notification(Notification.MINIMAL_BASAL_VALUE_REPLACED, String.format(MainApp.gs(R.string.minimalbasalvaluereplaced), from), Notification.NORMAL)));
}
protected void sendAboveMaximumNotification(String from) {
- MainApp.bus().post(new EventNewNotification(new Notification(Notification.MAXIMUM_BASAL_VALUE_REPLACED, String.format(MainApp.gs(R.string.maximumbasalvaluereplaced), from), Notification.NORMAL)));
+ RxBus.INSTANCE.send(new EventNewNotification(new Notification(Notification.MAXIMUM_BASAL_VALUE_REPLACED, String.format(MainApp.gs(R.string.maximumbasalvaluereplaced), from), Notification.NORMAL)));
}
private void validate(LongSparseArray array) {
diff --git a/app/src/main/java/info/nightscout/androidaps/data/QuickWizard.java b/app/src/main/java/info/nightscout/androidaps/data/QuickWizard.java
deleted file mode 100644
index 80a6e1b457..0000000000
--- a/app/src/main/java/info/nightscout/androidaps/data/QuickWizard.java
+++ /dev/null
@@ -1,86 +0,0 @@
-package info.nightscout.androidaps.data;
-
-import org.json.JSONArray;
-import org.json.JSONException;
-import org.json.JSONObject;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import info.nightscout.androidaps.utils.SP;
-
-/**
- * Created by mike on 12.10.2016.
- */
-
-public class QuickWizard {
- private static Logger log = LoggerFactory.getLogger(QuickWizard.class);
-
- private JSONArray storage = new JSONArray();
-
- public void setData(JSONArray newData) {
- storage = newData;
- }
-
- public void save() {
- SP.putString("QuickWizard", storage.toString());
- }
-
- public int size() {
- return storage.length();
- }
-
- public QuickWizardEntry get(int position) {
- try {
- return new QuickWizardEntry((JSONObject) storage.get(position), position);
- } catch (JSONException e) {
- log.error("Unhandled exception", e);
- }
- return null;
- }
-
- public Boolean isActive() {
- for (int i = 0; i < storage.length(); i++) {
- try {
- if (new QuickWizardEntry((JSONObject) storage.get(i), i).isActive()) return true;
- } catch (JSONException e) {
- log.error("Unhandled exception", e);
- }
- }
- return false;
- }
-
- public QuickWizardEntry getActive() {
- for (int i = 0; i < storage.length(); i++) {
- QuickWizardEntry entry;
- try {
- entry = new QuickWizardEntry((JSONObject) storage.get(i), i);
- } catch (JSONException e) {
- continue;
- }
- if (entry.isActive()) return entry;
- }
- return null;
- }
-
- public QuickWizardEntry newEmptyItem() {
- return new QuickWizardEntry();
- }
-
- public void addOrUpdate(QuickWizardEntry newItem) {
- if (newItem.position == -1)
- storage.put(newItem.storage);
- else {
- try {
- storage.put(newItem.position, newItem.storage);
- } catch (JSONException e) {
- log.error("Unhandled exception", e);
- }
- }
- save();
- }
-
- public void remove(int position) {
- storage.remove(position);
- save();
- }
-}
diff --git a/app/src/main/java/info/nightscout/androidaps/data/QuickWizard.kt b/app/src/main/java/info/nightscout/androidaps/data/QuickWizard.kt
new file mode 100644
index 0000000000..f8bca8c450
--- /dev/null
+++ b/app/src/main/java/info/nightscout/androidaps/data/QuickWizard.kt
@@ -0,0 +1,52 @@
+package info.nightscout.androidaps.data
+
+import info.nightscout.androidaps.utils.SP
+import org.json.JSONArray
+import org.json.JSONObject
+
+object QuickWizard {
+ private var storage = JSONArray()
+
+ init {
+ setData(JSONArray(SP.getString("QuickWizard", "[]")))
+ }
+
+ fun getActive(): QuickWizardEntry? {
+ for (i in 0 until storage.length()) {
+ val entry = QuickWizardEntry(storage.get(i) as JSONObject, i)
+ if (entry.isActive) return entry
+ }
+ return null
+ }
+
+ fun setData(newData: JSONArray) {
+ storage = newData
+ }
+
+ fun save() {
+ SP.putString("QuickWizard", storage.toString())
+ }
+
+ fun size(): Int = storage.length()
+
+ operator fun get(position: Int): QuickWizardEntry =
+ QuickWizardEntry(storage.get(position) as JSONObject, position)
+
+
+ fun newEmptyItem(): QuickWizardEntry {
+ return QuickWizardEntry()
+ }
+
+ fun addOrUpdate(newItem: QuickWizardEntry) {
+ if (newItem.position == -1)
+ storage.put(newItem.storage)
+ else
+ storage.put(newItem.position, newItem.storage)
+ save()
+ }
+
+ fun remove(position: Int) {
+ storage.remove(position)
+ save()
+ }
+}
diff --git a/app/src/main/java/info/nightscout/androidaps/db/BgReading.java b/app/src/main/java/info/nightscout/androidaps/db/BgReading.java
index 6fafdc4b6d..8b206e2c78 100644
--- a/app/src/main/java/info/nightscout/androidaps/db/BgReading.java
+++ b/app/src/main/java/info/nightscout/androidaps/db/BgReading.java
@@ -216,8 +216,8 @@ public class BgReading implements DataPointWithLabelInterface {
@Override
public int getColor() {
String units = ProfileFunctions.getInstance().getProfileUnits();
- Double lowLine = OverviewPlugin.getPlugin().determineLowLine(units);
- Double highLine = OverviewPlugin.getPlugin().determineHighLine(units);
+ Double lowLine = OverviewPlugin.INSTANCE.determineLowLine(units);
+ Double highLine = OverviewPlugin.INSTANCE.determineHighLine(units);
int color = MainApp.gc(R.color.inrange);
if (isPrediction())
return getPredectionColor();
diff --git a/app/src/main/java/info/nightscout/androidaps/db/DatabaseHelper.java b/app/src/main/java/info/nightscout/androidaps/db/DatabaseHelper.java
index 9fa3ab9929..d8926fc4c1 100644
--- a/app/src/main/java/info/nightscout/androidaps/db/DatabaseHelper.java
+++ b/app/src/main/java/info/nightscout/androidaps/db/DatabaseHelper.java
@@ -243,7 +243,7 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
new java.util.TimerTask() {
@Override
public void run() {
- MainApp.bus().post(new EventRefreshOverview("resetDatabases"));
+ RxBus.INSTANCE.send(new EventRefreshOverview("resetDatabases"));
}
},
3000
@@ -412,7 +412,6 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
public void run() {
if (L.isEnabled(L.DATABASE))
log.debug("Firing EventNewBg");
- MainApp.bus().post(new EventNewBG(bgReading));
RxBus.INSTANCE.send(new EventNewBG(bgReading));
scheduledBgPost = null;
}
@@ -738,7 +737,7 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
public void run() {
if (L.isEnabled(L.DATABASE))
log.debug("Firing EventTempTargetChange");
- MainApp.bus().post(new EventTempTargetChange());
+ RxBus.INSTANCE.send(new EventTempTargetChange());
scheduledTemTargetPost = null;
}
}
@@ -1035,10 +1034,10 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
public void run() {
if (L.isEnabled(L.DATABASE))
log.debug("Firing EventTempBasalChange");
- MainApp.bus().post(new EventReloadTempBasalData());
- MainApp.bus().post(new EventTempBasalChange());
+ RxBus.INSTANCE.send(new EventReloadTempBasalData());
+ RxBus.INSTANCE.send(new EventTempBasalChange());
if (earliestDataChange != null)
- MainApp.bus().post(new EventNewHistoryData(earliestDataChange));
+ RxBus.INSTANCE.send(new EventNewHistoryData(earliestDataChange));
earliestDataChange = null;
scheduledTemBasalsPost = null;
}
@@ -1371,9 +1370,9 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
public void run() {
if (L.isEnabled(L.DATABASE))
log.debug("Firing EventExtendedBolusChange");
- MainApp.bus().post(new EventReloadTreatmentData(new EventExtendedBolusChange()));
+ RxBus.INSTANCE.send(new EventReloadTreatmentData(new EventExtendedBolusChange()));
if (earliestDataChange != null)
- MainApp.bus().post(new EventNewHistoryData(earliestDataChange));
+ RxBus.INSTANCE.send(new EventNewHistoryData(earliestDataChange));
earliestDataChange = null;
scheduledExtendedBolusPost = null;
}
@@ -1577,7 +1576,7 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
public void run() {
if (L.isEnabled(L.DATABASE))
log.debug("Firing scheduleCareportalEventChange");
- MainApp.bus().post(new EventCareportalEventChange());
+ RxBus.INSTANCE.send(new EventCareportalEventChange());
scheduledCareportalEventPost = null;
}
}
@@ -1720,8 +1719,8 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
public void run() {
if (L.isEnabled(L.DATABASE))
log.debug("Firing EventProfileNeedsUpdate");
- MainApp.bus().post(new EventReloadProfileSwitchData());
- MainApp.bus().post(new EventProfileNeedsUpdate());
+ RxBus.INSTANCE.send(new EventReloadProfileSwitchData());
+ RxBus.INSTANCE.send(new EventProfileNeedsUpdate());
scheduledProfileSwitchEventPost = null;
}
}
diff --git a/app/src/main/java/info/nightscout/androidaps/db/ProfileSwitch.java b/app/src/main/java/info/nightscout/androidaps/db/ProfileSwitch.java
index 5f37c3d96b..62b963e9ef 100644
--- a/app/src/main/java/info/nightscout/androidaps/db/ProfileSwitch.java
+++ b/app/src/main/java/info/nightscout/androidaps/db/ProfileSwitch.java
@@ -1,6 +1,8 @@
package info.nightscout.androidaps.db;
import android.graphics.Color;
+
+import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.j256.ormlite.field.DatabaseField;
@@ -18,11 +20,13 @@ import info.nightscout.androidaps.R;
import info.nightscout.androidaps.data.Profile;
import info.nightscout.androidaps.interfaces.Interval;
import info.nightscout.androidaps.logging.L;
+import info.nightscout.androidaps.plugins.bus.RxBus;
import info.nightscout.androidaps.plugins.general.overview.events.EventNewNotification;
import info.nightscout.androidaps.plugins.general.overview.graphExtensions.DataPointWithLabelInterface;
import info.nightscout.androidaps.plugins.general.overview.graphExtensions.PointsWithLabelGraphSeries;
import info.nightscout.androidaps.plugins.general.overview.notifications.Notification;
import info.nightscout.androidaps.plugins.profile.local.LocalProfilePlugin;
+import info.nightscout.androidaps.plugins.treatments.TreatmentsPlugin;
import info.nightscout.androidaps.utils.DateUtil;
import info.nightscout.androidaps.utils.DecimalFormatter;
import info.nightscout.androidaps.utils.T;
@@ -78,12 +82,12 @@ public class ProfileSwitch implements Interval, DataPointWithLabelInterface {
return this;
}
- public ProfileSwitch source(int source) {
+ public ProfileSwitch source(int source) {
this.source = source;
return this;
}
- public ProfileSwitch duration(int duration) {
+ public ProfileSwitch duration(int duration) {
this.durationInMinutes = duration;
return this;
}
@@ -107,7 +111,7 @@ public class ProfileSwitch implements Interval, DataPointWithLabelInterface {
*/
public String getCustomizedName() {
String name = profileName;
- if(LocalProfilePlugin.LOCAL_PROFILE.equals(name)){
+ if (LocalProfilePlugin.LOCAL_PROFILE.equals(name)) {
name = DecimalFormatter.to2Decimal(getProfileObject().percentageBasalSum()) + "U ";
}
if (isCPP) {
@@ -156,7 +160,7 @@ public class ProfileSwitch implements Interval, DataPointWithLabelInterface {
// -------- Interval interface ---------
- Long cuttedEnd = null;
+ private Long cuttedEnd = null;
public long durationInMsec() {
return durationInMinutes * 60 * 1000L;
@@ -212,16 +216,17 @@ public class ProfileSwitch implements Interval, DataPointWithLabelInterface {
@Override
public boolean isValid() {
-
boolean isValid = getProfileObject() != null && getProfileObject().isValid(DateUtil.dateAndTimeString(date));
- if (!isValid)
+ ProfileSwitch active = TreatmentsPlugin.getPlugin().getProfileSwitchFromHistory(DateUtil.now());
+ long activeProfileSwitchDate = active != null ? active.date : -1L;
+ if (!isValid && date == activeProfileSwitchDate)
createNotificationInvalidProfile(DateUtil.dateAndTimeString(date));
return isValid;
}
- public void createNotificationInvalidProfile(String detail) {
+ private void createNotificationInvalidProfile(String detail) {
Notification notification = new Notification(Notification.ZERO_VALUE_IN_PROFILE, String.format(MainApp.gs(R.string.zerovalueinprofile), detail), Notification.LOW, 5);
- MainApp.bus().post(new EventNewNotification(notification));
+ RxBus.INSTANCE.send(new EventNewNotification(notification));
}
public static boolean isEvent5minBack(List list, long time, boolean zeroDurationOnly) {
@@ -290,6 +295,7 @@ public class ProfileSwitch implements Interval, DataPointWithLabelInterface {
return Color.CYAN;
}
+ @NonNull
public String toString() {
return "ProfileSwitch{" +
"date=" + date +
diff --git a/app/src/main/java/info/nightscout/androidaps/events/Event.java b/app/src/main/java/info/nightscout/androidaps/events/Event.java
deleted file mode 100644
index 864d55d6f7..0000000000
--- a/app/src/main/java/info/nightscout/androidaps/events/Event.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package info.nightscout.androidaps.events;
-
-import org.apache.commons.lang3.builder.ReflectionToStringBuilder;
-import org.apache.commons.lang3.builder.ToStringStyle;
-
-/** Base class for all events posted on the event bus. */
-public abstract class Event {
- static {
- ReflectionToStringBuilder.setDefaultStyle(ToStringStyle.SHORT_PREFIX_STYLE);
- }
-
- @Override
- public String toString() {
- return ReflectionToStringBuilder.toString(this);
- }
-}
diff --git a/app/src/main/java/info/nightscout/androidaps/events/Event.kt b/app/src/main/java/info/nightscout/androidaps/events/Event.kt
new file mode 100644
index 0000000000..a44f65e836
--- /dev/null
+++ b/app/src/main/java/info/nightscout/androidaps/events/Event.kt
@@ -0,0 +1,18 @@
+package info.nightscout.androidaps.events
+
+import org.apache.commons.lang3.builder.ReflectionToStringBuilder
+import org.apache.commons.lang3.builder.ToStringStyle
+
+/** Base class for all events posted on the event bus. */
+abstract class Event {
+
+ override fun toString(): String {
+ return ReflectionToStringBuilder.toString(this)
+ }
+
+ companion object {
+ init {
+ ReflectionToStringBuilder.setDefaultStyle(ToStringStyle.SHORT_PREFIX_STYLE)
+ }
+ }
+}
diff --git a/app/src/main/java/info/nightscout/androidaps/events/EventAcceptOpenLoopChange.java b/app/src/main/java/info/nightscout/androidaps/events/EventAcceptOpenLoopChange.java
deleted file mode 100644
index 2dfbf9ae35..0000000000
--- a/app/src/main/java/info/nightscout/androidaps/events/EventAcceptOpenLoopChange.java
+++ /dev/null
@@ -1,5 +0,0 @@
-package info.nightscout.androidaps.events;
-
-/** Base class for events to update the UI, mostly a specific tab. */
-public class EventAcceptOpenLoopChange extends Event {
-}
diff --git a/app/src/main/java/info/nightscout/androidaps/events/EventAcceptOpenLoopChange.kt b/app/src/main/java/info/nightscout/androidaps/events/EventAcceptOpenLoopChange.kt
new file mode 100644
index 0000000000..552564edfc
--- /dev/null
+++ b/app/src/main/java/info/nightscout/androidaps/events/EventAcceptOpenLoopChange.kt
@@ -0,0 +1,3 @@
+package info.nightscout.androidaps.events
+
+class EventAcceptOpenLoopChange : Event()
diff --git a/app/src/main/java/info/nightscout/androidaps/events/EventAppExit.java b/app/src/main/java/info/nightscout/androidaps/events/EventAppExit.java
deleted file mode 100644
index 9ce91a9a39..0000000000
--- a/app/src/main/java/info/nightscout/androidaps/events/EventAppExit.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package info.nightscout.androidaps.events;
-
-/**
- * Created by mike on 07.07.2016.
- */
-public class EventAppExit extends Event {
-}
diff --git a/app/src/main/java/info/nightscout/androidaps/events/EventAppExit.kt b/app/src/main/java/info/nightscout/androidaps/events/EventAppExit.kt
new file mode 100644
index 0000000000..640b586f5f
--- /dev/null
+++ b/app/src/main/java/info/nightscout/androidaps/events/EventAppExit.kt
@@ -0,0 +1,3 @@
+package info.nightscout.androidaps.events
+
+class EventAppExit : Event()
\ No newline at end of file
diff --git a/app/src/main/java/info/nightscout/androidaps/events/EventAppInitialized.java b/app/src/main/java/info/nightscout/androidaps/events/EventAppInitialized.java
deleted file mode 100644
index 17262cfb85..0000000000
--- a/app/src/main/java/info/nightscout/androidaps/events/EventAppInitialized.java
+++ /dev/null
@@ -1,8 +0,0 @@
-package info.nightscout.androidaps.events;
-
-/**
- * Created by mike on 23.01.2018.
- */
-
-public class EventAppInitialized extends Event {
-}
diff --git a/app/src/main/java/info/nightscout/androidaps/events/EventAppInitialized.kt b/app/src/main/java/info/nightscout/androidaps/events/EventAppInitialized.kt
new file mode 100644
index 0000000000..293f9698f2
--- /dev/null
+++ b/app/src/main/java/info/nightscout/androidaps/events/EventAppInitialized.kt
@@ -0,0 +1,3 @@
+package info.nightscout.androidaps.events
+
+class EventAppInitialized : Event()
\ No newline at end of file
diff --git a/app/src/main/java/info/nightscout/androidaps/events/EventBolusRequested.java b/app/src/main/java/info/nightscout/androidaps/events/EventBolusRequested.java
deleted file mode 100644
index cb727758bb..0000000000
--- a/app/src/main/java/info/nightscout/androidaps/events/EventBolusRequested.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package info.nightscout.androidaps.events;
-
-/**
- * Created by adrian on 07/02/17.
- */
-
-public class EventBolusRequested extends Event {
- private double amount;
-
- public EventBolusRequested (double amount){
- this.amount = amount;
- }
-
- public double getAmount() {
- return amount;
- }
-
- public void setAmount(double amount) {
- this.amount = amount;
- }
-}
diff --git a/app/src/main/java/info/nightscout/androidaps/events/EventBolusRequested.kt b/app/src/main/java/info/nightscout/androidaps/events/EventBolusRequested.kt
new file mode 100644
index 0000000000..a528ef1656
--- /dev/null
+++ b/app/src/main/java/info/nightscout/androidaps/events/EventBolusRequested.kt
@@ -0,0 +1,3 @@
+package info.nightscout.androidaps.events
+
+class EventBolusRequested(var amount: Double) : Event()
\ No newline at end of file
diff --git a/app/src/main/java/info/nightscout/androidaps/events/EventCareportalEventChange.java b/app/src/main/java/info/nightscout/androidaps/events/EventCareportalEventChange.java
deleted file mode 100644
index 9b47ed39cb..0000000000
--- a/app/src/main/java/info/nightscout/androidaps/events/EventCareportalEventChange.java
+++ /dev/null
@@ -1,8 +0,0 @@
-package info.nightscout.androidaps.events;
-
-/**
- * Created by mike on 25.05.2017.
- */
-
-public class EventCareportalEventChange extends Event {
-}
diff --git a/app/src/main/java/info/nightscout/androidaps/events/EventCareportalEventChange.kt b/app/src/main/java/info/nightscout/androidaps/events/EventCareportalEventChange.kt
new file mode 100644
index 0000000000..e7d52d86c0
--- /dev/null
+++ b/app/src/main/java/info/nightscout/androidaps/events/EventCareportalEventChange.kt
@@ -0,0 +1,3 @@
+package info.nightscout.androidaps.events
+
+class EventCareportalEventChange : Event()
diff --git a/app/src/main/java/info/nightscout/androidaps/events/EventConfigBuilderChange.java b/app/src/main/java/info/nightscout/androidaps/events/EventConfigBuilderChange.java
deleted file mode 100644
index ad5f558fe8..0000000000
--- a/app/src/main/java/info/nightscout/androidaps/events/EventConfigBuilderChange.java
+++ /dev/null
@@ -1,8 +0,0 @@
-package info.nightscout.androidaps.events;
-
-/**
- * Created by mike on 17.02.2017.
- */
-
-public class EventConfigBuilderChange extends Event {
-}
diff --git a/app/src/main/java/info/nightscout/androidaps/events/EventConfigBuilderChange.kt b/app/src/main/java/info/nightscout/androidaps/events/EventConfigBuilderChange.kt
new file mode 100644
index 0000000000..b674374fad
--- /dev/null
+++ b/app/src/main/java/info/nightscout/androidaps/events/EventConfigBuilderChange.kt
@@ -0,0 +1,3 @@
+package info.nightscout.androidaps.events
+
+class EventConfigBuilderChange : Event()
diff --git a/app/src/main/java/info/nightscout/androidaps/events/EventCustomActionsChanged.java b/app/src/main/java/info/nightscout/androidaps/events/EventCustomActionsChanged.java
deleted file mode 100644
index 81d1f60271..0000000000
--- a/app/src/main/java/info/nightscout/androidaps/events/EventCustomActionsChanged.java
+++ /dev/null
@@ -1,4 +0,0 @@
-package info.nightscout.androidaps.events;
-
-public class EventCustomActionsChanged extends Event {
-}
diff --git a/app/src/main/java/info/nightscout/androidaps/events/EventCustomActionsChanged.kt b/app/src/main/java/info/nightscout/androidaps/events/EventCustomActionsChanged.kt
new file mode 100644
index 0000000000..d75bf612ce
--- /dev/null
+++ b/app/src/main/java/info/nightscout/androidaps/events/EventCustomActionsChanged.kt
@@ -0,0 +1,3 @@
+package info.nightscout.androidaps.events
+
+class EventCustomActionsChanged : Event()
diff --git a/app/src/main/java/info/nightscout/androidaps/events/EventCustomCalculationFinished.java b/app/src/main/java/info/nightscout/androidaps/events/EventCustomCalculationFinished.java
deleted file mode 100644
index e52761dc58..0000000000
--- a/app/src/main/java/info/nightscout/androidaps/events/EventCustomCalculationFinished.java
+++ /dev/null
@@ -1,8 +0,0 @@
-package info.nightscout.androidaps.events;
-
-/**
- * Created by mike on 13.02.2018.
- */
-
-public class EventCustomCalculationFinished extends Event {
-}
diff --git a/app/src/main/java/info/nightscout/androidaps/events/EventCustomCalculationFinished.kt b/app/src/main/java/info/nightscout/androidaps/events/EventCustomCalculationFinished.kt
new file mode 100644
index 0000000000..f6092b395d
--- /dev/null
+++ b/app/src/main/java/info/nightscout/androidaps/events/EventCustomCalculationFinished.kt
@@ -0,0 +1,3 @@
+package info.nightscout.androidaps.events
+
+class EventCustomCalculationFinished : Event()
\ No newline at end of file
diff --git a/app/src/main/java/info/nightscout/androidaps/events/EventExtendedBolusChange.java b/app/src/main/java/info/nightscout/androidaps/events/EventExtendedBolusChange.java
deleted file mode 100644
index 8881b0ecc1..0000000000
--- a/app/src/main/java/info/nightscout/androidaps/events/EventExtendedBolusChange.java
+++ /dev/null
@@ -1,8 +0,0 @@
-package info.nightscout.androidaps.events;
-
-/**
- * Created by mike on 15.05.2017.
- */
-
-public class EventExtendedBolusChange extends Event {
-}
diff --git a/app/src/main/java/info/nightscout/androidaps/events/EventExtendedBolusChange.kt b/app/src/main/java/info/nightscout/androidaps/events/EventExtendedBolusChange.kt
new file mode 100644
index 0000000000..4ed0ca5ffe
--- /dev/null
+++ b/app/src/main/java/info/nightscout/androidaps/events/EventExtendedBolusChange.kt
@@ -0,0 +1,3 @@
+package info.nightscout.androidaps.events
+
+class EventExtendedBolusChange : EventLoop()
diff --git a/app/src/main/java/info/nightscout/androidaps/events/EventFeatureRunning.java b/app/src/main/java/info/nightscout/androidaps/events/EventFeatureRunning.java
deleted file mode 100644
index 0d07cd6c61..0000000000
--- a/app/src/main/java/info/nightscout/androidaps/events/EventFeatureRunning.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package info.nightscout.androidaps.events;
-
-/**
- * Created by jamorham on 07/02/2018.
- *
- * Event to indicate that an app feature is being used, for example bolus wizard being opened
- *
- * The purpose this has been created for is to enable opportunistic connection to the pump
- * so that it is already connected before the user wishes to enact a pump function
- *
- */
-
-public class EventFeatureRunning extends Event {
-
- private Feature feature = Feature.UNKNOWN;
-
- public EventFeatureRunning() {
- }
-
- public EventFeatureRunning(Feature feature) {
- this.feature = feature;
- }
-
- public Feature getFeature() {
- return feature;
- }
-
- public enum Feature {
- UNKNOWN,
- MAIN,
- WIZARD,
-
- JUST_ADD_MORE_HERE
- }
-
-}
diff --git a/app/src/main/java/info/nightscout/androidaps/events/EventFoodDatabaseChanged.java b/app/src/main/java/info/nightscout/androidaps/events/EventFoodDatabaseChanged.java
deleted file mode 100644
index 48e6be3a14..0000000000
--- a/app/src/main/java/info/nightscout/androidaps/events/EventFoodDatabaseChanged.java
+++ /dev/null
@@ -1,8 +0,0 @@
-package info.nightscout.androidaps.events;
-
-/**
- * Created by mike on 20.09.2017.
- */
-
-public class EventFoodDatabaseChanged extends Event {
-}
diff --git a/app/src/main/java/info/nightscout/androidaps/events/EventFoodDatabaseChanged.kt b/app/src/main/java/info/nightscout/androidaps/events/EventFoodDatabaseChanged.kt
new file mode 100644
index 0000000000..83402c3cb6
--- /dev/null
+++ b/app/src/main/java/info/nightscout/androidaps/events/EventFoodDatabaseChanged.kt
@@ -0,0 +1,3 @@
+package info.nightscout.androidaps.events
+
+class EventFoodDatabaseChanged : Event()
\ No newline at end of file
diff --git a/app/src/main/java/info/nightscout/androidaps/events/EventInitializationChanged.java b/app/src/main/java/info/nightscout/androidaps/events/EventInitializationChanged.java
deleted file mode 100644
index f2bef1d3d0..0000000000
--- a/app/src/main/java/info/nightscout/androidaps/events/EventInitializationChanged.java
+++ /dev/null
@@ -1,8 +0,0 @@
-package info.nightscout.androidaps.events;
-
-/**
- * Created by mike on 13.12.2016.
- */
-
-public class EventInitializationChanged extends Event {
-}
diff --git a/app/src/main/java/info/nightscout/androidaps/events/EventInitializationChanged.kt b/app/src/main/java/info/nightscout/androidaps/events/EventInitializationChanged.kt
new file mode 100644
index 0000000000..33ab0062c5
--- /dev/null
+++ b/app/src/main/java/info/nightscout/androidaps/events/EventInitializationChanged.kt
@@ -0,0 +1,3 @@
+package info.nightscout.androidaps.events
+
+class EventInitializationChanged : Event()
diff --git a/app/src/main/java/info/nightscout/androidaps/events/EventLocationChange.java b/app/src/main/java/info/nightscout/androidaps/events/EventLocationChange.java
deleted file mode 100644
index 265ce2998c..0000000000
--- a/app/src/main/java/info/nightscout/androidaps/events/EventLocationChange.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package info.nightscout.androidaps.events;
-
-import android.location.Location;
-
-public class EventLocationChange extends Event {
- public Location location;
-
- public EventLocationChange(Location location) {
- this.location = location;
- }
-}
diff --git a/app/src/main/java/info/nightscout/androidaps/events/EventLocationChange.kt b/app/src/main/java/info/nightscout/androidaps/events/EventLocationChange.kt
new file mode 100644
index 0000000000..fee6c9f800
--- /dev/null
+++ b/app/src/main/java/info/nightscout/androidaps/events/EventLocationChange.kt
@@ -0,0 +1,5 @@
+package info.nightscout.androidaps.events
+
+import android.location.Location
+
+class EventLocationChange(var location: Location) : Event()
diff --git a/app/src/main/java/info/nightscout/androidaps/events/EventLoop.java b/app/src/main/java/info/nightscout/androidaps/events/EventLoop.java
deleted file mode 100644
index d694d52537..0000000000
--- a/app/src/main/java/info/nightscout/androidaps/events/EventLoop.java
+++ /dev/null
@@ -1,5 +0,0 @@
-package info.nightscout.androidaps.events;
-
-/** Supeclass for all events concerned with input or output into or from the LoopPlugin. */
-public abstract class EventLoop extends Event {
-}
diff --git a/app/src/main/java/info/nightscout/androidaps/events/EventLoop.kt b/app/src/main/java/info/nightscout/androidaps/events/EventLoop.kt
new file mode 100644
index 0000000000..dd28e2323b
--- /dev/null
+++ b/app/src/main/java/info/nightscout/androidaps/events/EventLoop.kt
@@ -0,0 +1,4 @@
+package info.nightscout.androidaps.events
+
+/** Supeclass for all events concerned with input or output into or from the LoopPlugin. */
+abstract class EventLoop : Event()
diff --git a/app/src/main/java/info/nightscout/androidaps/events/EventNetworkChange.java b/app/src/main/java/info/nightscout/androidaps/events/EventNetworkChange.java
deleted file mode 100644
index 546d6f8624..0000000000
--- a/app/src/main/java/info/nightscout/androidaps/events/EventNetworkChange.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package info.nightscout.androidaps.events;
-
-
-import info.nightscout.androidaps.utils.StringUtils;
-
-public class EventNetworkChange extends Event {
-
- public boolean mobileConnected = false;
- public boolean wifiConnected = false;
-
- public String ssid = "";
- public boolean roaming = false;
-
- public String getSsid() {
- return StringUtils.removeSurroundingQuotes(ssid);
- }
-}
diff --git a/app/src/main/java/info/nightscout/androidaps/events/EventNetworkChange.kt b/app/src/main/java/info/nightscout/androidaps/events/EventNetworkChange.kt
new file mode 100644
index 0000000000..62c8bdd13e
--- /dev/null
+++ b/app/src/main/java/info/nightscout/androidaps/events/EventNetworkChange.kt
@@ -0,0 +1,16 @@
+package info.nightscout.androidaps.events
+
+import info.nightscout.androidaps.utils.StringUtils
+
+class EventNetworkChange : Event() {
+
+ var mobileConnected = false
+ var wifiConnected = false
+
+ var ssid = ""
+ var roaming = false
+
+ fun connectedSsid(): String {
+ return StringUtils.removeSurroundingQuotes(ssid)
+ }
+}
diff --git a/app/src/main/java/info/nightscout/androidaps/events/EventNewBG.java b/app/src/main/java/info/nightscout/androidaps/events/EventNewBG.java
deleted file mode 100644
index db3498bed7..0000000000
--- a/app/src/main/java/info/nightscout/androidaps/events/EventNewBG.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package info.nightscout.androidaps.events;
-
-import androidx.annotation.Nullable;
-
-import info.nightscout.androidaps.db.BgReading;
-
-/**
- * Created by mike on 05.06.2016.
- */
-public class EventNewBG extends EventLoop {
- @Nullable
- public final BgReading bgReading;
-
- public EventNewBG(BgReading bgReading) {
- this.bgReading = bgReading;
- }
-}
diff --git a/app/src/main/java/info/nightscout/androidaps/events/EventNewBG.kt b/app/src/main/java/info/nightscout/androidaps/events/EventNewBG.kt
new file mode 100644
index 0000000000..08c05407c9
--- /dev/null
+++ b/app/src/main/java/info/nightscout/androidaps/events/EventNewBG.kt
@@ -0,0 +1,5 @@
+package info.nightscout.androidaps.events
+
+import info.nightscout.androidaps.db.BgReading
+
+class EventNewBG(val bgReading: BgReading?) : EventLoop()
\ No newline at end of file
diff --git a/app/src/main/java/info/nightscout/androidaps/events/EventNewBasalProfile.java b/app/src/main/java/info/nightscout/androidaps/events/EventNewBasalProfile.java
deleted file mode 100644
index f26a310b6b..0000000000
--- a/app/src/main/java/info/nightscout/androidaps/events/EventNewBasalProfile.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package info.nightscout.androidaps.events;
-
-/**
- * Created by mike on 04.06.2016.
- */
-public class EventNewBasalProfile extends Event {
-}
diff --git a/app/src/main/java/info/nightscout/androidaps/events/EventNewBasalProfile.kt b/app/src/main/java/info/nightscout/androidaps/events/EventNewBasalProfile.kt
new file mode 100644
index 0000000000..2ffa5a9724
--- /dev/null
+++ b/app/src/main/java/info/nightscout/androidaps/events/EventNewBasalProfile.kt
@@ -0,0 +1,3 @@
+package info.nightscout.androidaps.events
+
+class EventNewBasalProfile : Event()
\ No newline at end of file
diff --git a/app/src/main/java/info/nightscout/androidaps/events/EventNsFood.java b/app/src/main/java/info/nightscout/androidaps/events/EventNsFood.java
deleted file mode 100644
index 90b6f5681b..0000000000
--- a/app/src/main/java/info/nightscout/androidaps/events/EventNsFood.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package info.nightscout.androidaps.events;
-
-import android.os.Bundle;
-
-/**
- * Event which is published with data fetched from NightScout specific for the
- * Food-class.
- *
- * Payload is the from NS retrieved JSON-String which should be handled by all
- * subscriber.
- */
-
-public class EventNsFood extends Event {
-
- public static final int ADD = 0;
- public static final int UPDATE = 1;
- public static final int REMOVE = 2;
-
- private final int mode;
-
- private final Bundle payload;
-
- public EventNsFood(int mode, Bundle payload) {
- this.mode = mode;
- this.payload = payload;
- }
-
- public int getMode() {
- return mode;
- }
-
- public Bundle getPayload() {
- return payload;
- }
-}
diff --git a/app/src/main/java/info/nightscout/androidaps/events/EventNsFood.kt b/app/src/main/java/info/nightscout/androidaps/events/EventNsFood.kt
new file mode 100644
index 0000000000..2f34e76c85
--- /dev/null
+++ b/app/src/main/java/info/nightscout/androidaps/events/EventNsFood.kt
@@ -0,0 +1,19 @@
+package info.nightscout.androidaps.events
+
+import android.os.Bundle
+
+/**
+ * Event which is published with data fetched from NightScout specific for the
+ * Food-class.
+ *
+ * Payload is the from NS retrieved JSON-String which should be handled by all
+ * subscriber.
+ */
+
+class EventNsFood(val mode: Int, val payload: Bundle) : Event() {
+ companion object {
+ val ADD = 0
+ val UPDATE = 1
+ val REMOVE = 2
+ }
+}
diff --git a/app/src/main/java/info/nightscout/androidaps/events/EventNsTreatment.java b/app/src/main/java/info/nightscout/androidaps/events/EventNsTreatment.java
deleted file mode 100644
index 2c5ba6c9c0..0000000000
--- a/app/src/main/java/info/nightscout/androidaps/events/EventNsTreatment.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package info.nightscout.androidaps.events;
-
-import org.json.JSONObject;
-
-
-/**
- * Event which is published with data fetched from NightScout specific for the
- * Treatment-class.
- *
- * Payload is the from NS retrieved JSON-String which should be handled by all
- * subscriber.
- */
-
-public class EventNsTreatment extends Event {
-
- public static final int ADD = 0;
- public static final int UPDATE = 1;
- public static final int REMOVE = 2;
-
- private final int mode;
-
- private final JSONObject payload;
-
- public EventNsTreatment(int mode, JSONObject payload) {
- this.mode = mode;
- this.payload = payload;
- }
-
- public int getMode() {
- return mode;
- }
-
- public JSONObject getPayload() {
- return payload;
- }
-}
diff --git a/app/src/main/java/info/nightscout/androidaps/events/EventNsTreatment.kt b/app/src/main/java/info/nightscout/androidaps/events/EventNsTreatment.kt
new file mode 100644
index 0000000000..149894c221
--- /dev/null
+++ b/app/src/main/java/info/nightscout/androidaps/events/EventNsTreatment.kt
@@ -0,0 +1,21 @@
+package info.nightscout.androidaps.events
+
+import org.json.JSONObject
+
+
+/**
+ * Event which is published with data fetched from NightScout specific for the
+ * Treatment-class.
+ *
+ *
+ * Payload is the from NS retrieved JSON-String which should be handled by all
+ * subscriber.
+ */
+
+class EventNsTreatment(val mode: Int, val payload: JSONObject) : Event() {
+ companion object {
+ val ADD = 0
+ val UPDATE = 1
+ val REMOVE = 2
+ }
+}
diff --git a/app/src/main/java/info/nightscout/androidaps/events/EventPreferenceChange.java b/app/src/main/java/info/nightscout/androidaps/events/EventPreferenceChange.java
deleted file mode 100644
index f23d4e802a..0000000000
--- a/app/src/main/java/info/nightscout/androidaps/events/EventPreferenceChange.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package info.nightscout.androidaps.events;
-
-import info.nightscout.androidaps.MainApp;
-
-/**
- * Created by mike on 19.06.2016.
- */
-public class EventPreferenceChange extends Event {
- public String changedKey;
- public EventPreferenceChange(String key) {
- changedKey = key;
- }
-
- public EventPreferenceChange(int resourceID) {
- changedKey = MainApp.gs(resourceID);
- }
-
- public boolean isChanged(int id) {
- return changedKey.equals(MainApp.gs(id));
- }
-
- public boolean isChanged(String id) {
- return changedKey.equals(id);
- }
-}
diff --git a/app/src/main/java/info/nightscout/androidaps/events/EventPreferenceChange.kt b/app/src/main/java/info/nightscout/androidaps/events/EventPreferenceChange.kt
new file mode 100644
index 0000000000..d224d75df1
--- /dev/null
+++ b/app/src/main/java/info/nightscout/androidaps/events/EventPreferenceChange.kt
@@ -0,0 +1,19 @@
+package info.nightscout.androidaps.events
+
+import info.nightscout.androidaps.MainApp
+
+class EventPreferenceChange : Event {
+ private var changedKey: String? = null
+
+ constructor(key: String) {
+ changedKey = key
+ }
+
+ constructor(resourceID: Int) {
+ changedKey = MainApp.gs(resourceID)
+ }
+
+ fun isChanged(id: Int): Boolean {
+ return changedKey == MainApp.gs(id)
+ }
+}
diff --git a/app/src/main/java/info/nightscout/androidaps/events/EventProfileNeedsUpdate.java b/app/src/main/java/info/nightscout/androidaps/events/EventProfileNeedsUpdate.java
deleted file mode 100644
index 9e3f3b08c7..0000000000
--- a/app/src/main/java/info/nightscout/androidaps/events/EventProfileNeedsUpdate.java
+++ /dev/null
@@ -1,8 +0,0 @@
-package info.nightscout.androidaps.events;
-
-/**
- * Created by mike on 02.06.2017.
- */
-
-public class EventProfileNeedsUpdate extends Event {
-}
diff --git a/app/src/main/java/info/nightscout/androidaps/events/EventProfileNeedsUpdate.kt b/app/src/main/java/info/nightscout/androidaps/events/EventProfileNeedsUpdate.kt
new file mode 100644
index 0000000000..2baf1db945
--- /dev/null
+++ b/app/src/main/java/info/nightscout/androidaps/events/EventProfileNeedsUpdate.kt
@@ -0,0 +1,3 @@
+package info.nightscout.androidaps.events
+
+class EventProfileNeedsUpdate : Event()
\ No newline at end of file
diff --git a/app/src/main/java/info/nightscout/androidaps/events/EventProfileStoreChanged.java b/app/src/main/java/info/nightscout/androidaps/events/EventProfileStoreChanged.java
deleted file mode 100644
index 0b2d933c12..0000000000
--- a/app/src/main/java/info/nightscout/androidaps/events/EventProfileStoreChanged.java
+++ /dev/null
@@ -1,4 +0,0 @@
-package info.nightscout.androidaps.events;
-
-public class EventProfileStoreChanged extends Event {
-}
diff --git a/app/src/main/java/info/nightscout/androidaps/events/EventProfileStoreChanged.kt b/app/src/main/java/info/nightscout/androidaps/events/EventProfileStoreChanged.kt
new file mode 100644
index 0000000000..0e839ca2d3
--- /dev/null
+++ b/app/src/main/java/info/nightscout/androidaps/events/EventProfileStoreChanged.kt
@@ -0,0 +1,3 @@
+package info.nightscout.androidaps.events
+
+class EventProfileStoreChanged : Event()
diff --git a/app/src/main/java/info/nightscout/androidaps/events/EventPumpStatusChanged.java b/app/src/main/java/info/nightscout/androidaps/events/EventPumpStatusChanged.java
deleted file mode 100644
index 6729a4e703..0000000000
--- a/app/src/main/java/info/nightscout/androidaps/events/EventPumpStatusChanged.java
+++ /dev/null
@@ -1,63 +0,0 @@
-package info.nightscout.androidaps.events;
-
-import info.nightscout.androidaps.MainApp;
-import info.nightscout.androidaps.R;
-
-/**
- * Created by mike on 19.02.2017.
- */
-
-public class EventPumpStatusChanged extends Event {
- public static final int CONNECTING = 0;
- public static final int CONNECTED = 1;
- public static final int HANDSHAKING = 2;
- public static final int PERFORMING = 3;
- public static final int DISCONNECTING = 4;
- public static final int DISCONNECTED = 5;
-
- public int sStatus = DISCONNECTED;
- public int sSecondsElapsed = 0;
- public String sPerfomingAction = "";
-
- public static String error = "";
-
- public EventPumpStatusChanged(int status) {
- sStatus = status;
- sSecondsElapsed = 0;
- error = "";
- }
-
- public EventPumpStatusChanged(int status, int secondsElapsed) {
- sStatus = status;
- sSecondsElapsed = secondsElapsed;
- error = "";
- }
-
- public EventPumpStatusChanged(int status, String error) {
- sStatus = status;
- sSecondsElapsed = 0;
- this.error = error;
- }
-
- public EventPumpStatusChanged(String action) {
- sStatus = PERFORMING;
- sSecondsElapsed = 0;
- sPerfomingAction = action;
- }
-
- public String textStatus() {
- if (sStatus == CONNECTING)
- return String.format(MainApp.gs(R.string.danar_history_connectingfor), sSecondsElapsed);
- else if (sStatus == HANDSHAKING)
- return MainApp.gs(R.string.handshaking);
- else if (sStatus == CONNECTED)
- return MainApp.gs(R.string.connected);
- else if (sStatus == PERFORMING)
- return sPerfomingAction;
- else if (sStatus == DISCONNECTING)
- return MainApp.gs(R.string.disconnecting);
- else if (sStatus == DISCONNECTED)
- return "";
- return "";
- }
-}
diff --git a/app/src/main/java/info/nightscout/androidaps/events/EventPumpStatusChanged.kt b/app/src/main/java/info/nightscout/androidaps/events/EventPumpStatusChanged.kt
new file mode 100644
index 0000000000..3d25bc1ca5
--- /dev/null
+++ b/app/src/main/java/info/nightscout/androidaps/events/EventPumpStatusChanged.kt
@@ -0,0 +1,62 @@
+package info.nightscout.androidaps.events
+
+import info.nightscout.androidaps.MainApp
+import info.nightscout.androidaps.R
+
+class EventPumpStatusChanged : EventStatus {
+
+ enum class Status {
+ CONNECTING,
+ CONNECTED,
+ HANDSHAKING,
+ PERFORMING,
+ DISCONNECTING,
+ DISCONNECTED
+ }
+
+ var sStatus: Status = Status.DISCONNECTED
+ var sSecondsElapsed = 0
+ var sPerfomingAction = ""
+ var error = ""
+
+ constructor(status: Status) {
+ sStatus = status
+ sSecondsElapsed = 0
+ error = ""
+ }
+
+ constructor(status: Status, secondsElapsed: Int) {
+ sStatus = status
+ sSecondsElapsed = secondsElapsed
+ error = ""
+ }
+
+ constructor(status: Status, error: String) {
+ sStatus = status
+ sSecondsElapsed = 0
+ this.error = error
+ }
+
+ constructor(action: String) {
+ sStatus = Status.PERFORMING
+ sSecondsElapsed = 0
+ sPerfomingAction = action
+ }
+
+ // status for startup wizard
+ override fun getStatus(): String {
+ if (sStatus == Status.CONNECTING)
+ return String.format(MainApp.gs(R.string.danar_history_connectingfor), sSecondsElapsed)
+ else if (sStatus == Status.HANDSHAKING)
+ return MainApp.gs(R.string.handshaking)
+ else if (sStatus == Status.CONNECTED)
+ return MainApp.gs(R.string.connected)
+ else if (sStatus == Status.PERFORMING)
+ return sPerfomingAction
+ else if (sStatus == Status.DISCONNECTING)
+ return MainApp.gs(R.string.disconnecting)
+ else if (sStatus == Status.DISCONNECTED)
+ return ""
+ return ""
+ }
+}
diff --git a/app/src/main/java/info/nightscout/androidaps/events/EventRebuildTabs.kt b/app/src/main/java/info/nightscout/androidaps/events/EventRebuildTabs.kt
new file mode 100644
index 0000000000..aa0db3467a
--- /dev/null
+++ b/app/src/main/java/info/nightscout/androidaps/events/EventRebuildTabs.kt
@@ -0,0 +1,3 @@
+package info.nightscout.androidaps.events
+
+class EventRebuildTabs @JvmOverloads constructor(var recreate: Boolean = false) : Event()
diff --git a/app/src/main/java/info/nightscout/androidaps/events/EventRefreshGui.java b/app/src/main/java/info/nightscout/androidaps/events/EventRefreshGui.java
deleted file mode 100644
index 390ad8ea4f..0000000000
--- a/app/src/main/java/info/nightscout/androidaps/events/EventRefreshGui.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package info.nightscout.androidaps.events;
-
-/**
- * Created by mike on 13.06.2016.
- */
-public class EventRefreshGui extends Event {
- public boolean recreate = false;
- public EventRefreshGui(boolean recreate) {
- this.recreate = recreate;
- }
- public EventRefreshGui(){
- this(false);
- }
-}
diff --git a/app/src/main/java/info/nightscout/androidaps/events/EventRefreshOverview.java b/app/src/main/java/info/nightscout/androidaps/events/EventRefreshOverview.java
deleted file mode 100644
index 2ba78fa9ec..0000000000
--- a/app/src/main/java/info/nightscout/androidaps/events/EventRefreshOverview.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package info.nightscout.androidaps.events;
-
-/**
- * Created by mike on 16.06.2017.
- */
-
-public class EventRefreshOverview extends Event {
- public String from;
-
- public EventRefreshOverview(String from) {
- this.from = from;
- }
-}
diff --git a/app/src/main/java/info/nightscout/androidaps/events/EventRefreshOverview.kt b/app/src/main/java/info/nightscout/androidaps/events/EventRefreshOverview.kt
new file mode 100644
index 0000000000..533a25dd40
--- /dev/null
+++ b/app/src/main/java/info/nightscout/androidaps/events/EventRefreshOverview.kt
@@ -0,0 +1,3 @@
+package info.nightscout.androidaps.events
+
+class EventRefreshOverview(var from: String) : Event()
diff --git a/app/src/main/java/info/nightscout/androidaps/events/EventReloadProfileSwitchData.java b/app/src/main/java/info/nightscout/androidaps/events/EventReloadProfileSwitchData.java
deleted file mode 100644
index 212e8856d9..0000000000
--- a/app/src/main/java/info/nightscout/androidaps/events/EventReloadProfileSwitchData.java
+++ /dev/null
@@ -1,8 +0,0 @@
-package info.nightscout.androidaps.events;
-
-/**
- * Created by mike on 12.06.2017.
- */
-
-public class EventReloadProfileSwitchData extends Event {
-}
diff --git a/app/src/main/java/info/nightscout/androidaps/events/EventReloadProfileSwitchData.kt b/app/src/main/java/info/nightscout/androidaps/events/EventReloadProfileSwitchData.kt
new file mode 100644
index 0000000000..6f6d848b5e
--- /dev/null
+++ b/app/src/main/java/info/nightscout/androidaps/events/EventReloadProfileSwitchData.kt
@@ -0,0 +1,3 @@
+package info.nightscout.androidaps.events
+
+class EventReloadProfileSwitchData : Event()
diff --git a/app/src/main/java/info/nightscout/androidaps/events/EventReloadTempBasalData.java b/app/src/main/java/info/nightscout/androidaps/events/EventReloadTempBasalData.java
deleted file mode 100644
index 80125cbb4a..0000000000
--- a/app/src/main/java/info/nightscout/androidaps/events/EventReloadTempBasalData.java
+++ /dev/null
@@ -1,8 +0,0 @@
-package info.nightscout.androidaps.events;
-
-/**
- * Created by mike on 29.05.2017.
- */
-
-public class EventReloadTempBasalData extends Event {
-}
diff --git a/app/src/main/java/info/nightscout/androidaps/events/EventReloadTempBasalData.kt b/app/src/main/java/info/nightscout/androidaps/events/EventReloadTempBasalData.kt
new file mode 100644
index 0000000000..fa8f720896
--- /dev/null
+++ b/app/src/main/java/info/nightscout/androidaps/events/EventReloadTempBasalData.kt
@@ -0,0 +1,3 @@
+package info.nightscout.androidaps.events
+
+class EventReloadTempBasalData : Event()
diff --git a/app/src/main/java/info/nightscout/androidaps/events/EventReloadTreatmentData.java b/app/src/main/java/info/nightscout/androidaps/events/EventReloadTreatmentData.java
deleted file mode 100644
index 0ba9b95ad7..0000000000
--- a/app/src/main/java/info/nightscout/androidaps/events/EventReloadTreatmentData.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package info.nightscout.androidaps.events;
-
-/**
- * Created by mike on 29.05.2017.
- */
-
-public class EventReloadTreatmentData extends Event {
- public Object next;
-
- public EventReloadTreatmentData(Object next) {
- this.next = next;
- }
-}
diff --git a/app/src/main/java/info/nightscout/androidaps/events/EventReloadTreatmentData.kt b/app/src/main/java/info/nightscout/androidaps/events/EventReloadTreatmentData.kt
new file mode 100644
index 0000000000..1f8b2938b9
--- /dev/null
+++ b/app/src/main/java/info/nightscout/androidaps/events/EventReloadTreatmentData.kt
@@ -0,0 +1,3 @@
+package info.nightscout.androidaps.events
+
+class EventReloadTreatmentData(var next: Event) : Event()
diff --git a/app/src/main/java/info/nightscout/androidaps/events/EventStatus.kt b/app/src/main/java/info/nightscout/androidaps/events/EventStatus.kt
new file mode 100644
index 0000000000..193c3b1fdb
--- /dev/null
+++ b/app/src/main/java/info/nightscout/androidaps/events/EventStatus.kt
@@ -0,0 +1,6 @@
+package info.nightscout.androidaps.events
+
+// pass string to startup wizard
+abstract class EventStatus :Event() {
+ abstract fun getStatus() : String
+}
\ No newline at end of file
diff --git a/app/src/main/java/info/nightscout/androidaps/events/EventTempBasalChange.java b/app/src/main/java/info/nightscout/androidaps/events/EventTempBasalChange.java
deleted file mode 100644
index 73660bb00e..0000000000
--- a/app/src/main/java/info/nightscout/androidaps/events/EventTempBasalChange.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package info.nightscout.androidaps.events;
-
-/**
- * Created by mike on 05.06.2016.
- */
-public class EventTempBasalChange extends EventLoop {
-}
diff --git a/app/src/main/java/info/nightscout/androidaps/events/EventTempBasalChange.kt b/app/src/main/java/info/nightscout/androidaps/events/EventTempBasalChange.kt
new file mode 100644
index 0000000000..3f3ecf732e
--- /dev/null
+++ b/app/src/main/java/info/nightscout/androidaps/events/EventTempBasalChange.kt
@@ -0,0 +1,3 @@
+package info.nightscout.androidaps.events
+
+class EventTempBasalChange : EventLoop()
diff --git a/app/src/main/java/info/nightscout/androidaps/events/EventTempTargetChange.java b/app/src/main/java/info/nightscout/androidaps/events/EventTempTargetChange.java
deleted file mode 100644
index 4e3bf5c5f8..0000000000
--- a/app/src/main/java/info/nightscout/androidaps/events/EventTempTargetChange.java
+++ /dev/null
@@ -1,8 +0,0 @@
-package info.nightscout.androidaps.events;
-
-/**
- * Created by mike on 13.01.2017.
- */
-
-public class EventTempTargetChange extends Event {
-}
diff --git a/app/src/main/java/info/nightscout/androidaps/events/EventTempTargetChange.kt b/app/src/main/java/info/nightscout/androidaps/events/EventTempTargetChange.kt
new file mode 100644
index 0000000000..c108d6589c
--- /dev/null
+++ b/app/src/main/java/info/nightscout/androidaps/events/EventTempTargetChange.kt
@@ -0,0 +1,3 @@
+package info.nightscout.androidaps.events
+
+class EventTempTargetChange : Event()
diff --git a/app/src/main/java/info/nightscout/androidaps/events/EventTreatmentChange.java b/app/src/main/java/info/nightscout/androidaps/events/EventTreatmentChange.java
deleted file mode 100644
index e1d9d527e1..0000000000
--- a/app/src/main/java/info/nightscout/androidaps/events/EventTreatmentChange.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package info.nightscout.androidaps.events;
-
-import androidx.annotation.Nullable;
-
-import info.nightscout.androidaps.plugins.treatments.Treatment;
-
-/**
- * Created by mike on 04.06.2016.
- */
-public class EventTreatmentChange extends EventLoop {
- @Nullable
- public final Treatment treatment;
-
- public EventTreatmentChange(Treatment treatment) {
- this.treatment = treatment;
- }
-}
diff --git a/app/src/main/java/info/nightscout/androidaps/events/EventTreatmentChange.kt b/app/src/main/java/info/nightscout/androidaps/events/EventTreatmentChange.kt
new file mode 100644
index 0000000000..9cbc9d1563
--- /dev/null
+++ b/app/src/main/java/info/nightscout/androidaps/events/EventTreatmentChange.kt
@@ -0,0 +1,5 @@
+package info.nightscout.androidaps.events
+
+import info.nightscout.androidaps.plugins.treatments.Treatment
+
+class EventTreatmentChange(val treatment: Treatment?) : EventLoop()
diff --git a/app/src/main/java/info/nightscout/androidaps/events/EventUpdateGui.java b/app/src/main/java/info/nightscout/androidaps/events/EventUpdateGui.java
deleted file mode 100644
index 3471d2e851..0000000000
--- a/app/src/main/java/info/nightscout/androidaps/events/EventUpdateGui.java
+++ /dev/null
@@ -1,5 +0,0 @@
-package info.nightscout.androidaps.events;
-
-/** Base class for events to update the UI, mostly a specific tab. */
-public abstract class EventUpdateGui extends Event {
-}
diff --git a/app/src/main/java/info/nightscout/androidaps/events/EventUpdateGui.kt b/app/src/main/java/info/nightscout/androidaps/events/EventUpdateGui.kt
new file mode 100644
index 0000000000..cc21e784b9
--- /dev/null
+++ b/app/src/main/java/info/nightscout/androidaps/events/EventUpdateGui.kt
@@ -0,0 +1,4 @@
+package info.nightscout.androidaps.events
+
+/** Base class for events to update the UI, mostly a specific tab. */
+abstract class EventUpdateGui : Event()
diff --git a/app/src/main/java/info/nightscout/androidaps/interfaces/PluginBase.java b/app/src/main/java/info/nightscout/androidaps/interfaces/PluginBase.java
index 7b1d0c6175..f7c8e9ada4 100644
--- a/app/src/main/java/info/nightscout/androidaps/interfaces/PluginBase.java
+++ b/app/src/main/java/info/nightscout/androidaps/interfaces/PluginBase.java
@@ -5,20 +5,19 @@ import android.os.SystemClock;
import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.FragmentActivity;
-import info.nightscout.androidaps.R;
-import info.nightscout.androidaps.events.EventConfigBuilderChange;
-import info.nightscout.androidaps.events.EventRefreshGui;
-import info.nightscout.androidaps.plugins.bus.RxBus;
-import info.nightscout.androidaps.plugins.configBuilder.EventConfigBuilderUpdateGui;
-import info.nightscout.androidaps.utils.SP;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import info.nightscout.androidaps.MainApp;
+import info.nightscout.androidaps.R;
+import info.nightscout.androidaps.events.EventConfigBuilderChange;
+import info.nightscout.androidaps.events.EventRebuildTabs;
import info.nightscout.androidaps.logging.L;
-import info.nightscout.androidaps.plugins.configBuilder.ConfigBuilderFragment;
+import info.nightscout.androidaps.plugins.bus.RxBus;
import info.nightscout.androidaps.plugins.configBuilder.ConfigBuilderPlugin;
+import info.nightscout.androidaps.plugins.configBuilder.EventConfigBuilderUpdateGui;
import info.nightscout.androidaps.queue.CommandQueue;
+import info.nightscout.androidaps.utils.SP;
/**
* Created by mike on 09.06.2016.
@@ -81,8 +80,8 @@ public abstract class PluginBase {
setFragmentVisible(type, enabled);
ConfigBuilderPlugin.getPlugin().processOnEnabledCategoryChanged(this, getType());
ConfigBuilderPlugin.getPlugin().storeSettings("CheckedCheckboxEnabled");
- MainApp.bus().post(new EventRefreshGui());
- MainApp.bus().post(new EventConfigBuilderChange());
+ RxBus.INSTANCE.send(new EventRebuildTabs());
+ RxBus.INSTANCE.send(new EventConfigBuilderChange());
RxBus.INSTANCE.send(new EventConfigBuilderUpdateGui());
ConfigBuilderPlugin.getPlugin().logPluginStatus();
}
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/aps/loop/LoopPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/aps/loop/LoopPlugin.java
index c9444acb33..f339bd3771 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/aps/loop/LoopPlugin.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/aps/loop/LoopPlugin.java
@@ -14,8 +14,6 @@ import android.os.SystemClock;
import androidx.annotation.NonNull;
import androidx.core.app.NotificationCompat;
-import com.squareup.otto.Subscribe;
-
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -52,6 +50,7 @@ import info.nightscout.androidaps.plugins.bus.RxBus;
import info.nightscout.androidaps.plugins.configBuilder.ConfigBuilderPlugin;
import info.nightscout.androidaps.plugins.configBuilder.ProfileFunctions;
import info.nightscout.androidaps.plugins.general.nsclient.NSUpload;
+import info.nightscout.androidaps.plugins.general.overview.dialogs.ErrorHelperActivity;
import info.nightscout.androidaps.plugins.general.wear.ActionStringHandler;
import info.nightscout.androidaps.plugins.iob.iobCobCalculator.events.EventAutosensCalculationFinished;
import info.nightscout.androidaps.plugins.pump.virtual.VirtualPumpPlugin;
@@ -62,12 +61,15 @@ import info.nightscout.androidaps.utils.FabricPrivacy;
import info.nightscout.androidaps.utils.SP;
import info.nightscout.androidaps.utils.T;
import info.nightscout.androidaps.utils.ToastUtils;
+import io.reactivex.disposables.CompositeDisposable;
+import io.reactivex.schedulers.Schedulers;
/**
* Created by mike on 05.08.2016.
*/
public class LoopPlugin extends PluginBase {
private static Logger log = LoggerFactory.getLogger(L.APS);
+ private CompositeDisposable disposable = new CompositeDisposable();
private static final String CHANNEL_ID = "AndroidAPS-Openloop";
@@ -116,9 +118,39 @@ public class LoopPlugin extends PluginBase {
@Override
protected void onStart() {
- MainApp.bus().register(this);
createNotificationChannel();
super.onStart();
+ disposable.add(RxBus.INSTANCE
+ .toObservable(EventTempTargetChange.class)
+ .observeOn(Schedulers.io())
+ .subscribe(event -> {
+ invoke("EventTempTargetChange", true);
+ }, FabricPrivacy::logException)
+ );
+ /**
+ * This method is triggered once autosens calculation has completed, so the LoopPlugin
+ * has current data to work with. However, autosens calculation can be triggered by multiple
+ * sources and currently only a new BG should trigger a loop run. Hence we return early if
+ * the event causing the calculation is not EventNewBg.
+ *
+ */
+ disposable.add(RxBus.INSTANCE
+ .toObservable(EventAutosensCalculationFinished.class)
+ .observeOn(Schedulers.io())
+ .subscribe(event -> {
+ // Autosens calculation not triggered by a new BG
+ if (!(event.getCause() instanceof EventNewBG)) return;
+
+ BgReading bgReading = DatabaseHelper.actualBg();
+ // BG outdated
+ if (bgReading == null) return;
+ // already looped with that value
+ if (bgReading.date <= lastBgTriggeredRun) return;
+
+ lastBgTriggeredRun = bgReading.date;
+ invoke("AutosenseCalculation for " + bgReading, true);
+ }, FabricPrivacy::logException)
+ );
}
private void createNotificationChannel() {
@@ -135,8 +167,8 @@ public class LoopPlugin extends PluginBase {
@Override
protected void onStop() {
+ disposable.clear();
super.onStop();
- MainApp.bus().unregister(this);
}
@Override
@@ -145,43 +177,10 @@ public class LoopPlugin extends PluginBase {
return pump == null || pump.getPumpDescription().isTempBasalCapable;
}
- /**
- * This method is triggered once autosens calculation has completed, so the LoopPlugin
- * has current data to work with. However, autosens calculation can be triggered by multiple
- * sources and currently only a new BG should trigger a loop run. Hence we return early if
- * the event causing the calculation is not EventNewBg.
- *
- */
- @Subscribe
- public void onStatusEvent(final EventAutosensCalculationFinished ev) {
- if (!(ev.getCause() instanceof EventNewBG)) {
- // Autosens calculation not triggered by a new BG
- return;
- }
- BgReading bgReading = DatabaseHelper.actualBg();
- if (bgReading == null) {
- // BG outdated
- return;
- }
- if (bgReading.date <= lastBgTriggeredRun) {
- // already looped with that value
- return;
- }
-
- lastBgTriggeredRun = bgReading.date;
- invoke("AutosenseCalculation for " + bgReading, true);
- }
-
public long suspendedTo() {
return loopSuspendedTill;
}
- @Subscribe
- public void onStatusEvent(final EventTempTargetChange ev) {
- new Thread(() -> invoke("EventTempTargetChange", true)).start();
- }
-
-
public void suspendTo(long endTime) {
loopSuspendedTill = endTime;
isSuperBolus = false;
@@ -439,7 +438,7 @@ public class LoopPlugin extends PluginBase {
(NotificationManager) MainApp.instance().getSystemService(Context.NOTIFICATION_SERVICE);
// mId allows you to update the notification later on.
mNotificationManager.notify(Constants.notificationID, builder.build());
- MainApp.bus().post(new EventNewOpenLoopNotification());
+ RxBus.INSTANCE.send(new EventNewOpenLoopNotification());
// Send to Wear
ActionStringHandler.handleInitiate("changeRequest");
@@ -472,7 +471,7 @@ public class LoopPlugin extends PluginBase {
NSUpload.uploadDeviceStatus();
SP.incInt(R.string.key_ObjectivesmanualEnacts);
}
- MainApp.bus().post(new EventAcceptOpenLoopChange());
+ RxBus.INSTANCE.send(new EventAcceptOpenLoopChange());
}
});
FabricPrivacy.getInstance().logCustom("AcceptTemp");
@@ -647,7 +646,12 @@ public class LoopPlugin extends PluginBase {
@Override
public void run() {
if (!result.success) {
- ToastUtils.showToastInUiThread(MainApp.instance().getApplicationContext(), MainApp.gs(R.string.tempbasaldeliveryerror));
+ Intent i = new Intent(MainApp.instance(), ErrorHelperActivity.class);
+ i.putExtra("soundid", R.raw.boluserror);
+ i.putExtra("status", result.comment);
+ i.putExtra("title", MainApp.gs(R.string.tempbasaldeliveryerror));
+ i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ MainApp.instance().startActivity(i);
}
}
});
@@ -656,7 +660,12 @@ public class LoopPlugin extends PluginBase {
@Override
public void run() {
if (!result.success) {
- ToastUtils.showToastInUiThread(MainApp.instance().getApplicationContext(), MainApp.gs(R.string.tempbasaldeliveryerror));
+ Intent i = new Intent(MainApp.instance(), ErrorHelperActivity.class);
+ i.putExtra("soundid", R.raw.boluserror);
+ i.putExtra("status", result.comment);
+ i.putExtra("title", MainApp.gs(R.string.tempbasaldeliveryerror));
+ i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ MainApp.instance().startActivity(i);
}
}
});
@@ -667,7 +676,12 @@ public class LoopPlugin extends PluginBase {
@Override
public void run() {
if (!result.success) {
- ToastUtils.showToastInUiThread(MainApp.instance().getApplicationContext(), MainApp.gs(R.string.extendedbolusdeliveryerror));
+ Intent i = new Intent(MainApp.instance(), ErrorHelperActivity.class);
+ i.putExtra("soundid", R.raw.boluserror);
+ i.putExtra("status", result.comment);
+ i.putExtra("title", MainApp.gs(R.string.extendedbolusdeliveryerror));
+ i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ MainApp.instance().startActivity(i);
}
}
});
@@ -681,7 +695,12 @@ public class LoopPlugin extends PluginBase {
@Override
public void run() {
if (!result.success) {
- ToastUtils.showToastInUiThread(MainApp.instance().getApplicationContext(), MainApp.gs(R.string.tempbasaldeliveryerror));
+ Intent i = new Intent(MainApp.instance(), ErrorHelperActivity.class);
+ i.putExtra("soundid", R.raw.boluserror);
+ i.putExtra("status", result.comment);
+ i.putExtra("title", MainApp.gs(R.string.tempbasaldeliveryerror));
+ i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ MainApp.instance().startActivity(i);
}
}
});
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/aps/loop/events/EventNewOpenLoopNotification.java b/app/src/main/java/info/nightscout/androidaps/plugins/aps/loop/events/EventNewOpenLoopNotification.java
deleted file mode 100644
index 6a0a4dc0cf..0000000000
--- a/app/src/main/java/info/nightscout/androidaps/plugins/aps/loop/events/EventNewOpenLoopNotification.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package info.nightscout.androidaps.plugins.aps.loop.events;
-
-import info.nightscout.androidaps.events.Event;
-
-/**
- * Created by mike on 07.08.2016.
- */
-public class EventNewOpenLoopNotification extends Event {
-}
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/aps/loop/events/EventNewOpenLoopNotification.kt b/app/src/main/java/info/nightscout/androidaps/plugins/aps/loop/events/EventNewOpenLoopNotification.kt
new file mode 100644
index 0000000000..2933318dd6
--- /dev/null
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/aps/loop/events/EventNewOpenLoopNotification.kt
@@ -0,0 +1,5 @@
+package info.nightscout.androidaps.plugins.aps.loop.events
+
+import info.nightscout.androidaps.events.Event
+
+class EventNewOpenLoopNotification : Event()
\ No newline at end of file
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/common/SubscriberFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/common/SubscriberFragment.java
deleted file mode 100644
index 4e6f07671d..0000000000
--- a/app/src/main/java/info/nightscout/androidaps/plugins/common/SubscriberFragment.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package info.nightscout.androidaps.plugins.common;
-
-import androidx.fragment.app.Fragment;
-
-import info.nightscout.androidaps.MainApp;
-
-abstract public class SubscriberFragment extends Fragment {
- @Override
- public void onPause() {
- super.onPause();
- MainApp.bus().unregister(this);
- }
-
- @Override
- public void onResume() {
- super.onResume();
- MainApp.bus().register(this);
- updateGUI();
- }
-
- protected abstract void updateGUI();
-}
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/configBuilder/ConfigBuilderFragment.kt b/app/src/main/java/info/nightscout/androidaps/plugins/configBuilder/ConfigBuilderFragment.kt
index f011ac57cf..059bec1444 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/configBuilder/ConfigBuilderFragment.kt
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/configBuilder/ConfigBuilderFragment.kt
@@ -68,6 +68,7 @@ class ConfigBuilderFragment : Fragment() {
@Synchronized
private fun updateGUI() {
+ configbuilder_categories.removeAllViews()
createViewsForPlugins(R.string.configbuilder_profile, R.string.configbuilder_profile_description, PluginType.PROFILE, MainApp.getSpecificPluginsVisibleInListByInterface(ProfileInterface::class.java, PluginType.PROFILE))
createViewsForPlugins(R.string.configbuilder_insulin, R.string.configbuilder_insulin_description, PluginType.INSULIN, MainApp.getSpecificPluginsVisibleInListByInterface(InsulinInterface::class.java, PluginType.INSULIN))
createViewsForPlugins(R.string.configbuilder_bgsource, R.string.configbuilder_bgsource_description, PluginType.BGSOURCE, MainApp.getSpecificPluginsVisibleInListByInterface(BgSourceInterface::class.java, PluginType.BGSOURCE))
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/configBuilder/ConfigBuilderPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/configBuilder/ConfigBuilderPlugin.java
index b73c535147..f43513fbf5 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/configBuilder/ConfigBuilderPlugin.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/configBuilder/ConfigBuilderPlugin.java
@@ -20,6 +20,7 @@ import info.nightscout.androidaps.interfaces.ProfileInterface;
import info.nightscout.androidaps.interfaces.PumpInterface;
import info.nightscout.androidaps.interfaces.SensitivityInterface;
import info.nightscout.androidaps.logging.L;
+import info.nightscout.androidaps.plugins.bus.RxBus;
import info.nightscout.androidaps.plugins.insulin.InsulinOrefRapidActingPlugin;
import info.nightscout.androidaps.plugins.profile.ns.NSProfilePlugin;
import info.nightscout.androidaps.plugins.pump.virtual.VirtualPumpPlugin;
@@ -67,14 +68,12 @@ public class ConfigBuilderPlugin extends PluginBase {
@Override
protected void onStart() {
- MainApp.bus().register(this);
super.onStart();
}
@Override
protected void onStop() {
super.onStop();
- MainApp.bus().unregister(this);
}
@@ -83,7 +82,7 @@ public class ConfigBuilderPlugin extends PluginBase {
upgradeSettings();
loadSettings();
setAlwaysEnabledPluginsEnabled();
- MainApp.bus().post(new EventAppInitialized());
+ RxBus.INSTANCE.send(new EventAppInitialized());
}
private void setAlwaysEnabledPluginsEnabled() {
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/configBuilder/DetailedBolusInfoStorage.java b/app/src/main/java/info/nightscout/androidaps/plugins/configBuilder/DetailedBolusInfoStorage.java
deleted file mode 100644
index b81ae37983..0000000000
--- a/app/src/main/java/info/nightscout/androidaps/plugins/configBuilder/DetailedBolusInfoStorage.java
+++ /dev/null
@@ -1,44 +0,0 @@
-package info.nightscout.androidaps.plugins.configBuilder;
-
-import androidx.annotation.Nullable;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import info.nightscout.androidaps.data.DetailedBolusInfo;
-import info.nightscout.androidaps.logging.L;
-
-/**
- * Created by mike on 08.08.2017.
- */
-
-public class DetailedBolusInfoStorage {
- private static Logger log = LoggerFactory.getLogger(L.PUMP);
- private static List store = new ArrayList<>();
-
- public static synchronized void add(DetailedBolusInfo detailedBolusInfo) {
- log.debug("Stored bolus info: " + detailedBolusInfo);
- store.add(detailedBolusInfo);
- }
-
- @Nullable
- public static synchronized DetailedBolusInfo findDetailedBolusInfo(long bolustime) {
- DetailedBolusInfo found = null;
- for (int i = 0; i < store.size(); i++) {
- long infoTime = store.get(i).date;
- if (L.isEnabled(L.PUMP))
- log.debug("Existing bolus info: " + store.get(i));
- if (bolustime > infoTime - 60 * 1000 && bolustime < infoTime + 60 * 1000) {
- found = store.get(i);
- if (L.isEnabled(L.PUMP))
- log.debug("Using & removing bolus info: " + store.get(i));
- store.remove(i);
- break;
- }
- }
- return found;
- }
-}
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/configBuilder/PluginViewHolder.kt b/app/src/main/java/info/nightscout/androidaps/plugins/configBuilder/PluginViewHolder.kt
index ddb5356f70..86e0f39437 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/configBuilder/PluginViewHolder.kt
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/configBuilder/PluginViewHolder.kt
@@ -3,12 +3,12 @@ package info.nightscout.androidaps.plugins.configBuilder
import android.content.Intent
import android.view.View
import android.widget.*
-import info.nightscout.androidaps.MainApp
import info.nightscout.androidaps.R
import info.nightscout.androidaps.activities.PreferencesActivity
-import info.nightscout.androidaps.events.EventRefreshGui
+import info.nightscout.androidaps.events.EventRebuildTabs
import info.nightscout.androidaps.interfaces.PluginBase
import info.nightscout.androidaps.interfaces.PluginType
+import info.nightscout.androidaps.plugins.bus.RxBus
import info.nightscout.androidaps.utils.PasswordProtection
class PluginViewHolder internal constructor(private val fragment: ConfigBuilderFragment,
@@ -34,7 +34,7 @@ class PluginViewHolder internal constructor(private val fragment: ConfigBuilderF
pluginVisibility.setOnClickListener {
plugin.setFragmentVisible(pluginType, pluginVisibility.isChecked)
ConfigBuilderPlugin.getPlugin().storeSettings("CheckedCheckboxVisible")
- MainApp.bus().post(EventRefreshGui())
+ RxBus.send(EventRebuildTabs())
ConfigBuilderPlugin.getPlugin().logPluginStatus()
}
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/configBuilder/ProfileFunctions.java b/app/src/main/java/info/nightscout/androidaps/plugins/configBuilder/ProfileFunctions.java
index b9276a5ac3..025d8dac1e 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/configBuilder/ProfileFunctions.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/configBuilder/ProfileFunctions.java
@@ -2,10 +2,10 @@ package info.nightscout.androidaps.plugins.configBuilder;
import android.content.Intent;
import android.os.Bundle;
+
import androidx.annotation.Nullable;
import com.google.firebase.analytics.FirebaseAnalytics;
-import com.squareup.otto.Subscribe;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -23,14 +23,18 @@ import info.nightscout.androidaps.events.EventProfileNeedsUpdate;
import info.nightscout.androidaps.interfaces.ProfileInterface;
import info.nightscout.androidaps.interfaces.TreatmentsInterface;
import info.nightscout.androidaps.logging.L;
+import info.nightscout.androidaps.plugins.bus.RxBus;
import info.nightscout.androidaps.plugins.general.overview.dialogs.ErrorHelperActivity;
import info.nightscout.androidaps.plugins.treatments.TreatmentsPlugin;
import info.nightscout.androidaps.queue.Callback;
import info.nightscout.androidaps.utils.FabricPrivacy;
import info.nightscout.androidaps.utils.SP;
+import io.reactivex.disposables.CompositeDisposable;
+import io.reactivex.schedulers.Schedulers;
public class ProfileFunctions {
private static Logger log = LoggerFactory.getLogger(L.PROFILE);
+ private CompositeDisposable disposable = new CompositeDisposable();
private static ProfileFunctions profileFunctions = null;
@@ -44,29 +48,30 @@ public class ProfileFunctions {
ProfileFunctions.getInstance(); // register to bus at start
}
- ProfileFunctions() {
- MainApp.bus().register(this);
- }
-
- @Subscribe
- public void onProfileSwitch(EventProfileNeedsUpdate ignored) {
- if (L.isEnabled(L.PROFILE))
- log.debug("onProfileSwitch");
- ConfigBuilderPlugin.getPlugin().getCommandQueue().setProfile(getProfile(), new Callback() {
- @Override
- public void run() {
- if (!result.success) {
- Intent i = new Intent(MainApp.instance(), ErrorHelperActivity.class);
- i.putExtra("soundid", R.raw.boluserror);
- i.putExtra("status", result.comment);
- i.putExtra("title", MainApp.gs(R.string.failedupdatebasalprofile));
- i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
- MainApp.instance().startActivity(i);
- }
- if (result.enacted)
- MainApp.bus().post(new EventNewBasalProfile());
- }
- });
+ private ProfileFunctions() {
+ disposable.add(RxBus.INSTANCE
+ .toObservable(EventProfileNeedsUpdate.class)
+ .observeOn(Schedulers.io())
+ .subscribe(event -> {
+ if (L.isEnabled(L.PROFILE))
+ log.debug("onProfileSwitch");
+ ConfigBuilderPlugin.getPlugin().getCommandQueue().setProfile(getProfile(), new Callback() {
+ @Override
+ public void run() {
+ if (!result.success) {
+ Intent i = new Intent(MainApp.instance(), ErrorHelperActivity.class);
+ i.putExtra("soundid", R.raw.boluserror);
+ i.putExtra("status", result.comment);
+ i.putExtra("title", MainApp.gs(R.string.failedupdatebasalprofile));
+ i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ MainApp.instance().startActivity(i);
+ }
+ if (result.enacted)
+ RxBus.INSTANCE.send(new EventNewBasalProfile());
+ }
+ });
+ }, FabricPrivacy::logException)
+ );
}
public String getProfileName() {
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/constraints/dstHelper/DstHelperPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/constraints/dstHelper/DstHelperPlugin.java
index ec3ef44881..e026d6589d 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/constraints/dstHelper/DstHelperPlugin.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/constraints/dstHelper/DstHelperPlugin.java
@@ -15,6 +15,7 @@ import info.nightscout.androidaps.interfaces.PluginType;
import info.nightscout.androidaps.interfaces.PumpInterface;
import info.nightscout.androidaps.logging.L;
import info.nightscout.androidaps.plugins.aps.loop.LoopPlugin;
+import info.nightscout.androidaps.plugins.bus.RxBus;
import info.nightscout.androidaps.plugins.configBuilder.ConfigBuilderPlugin;
import info.nightscout.androidaps.plugins.general.overview.events.EventNewNotification;
import info.nightscout.androidaps.plugins.general.overview.notifications.Notification;
@@ -89,6 +90,6 @@ public class DstHelperPlugin extends PluginBase implements ConstraintsInterface
private void warnUser(int id, String warningText) {
Notification notification = new Notification(id, warningText, Notification.LOW);
- MainApp.bus().post(new EventNewNotification(notification));
+ RxBus.INSTANCE.send(new EventNewNotification(notification));
}
}
\ No newline at end of file
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/constraints/objectives/ObjectivesFragment.kt b/app/src/main/java/info/nightscout/androidaps/plugins/constraints/objectives/ObjectivesFragment.kt
index 63f522da8d..aafd877672 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/constraints/objectives/ObjectivesFragment.kt
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/constraints/objectives/ObjectivesFragment.kt
@@ -18,19 +18,20 @@ import androidx.recyclerview.widget.LinearSmoothScroller
import androidx.recyclerview.widget.RecyclerView
import info.nightscout.androidaps.MainApp
import info.nightscout.androidaps.R
+import info.nightscout.androidaps.logging.L
import info.nightscout.androidaps.plugins.bus.RxBus
import info.nightscout.androidaps.plugins.constraints.objectives.activities.ObjectivesExamDialog
import info.nightscout.androidaps.plugins.constraints.objectives.events.EventObjectivesUpdateGui
import info.nightscout.androidaps.plugins.constraints.objectives.objectives.Objective.ExamTask
-import info.nightscout.androidaps.utils.DateUtil
-import info.nightscout.androidaps.utils.FabricPrivacy
-import info.nightscout.androidaps.utils.HtmlHelper
-import info.nightscout.androidaps.utils.SP
+import info.nightscout.androidaps.receivers.NetworkChangeReceiver
+import info.nightscout.androidaps.utils.*
import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.disposables.CompositeDisposable
import kotlinx.android.synthetic.main.objectives_fragment.*
+import org.slf4j.LoggerFactory
class ObjectivesFragment : Fragment() {
+ private val log = LoggerFactory.getLogger(L.CONSTRAINTS)
private val objectivesAdapter = ObjectivesAdapter()
private val handler = Handler(Looper.getMainLooper())
@@ -50,7 +51,6 @@ class ObjectivesFragment : Fragment() {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
-
objectives_recyclerview.layoutManager = LinearLayoutManager(view.context)
objectives_recyclerview.adapter = objectivesAdapter
objectives_fake.setOnClickListener { updateGUI() }
@@ -104,17 +104,14 @@ class ObjectivesFragment : Fragment() {
for (i in 0 until ObjectivesPlugin.objectives.size) {
val objective = ObjectivesPlugin.objectives[i]
if (!objective.isStarted || !objective.isAccomplished) {
- val smoothScroller = object : LinearSmoothScroller(context!!) {
- override fun getVerticalSnapPreference(): Int {
- return SNAP_TO_START
- }
-
- override fun calculateTimeForScrolling(dx: Int): Int {
- return super.calculateTimeForScrolling(dx) * 4
+ context?.let {
+ val smoothScroller = object : LinearSmoothScroller(it) {
+ override fun getVerticalSnapPreference(): Int = SNAP_TO_START
+ override fun calculateTimeForScrolling(dx: Int): Int = super.calculateTimeForScrolling(dx) * 4
}
+ smoothScroller.targetPosition = i
+ objectives_recyclerview.layoutManager?.startSmoothScroll(smoothScroller)
}
- smoothScroller.targetPosition = i
- objectives_recyclerview.layoutManager?.startSmoothScroll(smoothScroller)
break
}
}
@@ -168,10 +165,17 @@ class ObjectivesFragment : Fragment() {
holder.progress.removeAllViews()
for (task in objective.tasks) {
if (task.shouldBeIgnored()) continue
+ // name
val name = TextView(holder.progress.context)
name.text = MainApp.gs(task.task) + ":"
name.setTextColor(-0x1)
holder.progress.addView(name, LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT)
+ // hint
+ task.hints.forEach { h ->
+ if (!task.isCompleted)
+ holder.progress.addView(h.generate(context))
+ }
+ // state
val state = TextView(holder.progress.context)
state.setTextColor(-0x1)
val basicHTML = "%2\$s"
@@ -183,13 +187,14 @@ class ObjectivesFragment : Fragment() {
state.setOnClickListener {
val dialog = ObjectivesExamDialog()
val bundle = Bundle()
- val position = objective.tasks.indexOf(task)
- bundle.putInt("currentTask", position)
+ val taskPosition = objective.tasks.indexOf(task)
+ bundle.putInt("currentTask", taskPosition)
dialog.arguments = bundle
ObjectivesExamDialog.objective = objective
fragmentManager?.let { dialog.show(it, "ObjectivesFragment") }
}
}
+ // horizontal line
val separator = View(holder.progress.context)
separator.setBackgroundColor(Color.DKGRAY)
holder.progress.addView(separator, LinearLayout.LayoutParams.MATCH_PARENT, 2)
@@ -198,16 +203,64 @@ class ObjectivesFragment : Fragment() {
holder.accomplished.text = MainApp.gs(R.string.accomplished, DateUtil.dateAndTimeString(objective.accomplishedOn))
holder.accomplished.setTextColor(-0x3e3e3f)
holder.verify.setOnClickListener {
- objective.accomplishedOn = DateUtil.now()
- notifyDataSetChanged()
- scrollToCurrentObjective()
- startUpdateTimer()
+ holder.verify.visibility = View.INVISIBLE
+ NetworkChangeReceiver.fetch()
+ if (objectives_fake.isChecked) {
+ objective.accomplishedOn = DateUtil.now()
+ scrollToCurrentObjective()
+ startUpdateTimer()
+ RxBus.send(EventObjectivesUpdateGui())
+ } else
+ SntpClient.ntpTime(object : SntpClient.Callback() {
+ override fun run() {
+ activity?.runOnUiThread {
+ holder.verify.visibility = View.VISIBLE
+ log.debug("NTP time: $time System time: ${DateUtil.now()}")
+ if (!networkConnected) {
+ ToastUtils.showToastInUiThread(context, R.string.notconnected)
+ } else if (success) {
+ if (objective.isCompleted(time)) {
+ objective.accomplishedOn = time
+ scrollToCurrentObjective()
+ startUpdateTimer()
+ RxBus.send(EventObjectivesUpdateGui())
+ } else {
+ ToastUtils.showToastInUiThread(context, R.string.requirementnotmet)
+ }
+ } else {
+ ToastUtils.showToastInUiThread(context, R.string.failedretrievetime)
+ }
+ }
+ }
+ }, NetworkChangeReceiver.isConnected())
}
holder.start.setOnClickListener {
- objective.startedOn = DateUtil.now()
- notifyDataSetChanged()
- scrollToCurrentObjective()
- startUpdateTimer()
+ holder.start.visibility = View.INVISIBLE
+ NetworkChangeReceiver.fetch()
+ if (objectives_fake.isChecked) {
+ objective.startedOn = DateUtil.now()
+ scrollToCurrentObjective()
+ startUpdateTimer()
+ RxBus.send(EventObjectivesUpdateGui())
+ } else
+ SntpClient.ntpTime(object : SntpClient.Callback() {
+ override fun run() {
+ activity?.runOnUiThread {
+ holder.start.visibility = View.VISIBLE
+ log.debug("NTP time: $time System time: ${DateUtil.now()}")
+ if (!networkConnected) {
+ ToastUtils.showToastInUiThread(context, R.string.notconnected)
+ } else if (success) {
+ objective.startedOn = time
+ scrollToCurrentObjective()
+ startUpdateTimer()
+ RxBus.send(EventObjectivesUpdateGui())
+ } else {
+ ToastUtils.showToastInUiThread(context, R.string.failedretrievetime)
+ }
+ }
+ }
+ }, NetworkChangeReceiver.isConnected())
}
holder.revert.setOnClickListener {
objective.accomplishedOn = 0
@@ -216,8 +269,8 @@ class ObjectivesFragment : Fragment() {
val prevObj = ObjectivesPlugin.objectives[position - 1]
prevObj.accomplishedOn = 0
}
- notifyDataSetChanged()
scrollToCurrentObjective()
+ RxBus.send(EventObjectivesUpdateGui())
}
if (objective.hasSpecialInput && !objective.isAccomplished && objective.isStarted) {
// generate random request code if none exists
@@ -231,7 +284,7 @@ class ObjectivesFragment : Fragment() {
holder.enterButton.setOnClickListener {
val input = holder.input.text.toString()
objective.specialAction(activity, input)
- notifyDataSetChanged()
+ RxBus.send(EventObjectivesUpdateGui())
}
} else {
holder.enterButton.visibility = View.GONE
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/constraints/objectives/ObjectivesPlugin.kt b/app/src/main/java/info/nightscout/androidaps/plugins/constraints/objectives/ObjectivesPlugin.kt
index dcd9dd31d1..ca3e1d3126 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/constraints/objectives/ObjectivesPlugin.kt
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/constraints/objectives/ObjectivesPlugin.kt
@@ -21,8 +21,8 @@ import java.util.*
object ObjectivesPlugin : PluginBase(PluginDescription()
.mainType(PluginType.CONSTRAINTS)
.fragmentClass(ObjectivesFragment::class.qualifiedName)
- .alwaysEnabled(!Config.NSCLIENT)
- .showInList(!Config.NSCLIENT)
+ .alwaysEnabled(Config.APS)
+ .showInList(Config.APS)
.pluginName(R.string.objectives)
.shortName(R.string.objectives_shortname)
.description(R.string.description_objectives)), ConstraintsInterface {
@@ -64,7 +64,7 @@ object ObjectivesPlugin : PluginBase(PluginDescription()
private fun doConvertSP(number: Int, name: String) {
if (!SP.contains("Objectives_" + name + "_started")) {
- SP.putLong("Objectives_" + name + "_started", SP.getLong("Objectives" + number + "accomplished", 0L))
+ SP.putLong("Objectives_" + name + "_started", SP.getLong("Objectives" + number + "started", 0L))
SP.putLong("Objectives_" + name + "_accomplished", SP.getLong("Objectives" + number + "accomplished", 0L))
}
// TODO: we can remove Objectives1accomplished sometimes later
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/constraints/objectives/activities/ObjectivesExamDialog.kt b/app/src/main/java/info/nightscout/androidaps/plugins/constraints/objectives/activities/ObjectivesExamDialog.kt
index 1c7c6c7ee1..1428652be5 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/constraints/objectives/activities/ObjectivesExamDialog.kt
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/constraints/objectives/activities/ObjectivesExamDialog.kt
@@ -57,12 +57,11 @@ class ObjectivesExamDialog : DialogFragment() {
objectives_exam_question.setText(task.question)
// Options
objectives_exam_options.removeAllViews()
- for (o in task.options) {
- val option: Option = o as Option;
- val cb = option.generate(context)
+ task.options.forEach {
+ val cb = it.generate(context)
if (task.answered) {
cb.isEnabled = false
- if (option.isCorrect)
+ if (it.isCorrect)
cb.isChecked = true
}
objectives_exam_options.addView(cb)
@@ -70,8 +69,7 @@ class ObjectivesExamDialog : DialogFragment() {
// Hints
objectives_exam_hints.removeAllViews()
for (h in task.hints) {
- val hint: Hint = h as Hint;
- objectives_exam_hints.addView(hint.generate(context))
+ objectives_exam_hints.addView(h.generate(context))
}
// Disabled to
objectives_exam_disabledto.text = MainApp.gs(R.string.answerdisabledto, DateUtil.timeString(task.disabledTo))
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/constraints/objectives/objectives/Objective.java b/app/src/main/java/info/nightscout/androidaps/plugins/constraints/objectives/objectives/Objective.java
index f58d469fa2..c882a921f5 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/constraints/objectives/objectives/Objective.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/constraints/objectives/objectives/Objective.java
@@ -4,6 +4,7 @@ import android.app.Activity;
import android.content.Context;
import android.graphics.Color;
import android.text.util.Linkify;
+import android.view.View;
import android.widget.CheckBox;
import android.widget.TextView;
@@ -36,6 +37,10 @@ public abstract class Objective {
this.gate = gate;
startedOn = SP.getLong("Objectives_" + spName + "_started", 0L);
accomplishedOn = SP.getLong("Objectives_" + spName + "_accomplished", 0L);
+ if ((accomplishedOn - DateUtil.now()) > T.hours(3).msecs() || (startedOn - DateUtil.now()) > T.hours(3).msecs()) { // more than 3 hours in the future
+ startedOn = 0;
+ accomplishedOn = 0;
+ }
setupTasks(tasks);
for (Task task : tasks) task.objective = this;
}
@@ -48,12 +53,20 @@ public abstract class Objective {
return true;
}
+ public boolean isCompleted(long trueTime) {
+ for (Task task : tasks) {
+ if (!task.shouldBeIgnored() && !task.isCompleted(trueTime))
+ return false;
+ }
+ return true;
+ }
+
public boolean isRevertable() {
return false;
}
public boolean isAccomplished() {
- return accomplishedOn != 0;
+ return accomplishedOn != 0 && accomplishedOn < DateUtil.now();
}
public boolean isStarted() {
@@ -100,6 +113,7 @@ public abstract class Objective {
@StringRes
private int task;
private Objective objective;
+ ArrayList hints = new ArrayList<>();
public Task(@StringRes int task) {
this.task = task;
@@ -114,11 +128,21 @@ public abstract class Objective {
}
public abstract boolean isCompleted();
+ public boolean isCompleted(long trueTime) { return isCompleted(); };
public String getProgress() {
return MainApp.gs(isCompleted() ? R.string.completed_well_done : R.string.not_completed_yet);
}
+ Task hint(Hint hint) {
+ hints.add(hint);
+ return this;
+ }
+
+ public ArrayList getHints() {
+ return hints;
+ }
+
public boolean shouldBeIgnored() {
return false;
}
@@ -138,6 +162,11 @@ public abstract class Objective {
return getObjective().isStarted() && System.currentTimeMillis() - getObjective().getStartedOn() >= minimumDuration;
}
+ @Override
+ public boolean isCompleted(long trueTime) {
+ return getObjective().isStarted() && trueTime - getObjective().getStartedOn() >= minimumDuration;
+ }
+
@Override
public String getProgress() {
return getDurationText(System.currentTimeMillis() - getObjective().getStartedOn())
@@ -157,8 +186,7 @@ public abstract class Objective {
public class ExamTask extends Task {
@StringRes
int question;
- List hints = new ArrayList<>();
- List options = new ArrayList<>();
+ ArrayList
Basalrate richtig eingestelltBegrenzung des max. Prozentsatzes auf %1$d%% wegen %2$sBegrenze Bolusmenge auf %1$.1f IE wegen %2$s
- Begrenze verzögerten Bolus auf %1$.1f U wegen %2$s
+ Begrenze verzögerten Bolus auf %1$.1f IE wegen %2$sBegrenze max. IOB auf %1$.1f IE wegen %2$sBegrenze Kohlenhydrate auf %1$d g wegen %2$sBegrenze IOB auf %1$.1f IE wegen %2$s
@@ -990,7 +964,6 @@ maxIOB = durchschnittlicher Essensbolus + 3 x maximale BasalrateAbgeschlossen, gut gemacht!Noch nicht abgeschlossenVerstrichene Zeit
- %1$d. ZielPoctechEmpfange Blutzucker-Werte von der Poctech-App.Empfange Blutzucker-Werte von der Tomato-App (MiaoMiao-Geräte)
@@ -1085,7 +1058,7 @@ Unerwartetes Verhalten.%1$d%% für %2$d / %3$d minVerzögerter BolusMultiwave-Bolus
- %1$.2f / %2$.2f U für %3$d min
+ %1$.2f / %2$.2f IE für %3$d minTBR-Vorrüber-Benachrichtigung aktivieren\n(Pumpeneinstellung)TBR-Vorrüber-Benachrichtigung deaktivieren\n(Pumpeneinstellung)Aktualisieren
@@ -1093,7 +1066,7 @@ Unerwartetes Verhalten.
Nicht eingesetztLetzte Verb.: vor %1$d minTBR: %1$d%% für %2$d / %3$d min
- Verzögert: %1$.2f / %2$.2f U für %3$d min
+ Verzögert: %1$.2f / %2$.2f IE für %3$d min.Multiwave: %1$.2f / %2$.2f IE für %3$d min.TDD: %1$.2fReser.: %1$.2fIE
@@ -1239,7 +1212,7 @@ Unerwartetes Verhalten.
Bitte wähle einen Auslöser:Auslöser:ENTFERNEN
- Vorbedingung:
+ Voraussetzung:Operation nicht durch Pumpe und/oder Treiber unterstützt.Operation NOCH NICHT von Pumpe unterstützt.
@@ -1264,6 +1237,8 @@ Unerwartetes Verhalten.
Nicht ausgewählt (Einfache Ansicht)Alkaline Batterie (erweiterte Ansicht)Lithium Batterie (erweiterte Ansicht)
+ Nickel-Zink-Akku (erweiterte Ansicht)
+ Fehlersuche Bolus/BehandlungenSCANNENSTOP
@@ -1372,46 +1347,35 @@ Unerwartetes Verhalten.
Hole Temporäre BasalratenSetze Temporäre BasalrateSetze Bolus
- %2$.1fg %3$.2fU]]>
- Bolus-Einschränkung angewendet: %2$.2fU zu %3$.2fU]]>
+ Profil wechseln zu
+ Profil wechseln zu %1$s
+ Letzte Verbindung zur Pumpe
+ Letzte Verbindung zur Pumpe [vor X Minuten]
+ Letzte Verbindung zur Pumpe vor %1$s %2$s Minuten
+ SMS senden: %1$s
+ SMS an alle vorgegebenen Nummern senden
+ SMS mit Text senden
+ %2$+.2fU]]>
+ Bolus-Einschränkung angewendet: %2$.2fIE zu %3$.2fIE]]>!!!!! Langsamer Kohlenhydrat-Abbau erkannt: %2$d%% der Zeit. Überprüfe Deine Berechnung. COB könnte zu hoch sein und deswegen zu viel Insulin abgegeben werden!!!!!]]>%1$.0f / %2$d IEAbgabe von [%] des Ergebnisses des BolusrechnersDer Bolus-Assistent führt Berechnungen durch, aber nur dieser Teil der berechneten Insulin wird abgegeben. Nützlich mit SMB-Algorithmus.Lädt ...Schlummern
- Erfüllt: %1$s
- Lerne, AndroidAPS zu bedienen.
- Führe verschiedene Aktionen in AndroidAPS aus.
- Setzte das Profil für 10 min. auf 90% (Drücke dazu lange auf den Profilnamen auf der Startseite)
- Simuliere duschen. Trenne die Pumpe für 1 Std. (Drücke lang auf Open Loop)
- ...und verbinde die Pumpe auf dem selben Weg wieder.
- Erstelle ein benutzerdefiniertes temporäres Ziel mit 10 min. Dauer (Drücke lange auf Deinen aktuellen Zielwert)
- Aktiviere das Plugin Aktionen im Konfigurations-Generator, zeige es an und rufe es vom Startbildschirm aus auf.
- Zeige den Inhalt des Loop-Plugins ein.
- Nutze die Skalierfunktion. Drücke dazu lange auf das Diagramm.
- Eingabe
- Gib den Code ein, den Du von den Entwicklern erhalten hast, um die restlichen Objectives zu überspringen.
- Code akzeptiert
- Code ungültig
- Belege Dein Wissen
- Beantworte die Fragen richtig.
- Beantwortung deaktiviert bis: %1$s
- Falsche Antwort!
- Nächte unbeantwortete
+ Zeitraum
+ Für die Zeit zwischen %1$s und %2$s
+ Zwischen Schließen
- Erfrage Code:: %1$s
- (kreuze alle richtigen Antworten an)
-
- %1$d Tag
- %1$d Tage
-
-
- %1$d Stunde
- %1$d Stunden
-
-
- %1$d Minute
- %1$d Minuten
-
+ Der Wert max basal wird erhöht, weil Du ihn niedriger eingestellt hast als die höchste Basalrate in Deinem Profil.
+ Ungültiger Inhalt
+ %1$s ISF: %2$.1f
+ %1$.0fg IC: %2$.1f
+ %1$.1fg IC: %2$.1f
+ %1$d%%
+ Bolus-Rechner
+ Min.
+ %1$dg
+ Ein
+ Aus
diff --git a/app/src/main/res/values-el-rGR/exam.xml b/app/src/main/res/values-el-rGR/exam.xml
new file mode 100644
index 0000000000..f939334dd5
--- /dev/null
+++ b/app/src/main/res/values-el-rGR/exam.xml
@@ -0,0 +1,166 @@
+
+
+
+ Ποια είναι η αλήθεια για το DIA;
+ Θέμα: η Διάρκεια της Δράσης Ινσουλίνη
+ Η ελάχιστη τιμή είναι 3 ώρες.
+ Η ελάχιστη τιμή είναι 5 ώρες.
+ https://androidaps.readthedocs.io/en/latest/EN/Configuration/Config-Builder.html?#insulin
+ Το νόημα είναι ίσο με την DIA που χρησιμοποιείται στην αντλία.
+ Θα πρέπει να καθορίσει την ατομική τιμή (αλλά όχι λιγότερο από 5 ώρες).
+ Θέμα: Προσωρινοί στόχοι Υπό
+ Ποιος είναι ο πρωταρχικός λόγος για να ορίσετε ένα υπο TT;
+ Για να αποτρέψετε BG να πάει χαμηλά εάν υπάρχει ενεργός ήδη μηδενικό; προσωρινός.
+ Για να αποτρέψετε AAPS από τη χορήγηση υπερβολικής ινσουλίνης μετά από μια αύξηση που προκαλείται από ταχείας δράσης υδατάνθρακες που χρησιμοποιούνται για τη θεραπεία υπογλυκαιμίας.
+ https://androidaps.readthedocs.io/en/latest/EN/Usage/temptarget.html
+ Ποιο προφίλ μπορεί να χρησιμοποιηθεί και να διαμορφωθεί χωρίς σύνδεση;
+ Θέμα: Προφίλ Εκτός Σύνδεσης
+ Το προφίλ NS μπορεί να χρησιμοποιηθεί, αλλά όχι να ρυθμιστεί.
+ https://androidaps.readthedocs.io/en/latest/EN/Configuration/Config-Builder.html#profile
+ Θέμα: Αποσύνδεση από την Αντλία
+ Τι πρέπει να γίνει όταν αποσυνδέεται η αντλία;
+ Πατήστε το κουμπί \"Αποσύνδεση αντλίας\", έτσι ώστε το AAPS να ξέρει ότι δεν χορηγείται ινσουλίνη.
+ Πατήστε το κουμπί \"Αναστολή κυκλώματος\", έτσι ώστε το AAPS να σταματά το κύκλωμα, ενώ η αντλία είναι αποσυνδεδεμένη.
+ Μην αλλάζετετίποτα στο AAPS, απλά αποσυνδέστε την αντλία.
+ https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#other-settings
+ Θέμα: AndroidAPS Ρυθμίσεις
+ Ποιες είναι οι καλύτερες πρακτικές για να αποθηκεύσετε τις ρυθμίσεις σας;
+ Εξάγετέ τις τοπικά από το Μενού Συντήρηση.
+ Αποθηκεύστε το αρχείο σε ένα άλλο μέρος όπως email, Dropbox, Google drive…
+ Εξάγετε τις ρυθμίσεις αμέσως μετά την εγκατάσταση του AAPS.
+ Εξάγετέ τις μετά από κάθε αλλαγή στις ρυθμίσεις.
+ Εξάγετέ τις έπιτα από κάθε επίτευξη στόχου.
+ Εξάγετέ τις όταν ολοκληρώσετε τις αρχικές ρυθμίσεις.
+ https://androidaps.readthedocs.io/en/latest/EN/Usage/ExportImportSettings.html
+ https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#what-emergency-equipment-is-recommended-to-take-with-me
+ Θέμα: Θορυβώδης CGM Μετρήσεις
+ Τι πρέπει να κάνετε αν τα δεδομένα του CGM έχουν θόρυβο;
+ Τίποτα, το AAPS θα το αντιμετωπίσει.
+ Απενεργοποίηση κυκλώματος για αποφυγή υπερβολικής δόσης.
+ Αντικαταστήστε τον αισθητήρα CGM.
+ Απενεργοποιήστε το τηλέφωνο.
+ https://androidaps.readthedocs.io/en/latest/EN/Usage/Smoothing-Blood-Glucose-Data-in-xDrip.html#smoothing-blood-glucose-data
+ Βεβαιωθείτε ότι το CGM app λειαίνει τις μετρήσεις BG.
+ Θέμα: Άσκηση
+ Πώς μπορείτε να βοηθήσετε το σύστημα να αντιμετωπίσει την άσκηση;
+ Χρησιμοποιώντας το χαρακτηριστικό προσωρινό-στόχο.
+ Κάντε ένα προφίλ κάτω από το 100%.
+ Κάντε ένα προφίλ πάνω από το 100%.
+ Σταματήστε το κύκλωμα.
+ Ορίστε έναν προσωρινό-στόχο πριν την έναρξη της άσκησης.
+ Ο ορισμός προσωρινού-στόχου μετά την έναρξη της άσκησης οδηγεί σε χειρότερα αποτελέσματα από το να οριστεί πριν.
+ https://androidaps.readthedocs.io/en/latest/EN/Usage/temptarget.html#activity-temp-target
+ Θέμα: Απενεργοποίηση/Αναστολή κυκλώματος
+ Λαμβάνω ινσουλίνη όταν το κύκλωμα είναι απενεργοποιημένο/αναστολή;
+ Ναι, ο βασικός ρυθμός συνεχίζει να χορηγείται.
+ Όχι, η χορήγηση ινσουλίνης σταμάτησε.
+ Θέμα: Βασική, ISF, και IC Έλεγχος
+ Πότε θα πρέπει να επικυρώσετε τις τιμές του Βασικού, του ISF, και του IC;
+ Πριν αρχίσει το κύκλωμα.
+ Όταν αντιμετωπίζετε συχνά χαμηλές τιμές BG.
+ Όταν αντιμετωπίζετε συχνά υψηλές τιμές BG.
+ https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#androidaps-settings
+ Θέμα: Προϋποθέσεις
+ Τι χρειάζομαι;
+ Έγκυρες πληροφορίες προφίλ (Βασικός, IC, ISF, DIA).
+ Έναν υπολογιστή για δημιουργία ενός APK.
+ Ένα τηλέφωνο που υποστηρίζεται.
+ Ένα Αυτοκίνητο.
+ Nightscout να περάσει τους στόχους.
+ Ένα Tidepool λογαριασμό.
+ Ένα λογαριασμό Google.
+ Ένα λογαριασμό Github.
+ Εμπειρία προγραμματιστή Android.
+ Μία αντλία MiniMed 670G.
+ https://androidaps.readthedocs.io/en/latest/EN/Module/module.html
+ Ένα Smartwatch.
+ Ένα Υποστηριζόμενο CGM.
+ Θέμα: Αναβάθμιση AndroidAPS
+ Τι είναι αλήθεια;
+ Θα πρέπει να έχετε εγκατεστημένο το Git.
+ Αναβαθμίστε μόλις μία έκδοση είναι διαθέσιμη και έχοντας αρκετό χρόνο για να το κάνετε.
+ Θα πρέπει να χρησιμοποιήσετε την ίδια υπογραφή κλειδιών.
+ Ποτέ μην αναβαθμίζετε εάν το σύστημα λειτουργεί καλά.
+ Ρωτήστε ένα φίλο γα το νέο APK.
+ https://androidaps.readthedocs.io/en/latest/EN/Installing-AndroidAPS/Update-to-new-version.html#update-to-a-new-version-or-branch
+ Θέμα: Αντιμετώπιση Προβλημάτων
+ Πού ψάχνω για βοήθεια;
+ Γίνετε μέλος της ομάδας AndroidAPS στο Facebook.
+ Διαβάστε τον οδηγό AndroidAPS.
+ Επισκεφθείτε το AndroidAPS Gitter Room.
+ Επισκεφθείτε την υποστήριξη AndroidAPS Google
+ Μιλήσετε με τον ενδοκρινολόγο σας.
+ https://androidaps.readthedocs.io/en/latest/EN/Installing-AndroidAPS/Update-to-new-version.html#troubleshooting
+ https://www.facebook.com/groups/AndroidAPSUsers/
+ https://gitter.im/MilosKozak/AndroidAPS
+ Θέμα: Προσθήκη Ινσουλίνης
+ Ποια μάρκα ινσουλίνης μπορεί να χρησιμοποιηθεί με την ΄Έξτρα-Γρήγορη-Oref΄ προσθήκη;
+ Fiasp®
+ NovoRapid®
+ Humalog®
+ Actrapid®
+ https://androidaps.readthedocs.io/en/latest/EN/Configuration/Config-Builder.html#insulin
+ Θέμα: Προσθήκες Ευαισθησία
+ Ποιος αλγόριθμος ευαισθησίας έχει ένα ρυθμιζόμενο χρονικό εύρος;
+ https://androidaps.readthedocs.io/en/latest/EN/Configuration/Sensitivity-detection-and-COB.html
+ Ποια προσθήκη ευαισθησίας πρέπει να χρησιμοποιείται για το UAM χαρακτηριστικό;
+ Θέμα: Σφάλματα Εισαγωγής Υδατανθράκων
+ Τι πρέπει να κάνετε αν γίνει μια λανθασμένη εισαγωγή υδατανθράκων;
+ Στις Θεραπείες, διαγράψτε την λανθασμένη εισαγωγή υδατανθράκων. Εισάγετε νέους υδατάνθρακες.
+ Προσθέσθε ψεύτικη ινσουλίνη, χρησιμοποιώντας την λειτουργία Ξαναγέμισμα
+ Θέμα: Τρόφιμα με Λίπος και Πρωτεΐνη
+ Τι να κάνετε αν το φαγητό περιέχει ένα μεγάλο ποσό λίπους και/ή πρωτεΐνών;
+ Επανυπολογισμός του λίπους και των πρωτεϊνών σε υδατάνθρακες και χρησιμοποιήστε το χαρακτηριστικό \"Εκτεταμμένους υδατάνθρακες\".
+ Επανυπολογισμός του λίπους και των πρωτεϊνών σε υδατάνθρακες και προσθέστε το στον υπολογισμό bolus.
+ Χρήση εκτεταμμένου bolus για κάλυψη λίπους και πρωτεϊνών.
+ https://androidaps.readthedocs.io/en/latest/EN/Usage/Extended-Carbs.html
+ Θέμα: Απομακρυσμένη Παρακολούθηση
+ Πώς μπορείτε να παρακολουθήσετε το AAPS του παιδιού σας από απόσταση;
+ Χρησιμοποιώντας την σελίδα του Nightscout.
+ Dexcom Follow app αν χρησιμοποιείτε το αυθεντικό Dexcom app (BG μόνο).
+ Dexcom Follow εάν χρησιμοποιείτε το xDrip app.
+ το xDrip τρέχει σε λειτουργία ακολούθου.
+ App κύκλωμα για το iPhone.
+ Spike app για iPhone.
+ https://androidaps.readthedocs.io/en/latest/EN/Children/Children.html
+ Θέμα: ISF Διορθωτικός Παράγοντας
+ Υψηλότερη τιμή ISF οδηγεί σε λιγότερη χορήγηση ινσουλίνης, όταν το AAPS διορθώνει την υψηλή BG.
+ Χαμηλότερη τιμή ISF οδηγεί σε λιγότερη χορήγηση ινσουλίνης, όταν το AAPS διορθώνει την υψηλή BG.
+ Αλλάζοντας την τιμή του ISF δεν έχει καμία επίδραση στην ποσότητα ινσουλίνης που χορηγείται όταν το AAPS διορθώνει την υψηλή BG.
+ Θα πρέπει να εισάγετε την ISF στις Επιλογές.
+ Η αλλαγή της τιμής της ISF στο προφίλ σας είναι αρκετό για να εφαρμόσετε την αλλαγή αυτή.
+ https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#insulin-sensitivity-factor-isf-mmol-l-u-or-mg-dl-u
+ https://androidaps.readthedocs.io/en/latest/EN/Usage/Profiles.html
+ Θέμα: IC Αναλογία Υδατανθράκων
+ Υψηλή αναλογία IC οδηγεί σε λιγότερη χορήγηση ινσουλίνης για μια δεδομένη ποσότητα υδατανθράκων.
+ Μικρή αναλογία IC οδηγεί σε λιγότερη χορήγηση ινσουλίνης για μια δεδομένη ποσότητα υδατανθράκων.
+ Αν έχετε 0 COB Ενεργούς Υδατ., αλλάζοντας την αναλογία IC θα οδηγήσει σε μια διαφορετική ποσότητα ινσουλίνης για να διορθωθεί μια συγκεκριμένη τιμή BG.
+ Το IC θα είναι διαφορετικό αν υπολογίζετε το ψωμί ως 10g ή 12g.
+ Η έννοια του IC είναι: Πόσες φέτες ψωμί καλύπτονται από 1 μονάδα ινσουλίνης.
+ https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#carbohydrate-to-insulin-ratio-cr-g-u
+ Θέμα: Αλλαγή Προφίλ
+ Όταν καθορίζεται 90% στην αλλαγή προφίλ…
+ Ο Βασικός θα είναι 10% υψηλότερος.
+ Ο Βασικός θα είναι 10% χαμηλότερος.
+ Η τιμή IC θα είναι 10% υψηλότερη.
+ Η τιμή IC θα είναι 10% χαμηλότερη.
+ Η τιμή ISF θα είναι 10% υψηλότερη.
+ Η τιμή ISF θα είναι 10% χαμηλότερη.
+ Θα πάρετε περίπου 10% λιγότερη ινσουλίνη στο σύνολο.
+ Ο στόχος θα είναι 10% υψηλότερος.
+ Ο στόχος θα είναι 10% χαμηλότερος.
+ Μόνο ο χαμηλός στόχος θα είναι 10% χαμηλότερος.
+ https://androidaps.readthedocs.io/en/latest/EN/Usage/Profiles.html?highlight=profile%20switch#profile-switch
+ Αν ξυπνήσετε 1 ώρα νωρίτερα από το συνηθισμένο, πώς θα πρέπει να ενημερώσετε το AAPS για την αλλαγή στο πρόγραμμά σας;
+ Ξεκινήστε μία αλλαγή προφίλ με χρονική μετατόπιση 1
+ Ξεκινήστε μία αλλαγή προφίλ με χρονική μετατόπιση -1
+ https://androidaps.readthedocs.io/en/latest/EN/Usage/Profiles.html?highlight=profile%20switch#timeshift
+ Ξεκινήστε μία αλλαγή προφίλ με χρονική μετατόπιση 60
+ Ξεκινήστε μία αλλαγή προφίλ με χρονική μετατόπιση -60
+ https://androidaps.readthedocs.io/en/latest/EN/Module/module.html#good-individual-dosage-algorithm-for-your-diabetes-therapy
+ Θέμα: Βοήθεια με βασικό ρυθμό
+ Πού θα πάτε για βοήθεια με Βασικό ρυθμό κτλ.
+ Στην ομάδα του γιατρού σας
+ Google
+ FaceBook
+
diff --git a/app/src/main/res/values-el-rGR/objectives.xml b/app/src/main/res/values-el-rGR/objectives.xml
new file mode 100644
index 0000000000..bf0ae05ad6
--- /dev/null
+++ b/app/src/main/res/values-el-rGR/objectives.xml
@@ -0,0 +1,68 @@
+
+
+
+ Πίσω
+ Έναρξη
+ Επικύρωση
+ %1$d. Στόχος
+ Ο στόχος %1$d δεν ξεκίνησε
+ Ο στόχος %1$d δεν ολοκληρώθηκε
+ Δημιουργία παρακολούθησης και ανάλυση βασικού ρυθμού και αναλογιών
+ Επιβεβαιώστε ότι η BG φαίνεται στο Nightscout και τα δεδομένα της αντλίας φορτώθηκαν
+ Ξεκινήστε σε ανοιχτό κύκλωμα
+ Τρέξτε σε ανοιχτό κύκλωμα μερικές ημέρες και χειροκίνητα κάντε πολλούς προσωρινούς ρυθμούς. Φτιάξτε και χρησιμοποιήστε προσωρινούς και στανταρντ προσωρινούς στόχους (π.χ. για άσκηση ή θεραπεία υπογλυκαιμίας)
+ Κατανοήστε το ανοιχτό κύκλωμα, περιλαμβάνοντας τις προτάσεις για Προσωρινό ρυθμό
+ Βάση της εμπειρίας σας, αποφασίστε ποιο είναι το μέγιστο βασικής δόσης και αποθηκεύστε το στην αντλία και στις Επιλογές
+ Ξεκινήστε να κλείσετε το κύκλωμα με Σταμάτημα Χαμηλής Γλυκόζης (Low Glucose Suspend)
+ Τρέξτε σε κλειστό κύκλωμα με μέγιστο IOB = 0 για μερικές ημέρες χωρίς πολλά LGS - υπογλυκαιμίες
+ Ρυθμίζοντας το κλειστό κύκλωμα, αυξήστε το μέγιστο IOB πάνω από 0 και σταδιακά μειώστε τους στόχους BG
+ Τρέξτε το για λίγες ημέρες, και τουλάχιστον μία νύχτα χωρίς χαμηλό συναγερμό BG, πριν χαμηλώσετε τα όρια
+ Ρυθμίστε τον βασικό ρυθμό και τις αναλογίες αν χρειάζεται, και μετά ενεργοποιήστε το auto-sens
+ 1 επιτυχής εβδομάδα ημερήσιου κυκλώματος με κανονική εισαγωγή υδατανθράκων
+ Ενεργοποιώντας επιπρόσθετα χαρακτηριστικά για χρήση κατά την ημέρα, όπως τον Προχωρημένο Βοηθό Γεύματος
+ Ενεργοποιώντας επιπρόσθετα χαρακτηριστικά για χρήση κατά την ημέρα, όπως το SMB
+ Πρέπει να διαβάσετε τον οδηγό wiki και να αυξήσετε το ανώτατο όριο του IOB για να μπορέσει να λειτουργήσει σωστά το SMB! Μια καλή αρχή είναι μέγιστο IOB= μέσο bolus γεύματος + 3 x το μέγιστο ημερήσιο βασικού ρυθμού
+ BG διαθέσιμες στο NS
+ Η κατάσταση της αντλίας διαθέσιμη στο NS
+ Ξεκινήστε χειροκίνητα
+ Επιτεύχθηκε: %1$s
+ Μάθετε πώς να ελέγχετε το AndroidAPS
+ Κάντε διαφορετικές ενέργειες στο AndroidAPS
+ Θέστε το προφίλ στο 90% για 10 λεπτά (Παρατεταμένο πάτημα του προφίλ στην Επισκόπηση)
+ Προσομοίωση ένδειξης. Αποσυνδέστε την αντλία για 1 ώρα (Παρατεταμένο στο Ανοιχτό Κύκλωμα)
+ ... και επανασυνδέστε με τον ίδιο τρόπο
+ Φτιάξτε προσωρινούς στόχους με διάρκεια 10 λεπτά (Παρατεταμένο πάτημα στον στόχο σας)
+ Στην Διαμόρφωση ενεργοποιήστε την προσθήκη Ενέργειες, κάντε την ορατή ώστε να την βλέπετε από το δικό της tab
+ Εμφάνιση περιεχομένου της προσθήκης Κύκλωμα
+ Χρησιμοποιήστε τη λειτουργία κλίμακας πατώντας παρατεταμένα το διάγραμμα BG
+ Εισαγωγή
+ Εισαγάγετε τον κωδικό που λαμβάνετε από τους προγραμματιστές για να παρακάμψετε τους υπόλοιπους στόχους
+ Κωδικός αποδεκτός
+ Μη έγκυρος κωδικός
+ Αποδείξτε τις γνώσεις σας
+ Διαβάστε και απαντήστε τις ερωτήσεις σωστά
+ Οι απαντήσεις εμφανίζονται στο: %1$s
+ Λάθος απάντηση!
+ Επόμενο ημιτελές
+ Κωδικός αιτήματος: %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
+ Δεν είστε συνδεδεμένοι στο internet
+ Απέτυχε η ανάκτηση ώρας
+ Αντικειμενικές προϋποθέσεις δεν πληρούνται
+
+ %1$d ημέρα
+ %1$d ημέρες
+
+
+ %1$d hour
+ %1$d ώρες
+
+
+ %1$d minute
+ %1$d λεπτά
+
+
diff --git a/app/src/main/res/values-el-rGR/strings.xml b/app/src/main/res/values-el-rGR/strings.xml
index 743073e844..e15480ce10 100644
--- a/app/src/main/res/values-el-rGR/strings.xml
+++ b/app/src/main/res/values-el-rGR/strings.xml
@@ -5,7 +5,6 @@
-
Ασφάλεια ΘεραπειώνΜέγιστο Επιτρεπτό bolus[U]Μέγιστο Επιτρεπτό υδατανθράκων [g]
@@ -57,9 +56,6 @@
Παρακολουθεί και ελέγχει το AndroidAPS χρησιμοποιώντας το ρολόι σας WearOS.Δείτε πληροφορίες σχετικά με το κύκλωμά σας στην πρόσοψη xDrip +.Ελεγξτε απομακρυσμένα το AndroidAPS χρησιμοποιώντας τις εντολές SMS.
- Πίσω
- Έναρξη
- ΕπικύρωσηΜονάδεςDIAIC
@@ -102,6 +98,7 @@
ΠροφίλΔεδομένα ΓεύματοςΑποτέλεσμα
+ Αποτέλεσμα: %1$s %2$sΜη διαθέσιμα δεδομένα γλυκόζηςΔεν απαιτείται αλλαγήΑίτημα
@@ -177,9 +174,6 @@
Μη υποστηριζόμενη έκδοση NSClientΜη υποστηριζόμενη έκδοση NightscoutNSClient δεν εγκαταστάθηκε. Τα δεδομένα χάθηκαν!
- BG διαθέσιμες στο NS
- Η κατάσταση της αντλίας διαθέσιμη στο NS
- Ξεκινήστε χειροκίνηταΤΟ ΚΥΚΛΩΜΑ ΑΠΕΝΕΡΓΟΠΟΙΗΘΗΚΕ ΑΠΟ ΠΕΡΙΟΡΙΣΜΟΥΣΒασική ΙΟΒΕνεργός Περιορισμός Bolus
@@ -222,7 +216,7 @@
Προσ ΡυθμόςΕκτεταμμένο BolusΈκδοση Nightscout:
- Χαμένες
+ Λείπει %1$dgΕπιλογές εξήχθησανΕξαγωγή ρυθμίσεων σεΕισαγωγή ρυθμίσεων από
@@ -317,21 +311,6 @@
Πιέστε STOPΑναμονή για αντλίαΠρος έγχυση %1$.2fU
- Δημιουργία παρακολούθησης και ανάλυση βασικού ρυθμού και αναλογιών
- Επιβεβαιώστε ότι η BG φαίνεται στο Nightscout και τα δεδομένα της αντλίας φορτώθηκαν
- Ξεκινώντας ανοιχτό κύκλωμα
- Τρέξτε σε ανοιχτό κύκλωμα μερικές ημέρες και χειροκίνητα κάντε πολλούς προσωρινούς ρυθμούς. Φτιάξτε και χρησιμοποιήστε προσωρινούς και στανταρντ προσωρινούς στόχους (π.χ. για άσκηση ή θεραπεία υπογλυκαιμίας)
- Κατανοήστε το ανοιχτό κύκλωμα, περιλαμβάνοντας τις προτάσεις για Προσωρινό ρυθμό
- Βάση της εμπειρίας σας, αποφασίστε ποιο είναι το μέγιστο βασικής δόσης και αποθηκεύστε το στην αντλία και στις Επιλογές
- Ξεκινήστε να κλείσετε το κύκλωμα με Σταμάτημα Χαμηλής Γλυκόζης (Low Glucose Suspend)
- Εκτελέστε σε κλειστό κύκλωμα με μέγιστο IOB = 0 για μερικές ημέρες χωρίς πολλά LGS - υπογλυκαιμίες
- Ρυθμίζοντας το κλειστό κύκλωμα, αυξήστε το μέγιστο IOB πάνω από 0 και σταδιακά μειώστε τους στόχους BG
- Τρέξτε το για λίγες ημέρες, και τουλάχιστον μία νύχτα χωρίς χαμηλό συναγερμό BG, πριν χαμηλώσετε τα όρια
- Ρυθμίστε τον βασικό ρυθμό και τις αναλογίες αν χρειάζεται, και μετά ενεργοποιήστε το auto-sens
- 1 επιτυχής εβδομάδα ημερήσιου κυκλώματος με κανονική εισαγωγή υδατανθράκων
- Ενεργοποιώντας επιπρόσθετα χαρακτηριστικά για χρήση κατά την ημέρα, όπως τον Προχωρημένο Βοηθό Γεύματος
- Ενεργοποιήστε άλλες λειτουργίες για χρήση κατά την ημέρα, όπως SMB
- Πρέπει να διαβάσετε τον οδηγό wiki και να αυξήσετε το ανώτατο όριο του IOB για να μπορέσει να λειτουργήσει σωστά η SMB! Μια καλή αρχή είναι μέγιστο IOB= μέσο bolus γεύματος + 3 x το μέγιστο ημερήσιο βασικού ρυθμούΦτάσατε το επιτρεπτό όριοΔεν επηλέχθηκε προφίλΤο κύκλωμα απενεργοποιήθηκε
@@ -565,14 +544,12 @@
Ενεργοποίηση superbolus στον σύντομο οδηγόΕνεργοποιήστε την λειτουργία superbolus στον σύντομο οδηγό. Μην το κάνετε μέχρι να μάθετε τι ακριβώς κάνει. ΜΠΟΡΕΙ ΝΑ ΕΓΧΥΣΕΙ ΠΑΡΑΠΑΝΩ ΔΟΣΕΙΣ ΙΝΣΟΥΛΙΝΗΣ ΑΝ ΧΡΗΣΙΜΟΠΟΙΗΘΕΙ ΛΑΝΘΑΣΜΕΝΑ!Εμφάνιση του φωτισμού κατάστασης στην αρχική οθόνη
- Εμφάνιση του φωτισμού κατάστασης στην αρχική οθόνη
- Ενεργοποίηση του φωτισμού κατάστασης για cage, iage, sage, reservoir και επίπεδο μπαταρίας στην αρχική οθόνη.Εμφάνιση του φωτισμού κατάστασης στην αρχική οθόνηΕνεργοποίηση του φωτισμού κατάστασης για cage, iage, sage, reservoir και επίπεδο μπαταρίας στην αρχική οθόνη.Όριο προειδοποίησης χαμηλής αμπούλας [U]Όριο προειδοποίησης πολύ χαμηλής αμπούλας [U]
- Όριο προειδοποίησης χαμηλής μπαταρίας [%%]
- Όριο προειδοποίησης πολύ χαμηλής μπαταρίας [%%]
+ Όριο προειδοποίησης χαμηλής μπαταρίας [%]
+ Όριο προειδοποίησης πολύ χαμηλής μπαταρίας [%]IOBCOBΈκδοση
@@ -642,7 +619,7 @@
ΑκύρωσηΔεν έχουν φορτωθεί όλα τα προφίλ!Οι τιμές δεν αποθηκεύτηκαν!
- Ενεργοποιήστε την αποστολή σε άλλες εφαρμογές (όπως xDrip).
+ Ενεργοποιήστε εκπομπές σε άλλες εφαρμογές (όπως το xDrip). Μην το ενεργοποιήσετε εάν έχετε περισσότερες από μία εγκατεστημένες εφαρμογές του AAPS ή NSClient!Ενεργοποιήστε τις τοπικές αποστολές.ΔΡΑΣΤΗΡΙΟΤΗΤΑ & FEEDBACKΥΔΑΤΑΝΘΡΑΚΕΣ & BOLUS
@@ -866,8 +843,6 @@
Η αλλαγή προφίλ λείπει. Αλλάξτε το προφίλ ή πατήστε \"Ενεργοποίηση Προφίλ\" στο Τοπικό Προφίλ.Αριθμός bolusΑριθμός TBR
- Ο στόχος %1$d δεν ξεκίνησε
- Ο στόχος %1$d δεν ολοκληρώθηκεΗ αντλία δεν υποστηρίζει προσωρινό βασικό ρυθμόΔιαβάζεται από την αντλία μη έγκυρος βασικός ρυθμόςΤο κλειστό κύκλωμα είναι απενεργοποιημένο στις Επιλογές
@@ -989,7 +964,6 @@
Ολοκληρώθηκε, συγχαρητήρια!Δεν ολοκληρώθηκε ακόμηΟ χρόνος που πέρασε
- %1$d. ΣτόχοςPoctechΛάβετε τις τιμές BG από την εφαρμογή PoctechΛάβετε τιμές BG από Tomato app (MiaoMiao)
@@ -1300,7 +1274,7 @@
Δεν ξεκίνησεΑρχικοποίηση του RileyLink…RileyLink Σφάλμα
- Ρύθμιση του RileyLink και της αντλίας
+ Συντονισμός RileyLink και ΑντλίαςΠρόβλημα σύνδεσης με την ΑντλίαΣυνδέθηκε
@@ -1370,7 +1344,15 @@
Λάβετε Προσωρινό ΡυθμόΒάλτε Προσωρινό ΡυθμόΒάλτε Bolus
- %2$.1fg %3$.2f]]>
+ Αλλαγή προφίλ σε
+ Αλλαγή προφίλ σε %1$s
+ Τελευταία σύνδεση με αντλία
+ Τελευταία σύνδεση με αντλία [λεπτά πριν]
+ Τελευταία σύνδεση με αντλία %1$s %2$s λεπτά πριν
+ Στείλτε SMS: %1$s
+ Στείλτε SMS προς όλους τους αριθμούς στις Επιλογές
+ Στείλτε SMS με κείμενο
+ %2$+.2fU]]>Bolus constraint applied: %2$.2fU to %3$.2fU]]>!!!!! Μικρή απορρόφηση υδατανθράκων ανιχνεύτηκε: %2$d%% της ώρας. Τσεκάρετε τους υπολογισμούς σας. COB μπορεί να υπερεκτιμήθηκε και να δόθηκε περισσότερη ινσουλίνη!!!!!]]>%1$.0f / %2$d U
@@ -1378,38 +1360,17 @@
Ο Υπολογισμός Bolus κάνει υπολογισμούς αλλά μόνο αυτό το μέρος της υπολογίσημης ινσουλίνης χορηγείται. Χρήσιμο με τον αλγόριθμο SMB.Φόρτωση ...Αναβολή
- Επιτεύχθηκε: %1$s
- Μάθε πως να ελέγχεις το AndroidAPS
- Κάντε διαφορετικές ενέργειες στο AndroidAPS
- Θέστε το προφίλ στο 90% για 10 λεπτά (Παρατεταμένο πάτημα του προφίλ στην Επισκόπηση)
- Προσομοίωση ένδειξης. Αποσυνδέστε την αντλία για 1 ώρα (Παρατεταμένο στο Ανοιχτό Κύκλωμα)
- ... και επανασυνδέστε με τον ίδιο τρόπο
- Φτιάξτε προσωρινούς στόχους με διάρκεια 10 λεπτά (Παρατεταμένο πάτημα στον στόχο σας)
- Στην Διαμόρφωση ενεργοποιήστε την προσθήκη Ενέργειες, κάντε την ορατή ώστε να την βλέπετε από το δικό της tab
- Εμφάνιση περιεχομένου της προσθήκης Κύκλωμα
- Χρησιμοποιήστε τη λειτουργία κλίμακας πατώντας παρατεταμένα το διάγραμμα BG
- Εισαγωγή
- Εισαγάγετε τον κωδικό που λαμβάνετε από τους προγραμματιστές για να παρακάμψετε τους υπόλοιπους στόχους
- Κωδικός αποδεκτός
- Μη έγκυρος κωδικός
- Αποδείξτε τις γνώσεις σας
- Διαβάστε και απαντήστε τις ερωτήσεις σωστά
- Οι απαντήσεις εμφανίζονται στο: %1$s
- Λάθος απάντηση!
- Επόμενο ημιτελές
+ Εύρος χρόνου
+ Ο χρόνος είναι μεταξύ %1$s και %2$s
+ Ανάμεσα Κλείσιμο
- Κωδικός αιτήματος: %1$s
- (ελέγξτε όλες τις σωστές απαντήσεις)
-
- %1$d ημέρα
- %1$d ημέρες
-
-
- %1$d ώρα
- %1$d ώρες
-
-
- %1$d λεπτό
- %1$d λεπτά
-
+ Αυξείστε την μέγιστη βασική τιμή, επειδή η ρύθμιση είναι χαμηλότερη από τη μέγιστη βασική στο προφίλ σας
+ Μη έγκυρο μήνυμα
+ %1$s ISF: %2$.1f
+ %1$.0fg IC: %2$.1f
+ %1$.1fg IC: %2$.1f
+ %1$d%%
+ Οδηγός Bolus
+ min
+ %1$dg
diff --git a/app/src/main/res/values-es-rES/exam.xml b/app/src/main/res/values-es-rES/exam.xml
new file mode 100644
index 0000000000..d0b8dce294
--- /dev/null
+++ b/app/src/main/res/values-es-rES/exam.xml
@@ -0,0 +1,166 @@
+
+
+
+ ¿Qué es cierto acerca de DIA?
+ Tema: la Duración de la Acción de la Insulina
+ El valor mínimo es de 3 horas.
+ El valor mínimo es de 5 horas.
+ https://androidaps.readthedocs.io/en/latest/EN/Configuration/Config-Builder.html?#insulin
+ El significado es igual al parámetro DIA utilizado en su bomba.
+ Debes determinar tu valor individual (pero no menos de 5 horas).
+ Tema: Hypo Temp-Objetivo
+ ¿Cuál es la razón principal para establecer un hipo TT?
+ Para evitar que BG caiga si ya hay basal temporal a cero corriendo.
+ Para evitar que AAPS inyecte demasiada insulina después de una subida causada por los carbohidratos de acción rápida utilizados para tratar una bajada en las lecturas de glucosa.
+ https://androidaps.readthedocs.io/en/latest/EN/Usage/temptarget.html
+ ¿Qué perfil puede ser usado y configurado estando desconectado?
+ Tema: Perfil fuera de línea
+ El perfil NS puede ser usado pero no configurado.
+ https://androidaps.readthedocs.io/en/latest/EN/Configuration/Config-Builder.html#profile
+ Tema: Desconectando de la bomba
+ ¿Qué se debe hacer al desconectar la bomba?
+ Haga clic en \"Desconectar bomba\" para que AAPS sepa que no se está inyectando insulina.
+ Haga clic en \'Suspender lazo \' para que la AAPS deje de estar en lazo cerrado mientras la bomba está desconectada.
+ No cambies nada en AAPS, sólo desconecta la bomba.
+ https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#other-settings
+ Tema: Ajustes AndroidAPS
+ ¿Cuál es la mejor práctica para hacer copias de seguridad de tus ajustes?
+ Exportarlos localmente desde el menú de Mantenimiento.
+ Guardar archivo exportado a otro lugar como correo electrónico, Dropbox, Google drive…
+ Exportarlos justo después de la instalación de AAPS.
+ Exportarlos después de realizar cambios en la configuración.
+ Exportarlos tras completar un objetivo.
+ Exportarlos al terminar la configuración inicial.
+ https://androidaps.readthedocs.io/en/latest/EN/Usage/ExportImportSettings.html
+ https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#what-emergency-equipment-is-recommended-to-take-with-me
+ Tema: Lecturas de CGM ruidosas
+ ¿Qué se debe hacer si los datos de CGM tienen ruido?
+ Nada, AAPS se ocupará de ello.
+ Desactivar el lazo cerrado para evitar una sobredosis.
+ Sustituya el sensor de CGM.
+ Apagar el movil.
+ https://androidaps.readthedocs.io/en/latest/EN/Usage/Smoothing-Blood-Glucose-Data-in-xDrip.html#smoothing-blood-glucose-data
+ Verifique que la aplicación CGM suaviza los datos de glucosa.
+ Tema: Ejercicio
+ ¿Cómo puedes ayudar al sistema a lidiar con el ejercicio?
+ Utilización de la característica de objetivo temporal.
+ Realice un cambio de perfil por debajo del 100%.
+ Realice un cambio de perfil por encima del 100%.
+ Detener el lazo.
+ Establezca un objetivo temporal de actividad antes de iniciar el ejercicio.
+ Establecer un objetivo temporal de actividad después de comenzar el ejercicio conduce a peores resultados que si se inicia antes de hacerlo.
+ https://androidaps.readthedocs.io/en/latest/EN/Usage/temptarget.html#activity-temp-target
+ Tema: Lazo inhabilitado/suspendido
+ ¿Recibo insulina cuando el lazo está desactivado/suspendido?
+ Sí, la insulina basal sigue siendo entregada.
+ No, la administración de la insulina está detenida.
+ Tema: Basal, ISF, y IC Pruebas
+ ¿Cuándo debo validar los valores basales, ISF y IC?
+ Antes de empezar en uso de lazo.
+ Si se experimentan valores bajos de BG frecuentemente.
+ Si se experimentan valores altos de BG frecuentemente.
+ https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#androidaps-settings
+ Tema: Requisitos previos
+ ¿Qué necesito?
+ Información de perfil validada (Basal, IC, ISF, DIA).
+ Un ordenador para crear un APK.
+ Un teléfono compatible.
+ Un Coche.
+ Nightscout para pasar los objetivos.
+ Una cuenta de Tidepool.
+ Una cuenta de Google.
+ Una cuenta de Github.
+ Experiencia en desarrollo de Android.
+ Una bomba MiniMed 670G.
+ https://androidaps.readthedocs.io/en/latest/EN/Module/module.html
+ Un Smartwatch.
+ Un CGM soportado.
+ Tema: Actualización de AndroidAPS
+ ¿Qué es verdad?
+ Tienes que tener instalado Git.
+ Actualice tan pronto como se libere la nueva versión y prevea tener tiempo suficiente para hacerlo.
+ Debes usar las mismas claves de firma.
+ Nunca actualice si el sistema está funcionando bien.
+ Pregúntale a tu amigo por el nuevo APK.
+ https://androidaps.readthedocs.io/en/latest/EN/Installing-AndroidAPS/Update-to-new-version.html#update-to-a-new-version-or-branch
+ Tema: Resolución de problemas
+ Donde buscar ayuda?
+ Únete al grupo AndroidAPS de Facebook.
+ Lea la documentación de AndroidAPS.
+ Visite AndroidAPS Gitter Room.
+ Visite el soporte de Google AndroidAPS
+ Hable con su endocrinólogo.
+ https://androidaps.readthedocs.io/en/latest/EN/Installing-AndroidAPS/Update-to-new-version.html#troubleshooting
+ https://www.facebook.com/groups/AndroidAPSUsers/
+ https://gitter.im/MilosKozak/AndroidAPS
+ Tema: Plugins sobre Insulina
+ ¿Qué marca de insulina se puede utilizar con el plugin Ultra-Rapid-Oref?
+ Fiasp®
+ NovoRapid ®
+ Humalog®
+ Actrapid®
+ https://androidaps.readthedocs.io/en/latest/EN/Configuration/Config-Builder.html#insulin
+ Tema: Plugins de sensibilidad
+ ¿Qué algoritmo de sensibilidad tiene un rango de tiempo configurable?
+ https://androidaps.readthedocs.io/en/latest/EN/Configuration/Sensitivity-detection-and-COB.html
+ ¿Qué plugin de sensibilidad se debe utilizar para la funcionalidad UAM?
+ Tema: Errores en la entrada de carbohidratos
+ ¿Qué deberías hacer si has hecho una entrada incorrecta de carbohidratos?
+ En los Tratamientos, eliminar la entrada incorrecta de carbohidratos. Introducir los nuevos valores de carbohidratos.
+ Cómo agregar una insulina falsa utilizando la función llenado de cánula
+ Tema: Comida con Grasa y Proteína
+ ¿Qué hacer si su comida contiene una gran cantidad de grasas y /o proteínas?
+ Recalcular grasas y proteínas a los carbohidratos y utilizar la función \"carbohidratos extendidos\".
+ Recalcular grasa y proteínas a los carbohidratos y añadirlo al cálculo del bolo.
+ Utilice el bolus extendido para cubrir grasas y proteínas.
+ https://androidaps.readthedocs.io/en/latest/EN/Usage/Extended-Carbs.html
+ Tema: Supervisión remota
+ ¿Cómo puede supervisar la AAPS de su hijo de forma remota?
+ Cómo utilizar un sitio de \"Nightscout\".
+ App Dexcom seguidora si está usando la aplicación original Dexcom (sólo valores BG).
+ Dexcom Seguidora si está utilizando la aplicación xDrip.
+ xDrip ejecutado en modo seguidor.
+ Aplicación de Loop en el iPhone.
+ App de Spike en el iPhone.
+ https://androidaps.readthedocs.io/en/latest/EN/Children/Children.html
+ Tema: Factor de sensibilidad de la insulina
+ Los valores más altos de ISF llevan a una menor cantidad de insulina cuando AAPS corrige los valores altos de glucemia.
+ Los valores más bajos de ISF llevan a una menor cantidad de insulina cuando AAPS corrige los valores altos de glucemia.
+ El cambio de los valores de ISF no afecta a la cantidad de insulina que se entrega cuando AAPS corrige para compensar los valores altos de glucemia.
+ Tiene que especificar ISF en Preferencias.
+ El cambio del valor de ISF en el perfil es suficiente para aplicar el cambio.
+ https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#insulin-sensitivity-factor-isf-mmol-l-u-or-mg-dl-u
+ https://androidaps.readthedocs.io/en/latest/EN/Usage/Profiles.html
+ Tema: El ratio IC
+ Los ratios IC más altos conducen a menos insulina entregada por una cantidad determinada de carbohidratos.
+ Los ratios IC más bajos conducen a menos insulina entregada por una cantidad determinada de carbohidratos.
+ Si tiene 0 COB, cambiar la ratio IC conducirá a una cantidad distinta de insulina para corregir un valor de glucemia determinado.
+ El IC será diferente si cuenta con una unidad de pan como 10g o 12g.
+ IC significa: Cuántas unidades de pan están cubiertas por 1U de insulina.
+ https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#carbohydrate-to-insulin-ratio-cr-g-u
+ Tema: Cambio de perfil
+ Especificando el 90% en el cambio de perfil…
+ Las basales serán 10% más altas.
+ Las basales serán 10% más bajas.
+ El valor IC será 10% superior.
+ El valor IC será 10% inferior.
+ El valor sensibilidad será 10% superior.
+ El valor sensibilidad será 10% inferior.
+ En total obtendrás alrededor del 10% menos insulina.
+ El objetivo será 10% más alto.
+ El objetivo será 10% más bajo.
+ Sólo el objetivo inferior será 10% inferior.
+ https://androidaps.readthedocs.io/en/latest/EN/Usage/Profiles.html?highlight=profilewitch#profile-switch
+ Si se despierta 1h antes de lo habitual, ¿cómo debe notificar a AAPS el cambio en su horario?
+ Iniciar un cambio de perfil con un intervalo de tiempo de 1
+ Iniciar un cambio de perfil con un intervalo de tiempo de -1
+ https://androidaps.readthedocs.io/en/latest/EN/Usage/Profiles.html?highlight=profile%20switch#timeshift
+ Iniciar un cambio de perfil con un intervalo de tiempo de 60
+ Iniciar un cambio de perfil con un intervalo de tiempo de -60
+ https://androidaps.readthedocs.io/en/latest/EN/Module/module.html#good-individual-dosage-algorithm-for-your-diabetes-therapy
+ Tema: Ayuda con tasas basales
+ A donde ir para obtener ayuda con tasa basal y demás.
+ Tu equipo de diabetes
+ Google
+ Facebook
+
diff --git a/app/src/main/res/values-es-rES/objectives.xml b/app/src/main/res/values-es-rES/objectives.xml
new file mode 100644
index 0000000000..6252812668
--- /dev/null
+++ b/app/src/main/res/values-es-rES/objectives.xml
@@ -0,0 +1,68 @@
+
+
+
+ Atrás
+ Inicio
+ Verificar
+ %1$d. Objetivo
+ Objetivo %1$d no iniciado
+ Objetivo %1$d no finalizado
+ Configurar la visualización y la monitorización, analizar los valores basales y las ratios
+ Comprobar que los datos de glucosa están disponibles en Nightscout, y que los datos de la bomba de insulina se están subiendo
+ Comenzando en lazo abierto
+ Ejecutar en modo de lazo abierto durante unos días, y aceptar manualmente las basales temporales. Configure y use objetivos temporales y predeterminados (por ejemplo, para actividad o carbohidratos para hipoglucemia)
+ Entender el lazo abierto, incluidas las recomendaciones de basales temporales
+ Sobre la base de esa experiencia, decidir valores de máximo basal, y ajustar la bomba y preferencias
+ Iniciando el lazo cerrado con suspensión con baja glucosa
+ Ejecutar en lazo cerrado con max IOB=0 durante unos días sin demasiados valores bajos de glucosa
+ Ajuste del lazo cerrado, aumentando máximo IOB por encima de 0 y bajando gradualmente objetivos BG
+ Usar unos cuantos días, y al menos una noche sin alarmas de glucosa baja, antes de bajar valor de glucosa
+ Ajustar las basales y ratios, si es necesario, y luego activar auto-sens
+ Una semana con éxito en lazo cerrado durante el día con entrada regular de carbohidratos
+ Habilitar funciones adicionales para su uso durante el día, como el asistente de comida avanzado
+ Habilitar funciones adicionales para uso durante el día como SMB
+ ¡Debes leer el wiki y subir maxIOB para que SMB funcione bien! Para comenzar un buen valor sería maxIOB = bolo de comida medio + 3 x máximo basal diario
+ Glucosa disponible en NS
+ Estado de la bomba disponible en NS
+ Aprobación Manual
+ Completado: %1$s
+ Aprende a controlar AndroidAPS
+ Realice diferentes acciones en AndroidAPS
+ Establecer perfil 90% durante 10 min (Pulsación larga en nombre del perfil en Resumen)
+ Simular ducha. Desconectar bomba durante 1h (Pulsación larga en el lazo abierto)
+ ... y volver a conectar de la misma manera
+ Crear un objetivo temporal personalizado con 10 min de duración (Pulsación larga en tu objetivo actual)
+ En Config Builder habilitar el plugin Acciones, hágalo visible y muestre su contenido desde el menú superior
+ Mostrar contenido del plugin Loop
+ Usar función de escala mediante un gráfico BG pulsado largo
+ Intro
+ Introduzca el código obtenido de los desarrolladores para eludir el resto de objetivos
+ Código aceptado
+ Código no válido
+ Compruebe su conocimiento
+ Responder correctamente
+ Respuesta deshabilitada a: %1$s
+ Respuesta incorrecta!
+ 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
+ Sin conexión a Internet
+ Fallo tiempo de recuperación
+ No se cumplen los requisitos de objetivo
+
+ %1$d día
+ %1$d días
+
+
+ %1$d hora
+ %1$d horas
+
+
+ %1$d minuto
+ %1$d minutos
+
+
diff --git a/app/src/main/res/values-es-rES/strings.xml b/app/src/main/res/values-es-rES/strings.xml
index 561ee5ded5..7ff5910adf 100644
--- a/app/src/main/res/values-es-rES/strings.xml
+++ b/app/src/main/res/values-es-rES/strings.xml
@@ -5,8 +5,7 @@
-
- Seguridad de tratamientos
+ Seguridad tratamientosMáximo Bolo permitido [U]Máximos carbohidratos permitidos [g]Preferencias
@@ -57,9 +56,6 @@
Usar tu reloj WearOS para observar y controlar AndroidAPS.Mostrar información sobre tu lazo en tu esfera xDrip+.Control remoto de AndroidAPS mediante comandos SMS.
- Atrás
- Inicio
- VerificarUnidadesDIA (Duración Insulina Activa)IC (Ratio Insulina/Carbohidratos)
@@ -102,6 +98,7 @@
PerfilDatos de comidasResultado
+ Resultado: %1$s %2$ssNo hay disponibles datos de glucosaNinguna acción requeridaSolicitud
@@ -177,9 +174,6 @@
Versión de NSClient no soportadaVersión no aceptada de NightscoutNSClient no instalado. ¡Registro perdido!
- BG disponible en NS
- Estado de la bomba disponible en NS
- Aprobación ManualLOOP DESACTIVADO POR RESTRICCIONESBasal IOBRestricción aplicada en bolo
@@ -222,7 +216,7 @@
Basal TemporalBolo extendidoNightscout versión:
- Faltan
+ Falta %1$dgPreferencias exportadasExportar ajustes aImportar configuración de
@@ -317,21 +311,6 @@
DETENER PULSADOEsperando bombaSe van a infundir %1$.2fU
- Configuración de visualización y monitorización, y análisis de basales y ratios
- Comprobar que los datos de BG están disponibles en Nightscout, y que los datos de la bomba de insulina se están subiendo
- Comenzando en lazo abierto
- Ejecutar en modo de lazo abierto durante unos días, y aceptar manualmente las basales temporales. Configure y use objetivos temporales y predeterminados (por ejemplo, para actividad o carbohidratos para hipoglucemia)
- Entender el lazo abierto, incluidas las recomendaciones de basales temporales
- Sobre la base de esa experiencia, decidir valores de máximo basal, y ajustar la bomba y preferencias
- Iniciando el lazo cerrado con suspensión con baja glucosa
- Ejecutar en lazo cerrado con max IOB=0 durante unos días sin demasiados valores bajos de glucosa
- Ajuste del lazo cerrado, aumentando máximo IOB por encima de 0 y bajando gradualmente objetivos BG
- Usar unos cuantos días, y al menos una noche sin alarmas de glucosa baja, antes de bajar valor de glucosa
- Ajustar las basales y ratios, si es necesario, y luego activar auto-sens
- Una semana con éxito en lazo cerrado durante el día con entrada de carbohidratos
- Habilitar funciones adicionales para su uso durante el día, como asistente de comida avanzado
- Habilitar funciones adicionales para uso durante el día como SMB
- ¡Debes leer el wiki y subir maxIOB para que SMB funcione bien! Para comenzar un buen valor sería maxIOB = bolo de comida medio + 3 x máximo basal diarioAlcanzado el límite permitidoSin perfil seleccionadoLazo se ha desactivado
@@ -565,14 +544,12 @@
Activar superbolo en asistenteActivar función superbolo en asistente. No lo actives hasta que hayas aprendido lo que realmente hace. ¡PUEDE CAUSAR SOBREDOSIS DE INSULINA usándolo sin precaución!Mostrar luces de estado en la pantalla de inicio
- Mostrar luces de estado originales en la pantalla de inicio
- Habilitar el estado para tiempo de la cánula, tiempo de la insulina, tiempo del sensor y nivel de batería en la pantalla de inicio.Mostrar luces de estado extendidas en pantalla de inicioHabilita luces de estado extendidas para tiempo de cánula, tiempo de insulina, tiempo del sensor, reservorio y nivel de batería en pantalla de inicio.Umbral de advertencia de nivel de reservorio [U]Umbral crítico de nivel de reservorio [U]
- Umbral de advertencia de nivel de batería [%%]
- Umbral crítico de nivel de batería [%%]
+ Umbral de advertencia de nivel de pila [%]
+ Umbral crítico de nivel de batería [%]IOBCOBFirmware
@@ -642,7 +619,7 @@
CancelarFaltan perfiles por cargar!Valores no guardados!
- Permitir emisión de mensajes a otras aplicaciones (como xDrip).
+ Habilite las transmisiones a otras aplicaciones (como xDrip). ¡ No habilite si tiene más de una instancia de AAPS o NSClient instalada!Permitir emisión de mensajes localmente.ACTIVIDAD Y FEEDBACKCARBS Y BOLUS
@@ -866,8 +843,6 @@
Falta Cambio de Perfil. Haga un Cambio de Perfil o presione \"Activar perfil\" en PerfilLocal.Contador BolosContador TBR
- Objetivo %1$d no iniciado
- Objetivo %1$d no finalizadoLa bomba no tiene capacidad basal temporalTasa Basal no valida en la bombaLazo cerrado deshabilitado en preferencias
@@ -989,7 +964,6 @@
¡Logrado, bien hecho!No logradoTiempo agotado
- %1$d. ObjetivoPoctechRecibir valores de glucosa de PoctechRecibir valores de glucosa de Tomato app (MiaoMiao)
@@ -1370,46 +1344,33 @@
Obtener la basal temporalEstablecer la basal temporalFijar Bolo
- %2$.1fg %3$.2fU]]>
+ Cambiar perfil a
+ Cambiar perfil a %1$s
+ Última conexión con la bomba
+ Última conexión con la bomba [ minutos atrás]
+ Última conexión con la bomba hace %1$s %2$s min
+ Enviar a %1$s
+ Enviar SMS a todos los números en las preferencias
+ Mandar mensaje SMS
+ %2$+.2fU]]>Restricción de bolo aplicada: %2$.2fU a %3$.2fU]]>
- ! Se ha detectado una absorción lenta de hidratos de carbono: %2$d% de tiempo. Compruebe de nuevo su calculo. Los COB se pueden sobrestimar, por lo que ¡se podría administrar más insulina de la cuenta!]]>
+ ! Se ha detectado una absorción lenta de hidratos de carbono: %2$d%% de tiempo. Compruebe de nuevo su calculo. Los COB se pueden sobrestimar, por lo que ¡se podría administrar más insulina de la cuenta!]]>%1$.0f/%2$dUAdministrar esta parte del resultado del asistente de bolos [%]El asistente de bolos realiza el cálculo, pero solo se entrega esta parte de la insulina calculada. Útil con el algoritmo SMB.Cargando...Silenciar
- Completado: %1$s
- Aprende a controlar AndroidAPS
- Realice diferentes acciones en AndroidAPS
- Establecer perfil 90% durante 10 min (Pulsación larga en nombre del perfil en Resumen)
- Simular ducha. Desconectar bomba durante 1h (Pulsación larga en el bucle abierto)
- ... y volver a conectar de la misma manera
- Crear un objetivo temporal personalizado con 10 min de duración (Pulsación larga en tu objetivo actual)
- En Config Builder habilitar el plugin Acciones, hágalo visible y muestre su contenido desde el menú superior
- Mostrar contenido del plugin Loop
- Usar función de escala mediante un gráfico BG pulsado largo
- Intro
- Introduzca el código obtenido de los desarrolladores para eludir el resto de objetivos
- Código aceptado
- Código no válido
- Compruebe su conocimiento
- Responder correctamente
- Respuesta deshabilitada a: %1$s
- Respuesta incorrecta!
- Siguien&te sin terminar
+ Intervalo de tiempo
+ El tiempo está entre %1$s y %2$s
+ Entre Cerrar
- Solicitad código: %1$s
- (compruebe todas las respuestas correctas)
-
- %1$d día
- %1$d días
-
-
- %1$d hora
- %1$d horas
-
-
- %1$d minuto
- %1$d minutos
-
+ Aumentar el valor basal máximo porque el ajuste es inferior a tu base máxima en el perfil
+ El cuerpo del mensaje es inválido
+ %1$s ISF: %2$.1f
+ %1$.0fg IC: %2$.1f
+ %1$.1fg IC: %2$.1f
+ %1$d%%
+ Asistente Bolus
+ min
+ %1$dg
diff --git a/app/src/main/res/values-fi-rFI/exam.xml b/app/src/main/res/values-fi-rFI/exam.xml
new file mode 100644
index 0000000000..70489fbc5e
--- /dev/null
+++ b/app/src/main/res/values-fi-rFI/exam.xml
@@ -0,0 +1,3 @@
+
+
+
diff --git a/app/src/main/res/values-fi-rFI/objectives.xml b/app/src/main/res/values-fi-rFI/objectives.xml
new file mode 100644
index 0000000000..70489fbc5e
--- /dev/null
+++ b/app/src/main/res/values-fi-rFI/objectives.xml
@@ -0,0 +1,3 @@
+
+
+
diff --git a/app/src/main/res/values-fi-rFI/strings.xml b/app/src/main/res/values-fi-rFI/strings.xml
index 7879323748..df88c88e20 100644
--- a/app/src/main/res/values-fi-rFI/strings.xml
+++ b/app/src/main/res/values-fi-rFI/strings.xml
@@ -5,7 +5,6 @@
-
diff --git a/app/src/main/res/values-fr-rFR/exam.xml b/app/src/main/res/values-fr-rFR/exam.xml
new file mode 100644
index 0000000000..c908bb5b59
--- /dev/null
+++ b/app/src/main/res/values-fr-rFR/exam.xml
@@ -0,0 +1,169 @@
+
+
+
+ Qu\'est-ce qu\'il y a de vrai pour le DAI (Durée Action Insuline)?
+ Rubrique : Durée de l\'Action de l\'Insuline
+ La valeur minimale est de 3 heures.
+ La valeur minimale est de 5 heures.
+ https://androidaps.readthedocs.io/en/latest/CROWDIN/fr/Configuration/Config-Builder.html?#insulin
+ La signification est la même que le paramètre DAI utilisé dans votre pompe.
+ Vous devez déterminer votre valeur personnelle (mais pas moins de 5 heures).
+ Rubrique: Cible Temporaire Hypo
+ Quelle est la principale raison de fixer une CT hypo ?
+ Pour empêcher la glycémie de baisser si aucune basale temporaire en cours d\'exécution.
+ Afin d\'éviter qu\' AAPS n\'administre trop d\'insuline suite à une forte montée de la glycémie causée par des glucides à action rapide utilisés pour traiter une hypoglycémie.
+ https://androidaps.readthedocs.io/en/latest/CROWDIN/fr/Usage/temptarget.html
+ Quel profil peut être utilisé et configuré hors ligne?
+ Rubrique : Profil Hors Ligne
+ Le profil NS peut être utilisé, mais il n\'est pas configuré.
+ https://androidaps.readthedocs.io/en/latest/CROWDIN/fr/Configuration/Config-Builder.html#profile
+ Rubrique : Déconnexion de la pompe
+ Que faire en déconnectant la pompe ?
+ Cliquez sur \"Déconnecter la pompe\" pour que APS sache qu\'aucune insuline ne soit délivrée.
+ Cliquez sur \"Suspendre la boucle\" pour que AAPS s\'arrête tant que la pompe est déconnectée.
+ Ne changez rien dans AAPS, débranchez juste la pompe.
+ https://androidaps.readthedocs.io/en/latest/CROWDIN/fr/Getting-Started/FAQ.html#other-settings
+ Rubrique : Paramètres AndroidAPS
+ Quelles sont les meilleures pratiques pour sauvegarder vos paramètres ?
+ Les exporter localement à partir du menu Maintenance.
+ Stocker le fichier exporté à un autre endroit comme un email, Dropbox, Google drive…
+ Les exporter juste après l\'installation d\'AAPS.
+ Exportez-les après avoir modifié les paramètres.
+ Exportez-les après avoir atteint un objectif.
+ Les exporter lorsque vous terminez le paramétrage initial.
+ https://androidaps.readthedocs.io/en/latest/CROWDIN/fr/Usage/ExportImportSettings.html
+ https://androidaps.readthedocs.io/en/latest/CROWDIN/fr/Getting-Started/FAQ.html#what-emergency-equipment-is-recommended-to-take-with-me
+ Rubrique : Lectures MGC incohérentes
+ Que faut-il faire si les données de MGC sont bruitées ?
+ Rien, AAPS s\'en occupera.
+ Désactivez la boucle pour éviter un surdosage.
+ Remplacer le capteur MGC.
+ Éteindre le téléphone.
+ https://androidaps.readthedocs.io/en/latest/CROWDIN/fr/Usage/Smoothing-Blood-Glucose-Data-in-xDrip.html#smoothing-blood-glucose-data
+ Vérifiez que votre application de MGC filtre les glycémies.
+ Rubrique : Activités physiques
+ Comment pouvez-vous aider le système à gérer l\'exercice physique ?
+ Utilisation de la fonction cible temporaire.
+ Faire un changement de profil inférieur à 100%.
+ Faire un changement de profil supérieur à 100%.
+ Arrêter la boucle.
+ Définissez une cible temporaire d\'activité avant de commencer votre effort.
+ Définir une cible temporaire d\'activité après le début d\'un effort entraîne des résultats moins efficace que si elle est définie avant.
+ https://androidaps.readthedocs.io/en/latest/CROWDIN/fr/Usage/temptarget.html#activity-temp-target
+ Rubrique : Désactivation/activation de boucle
+ Est-ce que je reçois de l\'insuline lorsque la boucle est désactivée / suspendue ?
+ Oui, l\'insuline basale continue à être délivrée.
+ Non, l\'injection d\'insuline est arrêtée.
+ Rubrique : Tests des débits de basal, SI et G/I
+ Quand dois-je valider les débits de basal, SI et G/I ?
+ Avant de commencer la boucle.
+ Lors d\'hypoglycémies fréquentes.
+ Lors d\'hyperglycémies fréquentes.
+ https://androidaps.readthedocs.io/en/latest/CROWDIN/fr/Getting-Started/FAQ.html#androidaps-settings
+ Rubrique : Les Prérequis
+ De quoi ai-je besoin ?
+ Informations de profil validées (Basal, G/I, SI, DAI).
+ Un ordinateur pour créer un APK.
+ Un téléphone compatible.
+ Une voiture.
+ Nightscout pour réussir les objectifs.
+ Un compte Tidepool.
+ Un compte Google.
+ Un compte Github.
+ Expérience de développement Android.
+ Une pompe MiniMed 670G.
+ https://androidaps.readthedocs.io/en/latest/CROWDIN/fr/Module/module.html
+ Une montre connectée.
+ Un MGC pris en charge et compatible.
+ Rubrique : Mettre à jour AndroidAPS
+ Qu\'est-ce qui est vrai ?
+ Vous devez avoir Git installé.
+ Mettre à jour dès qu\'une nouvelle version est publiée et avoir suffisamment de temps pour le faire.
+ Vous devez utiliser les mêmes clés de signature.
+ Ne jamais mettre à jour si le système fonctionne correctement.
+ Demandez à un ami le nouveau APK.
+ https://androidaps.readthedocs.io/en/latest/CROWDIN/fr/Installing-AndroidAPS/Update-to-new-version.html#update-to-a-new-version-or-branch
+ Rubrique : Dépannage
+ Où chercher de l\'aide ?
+ Rejoindre le groupe Facebook d\'AndroidAPS.
+ Lisez la documentation AndroidAPS.
+ Consulter la Gitter room pour AndroidAPS.
+ Consulter le support Google d\'AndroidAPS
+ Parler en à votre diabétologue.
+ https://androidaps.readthedocs.io/en/latest/CROWDIN/fr/Installing-AndroidAPS/Update-to-new-version.html#troubleshooting
+ https://www.facebook.com/groups/AndroidAPSUsers/
+ https://gitter.im/MilosKozak/AndroidAPS
+ Rubrique : Plugins d\'Insuline
+ Quelle marque d\'insuline peut être utilisée avec le plugin \"Ultra-Rapid-Oref\" ?
+ Fiasp®
+ Novorapid®
+ Humalog®
+ Actrapid®
+ https://androidaps.readthedocs.io/en/latest/CROWDIN/fr/Configuration/Config-Builder.html#insulin
+ Rubrique : Plugins de Sensibilité
+ Quel algorithme de sensibilité a un intervalle de temps paramétrable ?
+ https://androidaps.readthedocs.io/en/latest/EN/Configuration/Sensitivity-detection-and-COB.html
+ Quel plugin de sensibilité doit être utilisé pour la fonction RNP (UAM) ?
+ Rubrique : Entrées de glucides erronées
+ Que devez-vous faire si vous avez renseigné une valeur erronée de glucides ?
+ Dans Traitements, supprimez la mauvaise valeur de glucides. Entrez la nouvelle.
+ Ajouter une insuline fictive à l\'aide de la fonction Remplissage
+ Rubrique : Aliments avec Graisses et Protéines
+ Que faire si votre nourriture contient une grande quantité de matières grasses ou de protéines ?
+ Convertir les graisses et les protéines en glucides et utiliser la fonction \"glucides étendus\".
+ Convertir les graisses et protéines en glucides et ajoutez les au calcul du Bolus.
+ Utiliser les Bolus étendus pour gérer les graisses et les protéines.
+ https://androidaps.readthedocs.io/en/latest/CROWDIN/fr/Usage/Extended-Carbs.html
+ Rubrique : Surveillance à distance
+ Comment pouvez-vous surveiller AAPS de votre enfant à distance ?
+ En utilisant un site Nightscout.
+ Dexcom Follow si vous utilisez l\'application officielle Dexcom (Glycémie uniquement).
+ Dexcom Follow si vous utilisez l\'application xDrip.
+ xDrip exécuté en mode suiveur.
+ Application Loop sur iPhone.
+ Application Spike sur iPhone.
+ https://androidaps.readthedocs.io/en/latest/CROWDIN/fr/Children/Children.html
+ Rubrique : Sensibilité à l\'Insuline (SI)
+ Les valeurs de SI plus élevées conduisent à moins d\'insuline injectée quand AAPS corrige une hyperglycémie.
+ Des valeurs plus faibles de SI entraînent une diminution de l\'administration d\'insuline lorsque l\'AAPS corrige une hyperglycémie.
+ Changer les valeurs de SI n\'a aucun effet sur la quantité d\'insuline injectée quand AAPS corrige une hyperglycémie.
+ Vous devez renseigner la SI dans les Préférences.
+ La modification de la SI dans le profil est suffisant pour appliquer le changement.
+ https://androidaps.readthedocs.io/en/latest/CROWDIN/fr/Getting-Started/FAQ.html#insulin-sensitivity-factor-isf-mmol-l-u-or-mg-dl-u
+ https://androidaps.readthedocs.io/en/latest/CROWDIN/fr/Usage/Profiles.html
+ Rubrique : Ratio Glucides/Insuline
+ Les ratios G/I plus élevés conduisent à moins d\'insuline injectée pour une quantité donnée de glucides.
+ Les ratios G/I plus faibles conduisent à moins d\'insuline injectée pour une quantité donnée de glucides.
+ Si vous avez 0 GA, changer le ratio G/I conduira à différentes quantités d\'insuline pour corriger une valeur de glycémie donnée.
+ Le G/I sera différent si vous comptez l\'unité de pain à 10g ou à 12g.
+ Le G/I (Ratio Glucides/Insuline) est : combien d\'unités de pain sont couverte par 1U d\'insuline.
+ https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#carbohydrate-to-insulin-ratio-cr-g-u
+ Rubrique : Changement de profil
+ Quand on renseigne 90% dans le changement de profil…
+ Le débit de base sera 10% plus élevé.
+ Le débit de base sera 10% plus faible.
+ Le G/I sera augmenté de 10%.
+ Le G/I sera diminué de 10%.
+ La valeur de SI sera augmentée de 10%.
+ La valeur SI sera diminuée de 10%.
+ Vous aurez au total environ 10% d\'insuline en moins.
+ La Cible sera 10% plus élevée.
+ La Cible sera 10% plus faible.
+ Seule la cible inférieure sera diminuée de 10%.
+ https://androidaps.readthedocs.io/en/latest/CROWDIN/fr/Usage/Profiles.html?highlight=profile%20switch#profile-switch
+ Si vous vous réveillez 1h plus tôt que d\'habitude, comment informez-vous AAPS du changement de votre planning ?
+ Faites un changement de profil avec un décalage horaire de 1
+ Faites un changement de profil avec un décalage horaire de -1
+ https://androidaps.readthedocs.io/en/latest/EN/Usage/Profiles.html?highlight=profilewitch#timeshift
+ Faites un changement de profil avec un décalage horaire de 60
+ Faites un changement de profil avec un décalage horaire de -60
+ https://androidaps.readthedocs.io/en/latest/CROWDIN/fr/Module/module.html#good-individual-dosage-algorithm-for-your-diabetes-therapy
+ Rubrique : Aide avec le débit Basal
+ Où aller pour avoir de l\'aide avec le débit Basal etc.
+ Votre équipe médicale
+ Google
+ Facebook
+ Autres médicaments
+ AAPS réduit le débit de basal pour augmenter le taux de sucre dans le sang. Les médicaments du groupe d\'inhibiteurs SGLT2 (gliflozins) peuvent empêcher l\'augmentation prévue de la glycémie et ainsi produire une carence dangereuse en insuline (DKA).
+\nLes noms de marque communes sont : Invokana®, Forxiga®, Jardiance®, Steglatro®, Suglat®, Apleway®, Deberza®, Synjardy®, Vokanamet®, Xigduo®.\n\nJe m\'engage à ne pas prendre ces médicaments lors de l\'utilisation d\'AAPS ou à désactiver la boucle avant de les utiliser.
+
diff --git a/app/src/main/res/values-fr-rFR/objectives.xml b/app/src/main/res/values-fr-rFR/objectives.xml
new file mode 100644
index 0000000000..d9e62aefce
--- /dev/null
+++ b/app/src/main/res/values-fr-rFR/objectives.xml
@@ -0,0 +1,68 @@
+
+
+
+ Retour
+ Départ
+ Vérifier
+ %1$d. Objectif
+ Objectif %1$d non démarré
+ Objectif %1$d non terminé
+ Paramétrage de la visualisation et la surveillance des données, analyse des débits Basal et des ratios
+ Vérifiez que la Glycémie est disponible sur Nightscout et que les données d’insuline ont été téléchargées de la pompe
+ Démarrage de la boucle ouverte
+ Utilisez votre boucle ouverte pendant plusieurs jours et lancez manuellement plusieurs débits Basal temporaires. Définissez et utilisez les cibles temporaires et celles par défaut (ex : sport ou resucrage suite à une hypo)
+ Compréhension de la Boucle Ouverte, y compris les propositions de débits Basal temporaires
+ Partant de ce constat, décidez quel doit être le débit de base maximum, et entrez le dans la pompe et les préférences
+ Démarrage de la boucle fermée avec le système AGB ( Arrêt pour Glycémie Basse )
+ Activez la boucle fermée avec le paramètre max IOB = 0 pendant plusieurs jours sans avoir un trop grand nombre d\'AGB (Arrêt pour Glycémie Basse)
+ Réglage de la Boucle Fermée, augmentation de l\'IA (Insuline Active) maximale au dessus de 0 et abaissement progressif des cibles glycémiques
+ Utilisez pendant plusieurs jours, et au moins une nuit sans alarme d’hypoglycémie, avant d\'abaisser les cibles glycémiques
+ Ajustement des débits Basal et des ratios si nécessaire, puis activation de la fonction auto-sens
+ 1 semaine de Boucle Fermée en journée en saisissant régulièrement les glucides
+ Activation de fonctionnalités supplémentaires en journée, comme l\'Aide au Repas Améliorée ARA (AMA)
+ Activation de fonctionnalités supplémentaires pour l\'utilisation en journée, telles que la fonction SMB
+ Lisez le wiki et augmentez le maxIA pour que les SMBs fonctionnent correctement ! Un bon début est maxIA = moyenne des Bolus Repas + 3 x maximum débit Basal quotidien
+ Glycémie disponible sur NS
+ Statut de la pompe disponible sur NS
+ Activation manuelle
+ Accompli : %1$s
+ Apprendre comment contrôler AndroidAPS
+ Exécutez différentes actions dans AndroidAPS
+ Sélection du profil à 90% pendant 10 min (appui long sur le nom du profil à l\'Accueil)
+ Simulation d\'une douche. Déconnectez la pompe pendant 1h (Appui long sur Boucle Ouverte)
+ ... et reconnectez la pompe de la même façon
+ Créer une cible temporaire personnalisée avec une durée de 10 min (Appui long sur votre cible actuelle)
+ Dans le Générateur de configuration, activez le plugin Actions, rendez le visible et affichez son contenu dans le menu supérieur
+ Affichage du contenu du plugin Boucle
+ Modification de l\'échelle du graphique par un appui long sur la courbe de glycémie
+ Entrer
+ Entrez le code obtenu auprès des développeurs pour contourner le reste des objectifs
+ Code accepté
+ Code invalide
+ Prouver ses connaissances
+ Étudiez et répondez correctement aux questions
+ Réponse désactivée jusqu\'à : %1$s
+ Mauvaise réponse !
+ 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
+ Non connecté à Internet
+ Échec de la récupération de l\'heure
+ Exigences de l\'objectif non atteintes
+
+ %1$d jour
+ %1$d jours
+
+
+ %1$d heure
+ %1$d heures
+
+
+ %1$d minute
+ %1$d minutes
+
+
diff --git a/app/src/main/res/values-fr-rFR/strings.xml b/app/src/main/res/values-fr-rFR/strings.xml
index a31592f954..df7a45cd62 100644
--- a/app/src/main/res/values-fr-rFR/strings.xml
+++ b/app/src/main/res/values-fr-rFR/strings.xml
@@ -5,7 +5,6 @@
-
Sécurités des traitementsMaximum Bolus autorisé [U]Maximum de Glucides autorisé [g]
@@ -46,7 +45,7 @@
Intégration pour les pompes qui n’ont pas encore de pilote (Boucle Ouverte)La Sensibilité est calculée de la même manière que Oref0, mais vous pouvez spécifier la periode concernée. L\'absorption minimale des glucides est calculée à partir des temps d’absorption max des glucides du menu préférences.Sensibilité est calculée à partir des données sur les dernières 24h et les glucides (non absorbés) ne sont plus pris en compte après l’heure spécifiée dans les préférences.
- Sensibilité est calculée à partir des données des dernières 8 heures et des glucides (si non absorbés) ne sont plus pris en compte après le temps spécifié dans les préférences. Plugin calcule également UAM.
+ Sensibilité est calculée à partir des données des dernières 8 heures et des glucides (si non absorbés) ne sont plus pris en compte après le temps spécifié dans les préférences. Plugin calcule également RNS (UAM).Sensibilité est calculée comme une moyenne pondérée des écarts. Les écarts les plus récents ont un poids plus élevé. L\'absorption minimale des glucides est calculée à partir des temps d’absorption des glucides max du menu préférences. Cet algorithme est le plus rapide pour s\'adapter aux changements de sensibilité.Recevoir les valeurs de glycémie de l’app Eversense patchée.Recevoir les glycémies depuis Glimp.
@@ -57,12 +56,9 @@
Surveillez et contrôlez AndroidAPS en utilisant votre montre WearOS.Afficher les informations de votre Boucle sur votre écran de montre xDrip+.Commander à distance AndroidAPS en utilisant les commandes SMS.
- Retour
- Démarrer
- VérifierUnitésDAI
- I:G (Ratio Insuline/Glucides)
+ G/I (g/U)SI Sensibilité InsulineBasalCible
@@ -102,6 +98,7 @@
ProfilDonnées repasRésultats
+ Résultat: %1$s %2$sPas de données glycémiques disponiblesPas de changement demandéRequête
@@ -177,9 +174,6 @@
Version incompatible du NSClientVersion incompatible de NightscoutNSClient non installé. Enregistrement perdu !
- Glycémie disponible sur NS
- Statut pompe disponible sur NS
- Activation manuelleBOUCLE DÉSACTIVÉE PAR RESTRICTIONSBasal IARestriction du Bolus appliquée
@@ -190,8 +184,8 @@
QuestionActivité PhysiqueChangement Zone D\'insertion
- Insertion Capteur MCG
- Début Capteur MCG
+ Insertion Capteur MGC
+ Début Capteur MGCChangement du RéservoirChangement profilBolus Goûter
@@ -208,7 +202,7 @@
CapteurGlucidesInsuline
- Durée glucides
+ Heure glucidesDiviserDuréePour cent
@@ -222,7 +216,7 @@
Basal TemporaireBolus étenduVersion Nightscout :
- Manque
+ Manquant %1$dgPréférences exportéesExporter les paramètres auImporter les paramètres depuis
@@ -277,7 +271,7 @@ L\'ENSEMBLE DES RISQUES LIÉS À LA QUALITÉ ET À LA PERFORMANCE DU PROGRAMME S
DoigtCapteurManuel
- Cible temporaire
+ Cible temp.Annulation Cible TemporaireParamètres du profil DanaRDurée d\'Action [h]
@@ -318,8 +312,6 @@ L\'ENSEMBLE DES RISQUES LIÉS À LA QUALITÉ ET À LA PERFORMANCE DU PROGRAMME S
BOUTON ARRÊT ACTIVÉAttente connection pompe%1$.2fU vont être injectées
- Paramétrer la visualisation et la surveillance des données, analyser les débits de basal et les ratios
- Vérifiez que la Glycémie est disponible sur Nightscout et que les données d’insuline ont été téléchargées de la pompeVous avez atteint la limite maximaleAucun profil séléctionnéLa Boucle été désactivée
@@ -434,13 +426,13 @@ L\'ENSEMBLE DES RISQUES LIÉS À LA QUALITÉ ET À LA PERFORMANCE DU PROGRAMME S
ACTCONFBOUCLE
- SP
+ P.S.OAPS
- LP
+ P.L.DANAACCUEILPOMPEV
- PROFIL NS
+ P.NSTRAITCPOBJ
@@ -538,7 +530,7 @@ L\'ENSEMBLE DES RISQUES LIÉS À LA QUALITÉ ET À LA PERFORMANCE DU PROGRAMME S
Durée incorrecteBoucle suspendueBoucle relancée
- Tendance 15 min
+ Delta 15 minGASuperbolusDémarrage de l\'app journaux vers NS
@@ -553,10 +545,12 @@ L\'ENSEMBLE DES RISQUES LIÉS À LA QUALITÉ ET À LA PERFORMANCE DU PROGRAMME S
Activer les Superbolus dans l’AssistantActiver la fonctionnalité SuperBolus dans l’Assistant. Ne pas l’activer avant de bien comprendre comment cela fonctionne réellement. IL PEUT PROVOQUER UNE OVERDOSE D’INSULINE SI UTILISÉ AVEUGLÉMENT !Afficher les lumières d\'état sur l\'écran d\'accueil
+ Afficher les lumières d\'état prolongées sur l\'écran d\'accueil
+ Activer les lumières d\'état prolongées pour AgeC, AgeI, AgeS, niveaux du réservoir et de batterie sur l\'écran d\'accueil.Seuil d\'avertissement de niveau du réservoir [U]Seuil critique de niveau du réservoir [U]
- Seuil d’avertissement du niveau de batterie [%%]
- Seuil critique du niveau de la batterie [%%]
+ Seuil d’avertissement du niveau de batterie [%]
+ Seuil critique du niveau de la batterie [%]IAGAFirmware
@@ -626,11 +620,11 @@ L\'ENSEMBLE DES RISQUES LIÉS À LA QUALITÉ ET À LA PERFORMANCE DU PROGRAMME S
AnnulerLes profils ne sont pas tous téléchargés !Valeurs non enregistrées !
- Activer les transmissions de données sur d\'autres app. (ex. xDrip).
+ Active les diffusions vers d\'autres applications (comme xDrip). Ne pas activer si plusieurs instances d\'AAPS ou de NSClient sont installées !Activer les transmissions locales.ACTIVITÉ et FEEDBACKGLUCIDES et BOLUS
- MCG et OPENAPS
+ MGC et OPENAPSPOMPEValeur Basal [U/h] Durée [min]
@@ -778,13 +772,13 @@ L\'ENSEMBLE DES RISQUES LIÉS À LA QUALITÉ ET À LA PERFORMANCE DU PROGRAMME S
L\'administration de bolus et la vérification de l\'historique de la pompe ont échoué. Vérifiez la pompe manuellement. Si un bolus a été administré, il sera ajouté aux traitements au cours de la prochaine connexion avec la pompe.Pas assez d\'insuline dans le réservoir pour le bolusErreur administration bolus étendu
- Vue
+ AC-Ipassé(e)s%1$.2f hActiver en permanence les SMBActiver toujours SMB de manière autonome pour les bolus. Ceci est possible uniquement avec une source de glycémie ayant un très bon filtrage de données comme le G5Activer SMB après ingestion de glucides
- Activer SMB pendant 6h après ingestion de glucides, même s’il y a 0 GI (Glucides Actifs). Ceci est possible uniquement avec une source de glycémie ayant un très bon filtrage de données comme le G5
+ Activer SMB pendant 6h après ingestion de glucides, même s’il y a 0 GA (Glucides Actifs). Ceci est possible uniquement avec une source de glycémie ayant un très bon filtrage de données comme le G5Activer SMB avec les glucidesActiver SMB tant que des Glucides sont actifs.Activer SMB avec les cibles temporaires
@@ -800,8 +794,8 @@ L\'ENSEMBLE DES RISQUES LIÉS À LA QUALITÉ ET À LA PERFORMANCE DU PROGRAMME S
Ouvre xDrip+, le bouton de retour renverra vers AAPSNombre de glucides à ajouter lorsque vous appuyez sur le boutonQuantité d’insuline à ajouter lorsque vous appuyez sur le bouton
- Impossible d’exécuter l’application de MCG. Assurez-vous de que celle-ci est installée.
- MCG
+ Impossible d’exécuter l’application de MGC. Assurez-vous de que celle-ci est installée.
+ MGCHistoriqueNotifier en SMBAfficher SMB sur la montre comme un bolus standard.
@@ -850,15 +844,13 @@ L\'ENSEMBLE DES RISQUES LIÉS À LA QUALITÉ ET À LA PERFORMANCE DU PROGRAMME S
ProfileSwitch manquant. S’il vous plaît faire un changement de profil ou appuyez sur « Activer le profil » dans le LocalProfile.Nombre de bolusNombre de TBR
- Objectif %1$d non démarré
- Objectif %1$d non terminéPompe n’est pas capable de basals temporairesAucun taux basal valide provenant de la pompeMode de Boucle Fermée désactivé dans les préférencesAutosens désactivé dans les préférencesSMB désactivée dans les préférences
- Repas Non Prévu (UAM) désactivé dans les préférences
- Repas Non Prévu (UAM) désactivé car il utilise le plugin Sensibilité de Oref1
+ Repas Non Signalé (UAM) désactivé dans les préférences
+ Repas Non Signalé (UAM) désactivé car il utilise le plugin Sensibilité de Oref1Limiter le taux basal max à %1$.2f U/h en raison de %2$sLimite de la pompela valeur doit être positive
@@ -905,7 +897,7 @@ L\'ENSEMBLE DES RISQUES LIÉS À LA QUALITÉ ET À LA PERFORMANCE DU PROGRAMME S
Premier incrément de glucidesDeuxième incrément de glucidesTroisième incrément de glucides
- MCG
+ MGCUtilisez uniquement connexion Wi-fiWi-fi SSIDWi-fi uniquement pendant la charge
@@ -973,7 +965,6 @@ L\'ENSEMBLE DES RISQUES LIÉS À LA QUALITÉ ET À LA PERFORMANCE DU PROGRAMME S
Terminé, félicitations !Pas encore terminéTemps écoulé
- %1$d. ObjectifPoctechRecevoir les glycémies depuis l\'app PoctechRecevoir les valeurs de glycémie de l\'application Tomato (appareil MiaoMiao)
@@ -1069,7 +1060,7 @@ L\'ENSEMBLE DES RISQUES LIÉS À LA QUALITÉ ET À LA PERFORMANCE DU PROGRAMME S
Bolus mixte%1$.2f / %2$.2f U pour %3$d minActiver la notification de la fin DBT\n(réglage de pompe)
- Activer la notification de la fin de DBT\n(réglage de pompe)
+ Désactiver la notification de la fin de DBT\n(réglage de pompe)ActualiserIntégration des pompes Accu-Chek InsightNon inséré
@@ -1246,6 +1237,8 @@ L\'ENSEMBLE DES RISQUES LIÉS À LA QUALITÉ ET À LA PERFORMANCE DU PROGRAMME S
Non sélectionné (vue simple)Alcaline (vue étendue)Lithium (vue étendue)
+ NiZn (vue étendue)
+ Débogage de Bolus/TraitementsSCANNERARRÊT
@@ -1284,7 +1277,7 @@ L\'ENSEMBLE DES RISQUES LIÉS À LA QUALITÉ ET À LA PERFORMANCE DU PROGRAMME S
Non démarréInitialisation du RileyLink…Erreur RileyLink
- Préparation RileyLink et pompe
+ Association du RileyLink et de la PompeProblème communication avec la pompeConnecté
@@ -1354,7 +1347,15 @@ L\'ENSEMBLE DES RISQUES LIÉS À LA QUALITÉ ET À LA PERFORMANCE DU PROGRAMME S
Obtenir le Basal TemporaireDéfinir le Basal TemporaireDéfinir le Bolus
- %2$.1fg %3$.2fU]]>
+ Remplacer le profil par
+ Remplacer le profil par %1$s
+ Dernière connexion à la pompe
+ Dernière connexion de pompe [minutes]
+ Dernière connexion à la pompe %1$s il y a %2$s min
+ Envoyer SMS : %1$s
+ Envoyer SMS à tous les numéros dans les préférences
+ Envoyer SMS avec du texte
+ %2$+.2fU]]>Contraintes de Bolus appliquées : %2$.2fU à %3$.2f]]>!!!!! Absorption lente des glucides détectée : %2$d%% du temps. Vérifiez de nouveau votre calcul. Les GA (Glucides Actifs) peuvent être surestimés et alors plus d\'insuline pourrait être délivré !!!!!]]>%1$.0f / %2$d U
@@ -1362,16 +1363,19 @@ L\'ENSEMBLE DES RISQUES LIÉS À LA QUALITÉ ET À LA PERFORMANCE DU PROGRAMME S
L\'assistant Bolus effectue le calcul mais seulement cette partie de l\'insuline calculée est délivrée. Utile avec l\'algorithme SMB.Chargement ...Report alarme
-
- %1$d jour
- %1$d jours
-
-
- %1$d heure
- %1$d heures
-
-
- %1$d minute
- %1$d minutes
-
+ Plage horaire
+ L\'heure est comprise entre %1$s et %2$s
+ Entre
+ Fermer
+ Augmentation de la valeur du débit Basal max parce que ce paramètre est inférieur au débit Basal max de votre profil
+ Message invalide
+ %1$s SI: %2$.1f
+ %1$.0fg G/I: %2$.1f
+ %1$.1fg G/I: %2$.1f
+ %1$d%%
+ Assistant Bolus
+ min
+ %1$dg
+ On
+ Off
diff --git a/app/src/main/res/values-ga-rIE/exam.xml b/app/src/main/res/values-ga-rIE/exam.xml
new file mode 100644
index 0000000000..70489fbc5e
--- /dev/null
+++ b/app/src/main/res/values-ga-rIE/exam.xml
@@ -0,0 +1,3 @@
+
+
+
diff --git a/app/src/main/res/values-ga-rIE/objectives.xml b/app/src/main/res/values-ga-rIE/objectives.xml
new file mode 100644
index 0000000000..70489fbc5e
--- /dev/null
+++ b/app/src/main/res/values-ga-rIE/objectives.xml
@@ -0,0 +1,3 @@
+
+
+
diff --git a/app/src/main/res/values-ga-rIE/strings.xml b/app/src/main/res/values-ga-rIE/strings.xml
index 7879323748..df88c88e20 100644
--- a/app/src/main/res/values-ga-rIE/strings.xml
+++ b/app/src/main/res/values-ga-rIE/strings.xml
@@ -5,7 +5,6 @@
-
diff --git a/app/src/main/res/values-hr-rHR/exam.xml b/app/src/main/res/values-hr-rHR/exam.xml
new file mode 100644
index 0000000000..70489fbc5e
--- /dev/null
+++ b/app/src/main/res/values-hr-rHR/exam.xml
@@ -0,0 +1,3 @@
+
+
+
diff --git a/app/src/main/res/values-hr-rHR/objectives.xml b/app/src/main/res/values-hr-rHR/objectives.xml
new file mode 100644
index 0000000000..70489fbc5e
--- /dev/null
+++ b/app/src/main/res/values-hr-rHR/objectives.xml
@@ -0,0 +1,3 @@
+
+
+
diff --git a/app/src/main/res/values-hr-rHR/strings.xml b/app/src/main/res/values-hr-rHR/strings.xml
index 7879323748..df88c88e20 100644
--- a/app/src/main/res/values-hr-rHR/strings.xml
+++ b/app/src/main/res/values-hr-rHR/strings.xml
@@ -5,7 +5,6 @@
-
diff --git a/app/src/main/res/values-it-rIT/exam.xml b/app/src/main/res/values-it-rIT/exam.xml
new file mode 100644
index 0000000000..5240fa0c8f
--- /dev/null
+++ b/app/src/main/res/values-it-rIT/exam.xml
@@ -0,0 +1,169 @@
+
+
+
+ Cosa è vero riguardo DIA?
+ Argomento: Durata dell\'Azione dell\'Insulina
+ Il valore minimo è 3 ore.
+ Il valore minimo è 5 ore.
+ https://androidaps.readthedocs.io/en/latest/EN/Configuration/Config-Builder.html?#insulin
+ Il significato è uguale al parametro DIA utilizzato nel tuo micro.
+ Devi determinare il tuo valore individuale (ma non meno di 5 ore).
+ Argomento: Temp-Target \"Ipoglicemia\"
+ Qual è la ragione principale per impostare un TT Ipoglicemia?
+ Per impedire che la glicemia vada in basso se c\'è già in esecuzione una basale temporanea impostata a zero.
+ Per evitare che AAPS somministri troppa insulina dopo un aumento di glicemia causato da carboidrati a veloce assorbimento usati per trattare una glicemia bassa.
+ https://androidaps.readthedocs.io/en/latest/EN/Usage/temptarget.html
+ Quale profilo può essere usato e configurato offline?
+ Argomento: Profilo offline
+ Il profilo NS può essere utilizzato, ma non configurato.
+ https://androidaps.readthedocs.io/en/latest/EN/Configuration/Config-Builder.html#profile
+ Argomento: Disconnessione dal micro
+ Cosa dovrebbe essere fatto quando si disconnette il micro?
+ Click su \'Disconnetti micro\' cosicché AAPS sappia che non viene erogata alcuna insulina.
+ Click su \'Sospendi loop\' cosicché AAPS stoppi l\'attività di loop mentre il micro è disconnesso.
+ Non cambiare alcunché in AAPS, solo disconnettere il micro.
+ https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#other-settings
+ Argomento: Impostazioni di AndroidAPS
+ Quali sono le migliori pratiche per il backup delle impostazioni?
+ Esportarle localmente dal menu Manutenzione.
+ Salvare il file esportato in un altro posto come l\'email, Dropbox, Google drive…
+ Esportarle subito dopo l\'installazione di AAPS.
+ Esportarli dopo aver fatto modifiche d\'impostazione.
+ Esportarli dopo il completamento di un obiettivo.
+ Esportarle quando termini le configurazioni iniziali.
+ https://androidaps.readthedocs.io/en/latest/EN/Usage/ExportImportSettings.html
+ https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#what-emergency-equipment-is-recommended-to-take-with-me
+ Argomento: Letture CGM \"rumorose\" (noisy)
+ Cosa dovrebbe essere fatto se i dati CGM sono \"rumorosi\"?
+ Nulla, AAPS se ne occuperà.
+ Disabilitare il loop per evitare il sovradosaggio.
+ Sostituire il sensore CGM.
+ Spegnere il telefono.
+ https://androidaps.readthedocs.io/en/latest/EN/Usage/Smoothing-Blood-Glucose-Data-in-xDrip.html#smoothing-blood-glucose-data
+ Verificare che la tua app CGM faccia lo smoothing dei dati della glicemia.
+ Argomento: Esercizio fisico
+ Come puoi aiutare il sistema a gestire l\'esercizio fisico?
+ Utilizzo della funzione temp-target.
+ Fare un cambio profilo sotto il 100%.
+ Fare un cambio profilo sopra il 100%.
+ Stoppare il loop.
+ Impostare un temp-target \"attività\" prima dell\'inizio dell\'esercizio fisico.
+ L\'impostazione di un temp-target \"attività\" dopo l\'inizio dell\'esercizio fisico porta a risultati peggiori rispetto all\'avviarlo prima dell\'inizio dell\'esercizio.
+ https://androidaps.readthedocs.io/en/latest/EN/Usage/temptarget.html#activity-temp-target
+ Argomento: Loop Disabilitato/Sospeso
+ Ricevo insulina quando il loop è disabilitato/sospeso?
+ Sì, l\'insulina basale continua a essere erogata.
+ No, l\'erogazione di insulina è interrotta.
+ Argomento: Basale, ISF e Test IC
+ Quando dovrei verificare i valori di basali, ISF e IC?
+ Prima che io inizi l\'attività di loop.
+ Quando si verificano frequentemente glicemie basse.
+ Quando si verificano frequentemente glicemie alte.
+ https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#androidaps-settings
+ Argomento: Prerequisiti
+ Di cosa ho bisogno?
+ Informazioni profilo convalidate (Basale, IC, ISF, DIA).
+ Un computer per creare un APK.
+ Un telefono supportato.
+ Un\'auto.
+ Nightscout, per superare gli obiettivi.
+ Un account Tidepool.
+ Un account Google.
+ Un account Github.
+ Esperienza di sviluppo Android.
+ Un micro MiniMed 670G.
+ https://androidaps.readthedocs.io/en/latest/EN/Module/module.html
+ Uno smartwatch.
+ Un CGM Supportato.
+ Argomento: Aggiornamento di AndroidAPS
+ Cosa è vero?
+ Hai bisogno di avere Git installato.
+ Aggiornare appena la nuova versione viene rilasciata e avere abbastanza tempo per farlo.
+ Dovresti usare le stesse chiavi di firma.
+ Non aggiornare mai se il sistema funziona bene.
+ Chiedere al tuo amico il nuovo APK.
+ https://androidaps.readthedocs.io/en/latest/EN/Installing-AndroidAPS/Update-to-new-version.html#update-to-a-new-version-or-branch
+ Argomento: Risoluzione dei problemi
+ Dove cercare aiuto?
+ Entrare nel gruppo Facebook di AndroidAPS.
+ Leggere la documentazione di AndroidAPS.
+ Visitare la Gitter Room di AndroidAPS.
+ Visitare il supporto Google di AndroidAPS
+ Parlare con il tuo endocrinologo.
+ https://androidaps.readthedocs.io/en/latest/EN/Installing-AndroidAPS/Update-to-new-version.html#troubleshooting
+ https://www.facebook.com/groups/aapsitalia/
+ https://gitter.im/MilosKozak/AndroidAPS
+ Argomento: Plugin Insulina
+ Quale marca di insulina può essere usata con il plugin \'Ultra-Rapid-Oref\'?
+ Fiasp®
+ NovoRapid®
+ Humalog®
+ Actrapid®
+ https://androidaps.readthedocs.io/en/latest/EN/Configuration/Config-Builder.html#insulin
+ Argomento: Plugin di Sensibilità
+ Quale algoritmo di sensibilità ha un intervallo di tempo configurabile?
+ https://androidaps.readthedocs.io/en/latest/EN/Configuration/Sensitivity-detection-and-COB.html
+ Quale plugin di sensibilità deve essere utilizzato per la funzione UAM?
+ Argomento: Errori di immissione carboidrati
+ Cosa dovresti fare se hai fatto un inserimento non corretto di carboidrati?
+ Nella sezione Trattamenti, eliminare la voce carboidrati non corretta. Inserire nuovi carboidrati.
+ Aggiungere insulina fittizia usando la funzione di riempimento
+ Argomento: Cibo con Grassi e Proteine
+ Cosa fare se il tuo cibo contiene una grande quantità di grassi e/o proteine?
+ Convertire grassi e proteine in carboidrati e utilizzare la funzione \"carboidrati estesi\" (eCarbs).
+ Convertire grassi e proteine in carboidrati e aggiungerli al calcolo del bolo.
+ Utilizzare il bolo esteso per coprire grassi e proteine.
+ https://androidaps.readthedocs.io/en/latest/EN/Usage/Extended-Carbs.html
+ Argomento: Monitoraggio remoto
+ Come puoi monitorare AAPS del tuo bambino in remoto?
+ Usando un sito Nightscout.
+ L\'app Dexcom Follow se stai usando l\'app originale Dexcom (solo glicemia).
+ Dexcom Follow se stai usando l\'app xDrip.
+ xDrip in modalità follower.
+ App Loop su iPhone.
+ App Spike su iPhone.
+ https://androidaps.readthedocs.io/en/latest/EN/Children/Children.html
+ Argomento: Fattore di Sensibilità all\'Insulina
+ Valori ISF più alti portano a una minore erogazione di insulina quando AAPS corregge glicemie alte.
+ Valori ISF più bassi portano a una minore erogazione di insulina quando AAPS corregge glicemie alte.
+ Cambiare i valori di ISF non ha alcun effetto sulla quantità di insulina erogata quando AAPS corregge glicemie alte.
+ Devi inserire ISF nelle Preferenze.
+ Cambiare il valore ISF nel tuo profilo è sufficiente per applicare la modifica.
+ https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#insulin-sensitivity-factor-isf-mmol-l-u-or-mg-dl-u
+ https://androidaps.readthedocs.io/en/latest/EN/Usage/Profiles.html
+ Argomento: Il Rapporto IC
+ Rapporti IC più alti portano a una minore insulina erogata per una data quantità di carboidrati.
+ Rapporti IC più bassi portano a una minore insulina erogata per una data quantità di carboidrati.
+ Se hai 0 COB, cambiare il rapporto IC porterà a una differente quantità di insulina necessaria a correggere una determinata glicemia.
+ IC sarà diverso se consideri l\'unità di pane (BE) come 10g o 12g.
+ Il significato di IC è: Quante unità di pane (BE) sono coperte da 1U di insulina.
+ https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#carbohydrate-to-insulin-ratio-cr-g-u
+ Argomento: Cambio profilo
+ Quando si specifica il 90% nel cambio profilo…
+ Le basali saranno il 10% più alte.
+ Le basali saranno il 10% più basse.
+ Il valore IC sarà il 10% più alto.
+ Il valore IC sarà il 10% più basso.
+ Il valore ISF sarà il 10% più alto.
+ Il valore ISF sarà il 10% più basso.
+ Riceverai circa il 10% in meno di insulina, in totale.
+ Il target sarà il 10% più alto.
+ Il target sarà il 10% più basso.
+ Solo il target inferiore sarà il 10% più basso.
+ https://androidaps.readthedocs.io/en/latest/EN/Usage/Profiles.html?highlight=profile%20switch#profile-switch
+ Se ti svegli 1h prima del solito, come dovresti informare AAPS del cambiamento nei tuoi programmi?
+ Avviare un cambio profilo con un timeshift di 1
+ Avviare un cambio profilo con un timeshift di -1
+ https://androidaps.readthedocs.io/en/latest/EN/Usage/Profiles.html?highlight=profile%20switch#timeshift
+ Avviare un cambio profilo con un timeshift di 60
+ Avviare un cambio profilo con un timeshift di -60
+ https://androidaps.readthedocs.io/en/latest/EN/Module/module.html#good-individual-dosage-algorithm-for-your-diabetes-therapy
+ Argomento: Aiuto le con velocità basali
+ Dove andare per avere aiuto con le velocità basali e il resto.
+ Il tuo team diabetologico
+ Google
+ Facebook
+ Altri Medicinali
+ AAPS riduce la velocità basale per aumentare la glicemia. Farmaci appartenenti al gruppo degli inibitori dell\'SGLT2 (gliflozine) possono ostacolare l\'aumento previsto della glicemia e, quindi, provocare una pericolosa carenza di insulina (DKA).
+\nI marchi più comuni sono: Invokana®, Forxiga®, Jardiance®, Steglatro®, Suglat®, Apleway®, Deberza®, Synjardy®, Vokanamet®, Xigduo®.\n\nCon ciò prometto che non prenderò tali farmaci durante l\'utilizzo di AAPS o disattiverò il loop prima di usare questi farmaci.
+
diff --git a/app/src/main/res/values-it-rIT/insight_alert_descriptions.xml b/app/src/main/res/values-it-rIT/insight_alert_descriptions.xml
index 253fab6a2b..1fbe9ab431 100644
--- a/app/src/main/res/values-it-rIT/insight_alert_descriptions.xml
+++ b/app/src/main/res/values-it-rIT/insight_alert_descriptions.xml
@@ -7,7 +7,7 @@
Imposta ora/data.Contatta il supporto Accu-Chek.%1$d%% Durata: %2$s h]]>
- %1$s U Consegnato: %2$s U]]>
+ %1$s U Erogato: %2$s U]]>Inserisci cartuccia.Cambia cartuccia.Cambia la batteria.
diff --git a/app/src/main/res/values-it-rIT/insight_alert_titles.xml b/app/src/main/res/values-it-rIT/insight_alert_titles.xml
index b35b6edf74..d510f14df2 100644
--- a/app/src/main/res/values-it-rIT/insight_alert_titles.xml
+++ b/app/src/main/res/values-it-rIT/insight_alert_titles.xml
@@ -1,7 +1,7 @@
- Eroga Bolo
+ Eroga boloBolo persoSvegliaCambia set infusione
@@ -16,7 +16,7 @@
Cartuccia non inseritaCartuccia vuotaBatteria scarica
- Spegnimento automatico - micro in stop
+ Spegnimento automatico - micro stoppatoOcclusionePrestito terminato - fine operativitàCambio cartuccia non completato
diff --git a/app/src/main/res/values-it-rIT/objectives.xml b/app/src/main/res/values-it-rIT/objectives.xml
new file mode 100644
index 0000000000..c78bbf5034
--- /dev/null
+++ b/app/src/main/res/values-it-rIT/objectives.xml
@@ -0,0 +1,68 @@
+
+
+
+ Indietro
+ Avvia
+ Verifica
+ %1$d. Obiettivo
+ Obiettivo %1$d non avviato
+ Obiettivo %1$d non terminato
+ Impostazione della visualizzazione e del monitoraggio. Analisi di basali e rapporti
+ Verifica che la glicemia sia disponibile su Nightscout e che i dati sull\'insulina del micro siano in fase di caricamento
+ Avvio in un loop aperto
+ Esegui l\'applicazione in modalità loop aperto per alcuni giorni. Attiva manualmente il maggior numero possibile di basali temporanee suggerite. Imposta e utilizza i target temporanei, anche quelli predefiniti (ad esempio per l\'attività fisica o il trattamento dell\'ipoglicemia con carboidrati)
+ Comprensione del tuo loop aperto, incluse le relative raccomandazioni sulle basali temporanee
+ Sulla base di tale esperienza, decidi quale dovrebbe essere il valore di \'max basale\' e impostalo sul microinfusore e nelle preferenze
+ Avvio della chiusura del loop con Low Glucose Suspend
+ Esegui l\'applicazione in loop chiuso con max IOB = 0 per pochi giorni senza troppi eventi LGS
+ Regolazione del loop chiuso, aumentando max IOB al di sopra di 0 e abbassando gradualmente i target glicemici
+ Esegui l\'applicazione per alcuni giorni e almeno una notte senza allarmi di glicemia bassa, prima di abbassare il target glicemico
+ Adatta basali e rapporti se necessario, quindi attiva auto-sens
+ 1 settimana di looping diurno con dichiarazione regolare dei carboidrati, eseguito con successo
+ Abilitazione funzioni aggiuntive per l\'uso diurno, ad esempio AMA (advanced meal assist - assistenza avanzata del pasto)
+ Abilitazione funzioni aggiuntive per l\'uso diurno, come SMB
+ È necessario leggere il wiki e aumentare maxIOB affinché le azioni di SMB funzionino adeguatamente! Un buon inizio è maxIOB = media bolo posto + 3 x max basale giornaliera
+ Glicemia disponibile in NS
+ Stato micro disponibile in NS
+ Attivazioni manuali
+ Compiuto: %1$s
+ Impara a controllare AndroidAPS
+ Esegui varie azioni in AndroidAPS
+ Imposta il profilo \"90%\" per 10 min (premi a lungo sul nome profilo nella sezione Panoramica)
+ Simula la doccia. Disconnetti il micro per 1h (premi a lungo su Loop aperto)
+ ... e riconnetti allo stesso modo
+ Crea un target temporaneo personalizzato con una durata di 10 min (premi a lungo sul tuo target corrente)
+ Nel Configuratore attiva il plugin Azioni, rendilo visibile e visualizzane i contenuti tramite il menu in alto
+ Visualizza il contenuto del plugin Loop
+ Usa la funzione di ridimensionamento premendo a lungo sul grafico delle glicemie
+ Entra
+ Inserisci il codice ottenuto dagli sviluppatori per aggirare il resto degli obiettivi
+ Codice accettato
+ Codice non valido
+ Dai prova della tua conoscenza
+ Studia e rispondi correttamente alle domande
+ Risposta disabilitata per: %1$s
+ Risposta sbagliata!
+ Prossimo non completato
+ 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
+ Non connesso a internet
+ Impossibile recuperare l\'orario
+ Requisiti obiettivo non soddisfatti
+
+ %1$d giorno
+ %1$d giorni
+
+
+ %1$d ora
+ %1$d ore
+
+
+ %1$d minuto
+ %1$d minuti
+
+
diff --git a/app/src/main/res/values-it-rIT/strings.xml b/app/src/main/res/values-it-rIT/strings.xml
index e2a1cf7a2f..49c7dcab6b 100644
--- a/app/src/main/res/values-it-rIT/strings.xml
+++ b/app/src/main/res/values-it-rIT/strings.xml
@@ -5,28 +5,27 @@
-
Sicurezza trattamenti
- Max Bolo consentito [U]
+ Max bolo consentito [U]Max carboidrati consentiti [g]PreferenzeRicarica trattamenti da NS
- Ripristina database
- Vuoi davvero ripristinare i database?
- Uscita
- Usa bolo esteso per >200%%
- Dispositivo Bluetooh DanaR
- Utilizzare sempre valori basali assoluti
+ Resetta database
+ Vuoi davvero resettare i database?
+ Esci
+ Usa boli estesi per >200%%
+ Dispositivo DanaR Bluetooth
+ Utilizza sempre valori basali assolutiPer favore riavvia il tuo telefono oppure fai ripartire AndroidAPS dalle impostazioni di sistema \naltrimenti Android APS non farà il log (è importante monitorare e verificare che gli algoritmi stiano funzionando correttamente)!
- Questo dispositivo non sembra supportare la whitelisting dell\'ottimizzazione della batteria: potrebbero verificarsi problemi di prestazioni.
+ Questo dispositivo non sembra supportare la whitelist dell\'ottimizzazione della batteria: potrebbero verificarsi problemi di prestazioni.Alcuni pulsanti per accedere rapidamente alle funzioni comuni
- Immetti voci di registro avanzate.
+ Inserisci voci di registro avanzate.Utilizzato per configurare i plugin attiviProgramma di apprendimentoVisualizza l\'elenco dei cibi definiti in NightscoutPreset per insulina Humalog e NovoRapidPreset per insulina Fiasp
- Consente di definire il picco dell\'insulina e deve essere utilizzato solo dagli utenti avanzati
+ Ti consente di definire il picco dell\'insulina e deve essere utilizzato solo dagli utenti avanzatiAttiva o disattiva l\'implementazione del loop.Sincronizza i tuoi dati con NightscoutStato dell\'algoritmo nel 2016
@@ -37,33 +36,30 @@
Definisci un profilo disponibile offline.Fornisce il profilo definito in NightscoutImposta un profilo con un solo intervallo temporale.
- Integrazione del microinfusore Accu-Chek Combo, è necessario avere Ruffy installato
+ Integrazione del microinfusore Accu-Chek Combo, è necessario avere ruffy installatoIntegrazione del microinfusore DANA Diabecare RIntegrazione del microinfusore DANA Diabecare R KoreanIntegrazione del microinfusore DANA Diabecare R con firmware aggiornatoIntegrazione del microinfusore DANA Diabecare RSPer le persone in terapia multi-iniettivaPer microinfusori che non hanno ancora alcun driver (Loop Aperto)
- La sensibilità è calcolata allo stesso modo di Oref0, ma è possibile specificare l\'intervallo di tempo al passato. Minimal carb absorption è calcolato da max carb absorption time nelle preferenze.
+ La sensibilità è calcolata allo stesso modo di Oref0, ma puoi specificare l\'intervallo di tempo al passato. L\'assorbimento minimo dei carboidrati è calcolato da \'max tempo assorbimento carboidrati\' nelle preferenze.La sensibilità è calcolata dai dati delle ultime 24h e i carboidrati (se non assorbiti) vengono tagliati fuori dopo il tempo specificato nelle preferenze.La sensibilità è calcolata dai dati delle ultime 8h e i carboidrati (se non assorbiti) vengono tagliati fuori dopo il tempo specificato nelle preferenze. Il Plugin calcola anche UAM.
- La sensibilità è calcolata come media ponderata dalle deviazioni. Le deviazioni più recenti hanno peso maggiore. Minimal carb absorption è calcolato da max carb absorption time nelle preferenze. Questo algoritmo è il più veloce nel seguire i cambiamenti di sensibilità.
+ La sensibilità è calcolata come media ponderata dalle deviazioni. Le deviazioni più recenti hanno peso maggiore. L\'assorbimento minimo dei carboidrati è calcolato da \'max tempo assorbimento carboidrati\' nelle preferenze. Questo algoritmo è il più veloce nel seguire i cambiamenti di sensibilità.Ricevi valori Glicemia dall\'app Eversense modificata.Ricevi valori Glicemia da Glimp.Ricevi valori Glicemia da 600SeriesAndroidUploader.Scarica dati Glicemia da NightscoutRicevi dati Glicemia da xDrip.
- Salva tutti i trattamenti
+ Salva tutti i trattamenti che sono stati fattiMonitora e controlla AndroidAPS usando il tuo smartwatch WearOS.
- Visualizza le informazioni del loop sulla watchface di xDrip+.
+ Mostra le informazioni del loop sulla watchface di xDrip+.Controlla AndroidAPS in remoto utilizzando i comandi SMS.
- Indietro
- Avvio
- VerificaUnità
- DIA - Durata Azione dell\'Insulina
- IC - Rapporto Insulina/Carboidrati
- ISF - Fattore Sensibilità all\'Insulina
+ DIA
+ IC
+ ISFBasaleTargetNESSUN PROFILO IMPOSTATO
@@ -71,38 +67,39 @@
Carboidrati:IOB:IOB:
- IOB Totale:
- Attività IOB Totale:
+ IOB totale:
+ Attività IOB totale:Dur:Rapporto:Ins:IOB:
- IOB Totale:
+ IOB totale:Insulina
- Carboidrati
- Glicemia
+ Carbs
+ BGTT
- Carboidrati
- Correzione
+ Carbs
+ CorrU
- Bolo IOB
- Avvia ora
+ IOB da bolo
+ Esegui oraMICROINFUSORE VIRTUALE
- Vel. basale originale
+ Velocità basale originaleBasale temporanea
- Bolo Esteso
+ Bolo estesoBatteriaSerbatoioOKUltima esecuzione
- Entrata parametro
+ Parametri di inputStato glicemia
- Basale temporanea attuale
+ Temp. correnteDati IOBProfilo
- Dati Pasto
+ Dati pastoEsito
- Dati Glicemia non disponibili
+ Risultato: %1$s %2$s
+ Dati glicemia non disponibiliNessun cambiamento richiestoRichiestaTasso
@@ -111,18 +108,18 @@
GlicemiaDeltaDelta:
- Configuratore
- Obbiettivi
+ Configurazione strutturale
+ ObiettiviOpenAPS MAPanoramicaProfilo NSProfilo semplice
- BasaleTemp
+ Basale temporaneaTrattamenti
- Micro Virtuale
- Careportal
- Microinfusore
- Quale microinfusore vuoi utilizzare con AndroidAPS?
+ Microinfusore Virtuale
+ Portale
+ Micro
+ Quale microinfusore desideri utilizzare con AndroidAPS?TrattamentiQuale plugin dovrebbe essere utilizzato per la gestione del trattamento?Profilo
@@ -136,22 +133,22 @@
VincoliLoopLoop
- Consente di attivare l\'integrazione del loop di AndroidAPS.
+ Usalo per attivare l\'integrazione del loop di AndroidAPS.APSDopo aver elaborato i vincoli
- Basale Temp attivata sul microinfusore
- Ultimo attuato
+ Basale temporanea impostata dal micro
+ Ultima attivazioneOKAnnullaNESSUN APS SELEZIONATO O RISULTATO FORNITOSicurezza
- Plugin disabilitato
+ Il Plugin è disabilitatoViolazione dei vincoli
- Errore di erogazione del bolo
- Errore somministrazione Basale Temp
+ Errore erogazione bolo
+ Errore erogazione basale temporaneaValore Basale [%%]%% (100%% = corrente)
- Accetta nuova Basale Temp:
+ Accetta nuova basale temporanea:TrattamentoCalcolatoreVincolo applicato!
@@ -161,68 +158,65 @@
Bolo:BasaleBasale
- Carboidrati
+ CarbsCambia il tuo input!Imposta nuovo bolo esteso:Origine Glicemia
- Dove prendere i dati per AndroidAPS?
+ Da dove AndroidAPS dovrebbe ottenere i suoi dati?xDripModalità APS
- Loop Chiuso
- Loop Aperto
- Loop Disabilitato
+ Loop chiuso
+ Loop aperto
+ Loop disabilitatoDisabilita LoopAbilita LoopNuovo suggerimento disponibile
- Versione NSClient non supportata
+ Versione non supportata di NSClientVersione non supportata di Nightscout
- NSClient non istallato. Record perduto!
- Glicemia disponibile in NS
- Stato Micro disponibile in NS
- Manuale
+ NSClient non installato. Record perduto!LOOP DISABILITATO DAI VINCOLI
- Basale IOB
+ IOB da basaleVincolo bolo applicatoVincolo carboidrati applicato
- Controllo Glicemia
+ Controllo BGAnnuncioNotaDomanda
- Sport
+ EsercizioCambio posizione cannulaInserimento sensoreAvvio SensoreCambio serbatoio insulinaCambio profilo
- Bolo Spuntino
+ Bolo spuntinoBolo pasto
- Bolo di Correzione
- Bolo Combo
- Inizio Basale Temp
- Fine Basale Temp
+ Bolo di correzione
+ Bolo combo
+ Inizio basale temporanea
+ Fine basale temporaneaCorrezione con carboidratiOpenAPS OfflineTipo di eventoAltroGlucometroSensore
- Carboidrati
+ CarbsInsulina
- Tempo assorb. Carboidrati
+ Tempo carboidratiFrazionaDurataPercentualeAssolutoNote
- Data Evento
+ Data eventoProfiloInserito da
- Tipo Glicemia
+ Tipo glicemiaNessun profilo ancora caricato da NS
- Basale Temp
- Bolo Esteso
+ Basale temporanea
+ Bolo estesoVersione Nightscout:
- Mancante
+ Mancanti %1$dgPreferenze esportateEsporta impostazioni suImporta impostazioni da
@@ -230,13 +224,13 @@
File non trovatoEsporta impostazioniImporta impostazioni
- Max U/h che una Basale Temp può impostare
- Questo valore è chiamato \"max basal\" nel contesto OpenAPS
- Basale Massima in IOB OpenAPS
+ Max U/h che una basale temporanea può impostare
+ Questo valore è chiamato max basale nel contesto OpenAPS
+ Max IOB da basale che OpenAPS può erogare [U]Questo valore è chiamato Max IOB nel contesto OpenAPS\nIndica l\'insulina massima in [U] che APS può erogare contemporaneamente.RESPINGIDanaR
- In Connessione
+ ConnessioneConnessoDisconnessoImpostazioni micro DanaR
@@ -246,24 +240,24 @@
SalvaNessun adattatore bluetooth trovatoDispositivo selezionato non trovato
- Errore connessione Microinfusore
- IOB Microinfusore
+ Errore connessione microinfusore
+ IOB microinfusoreUnità giornaliere
- Ultimo Bolo
+ Ultimo bolo%1$.1fh faDati di input non validiValore non impostato correttamente
- Ricarica Profilo
- Visualizza Profilo
- Attuato
- Commenta
+ Ricarica profilo
+ Visualizza profilo
+ Attivato
+ CommentoOKPer centoAssoluto
- Cancella Basale Temp
+ Cancellare basale temporaneaComunicazioni SMS
- Attendere risultato
- Numero di telefono acettato
+ In attesa del risultato
+ Numeri di telefono consentiti+XXXXXXXXXX;+YYYYYYYYYYPer erogare il bolo di %1$.2fU rispondi col codice %2$sPer inviare la calibrazione %1$.2f rispondi col codice %2$s
@@ -271,71 +265,56 @@
Bolo di %1$.2fU erogato con successoSto per erogare %1$.2fUBolo di %1$.2fU erogato con successo
- Erogazione %1$.2fU
+ Erogazione di %1$.2fUConsenti comandi remoti tramite SMSDitoSensoreManuale
- Target Temporaneo
- Cancella Target Temporaneo
+ Target temporaneo
+ Cancella target temporaneoImpostazioni profilo DanaRDIA [h]
- Durata Azione Insulina
+ Durata Azione dell\'InsulinaImpossibile aggiornare il profilo basaleRicaricaCaricamentoBolo EBolo DSBolo DE
- Errore
+ errorericarica
- basale oraria
+ ora basaleglicemiacarboidratoallarme
- Totale %1$d record caricati
+ %1$d record totali caricatiBolo SAllarmi
- Basali orarie
+ Ore basaliBoliCarboidratiInsulina giornalieraErroriGlicemiaRicarica
- Sospendi
+ SospensioneIn connessione per %1$d s
- Password Microinfusore
- Password micro Errata!
- Micro occupato
+ Password microinfusore
+ Password micro errata!
+ Il micro è occupatoErogatoStoppatoBolo stoppatoStop del bolo in corsoOcclusione
- Arresta
+ StopSTOP PREMUTOIn attesa del microSto per erogare %1$.2fU
- Configurazione della visualizzazione e del monitoraggio, analisi basali e rapporti
- Verificare che la Glicemia sia disponibile su Nightscout e che i dati sull\'insulina del micro siano in fase di caricamento
- Partenza con Loop Aperto
- Esegui l\'applicazione in modalità Loop Aperto per alcuni giorni e accetta manualmente le basali temporanee. Imposta e utilizza i target temporanei, anche quelli predefiniti (ad esempio, per l\'attività fisica o il trattamento dell\'ipoglicemia con carboidrati)
- Comprendi il tuo Loop Aperto, incluse le relative raccomandazioni sulle basali temporanee
- Sulla base di tale esperienza, decidi quale deve essere il valore max della basale e impostalo sul microinfusore e nelle preferenze
- Iniziare a chiudere il Loop con Low Glucose Suspend
- Esegui l\'applicazione in Loop Chiuso con max IOB = 0 per pochi giorni senza troppi eventi LGS
- Regola il Loop Chiuso, aumentando max IOB al di sopra di 0 e abbassando gradualmente i target glicemici
- Esegui l\'applicazione per alcuni giorni e almeno una notte senza allarmi di glicemia bassa, prima di abbassare il target glicemico
- Regola le basali e i rapporti se necessario, quindi attiva auto-sens
- 1 settimana di looping diurno con dichiarazione regolare dei carboidrati, eseguito con successo
- Abilita funzioni aggiuntive per l\'uso diurno, ad esempio AMA (advanced meal assist - assistenza avanzata del pasto)
- Abilita funzioni aggiuntive per l\'uso diurno, come SMB
- È necessario leggere il wiki e aumentare maxIOB affinché le azioni di SMB funzionino adeguatamente! Un buon inizio è maxIOB = media bolo posto + 3 x max basale giornalieraHai raggiunto il limite consentitoNessun profilo selezionato
- Disattivazione Loop corretta
- Lopp abilitato correttamente
+ Il Loop è stato disabilitato
+ Il Loop è stato abilitatoIl Loop è disabilitatoIl Loop è abilitato%1$.2f limitato a %2$.2f
@@ -346,18 +325,18 @@
Per passare al profilo %1$s %2$d%% rispondi col codice %3$sPer avviare il bolo esteso %1$.2fU/h per %2$d min rispondi col codice %3$sPer avviare la basale %1$d%% per %2$d min rispondi col codice %3$s
- Per sospendere il Loop per %1$d minuti rispondi col codice %2$s
- Basale Temp %1$.2fU/h per %2$d min avviata con successo
+ Per sospendere il loop per %1$d minuti rispondi col codice %2$s
+ Basale temporanea %1$.2fU/h per %2$d min avviata con successoBolo esteso %1$.2fU/h per %2$d min avviato con successo
- Basale Temp %1$d%% per %2$d min avviata con successo
- Avvio Basale Temp fallito
- Avvio Bolo esteso fallito
- Per interrompere la Basale Temp rispondi col codice %1$s
- Per interrompere il bolo esteso rispondi col codice %1$s
- Basale Temp cancellata
+ Basale temporanea %1$d%% per %2$d min avviata con successo
+ Avvio basale temporanea fallito
+ Avvio bolo esteso fallito
+ Per stoppare la basale temporanea rispondi col codice %1$s
+ Per stoppare il bolo esteso rispondi col codice %1$s
+ Basale temporanea cancellataBolo esteso cancellato
- Cancellazione Basale Temp fallita
- Cancellazione bolo esteso fallito
+ Cancellazione basale temporanea fallita
+ Cancellazione bolo esteso fallitaComando sconosciuto o risposta errataQuickWizardImpostazioni QuickWizard
@@ -368,68 +347,68 @@
ModificaRimuoviPasto
- Correzione
+ CorrAzioniAndroidAPS avviato
- Solo caricamento NS (sincronizzazione disabilitata)
- Carica solo su NS. Non ha effetto su SGV a meno che non sia selezionata una fonte locale come xDrip. Non ha effetto sui Profili durante l\'utilizzo dei profili NS.
+ NS: solo upload (sincronizzazione disabilitata)
+ NS: solo upload. Non ha effetto su SGV a meno che non sia selezionata una fonte locale come xDrip. Non ha effetto sui Profili durante l\'utilizzo dei profili NS.Micro non inizializzato!Micro non inizializzato, profilo non impostato!Carica/RiempiAssicurati che la quantità corrisponda alla specifica del tuo set di infusione!Altro
- Riempimento/Prime quantità di insulina standard.
+ Quantità standard di insulina per la funzione Carica/Riempi.Tasto 1Tasto 2Tasto 3Unità:mg/dlmmol/l
- Durata Azione dell\'Insulina:
- Intervallo Target:
+ DIA:
+ Intervallo target:Intervallo di visualizzazioneLimite alto e basso per i grafici nella sezione Panoramica e sullo SmartwatchLimite BASSOLimite ALTO
- Smartwatch
+ WearInvia di nuovo tutti i datiApri impostazioni sullo smartwatch
- Errore Micro
- Livello Batteria Basso
- Arresto Micro
- Batteria del micro Scarica
+ Errore micro
+ Livello batteria basso
+ Arresto micro
+ Batteria del micro scaricaDanaR KoreanVelocità basale:
- Impostazione Profilo Basale fallito
- Profilo Basale aggiornato nel Micro
+ Impostazione profilo basale fallita
+ Profilo basale aggiornato nel microDisabilita la modalità EasyUI nel microAbilita bolo esteso sul micro
- Cambia la modalità da U/d in U/h nel micro
- Valore basale inferiore al minimo, Profilo non impostato!
- Glicemia:
- Ultima Glicemia:
+ Cambia la modalità da U/d a U/h nel micro
+ Valore basale inferiore al minimo. Profilo non impostato!
+ BG:
+ Ultimo BG:MDIMM640gNotifica in corso
- VECCHI DATI
+ DATI VECCHI%1$d min fa%1$dmin faProfilo localeOpenAPS AMA
- Deviazione media ridotta
- Deviazione media estesa
+ Delta medio ridotto
+ Delta medio estesoMatrice di %1$d elementi.\nValore attuale:
- Dati Autosens
+ Dati autosensScript debugUsa la funzione AutosensRicarica eventi da NSElimina trattamenti nel futuro
- Mangiare a breve
+ Pasto a breveIpoAttività
- Rimuovi campo:
+ Rimuovi record:Statistiche DanaR
- TDD totale
+ TDD cumulativoTDD esponenzialmente ponderatoBasaleBolo
@@ -439,61 +418,61 @@
# GiorniPesoProbabilmente inaccurato se si usano i boli per il caricamento/riempimento al posto dell\'apposita funzione!
- Dati Vecchi, premere \"RICARICA\"
- Totale basale originale
+ Dati vecchi, premi \"RICARICA\"
+ Basale originale totaleTBB * 2Inizializzazione...
- ACT
+ AZNCONFLOOP
- SP
+ PSOAPS
- LP
+ PLDANAHOME
- VPUMP
- NSPROFILE
- TREAT
- CP
- OBJ
+ MICROV
+ PROFILONS
+ TRATT
+ PT
+ OBTWEARSMS
- Titoli schede abbreviati
- Utilizzare sempre deviazione media ridotta invece della deviazione semplice
+ Abbrevia i titoli delle schede
+ Utilizza sempre il delta medio ridotto anziché il delta sempliceUtile quando i dati provenienti da sorgenti non filtrate come xDrip diventano \"rumorosi\" (instabili).
- Impostazioni Avanzate
+ Impostazioni avanzateModello:%1$02X Protocollo:%2$02X Codice:%3$02XProfilo
- [Valore predefinito: 3] Questo è un parametro di sicurezza chiave in OpenAPS. Ciò che fa è limitare le tue basali a essere 3 volte, al più, la tua velocità basale massima. Probabilmente non avrai bisogno di cambiare questo valore, ma dovresti essere consapevole di cosa significa il gruppo di parametri \"3x max daily; 4x current\" e per quali motivi di sicurezza siano stati impostati tali valori.
- [Valore predefinito: 4] Questo è un ulteriore parametro di sicurezza chiave in OpenAPS. La tua basale, indipendentemente dalla basale massima impostata sul micro, non può mai essere più alta della tua basale in ogni specifico momento, moltiplicata per tale valore. Questo serve a impedire alle persone di addentrarsi in \"territori pericolosi\" impostando basali massime eccessivamente alte prima di aver capito come funziona l\'algoritmo. Ancora una volta, il valore predefinito è 4x; la maggior parte delle persone non avrà bisogno di modificare questo valore e avrà, invece, maggiori probabilità di dover regolare le altre impostazioni.
- [Valore predefinito: 1.2]\nQuesto è un moltiplicatore di sicurezza per autosens (e presto autotune) per impostare un limite massimo del 20%% (col valore predefinito) riguardo l\'aumento del rapporto di autosens, che a sua volta determina quanto in alto autosens può regolare la basale, quanto in basso può regolare ISF (la sensibilità all\'insulina) e quanto in basso può impostare il Target Glicemico.
- [Valore predefinito: 0.7]\nUn altro limite di sicurezza di autosens, imposta un blocco a quanto in basso autosens può regolare le basali e a quanto in alto può regolare ISF e i Target Glicemici.
+ [Valore predefinito: 3] Questo è un parametro di sicurezza chiave in OpenAPS. Ciò che fa è limitare le tue basali a essere 3 volte, al più, la tua velocità basale massima. Probabilmente non avrai bisogno di cambiare questo valore, ma dovresti essere consapevole di cosa significa il gruppo di parametri \"3x max giornaliera; 4x corrente\" e per quali motivi di sicurezza siano stati impostati tali valori.
+ [Valore predefinito: 4] Questo è un ulteriore parametro di sicurezza chiave in OpenAPS. La tua basale temporanea, indipendentemente dalla basale massima impostata sul micro, non può mai essere più alta di questo valore moltiplicato per tua basale corrente in ogni specifico momento. Questo serve a impedire alle persone di addentrarsi in \"territori pericolosi\" impostando basali massime eccessivamente alte prima di aver capito come funziona l\'algoritmo. Ancora una volta, il valore predefinito è 4x; la maggior parte delle persone non avrà bisogno di modificare questo valore e avrà, invece, maggiori probabilità di dover regolare le altre impostazioni.
+ [Valore predefinito: 1.2]\nQuesto è un moltiplicatore di sicurezza per autosens (e presto autotune) per impostare un limite massimo del 20%% (col valore predefinito) su quanto alto può essere il rapporto di autosens, che a sua volta determina quanto in alto autosens può regolare le basali, quanto in basso può regolare ISF e quanto in basso può impostare il target glicemico.
+ [Valore predefinito: 0.7]\nUn altro limite di sicurezza di autosens, imposta un blocco a quanto in basso autosens può regolare le basali e a quanto in alto può regolare ISF e i target glicemici.Autosens regola anche i target
- [Valore predefinito: true]\nViene utilizzato per consentire ad autosens di regolare i Target Glicemici, in aggiunta a ISF e basali.
- [Valore predefinito: 2]\nBolus snooze è attivato dopo un bolo pasto per fare in modo che il Loop non interagisca con basali temporanee basse quando hai appena mangiato. AndroidAPS non imposterà velocità basali troppo basse nel periodo corrispondente a DIA (durata azione dell\'insulina) diviso il parametro bolus snooze dia divisor. Con DIA di 3 ore \"bolus snooze\" durerà 1.5 ore (3/2).
- [Valore predefinito: 3.0 (AMA) o 8.0 (SMB)]. Questa è un\'impostazione per l\'impatto di assorbimento predefinito dei carboidrati in 5 minuti. L\'impostazione predefinita è una previsione di 3mg/dl/5min. Ha effetto sulla velocità di decadimento dei COB (carboidrati attivi) e su quanto il loro assorbimento incide nella previsione dell’andamento glicemico, quando la Glicemia sta scendendo più del previsto o non sta salendo quanto previsto.
- Attenzione!\nNormalmente non dovresti modificare questi valori. FAI CLICK QUI e leggi il testo e assicuratevi di AVER CAPITO prima di cambiare uno di questi valori.
- Digitare solo numeri
- Sono ammessi solo numeri nel range %1$s - %2$s.
+ [Valore predefinito: vero]\nViene utilizzato per consentire ad autosens di regolare i target glicemici, in aggiunta a ISF e basali.
+ [Valore predefinito: 2]\nBolus snooze è attivato dopo un bolo pasto per fare in modo che il loop non imposti basali temporanee basse quando hai appena mangiato. AndroidAPS non imposterà velocità basali troppo basse nel periodo corrispondente a DIA diviso il parametro bolus snooze - divisore DIA. Con DIA di 3 ore \"bolus snooze\" durerà 1.5 ore (3/2).
+ [Valore predefinito: 3.0 (AMA) o 8.0 (SMB)]. Questa è un\'impostazione per l\'impatto di assorbimento predefinito dei carboidrati in 5 minuti. L\'impostazione predefinita è una previsione di 3mg/dl/5min. Ha effetto sulla velocità di decadimento dei COB (carboidrati attivi) e su quanto il loro assorbimento incide nella previsione dell’andamento glicemico, quando la glicemia sta scendendo più del previsto o non sta salendo quanto previsto.
+ Attenzione!\nNormalmente non dovresti modificare questi valori. FAI CLICK QUI e leggi il testo e assicuratevi di AVERLO CAPITO prima di cambiare uno di questi valori.
+ Sono consentite solo cifre numeriche.
+ Sono consentite solo cifre numeriche nel range %1$s - %2$s.Il campo non deve essere vuotoNumero di telefono non validoNumero di telefono SMS non validoCalibrazione
- Invia calibrazione %1$.1f a xDrip?
+ Inviare calibrazione %1$.1f a xDrip?xDrip+ non installatoCalibrazione inviata a xDrip
- La calibrazione inviata. La ricezione deve essere abilitata in xDrip.
+ Calibrazione inviata. La ricezione deve essere abilitata in xDrip.xDrip non sta ricevendo calibrazioni
- Micro Sospeso
- Richiesta Stato Micro
- Impostazione Basale Temp
- Stop Basale Temp
+ Micro sospeso
+ Ricezione stato micro
+ Impostazione basale temporanea
+ Stop basale temporaneaImpostazione bolo estesoStop bolo esteso
- Aggiornamento basali
+ Aggiornamento velocità basaliDisconnessioneEsecuzione
- Impostazioni Micro virtuale
+ Impostazioni micro virtualeCarica stato in NSPassword ErrataPassword per le impostazioni
@@ -502,25 +481,25 @@
NSClientNSCIURL:
- Autoscroll
- Riavvia
+ Autoscorrimento
+ RiavvioNSClient
- Nightscout URL
- Inserisci il tuo URL Nightscout
- NS API secret
- NS API secret
- Inserisci NS API secret (minimo 12 caratteri)
- Eroga adesso
+ URL di Nightscout
+ Inserisci il tuo URL di Nightscout
+ API secret di NS
+ API secret di NS
+ Inserisci l\'API secret di NS (minimo 12 caratteri)
+ Invia adessoCancella coda
- Visualizza coda
+ Mostra codaCoda:Stato:
- In Pausa
- Cancella log
- NSCLIENT non ha il permesso di scrittura. API secret Errato?
+ In pausa
+ Cancella il log
+ NSCLIENT non ha il permesso di scrittura. API secret errato?Impostazioni smartwatchMostra IOB dettagliato
- Dividi IOB tra boli e IOB basale, sulla watchface dello smartwatch
+ Dividi IOB tra boli e IOB da basale sulla watchfacenon riuscito - controlla il telefonoNon disponibileEtà del paziente
@@ -540,66 +519,64 @@
Sospendi loop per 3hSospendi loop per 10hSospendi loop per %1$d min
- Disconnetti Micro per 15 min
- Disconnetti Micro per 30 min
- Disconnetti Micro per 1 h
- Disconnetti Micro per 2 h
- Disconnetti Micro per 3 h
+ Disconnetti micro per 15 min
+ Disconnetti micro per 30 min
+ Disconnetti micro per 1 h
+ Disconnetti micro per 2 h
+ Disconnetti micro per 3 hRiprendi
- Riconnetti Micro
+ Riconnetti microDurata errataLoop sospesoLoop ripreso
- Trend 15min
+ Trend di 15minCOB
- Super bolo
+ SuperboloRegistra l\'avvio dell\'app in NS
- Chiusura applicazione per applicare le impostazioni.
+ Uscita dall\'applicazione per applicare le impostazioni.DanaRv2InsulinaQuale tipo di insulina stai usando?
- Insulina Fast Acting (ultrarapida)
+ Insulina Fast ActingNovorapid, Novolog, HumalogFiaspINS
- Abilita Super Bolo nel Calcolatore
- Abilita funzionalità Super Bolo nel Calcolatore. Non abilitare fino a quando non impari ciò che realmente fa. PUÒ CAUSARE SOVRADOSAGGIO DI INSULINA SE USATO IMPROPRIAMENTE!
+ Abilita superbolo nel wizard
+ Abilita la funzionalità superbolo nel wizard. Non abilitare fino a quando non impari ciò che realmente fa. PUÒ CAUSARE SOVRADOSAGGIO DI INSULINA SE USATO IMPROPRIAMENTE!Mostra \"indicatori di stato\" sulla schermata iniziale
- Mostra \"indicatori di stato\" originali sulla schermata iniziale
- Abilita indicatori di stato originali per \"età\" cannula, insulina, sensore, serbatoio e livello batteria sulla schermata iniziale.Mostra \"indicatori di stato\" estesi sulla schermata inizialeAbilita indicatori di stato estesi per \"età\" cannula, insulina, sensore, serbatoio e livello batteria sulla schermata iniziale.Soglia di avviso livello serbatoio [U]Soglia critica livello serbatoio [U]
- Soglia di avviso livello batteria [%%]
- Soglia critica livello batteria [%%]
+ Soglia livello batteria a cui prestare attenzione [%]
+ Soglia livello batteria critico [%]IOBCOBFirmwareUltima connessione
- Stato Bluetooth
- Riguardo a...
+ Stato bluetooth
+ Riguardo aAutorizzazione SMS mancante
- Autorizzazione Stato telefono mancante
+ Autorizzazione stato telefono mancanteStato xDrip (smartwatch)xDrip Statusline (smartwatch)xdsMostra BGIAggiungi BGI alla statuslineNessun caricamento in NS
- Tutti i dati inviati a NS vengono rifiutati. AAPS è connesso a NS, ma non vengono apportate modifiche a NS
- Incremento Basale
- Incremento Bolo
- Bolo Esteso
+ Tutti i dati inviati a NS vengono rifiutati. AAPS è connesso a NS, ma non vengono apportate modifiche
+ Incremento basale
+ Incremento bolo
+ Bolo estesoTempTarget
- Cancella Bolo Esteso
+ Cancella bolo estesoEtà sensoreEtà cannulaEtà insulinaoreTipo basaleProfilo non valido !!!
- Cambio Profilo
+ Cambio profiloEtà batteria microCambio batteria microOpzioni allarme
@@ -609,15 +586,15 @@
Molto bassoDati non aggiornatiDati non aggiornati da molto tempo
- Soglia Dati non aggiornati [min]
- Soglia Dati non aggiornati da molto tempo [min]
+ Soglia dati non aggiornati [min]
+ Soglia dati non aggiornati da molto tempo [min]Intervallo per autosens [h]
- Quantità di ore al passato per il rilevamento della sensibilità (il tempo di assorbimento dei carburi è escluso)
+ Quantità di ore al passato per il rilevamento della sensibilità (il tempo di assorbimento dei carboidrati è escluso)MicroOpenAPSUploaderRilevamento sensibilità
- Quale algoritmo di sensibilità deve essere utilizzato?
+ Quale algoritmo di sensibilità dovrebbe essere utilizzato?SENSSensibilità Oref0Sensibilità Oref1
@@ -625,7 +602,7 @@
Impostazioni assorbimentoMax tempo assorbimento pasto [h]Tempo in ore in cui è previsto che tutti i carboidrati del pasto vengano assorbiti
- Visualizza bolo esteso come %%
+ Visualizzare bolo esteso come %%SAGEIAGECAGE
@@ -635,15 +612,15 @@
BASEXTMantieni lo schermo acceso
- Impedisci a Android di disattivare lo schermo. Consumerà molta energia quando non è collegato alla presa di corrente.
+ Evita che Android disattivi lo schermo. Consumerà molta energia quando non è collegato alla presa di corrente.Attivando la funzione Autosense, ricorda di dichiarare tutti i carboidrati assunti. Altrimenti le deviazioni di glicemia dovute ai carboidrati saranno identificate erroneamente come variazione di sensibilità !!Sensibilità WeightedAverageOKAnnullaNon tutti i profili caricati!Valori non memorizzati!
- Abilita la trasmissione ad altre applicazioni (come xDrip).
- Abilita la trasmissione locale.
+ Abilita le trasmissioni ad altre app (come xDrip). Non abilitare se hai installato più di un\'istanza di AAPS o NSClient!
+ Abilita le trasmissioni locali.ATTIVITÀ & FEEDBACKCARBOIDRATI & BOLOCGM & OPENAPS
@@ -655,7 +632,7 @@
Abilita UAMAbilita SMBUtilizza Super Micro Boli al posto della basale temporanea per un\'azione più veloce
- Rilevazione dei Pasti Non Dichiarati
+ Rilevazione dei pasti Non AnnunciatiIOB Curve Peak TimePeak Time [min]Free-Peak Oref
@@ -667,11 +644,11 @@
NON VALIDOIn attesa di associare il microAssociazione OK
- Time Out associazione micro
+ Time out associazione microASSOCIAZIONENessun dispositivo trovato finoraSerbatoio vuoto
- Avviso misurazione di glicemia
+ Avviso misurazione glicemiaLivello insulina rimanenteDanaRSDana
@@ -681,33 +658,33 @@
Imposta incremento basale a 0.01 U/hNumero serialePercentuale
- Cambio orario
+ Time shiftTemp-Target predefiniti
- durata \"eatingsoon\"
- target \"eatingsoon\"
- durata attività
- target \"activity\"
- durata \"hypo\"
- target \"hypo\"
- Carica
- Richiesta stato bolo esteso
- Richiesta stato bolo
- Richiesta stato basale temporanea
- Richiesta stato micro
- Richiesta ora micro
+ target \"pasto a breve\" - durata
+ target \"pasto a breve\"
+ target \"attività\" - durata
+ target \"attività\"
+ target \"ipoglicemia\" - durata
+ target \"ipoglicemia\"
+ Riempimento
+ Ricezione stato bolo esteso
+ Ricezione stato bolo
+ Ricezione stato basale temporanea
+ Ricezione stato micro
+ Ricezione ora microriutilizzoControlli da smartwatchImposta Temp-Target e inserisci Trattamenti dallo smartwatch.
- Time Out Connessione
+ Time out connessioneCibogmh]]>kJ
- En
- Pr
- Fat
+ Enr
+ Prt
+ Grs]]>Attesa per la fine del bolo. Rimangono %1$d sec.Evento di elaborazione
@@ -715,45 +692,45 @@
Il comando verrà eseguito oraDriver del micro correttoMicro irraggiungibile
- Letture Glicemia mancanti
+ Letture glicemia mancantiUtilizza le notifiche di sistema per avvisi e notificheAllarmi localiAllarme se non si ricevono dati GlicemiaAllarme se il micro non è raggiungibileSoglia micro irraggiungibile [min]
- Allarme Urgente
+ Allarme urgenteINFOBluetoothBT Watchdog
- Spegni 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 BG
- Visualizza delta dettagliato
- Visualizza delta con una cifra decimale in più
- Max minuti basale con cui limitare SMB
+ 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
+ Mostra delta dettagliato
+ Mostra delta con una cifra decimale in più
+ Max minuti di basale a cui limitare SMBFirmware del micro non supportato
- Invia dati Glicemia a xDrip+
+ Invia dati glicemia a xDrip+In xDrip+ seleziona origine dati 640g/Eversense
- NSClient BG
+ Glicemia NSClientValore basale sostituito dal minimo valore supportato: %1$sValore basale sostituito dal massimo valore supportato: %1$s
- Calcolo Glicemia
- Calcolo IOB bolo
- Calcolo IOB basale
- Calcolo Trend
- Calcolo Super Bolo
+ Calcolo glicemia
+ Calcolo IOB da bolo
+ Calcolo IOB da basale
+ Calcolo trend
+ Calcolo superboloSìNo
- Solo Positivo
- Solo Negativo
+ Solo positivo
+ Solo negativoCalcolo COB
- Calcolo Temp-Target
+ Calcolo target temporaneoLoop abilitatoAPS selezionatoNSClient ha il permesso di scrittura
- Modalità Chiusa attivata
- IOB massima impostata correttamente
+ Modalità chiusa abilitata
+ Max IOB impostata correttamenteGlicemia disponibile da sorgente selezionataValori basali non allineati alle ore: %1$sProfilo non valido: %1$s
@@ -769,140 +746,138 @@
In esecuzioneCancellazione TBRImpostazione TBR (%1$d%% / %2$d min)
- Erogazione Bolo (%1$.1f U)
+ Erogazione bolo (%1$.1f U)AggiornamentoOperazione richiesta non supportata dal micro
- Utilizzo non sicuro: sono attivi boli estesi o multiwave. Il Loop è stato messo in modalità di sola sospensione in caso di valori bassi, per 6 ore. In modalità Loop sono supportati solo boli normali
- Utilizzo non sicuro: il micro utilizza un profilo basale diverso dal primo in elenco tra le sue impostazioni. Il Loop è stato disattivato. Seleziona sul microinfusore il profilo basale numero 1.
- Un bolo con la stessa quantità è stato richiesto negli ultimi due minuti. Per evitare accidentali boli doppi e a protezione di eventuali \"bug\", questo non è consentito.
+ Utilizzo non sicuro: sono attivi boli estesi o multiwave. Il loop è stato messo in modalità di sola sospensione dell\'erogazione di insulina in caso di valori bassi, per 6 ore. In modalità loop sono supportati solo boli normali
+ Utilizzo non sicuro: il micro utilizza un profilo della velocità basale diverso dal primo in elenco tra le sue impostazioni. Il loop è stato disabilitato. Selezionare sul microinfusore il profilo basale numero 1.
+ Un bolo con la stessa quantità è stato richiesto negli ultimi due minuti. Questo non è consentito al fine di evitare boli doppi accidentali e a protezione di eventuali \"bug\".AdessoLettura storico micro
- Storia
+ storico microImpostazione profilo basaleLivello serbatoio basso
- Batteria bassa
- Il microinfusore sta mostrando l\'errore E%1$d: %2$s
+ Livello batteria basso
+ Il micro sta mostrando l\'errore E%1$d: %2$sBassoVuotoNormaleNecessario aggiornare orologio microAttenzione
- Avviso TBR CANCELLATA è stata confermato
+ Avviso TBR CANCELLATO confermatoIl micro potrebbe non essere raggiungibile. Nessun bolo erogatoErogazione bolo fallita. Sembra che nessun bolo sia stato erogato. Per sicurezza, controlla il micro per evitare un doppio bolo e se è tutto ok, erogalo di nuovo. Come protezione da eventuali \"bug\", i boli non vengono ripetuti automaticamente.
- Solo la quantità di %1$.2f U del bolo richiesto di %2$.2f U è stata erogata, a causa di un errore. Controlla il micro per verificare quanto accaduto e intraprendi le azioni necessarie.
- Erogare il bolo e la verifica di storia della pompa non è riuscita, si prega di controllare la pompa. Se è stato somministrato un bolo, si aggiungerà ai trattamenti durante il successivo collegamento alla pompa.
+ Solo la quantità di %1$.2f U del bolo richiesto di %2$.2f U è stata erogata a causa di un errore. Controlla il micro per verificare quanto accaduto e intraprendi le azioni necessarie.
+ Erogazione del bolo e verifica dello storico del micro fallite, si prega di controllare il micro. Se è stato erogato un bolo, sarà aggiunto ai trattamenti durante la successiva connessione al micro.Insulina nel serbatoio insufficiente per erogare il boloErrore erogazione bolo estesoSightfa%1$.2f hAbilita SMB sempre
- Abilita SMB sempre, indipendentemente dai boli. Possibile solo con sorgente glicemie con buon filtraggio dati, come G5
+ Abilita SMB sempre, indipendentemente dai boli. Possibile solo con sorgente glicemie con un buon filtraggio dei dati, come G5Abilita SMB dopo i carboidrati
- Abilita SMB per 6h dopo la dichiarazione di carboidrati, anche con 0 COB. Possibile solo con sorgente glicemie con buon filtraggio dati, come G5
+ Abilita SMB per 6h dopo i carboidrati, anche con 0 COB. Possibile solo con sorgente glicemie con un buon filtraggio dei dati, come G5Abilita SMB con COB
- Abilita SMB quando COB è attivo.
- Abilita SMB con temp-target
- Abilita SMB quando c\'è un temp-target attivo (eating soon, activity)
- Abilita SMB con high temp-target
- Abilita SMB quando c\'è un \"high temp target\" attivo
- Permetti esecuzione Basale Temp
+ Abilita SMB quando COB è attivo (ci sono carboidrati non assorbiti).
+ Abilita SMB con target temporanei
+ Abilita SMB quando è attivo un target temporaneo (pasto a breve, attività)
+ Abilita SMB con target temporanei \"alti\"
+ Abilita SMB quando è attivo un target temporaneo \"alto\"
+ Lascia eseguire la basale temporaneaMutoInsulina
- Carboidrati
- Pulsanti
- Invia una calibrazione a xDrip+ o apri la finestra di calibrazione del G5
- Apre xDrip+, il pulsante indietro torna ad AAPS
- Numero di carboidrati da aggiungere quando si preme il pulsante
- Quantità di insulina da aggiungere quando si preme il pulsante
- Impossibile avviare applicazione CGM. Assicurati che sia installata.
+ Carbs
+ Tasti
+ Invia una calibrazione a xDrip+ o apre la finestra di calibrazione del G5
+ Apre xDrip+, il tasto indietro torna ad AAPS
+ Numero di carboidrati da aggiungere quando si preme il tasto
+ Quantità di insulina da aggiungere quando si preme il tasto
+ Impossibile avviare l\'applicazione CGM. Assicurati che sia installata.CGM
- Rivedi storico
- Notifica in SMB
+ Storico
+ Notifica SMBMostra SMB sullo smartwatch come un bolo standard.Crea avvisi da errori
- Crea avviso Nightscout per finestre di errore e allarmi locali (anche visualizzabile in Careportal sotto la voce Trattamenti)
- Visualizza le predizioni sulla watchface.
+ Crea avviso su Nightscout per finestre di errore e allarmi locali (visualizzabile anche nella sezione Portale sotto la voce Trattamenti)
+ Mostra le predizioni sulla watchface.Predizioni
- Scelta dei Dati
+ Scelta dei datiInvio a fabric.ioConsenti la segnalazione automatica degli errori e l\'invio dei dati di utilizzo delle funzioni dell\'app agli sviluppatori tramite il servizio fabric.io.
- Aggiorna la tua Dexcom app ad una versione supportata
- Dexcom app non installata.
- Avvia Activity TT
- Avvia Eating soon TT
+ Aggiorna la tua app Dexcom ad una versione supportata
+ App Dexcom non installata.
+ Avvia TT Attività
+ Avvia TT Pasto a breveTTNo bolo, solo recordCategoriaSottocategoria
- Il bolo sarà solo memorizzato
- Riempimento automatico BG mancanti da NS
+ Il bolo sarà solo registrato
+ Riempimento automatico glicemie mancanti da NSSMB impostato dal microAttivitàSensibilitàDeviazioni
- Carboidrato attivi
- Insulina attiva
+ Carboidrato attivi (COB)
+ Insulina attiva (IOB)BasaliNessuna azione selezionata, non succederà nulla
- Avviare Hypo TT
- Versione sviluppatore. Loop Chiuso disabilitato.
+ Avvia TT Ipoglicemia
+ Versione sviluppatore in esecuzione. Loop chiuso disabilitato.Engineering mode abilitata
- Modalità di ingegneria non abilitato e non su ramo di release
+ Engineering mode non abilitata e non su \'release branch\'%1$.2f U/hLettura profilo basale
- Lo storico del micro è cambiato dopo il calcolo del bolo. Il bolo non è stato erogato. Ricalcola il bolo se è ancora necessario.
- Bolo erogato con successo, ma impossibile aggiungere la voce ai Trattamenti. Questo può accadere se due piccoli boli della stessa quantità sono stati somministrati negli ultimi due minuti. Verifica lo storico del micro e le voci della sezione Trattamenti e utilizza il Careportal per aggiungere eventuali voci mancanti. Assicurati di non aggiungere voci con lo stesso orario e con la stessa quantità.
- Rifiuto high temp in quanto il calcolo non ha considerato i cambiamenti recenti nello storico del micro
+ Lo storico del micro è cambiato dopo il calcolo del bolo. Il bolo non è stato erogato. Ricalcolare se un bolo è ancora necessario.
+ Bolo erogato con successo, ma impossibile aggiungere la voce ai trattamenti. Questo può accadere se due piccoli boli della stessa quantità sono stati somministrati negli ultimi due minuti. Verifica lo storico del micro e le voci della sezione Trattamenti e utilizza la sezione Portale per aggiungere eventuali voci mancanti. Assicurati di non aggiungere voci con lo stesso orario e con la stessa quantità.
+ Rifiuto basale temporanea \"alta\" in quanto il calcolo non ha considerato i cambiamenti recenti allo storico del microAggiornamento stato micro
- La velocità basale nel micro è cambiata e verrà presto aggiornata
+ La velocità basale nel micro è cambiata e verrà aggiornata a breveVelocità basale cambiata sul micro, ma la sua lettura è fallitaControllo delle modifiche allo storico
- Sono stati importati più boli con la stessa quantità nello stesso minuto. Solo un record può essere aggiunto ai Trattamenti. Controlla il micro e aggiungi manualmente un record di bolo utilizzando la scheda Careportal. Assicurati di creare un bolo con un orario che nessun altro bolo utilizza.
+ Sono appena stati importati più boli con la stessa quantità nello stesso minuto. Solo un record può essere aggiunto ai trattamenti. Controlla il micro e aggiungi manualmente un record di bolo utilizzando la sezione Portale. Assicurati di creare un bolo con un orario non utilizzato da nessun altro bolo.\n\nhttp://www.androidaps.org\nhttp://www.androidaps.de (de)\n\nfacebook:\nhttp://facebook.androidaps.org\nhttp://facebook.androidaps.de (de)L\'ultimo bolo è più vecchio di 24 ore o ha una data nel futuro. Controlla che la data sul micro sia impostata correttamente.L\'ora/la data del bolo erogato sul micro sembra errata, IOB probabilmente non è corretto. Controlla l\'ora e/o la data del micro.
- Nessun cambio profilo. Effettua un cambio profilo o premi \"Attiva Profilo\" nella sezione Profilo Locale.
- Conteggio Bolo
+ Nessun cambio profilo. Effettua un cambio profilo o premi \"Attiva profilo\" nella sezione Profilo locale.
+ Conteggio boloConteggio TBR
- Obiettivo %1$d non avviato
- Obiettivo %1$d non terminato
- Micro non in grado di impostare la basale temp
+ Micro non in grado di impostare la basale temporaneaNessuna velocità basale valida letta dal micro
- Modalità ciclo chiuso disattivata nelle preferenze
+ Modalità loop chiuso disabilitata nelle preferenzeAutosens disabilitato nelle preferenzeSMB disabilitato nelle preferenzeUAM disabilitato nelle preferenze
- UAM disabilitato perché si basa sul plugin di sensibilità Oref1
- Limitazione max velocità basale a %1$.2f U/h. Causa: %2$s
+ UAM disabilitato perché il plugin di sensibilità Oref1, dal quale UAM dipende, non è abilitato
+ Limitazione max velocità basale a %1$.2f U/h a causa di: %2$slimite microdeve essere un valore positivo
- max moltiplicatore basale
- max moltiplicatore basale giornaliera
+ moltiplicatore - max basale
+ moltiplicatore - max basale giornalieraUn bolo è stato erogato negli ultimi 3 minuti, SMB ignoratoBasale impostata correttamente
- Limito max percentuale a %1$d%% Causa: %2$s
- Limito il bolo a %1$.1f U Causa: %2$s
- Limito il bolo esteso a %1$.1f U Causa: %2$s
- Limito max IOB a %1$.1f U Causa: %2$s
- Limito i carboidrati a %1$d g Causa: %2$s
- Limito IOB a %1$.1f U Causa: %2$s
+ Limitazione max tasso percentuale a %1$d%% a causa di: %2$s
+ Limitazione bolo a %1$.1f U a causa di: %2$s
+ Limitazione bolo esteso a %1$.1f U a causa di: %2$s
+ Limitazione max IOB a %1$.1f U a causa di: %2$s
+ Limitazione carboidrati a %1$d g a causa di: %2$s
+ Limitazione IOB a %1$.1f U a causa di: %2$svalore max nelle preferenzelimite fissoutilizzo non sicuroLettura stato fallita
- Registra cambio sito micro
- Sostituzione della cartuccia di insulina record
- Le funzioni \"SMB sempre\" e \"SMB dopo carboidrati\" sono disabilitate perché la sorgente dati della Glicemia non supporta il filtraggio avanzato
- SMB non consentito in modalità Loop Aperto
+ Registra cambio posizione cannula
+ Registra cambio serbatoio insulina
+ Le funzioni \"SMB sempre\" e \"SMB dopo i carboidrati\" sono disabilitate perché la sorgente delle glicemie non supporta il filtraggio avanzato
+ SMB non consentito in modalità loop apertoCiboresetIn attesa della sincronizzazione dell\'ora (%1$d sec)Disconnesso (%1$d m)Max IOB totale oltre la quale OpenAPS non può andare [U]Questo valore è chiamato Max IOB nel contesto OpenAPS\nOpenAPS non aggiungerà ulteriore insulina se IOB corrente è maggiore di questo valore
- Micro sospeso
+ Micro stoppatoMicro avviatoMicro in pausaMax tempo assorbimento pasto [h]
@@ -925,13 +900,13 @@
Usa solo connessione WiFiWiFi SSIDSolo se in carica
- Impostazioni Connessione
+ Impostazioni connessioneSSID ammessi (separati da punto e virgola)Consenti connessione in roamingMax rapporto autosensMin rapporto autosensBolus snooze - divisore DIA
- Max moltiplicatore di sicurezza basale giornaliera
+ Moltiplicatore di sicurezza max basale giornalieraMoltiplicatore di sicurezza basale correnten/aMicro virtuale
@@ -940,44 +915,44 @@
* Sono supportati solo valori discreti, non intervalli di valori, come incrementi per basale/bolo nel micro virtuale.Riempimento automatico BGImpostazioni Wizard
- Calcoli inclusi nel risultato della procedura guidata:
- Impostazioni visualizzazione
+ Calcoli inclusi nel risultato di Wizard:
+ Impostazioni di visualizzazioneImpostazioni generaliAbilita NSClient
- Benvenuto nella procedura guidata di configurazione. Ti seguirò durante tutto il processo.\n
+ Benvenuto nella configurazione guidata. Ti seguirò durante tutto il processo.\nSetup Micro
- Leggi stato
+ Lettura statoLe modifiche devono essere fatte in NSSalta configurazione guidata
- Premere il pulsante in basso per permettere ad AndroidAPS di suggerire/fare modifiche alla basale
+ Premi il pulsante in basso per permettere ad AndroidAPS di suggerire/fare modifiche alla basaleConfigura il plugin APSConfigura il plugin di SensibilitàIl plugin di Sensibilità è utilizzato per il rilevamento della sensibilità all\'insulina e il calcolo di COB. Per ulteriori informazioni visita:https://github.com/MilosKozak/AndroidAPS/wiki/Sensitivity-detection-and-COBNSClient 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 Glicemie
- Seleziona il tipo di profilo. Se il paziente è un bambino è necessario 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 da algoritmi disponibili. Sono ordinati dal più vecchio al più recente. L\'algoritmo più recente è solitamente più potente, incisivo e \"aggressivo\". Pertanto, se sei un nuovo utente, probabilmente potresti/dovresti iniziare con AMA e non con l\'ultimo. Non dimenticare di leggere la documentazione di OpenAPS e di configurarlo prima dell\'uso.
- Inizia il tuo primo obiettivo
+ Configura sorgente glicemie
+ 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 obiettivoPermessoChiedi il permesso
- L\'applicazione richiede l\'accesso alla posizione per eseguire lo scan Bluetooth
+ L\'applicazione richiede l\'accesso alla posizione per eseguire lo scan bluetoothL\'applicazione richiede l\'accesso alla memoria per salvare i file di logRichiesta
- Configura il plugin insulina
- Uscita
- Opzioni Utente
+ Configura il plugin Insulina
+ Esci
+ Opzioni utenteFormato dell\'ora
- Pulsante di scorrimento
- Suono alla pressione del pulsante
+ Tasto di scorrimento
+ Suono alla pressione del tastoAllarmeSuonoVibrazioneEntrambiLCD acceso [s]Retroilluminazione accesa [s]
- Unità Glucosio
+ Unità glucosioSpegnimento(ore)Livello serbatoio basso (Unità)Salva opzioni nel micro
@@ -985,31 +960,30 @@
OffApri navigazioneChiudi navigazione
- Preferenze Plugin
+ Preferenze pluginCompletato, ben fatto!Non ancora completatoTempo trascorso
- %1$d. ObiettivoPoctech
- Ricevi valori Glicemia da app Poctech
- Ricevi valori Glicemia da app Tomato (dispositivo MiaoMiao)
- High Temp-Target aumenta la sensibilità
+ Ricevi valori glicemia da app Poctech
+ Ricevi valori glicemia da app Tomato (dispositivo MiaoMiao)
+ Temp-Target \"alto\" aumenta la sensibilità= 100]]>
- Low Temp-Target diminuisce la sensibilità
-
+ Temp-Target \"basso\" riduce la sensibilità
+ Configurazione micro non valida, controlla la documentazione e verifica che il menu Quick Info sia denominato QUICK INFO utilizzando \"360 configuration software\".PersonalizzatoGrande differenza d\'orario
- Grande differenza d\'orario:\nL\'orario nel micro differisce per più di 1h e 30m. \nRegola l\'ora manualmente e assicurati che la lettura dello storico del micro non causi comportamenti imprevisti.\nSe possibile, cancella la cronologia del micro prima di cambiare l\'orario oppure disabilita il Loop Chiuso per un tempo corrispondente alla tua DIA a partire dall\'orario dall\'ultima voce errata, ma in ogni caso almeno a partire da adesso.
- Rimuovi eventi avviati da AndroidAPS
+ Grande differenza d\'orario:\nL\'orario nel micro differisce per più di 1h e 30m. \nRegola l\'ora manualmente e assicurati che la lettura dello storico dal micro non causi comportamenti imprevisti.\nSe possibile, cancella la cronologia del micro prima di cambiare l\'orario oppure disabilita il loop chiuso per un tempo corrispondente al tuo valore DIA.
+ Rimuovi gli eventi \"AndroidAPS avviato\"Trovate impostazioni salvate
- Attenzione: se attivi e connetti un micro, AndroidAPS copierà le impostazioni della basale dal profilo al micro, sovrascrivendo la velocità basale memorizzata sul micro. Assicurati di avere la giusta impostazione della basale in AndroidAPS. Se non sei sicuro o non vuoi sovrascrivere le impostazioni della basale sul micro, premi Cancella e ricollega il micro in un altro momento.
+ Attenzione: se attivi e connetti un micro, AndroidAPS copierà le impostazioni della basale dal profilo al micro, sovrascrivendo la velocità basale esistente memorizzata sul micro. Assicurati di avere la giusta impostazione della basale in AndroidAPS. Se non sei sicuro o non vuoi sovrascrivere le impostazioni della basale sul micro, premi annulla e ripeti il processo in un altro momento.Dati trattamento incompleti
- Impostazioni Manutenzione
+ Impostazioni manutenzioneEmailNessun log da inviareManutenzione
- MAINT
+ MANUTFornisce numerose funzioni per la manutenzione (ad es. invio log, eliminazione log).Invia i log via EmailElimina i log
@@ -1017,42 +991,42 @@
eCarbs: %1$d g (%2$d h), ritardo: %3$d mNessun dato autosens disponibileImpostazioni Log
- Ripristina impostazioni predefinite
- Malfunzionamento NSClient Considera il riavvio di NS e NSClient.
+ Ripristina valori predefiniti
+ Malfunzionamento NSClient. Considera il riavvio di NS e NSClient.ASVersione %1$s disponibile
- Differenza di fuso orario
+ Offset temporaleModalità APS preferitaTotaleCalcConnessione
- Invia agli sviluppatori i file log di oggi e del momento attuale. Situazione inaspettata.
+ Invia agli sviluppatori i file log di oggi e di questo momento. Situazione inaspettata.Violazione bolo massimoErrore comandoErrore velocitàViolazione limite insulina
- Richiesta cambiamento minima [%]
- Il Loop Aperto mostrerà una nuova richiesta di modifica solo se la modifica è maggiore di questo valore in %. Il valore predefinito è 20%
+ Richiesta minima di modifica [%]
+ Il loop aperto mostrerà una nuova richiesta di modifica solo se la modifica è maggiore di questo valore in %. Il valore predefinito è 20%Associa il micro con il tuo telefono!Ricerca dispositivi…Attendi…Associazione completataI codici mostrati su questo dispositivo e sul micro combaciano?
- associazione Insight
+ Associazione InsightAccu-Chek Insight
- %1$.2fU / %2$.2fU erogate
+ %1$.2fU / %2$.2fU erogato%1$s: %2$sCatetere sostituitoOra del micro aggiornataConfermaMutoAvviso microinfusore
- Log cambio sito
- Log cambio serbatoio
- Log cambio catetere
- Log cambio batteria
- Log cambio modalità di funzionamento
- Log avvisi
+ Registra cambi posizione cannula
+ Registra cambi serbatoio
+ Registra cambi catetere
+ Registra cambi batteria
+ Registra cambi modalità di funzionamento
+ Registra avvisiAbilita emulazione TBRUsa i bolli estesi invece dei TBR per aggirare il limite del 250%%Ritardo disconnessione [s]
@@ -1063,26 +1037,26 @@
Versione MD tel processor softwareVersione Safety processor softwareVersione BT info page
- Indirizzo Bluetooth
+ Indirizzo bluetoothAppendice ID sistemaData di produzioneElimina associazioneInformazioni associazioneAvvia micro
- Ferma micro
+ Stoppa microModalità operativaStato
- TDD Boli
- TDD Basale
- TDD Totale
+ TDD da bolo
+ TDD da basale
+ TDD totaleRecuperoNon associatoUltima connessioneAvviato
- Fermato
+ Stoppato%1$d%% per %2$d / %3$d min
- Bolo Esteso
- Bolo Multiwave
+ Bolo esteso
+ Bolo multiwave%1$.2f / %2$.2f U per %3$d minAbilita notifica di fine TBR\n(impostazione micro)Disabilita notifica di fine TBR\n(impostazione micro)
@@ -1114,10 +1088,10 @@
Già abilitatoGià disabilitatoGià sospeso
- Riprendi il Loop
+ Riprendi il loopNon sospesoAvvia temp-target
- Ferma temp-target
+ Stoppa temp-targetè inferiore aè uguale o inferiore aè uguale a
@@ -1169,12 +1143,12 @@
TDPCarica dati in TidepoolCarica dati CGM
- Carica trattamenti (insulina, carbo)
+ Carica trattamenti (insulina, carboidrati)Carica basali temporanee
- Carica switch di profilo, target temporanei
- Carica test Glicemia
+ Carica cambi profilo, target temporanei
+ Carica test glicemiaCambio all\'ora legale in 24h o meno
- Cambio all\'ora legale avvenuto meno di 3 ore fa - Loop Chiuso disattivato
+ Cambio all\'ora legale avvenuto meno di 3 ore fa - Loop chiuso disabilitatovincolo di archiviazione internaLibera almeno %1$d MB dalla memoria interna! Loop disabilitato!Formato errato
@@ -1192,7 +1166,7 @@
CANCAGGCOPIA
- Aggiungi nuovo
+ Aggiungere nuovoControllo VersioneVerificatore firmaAbbiamo rilevato che stai eseguendo una versione non valida. Loop disabilitato!
@@ -1201,9 +1175,9 @@
Nuova versione disponibile da %1$d giorni! Ritorno a LGS trascorsi 60 giorni, disattivazione del loop dopo 90 giorni2h%1$.2fU
- Dexcom App (modificata)
+ Dexcom app (modificata)DXCM
- Ricevi valori Glicemia dall\'app Dexcom modificata.
+ Ricevi valori glicemia dall\'app Dexcom modificata.NotificaNotifica: %1$sMsg:
@@ -1213,13 +1187,13 @@
Avvia profilo %1$d%%esistenon esiste
- Temp target %1$s
+ Temp-Target %1$sWiFi SSID %1$s %2$sAutosens %1$s %2$s %%Autosens %%3$s %1$s %2$s
- Differenza Glicemia
- Differenza Glicemia [%1$s]
+ Differenza glicemia
+ Differenza glicemia [%1$s]Posizione correntePosizioneLat:
@@ -1227,11 +1201,11 @@
Dist [m]:Nome:La posizione è %1$s
- Ultimo Bolo
+ Ultimo boloOra ultimo bolo %1$s %2$s min faCOBCOB %1$s %2$.0f
- Nome Task
+ Nome taskMODIFICAScegli un tipo di azione:Scegli un tipo di trigger:
@@ -1248,20 +1222,22 @@
Tipo microFrequenza microRitardo prima che il Bolo sia avviato (s)
- Max Bolo su Micro (U)
- Max Basale su Micro (U/h)
+ Max bolo su micro (U)
+ Max basale su micro (U/h)Codifica MedtronicUS & Canada (916 MHz)Globale (868 Mhz)Codifica Software 4b6bCodifica Hardware 4b6bRisveglio e Sintonizzazione
- Cancella Blocco Bolo
+ Cancella blocco boloReset Configurazione RileyLink
- Tipo batteria (Power View)
+ Tipo batteria (Power view)Non selezionato (Simple view)
- Alkaline (Extended view)
- Lithium (Extended view)
+ Alcalina (Extended view)
+ Litio (Extended view)
+ NiZn (Extended view)
+ Debug Bolo/TrattamentiSCANSTOP
@@ -1269,11 +1245,11 @@
Scansione RileyLinkBluetooth Low Energy non supportato.Bluetooth disabilitato.
- La posizione non è abilitata
- Affinché la ricerca bluetooth funzioni coi nuovi dispositivi, la localizzazione deve essere abilitata, ma può essere disabilitata dopo l\'associazione. AAPS non tiene traccia della tua posizione.
+ La posizione è disabilitata
+ Affinché la ricerca bluetooth funzioni sui nuovi dispositivi, la localizzazione deve essere abilitata, ma può essere disabilitata dopo l\'associazione. AAPS non tiene traccia della tua posizione.AbilitaNo
- Scansione in corso
+ ScansioneScansione terminataErrore scansione: %1$d
@@ -1286,7 +1262,7 @@
Indirizzo configuratoDispositivo connessoStato connessione
- Errore Connessione
+ Errore connessioneDispositivoTipo dispositivoModello dispositivo
@@ -1294,7 +1270,7 @@
Ultimo contatto dispositivoRL Firmware
- Inizializzazione Bluetooth…
+ Inizializzazione bluetooth…Errore BluetoothBluetooth prontoNon avviato
@@ -1307,7 +1283,7 @@
Il dispositivo non è RileyLinkRileyLink non raggiungibileBluetooth disabilitato
- Nessun adattatore Bluetooth
+ Nessun adattatore bluetoothSintonizzazione fallitaMicro irraggiungibilePod irraggiungibile
@@ -1324,13 +1300,13 @@
Frequenza micro non impostata.Frequenza micro non supportata.Indirizzo RileyLink non valido.
- Tipo di micro rilevato non è uguale al tipo configurato.
+ Il tipo di micro rilevato non è uguale al tipo configurato.I profili basali non sono abilitati nel microinfusore.Il profilo basale impostato nel micro non è corretto (deve essere STD).Tipo TBR errato impostato nel micro (deve essere Assoluto).
- Max Bolo errato impostato nel micro (deve essere %1$.2f).
- Max Basale errata impostata nel micro (deve essere %1$.2f).
- Operazione non possibile.\n\n Devi prima configurare il Micro Medtronic.
+ Max bolo errato impostato nel micro (deve essere %1$.2f).
+ Max basale errata impostata nel micro (deve essere %1$.2f).
+ Operazione non possibile.\n\n Devi prima configurare il micro Medtronic.È stata richiesta una modifica d\'orario di oltre 24h.Basali
@@ -1339,7 +1315,7 @@
StatisticheSconosciutiTutto
- Storico del Micro Medtronic
+ Storico del micro MedtronicMai connessoRisveglio
@@ -1350,27 +1326,35 @@
AttivoIn sospensione
- Hai cancellato il bolo, dopo che era già stato impostato sul Microinfusore. Dal momento che il micro Medtronic non supporta la cancellazione, avrai bisogno di cancellare il bolo manualmente. Metti il micro in modalità Sospensione e poi fallo Ripartire (se vuoi ancora cancellare il bolo). L\'applicazione rileverà le modifiche al prossimo aggiornamento (in meno di 5 minuti).
+ Hai cancellato il bolo, dopo che era già stato impostato sul microinfusore. Dal momento che il micro Medtronic non supporta la cancellazione, avrai bisogno di cancellare il bolo manualmente. Metti il micro in modalità sospensione e poi fallo ripartire (se vuoi ancora cancellare il bolo). L\'applicazione rileverà le modifiche al prossimo aggiornamento (in meno di 5 minuti).Impossibile leggere il TBR corrente.Impossibile cancellare il TBR corrente. Arresto dell\'operazione.
- Impostazione del profilo fallita, i seguenti modelli hanno un tasso basale troppo grande: %1$s
- Il Bolo non può essere erogato.
+ Impostazione del profilo fallita. A causa dei seguenti pattern, hai una velocità basale troppo grande: %1$s
+ Il bolo non può essere erogato.Il bolo non può essere erogato perché la quantità di insulina disponibile (%1$.2f) è inferiore al bolo richiesto (%2$.2f).Il TBR non può essere impostato.Impossibile cancellare il TBR corrente.Il profilo basale non può essere impostato.Il profilo basale è lo stesso, non sarà impostato di nuovo.
- Ottieni Storico - Pagina %1$d (%2$d/16)
- Ottieni Storico - Pagina %1$d
- Ottieni Orario Micro
- Ottieni Impostazioni
- Ottieni Modello Micro
- Ottieni Profilo Basale
- Imposta Profilo Basale
- Ottieni Basale Temporanea
- Imposta Basale Temporanea
- Imposta Bolo
- %2$.1fg %3$.2fU]]>
+ Ottieni storico - Pagina %1$d (%2$d/16)
+ Ottieni storico - Pagina %1$d
+ Ottieni orario micro
+ Ottieni impostazioni
+ Ottieni modello micro
+ Ottieni profilo basale
+ Imposta profilo basale
+ Ottieni basale temporanea
+ Imposta basale temporanea
+ Imposta bolo
+ Cambia profilo in
+ Cambia profilo in %1$s
+ Ultima connessione al micro
+ Ultima connessione al micro [minuti fa]
+ Ultima connessione al micro %1$s %2$s min fa
+ Invia SMS: %1$s
+ Invia SMS a tutti i numeri nelle preferenze
+ Invia SMS con testo
+ %2$+.2fU]]>Vincolo Bolo applicato: %2$.2fU a %3$.2fU]]>!!!!! Rilevato assorbimento lento dei carboidrati: %2$d%% del tempo. Ricontrolla il tuo calcolo. COB potrebbero essere sovrastimati e potrebbe essere somministrata più insulina !!!!!]]>%1$.0f / %2$d U
@@ -1378,38 +1362,19 @@
Bolus wizard esegue il calcolo, ma solo questa parte dell\'insulina calcolata è erogata. Utile con algoritmo SMB.Caricamento ...Snooze
- Compiuto: %1$s
- Impara a controllare AndroidAPS
- Esegui varie azioni in AndroidAPS
- Imposta il profilo \"90%\" per 10 min (premi a lungo sul nome profilo nella sezione Panoramica)
- Simula la doccia. Disconnetti il micro per 1h (premi a lungo su Open Loop)
- ... e riconnetti allo stesso modo
- Crea un temp-target personalizzato con una durata di 10 min (premi a lungo sul tuo target corrente)
- Nel Configuratore attiva il plugin Azioni, rendilo visibile e visualizzane i contenuti tramite il menu in alto
- Visualizza il contenuto del plugin Loop
- Usa la funzione di ridimensionamento premendo a lungo sul grafico delle glicemie
- Invio
- Inserisci il codice ottenuto dagli sviluppatori per aggirare il resto degli obiettivi
- Codice accettato
- Codice non valido
- Prova la tua conoscenza
- Studia e rispondi correttamente alle domande
- Risposta disabilitata per: %1$s
- Risposta sbagliata!
- Prossimo non completato
+ Intervallo di tempo
+ Il tempo è compreso tra %1$s e %2$s
+ Tra Chiudi
- Codice richiesta: %1$s
- (segna tutte le risposte corrette)
-
- %1$d giorno
- %1$d giorni
-
-
- %1$d ora
- %1$d ore
-
-
- %1$d minuto
- %1$d minuti
-
+ Aumento del valore max basale perché l\'impostazione è inferiore alla tua basale massima nel profilo
+ Corpo del messaggio non valido
+ %1$s ISF: %2$.1f
+ %1$.0fg IC: %2$.1f
+ %1$.1fg IC: %2$.1f
+ %1$d%%
+ Bolus wizard
+ min
+ %1$dg
+ On
+ Off
diff --git a/app/src/main/res/values-iw-rIL/exam.xml b/app/src/main/res/values-iw-rIL/exam.xml
new file mode 100644
index 0000000000..70489fbc5e
--- /dev/null
+++ b/app/src/main/res/values-iw-rIL/exam.xml
@@ -0,0 +1,3 @@
+
+
+
diff --git a/app/src/main/res/values-iw-rIL/objectives.xml b/app/src/main/res/values-iw-rIL/objectives.xml
new file mode 100644
index 0000000000..70489fbc5e
--- /dev/null
+++ b/app/src/main/res/values-iw-rIL/objectives.xml
@@ -0,0 +1,3 @@
+
+
+
diff --git a/app/src/main/res/values-iw-rIL/strings.xml b/app/src/main/res/values-iw-rIL/strings.xml
index d01b8a31e5..d4508abe7a 100644
--- a/app/src/main/res/values-iw-rIL/strings.xml
+++ b/app/src/main/res/values-iw-rIL/strings.xml
@@ -5,7 +5,6 @@
-
רענן טיפול מ-Nightscoutבבקשה אתחל את הסמרטפון שלך או תרענן את אפלקצית AndroidAPS בהגדרות המערכת
אחרת AndroidAPS לא יוכל לבצע רישום (חשוב לעקוב אחר ולוודא כי האלגוריתמים פועלים כראוי)!
diff --git a/app/src/main/res/values-ja-rJP/exam.xml b/app/src/main/res/values-ja-rJP/exam.xml
new file mode 100644
index 0000000000..70489fbc5e
--- /dev/null
+++ b/app/src/main/res/values-ja-rJP/exam.xml
@@ -0,0 +1,3 @@
+
+
+
diff --git a/app/src/main/res/values-ja-rJP/objectives.xml b/app/src/main/res/values-ja-rJP/objectives.xml
new file mode 100644
index 0000000000..70489fbc5e
--- /dev/null
+++ b/app/src/main/res/values-ja-rJP/objectives.xml
@@ -0,0 +1,3 @@
+
+
+
diff --git a/app/src/main/res/values-ja-rJP/strings.xml b/app/src/main/res/values-ja-rJP/strings.xml
index 7879323748..df88c88e20 100644
--- a/app/src/main/res/values-ja-rJP/strings.xml
+++ b/app/src/main/res/values-ja-rJP/strings.xml
@@ -5,7 +5,6 @@
-
diff --git a/app/src/main/res/values-ko-rKR/exam.xml b/app/src/main/res/values-ko-rKR/exam.xml
new file mode 100644
index 0000000000..70489fbc5e
--- /dev/null
+++ b/app/src/main/res/values-ko-rKR/exam.xml
@@ -0,0 +1,3 @@
+
+
+
diff --git a/app/src/main/res/values-ko-rKR/objectives.xml b/app/src/main/res/values-ko-rKR/objectives.xml
new file mode 100644
index 0000000000..70489fbc5e
--- /dev/null
+++ b/app/src/main/res/values-ko-rKR/objectives.xml
@@ -0,0 +1,3 @@
+
+
+
diff --git a/app/src/main/res/values-ko-rKR/strings.xml b/app/src/main/res/values-ko-rKR/strings.xml
index d30033974a..6fc3797b17 100644
--- a/app/src/main/res/values-ko-rKR/strings.xml
+++ b/app/src/main/res/values-ko-rKR/strings.xml
@@ -5,7 +5,6 @@
-
관리 안전설정최대 허용 Bolus [U]최대 허용 탄수화물 [g]
@@ -57,9 +56,6 @@
WearOS 워치를 이용하여 AndroidAPS를 모니터하고 제어합니다.xDrip+ 워치페이스에서 Loop정보 보여주기SMS 전송을 이용하여 AndroidAPS를 원격 제어합니다.
- 뒤로
- 시작
- 확인단위인슐린활동시간(DIA):인슐린 대 탄수화물 비율(IC):
@@ -177,9 +173,6 @@
지원하지 않는 NSClient 버전입니다지원하지 않는 Nightscout 버전입니다NSClient 가 설치되지 않았습니다. 기록이 삭제됩니다!
- NS에서 혈당데이터가 확인 가능합니다.
- NS에서 펌프상태가 확인 가능합니다.
- 수동 주입제한으로 인해 LOOP가 사용불가합니다.Basal IOBBolus 제한이 적용되었습니다
@@ -222,7 +215,6 @@
임시Basal확장 BolusNightscout 버전:
- 누락설정이 저장되었습니다다음 위치에 설정을 저장하시겠습니까다음 위치에서 설정을 불러오시겠습니까
@@ -317,8 +309,6 @@
정지 누름펌프를 기다리는 중%1$.2fU을 주입합니다
- 표시설정과 모니터설정을 완료하고, Basal과 비율을 분석한다.
- 나이트스카우트에서 혈당 데이터가 잘 들어오는지, 펌프데이터가 업로드 되는지 확인한다.허용된 제한값에 도달하였습니다프로파일이 선택되지 않았습니다Loop가 중지되었습니다.
@@ -554,8 +544,6 @@
홈화면에 상태 표시등 보여주기주사기량 경고 기준값[U]주사기량 위험 기준값[U]
- 배터리량 경고 기준값[%%]
- 배터리량 위험 기준값[%%]IOBCOB펌웨어
@@ -625,7 +613,6 @@
취소모든 프로파일이 로드되지 않았습니다.값이 저장되지 않았습니다!
- (xDrip 같은) 다른 앱으로의 브로드캐스트를 활성화합니다.Local Broadcasts 활성화하기활동 & 피드백탄수화물 & Bolus
@@ -849,8 +836,6 @@
프로파일변경 누락. 로컬 프로파일에서 프로파일 변경을 하거나 \"프로파일 활성화하기\"를 누르세요.Bolus 수임시기초주입 수
- 목표%1$d이 시작되지 않았습니다.
- 목표%1$d이 완료되지 않았습니다.이 펌프 임시Basal을 지원하지 않습니다.펌프에서 유효한 Basal양을 읽을 수 없습니다.설정에서 Closed Loop 모드가 비활성화되었습니다.
@@ -972,7 +957,6 @@
훌륭합니다. 완료되었습니다!아직 완료되지 않았습니다.경과 시간
- %1$d. 목표PoctechPoctech 앱에서 혈당값 받기혈당값이 Tomato앱(MiaoMaio장치) 으로부터 수신되었습니다.
@@ -1283,7 +1267,6 @@
시작되지 않았습니다.RileyLink 초기화…RileyLink 에러
- RileyLink 와 펌프 튜닝펌프 연결 문제연결됨
@@ -1353,7 +1336,6 @@
임시 Basal 받기임시 Basal 설정Bolus 설정
- %2$.1fg %3$.2fU]]>Bolus 제약 적용: %2$.2fU 에서 %3$.2fU]]>!!!!! 느린 탄수화물 흡수 감지: %2$d%% of time. 계산을 다시 확인하십시오. COB를 과대하게 측정하여 더 많은 인슐린이 주입될 수 있습니다 !!!!!]]>%1$.0f / %2$d U
@@ -1361,13 +1343,4 @@
Bolus 마법사는 계산을 수행하지만 계산된 인슐린의 이 부분만 주입됩니다. SMB 알고리즘에 유용합니다.불러오는 중…스누즈
-
- %1$d 일
-
-
- %1$d 시간
-
-
- %1$d 분
-
diff --git a/app/src/main/res/values-lt-rLT/exam.xml b/app/src/main/res/values-lt-rLT/exam.xml
new file mode 100644
index 0000000000..634982d1fc
--- /dev/null
+++ b/app/src/main/res/values-lt-rLT/exam.xml
@@ -0,0 +1,169 @@
+
+
+
+ Koks atsakymas apie IVT yra teisingas?
+ Tema: Insulino veikimo trukmė
+ Mažiausia reikšmė - 3 valandos.
+ Mažiausia reikšmė - 5 valandos.
+ https://androidaps.readthedocs.io/en/latest/EN/Configuration/Config-Builder.html?#insulin
+ Jis yra lygus IVT parametrui, kuris naudojamas pompoje.
+ Jūs turite nustatyti jūsų individualias vertes (bet ne mažiau kaip 5 valandas).
+ Tema: Hipo Laikinas tikslas
+ Kokia yra pagrindinė priežastis nustatyti hipo laikiną tikslą?
+ Užkirsti kelią kristi gliukozės kiekiui kraujyje, kai jau veikia nulinė laikina bazė.
+ Apriboti AAPS, kad nebūtų suleista per daug insulino po glikemijos kilimo, kurį sukelia greiti angliavandeniai, suvartoti hipoglikemijai suvaldyti.
+ https://androidaps.readthedocs.io/en/latest/EN/Usage/temptarget.html
+ Kuris profilis gali būti naudojamas ir sukonfigūruotas neprisijungus?
+ Tema: Vietinis Profilis
+ NS Profilis gali būti naudojamas, bet nekonfigūruojamas.
+ https://androidaps.readthedocs.io/en/latest/EN/Configuration/Config-Builder.html#profile
+ Tema: Atsijungimas nuo Pompos
+ Ką reikėtų daryti, kai atjungiama pompa?
+ Spustelėkite Atjungti pompą, kad AAPS žinotų, kad insulinas nėra leidžiamas.
+ Paspauskite Sustabdyti ciklą, kad AAPS sustabdytų ciklą, kai pompa yra atjungta.
+ Nieko nekeiskite AAPS, tiesiog atjunkite pompą.
+ https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#other-settings
+ Tema: AndroidAPS nustatymai
+ Kokie geriausi veiksmai išsaugant nustatymų atsarginę kopiją?
+ Eksportavimas į vidinę atmintį per Serviso meniu.
+ Išsaugokite eksportuotą failą tokiose vietose kaip el. paštas, Dropbox, Google drive…
+ Eksportuokite juos iš karto po AAPS instaliavimo.
+ Atlikę nustatymų pakeitimus, juos eksportuokite.
+ Eksportuokite juos įvykdę tikslą.
+ Eksportuokite juos, kai atliksite pradinius nustatymus.
+ https://androidaps.readthedocs.io/en/latest/EN/Usage/ExportImportSettings.html
+ https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#what-emergency-equipment-is-recommended-to-take-with-me
+ Tema: Triukšmingi NGJ Rodmenys
+ Ką reikėtų daryti, jei sensoriaus duomenys yra triukšmingi - besiblaškantys?
+ Nieko, Ciklas pats susitvarkys.
+ Išjungti ciklą, kad išvengtumėte insulino perdozavimo.
+ Pakeisti NGJ sensorių.
+ Išjungti telefoną.
+ https://androidaps.readthedocs.io/en/latest/EN/Usage/Smoothing-Blood-Glucose-Data-in-xDrip.html#smoothing-blood-glucose-data
+ Įsitikinkite, kad sensoriaus programėlė išlygina KG duomenis.
+ Tema: Mankšta
+ Kaip padėti sistemai susidoroti su fizine veikla?
+ Laikino tikslo funkcijos naudojimas.
+ Perjungti profilį į žemesnį nei 100%.
+ Perjungti profilį į aukštesnį nei 100%.
+ Sustabdyti ciklą.
+ Nustatyti aktyvumo laikiną tikslą prieš fizinį aktyvumą.
+ Laikinojo tikslo nustatymas po veiklos pradžios duoda prastesnius rezultatus, nei tuo atveju, jei jis buvo nustatytas iš anksto.
+ https://androidaps.readthedocs.io/en/latest/EN/Usage/temptarget.html#activity-temp-target
+ Tema: Ciklas išjungtas/sustabdytas
+ Ar man leidžiamas insulinas, kai ciklas yra išjungtas / pristabdytas?
+ Taip, bazinis insulinas ir toliau leidžiamas.
+ Ne, insulino tiekimas sustabdytas.
+ Tema: Bazės, JIF, ir IA testavimas
+ Kada turėčiau patvirtinti bazės, JIF ir IA reikšmes?
+ Prieš pradedant naudoti AAPS.
+ Kai dažnai kartojasi hipoglikemija.
+ Kai dažnai kartojasi hiperglikemija.
+ https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#androidaps-settings
+ Tema: Būtinos sąlygos
+ Ko man reikia?
+ Patikrinti profilio duomenis (valandines bazes, IA, JIF, IVT).
+ Kompiuterio APK sukūrimui.
+ Tinkamo telefono.
+ Automobilio.
+ Nightscout, tikslų įveikimui.
+ Tidepool paskyros.
+ Google paskyros.
+ Github paskyros.
+ Android kūrimo patirties.
+ MiniMed 670G pompos.
+ https://androidaps.readthedocs.io/en/latest/EN/Module/module.html
+ Išmaniojo laikrodžio.
+ Palaikomo NGJ.
+ Tema: AndroidAPS atnaujinimas
+ Kuris teiginys teisingas?
+ Jums reikia turėti įdiegtą Git.
+ Atnaujinkite, kai tik bus išleista nauja versija ir tam turėsite pakankamai laiko.
+ Turite naudoti tuos pačius parašo raktus.
+ Niekada neatnaujinkite, jei sistema veikia gerai.
+ Paprašykite savo draugo naujo APK.
+ https://androidaps.readthedocs.io/en/latest/EN/Installing-AndroidAPS/Update-to-new-version.html#update-to-a-new-version-or-branch
+ Tema: Gedimų Šalinimas
+ Kur ieškoti pagalbos?
+ Prisijungti prie AndroidAPS Facebook grupėje.
+ Skaityti AndroidAPS dokumentaciją.
+ Apsilankyti AndroidAPS Gitter kanale.
+ Apsilankyti AndroidAPS Google palaikymo tarnyboje
+ Pasitarti su savo endokrinologu.
+ https://androidaps.readthedocs.io/en/latest/EN/Installing-AndroidAPS/Update-to-new-version.html#troubleshooting
+ https://www.facebook.com/groups/AndroidAPSUsers/
+ https://gitter.im/MilosKozak/AndroidAPS
+ Tema: Insulino įskiepiai
+ Kokio tipo insuliną galiu naudoti su Ultra-Rapid-Oref moduliu?
+ Fiasp®
+ NovoRapid®
+ Humalog®
+ Actrapid®
+ https://androidaps.readthedocs.io/en/latest/EN/Configuration/Config-Builder.html#insulin
+ Tema: Jautrumo įskiepiai
+ Kuris jautrumo algoritmas turi reguliuojamą laiko intervalą?
+ https://androidaps.readthedocs.io/en/latest/EN/Configuration/Sensitivity-detection-and-COB.html
+ Koks jautrumo įskiepis turi būti naudojamas su NDM?
+ Tema: Angliavandenių įvedimo klaidos
+ Ką reikia daryti, jei įrašyti neteisingi angliavandeniai?
+ Skirtuke Terapija ištrinti neteisingus angliavandenių įrašus. Įvesti naujus angliavandenius.
+ Pridėti netikrą insulino dozę naudojantis Užpildymo funkcija
+ Tema: Maistas su riebalais ir baltymais
+ Ką darysite, jei maiste yra daug riebalų ar baltymų?
+ Perskaičiuosite riebalus ir baltymus į angliavandenius ir naudokitės \"Ištęstų angliavandenių\" funkcija.
+ Perskaičiuosite riebalus ir baltymus į angliavandenius ir įvesite į boluso skaičiuoklę.
+ Naudosite ištęsto boluso funkciją padengti riebalus ir baltymus.
+ https://androidaps.readthedocs.io/en/latest/EN/Usage/Extended-Carbs.html
+ Tema: Nuotolinis Stebėjimas
+ Kaip galite stebėti vaiko AAPS nuotoliniu būdu?
+ Naudojantis Nightscout svetaine.
+ Dexcom Follow, jei naudojate originalią Dexcom programėlę (tik glikemijos duomenys).
+ Dexcom Follow, jei naudojate xDrip.
+ xDrip sekėjo režimu.
+ Loop app iPhone telefone.
+ Spike iPhone telefone.
+ https://androidaps.readthedocs.io/en/latest/EN/Children/Children.html
+ Tema: Jautrumo Insulinui Faktorius
+ Didesnis IVT lemia mažesnį insulino tiekimą, kai AAPS koreguoja aukštą glikemiją.
+ Mažesnis IVT lemia mažesnį insulino tiekimą, kai AAPS koreguoja aukštą glikemiją.
+ IVT reikšmės pakeitimas neturi įtakos AAPS leidžiamo insulino kiekiui koreguojant aukštą glikemiją.
+ Nustatymuose turite įvesti JIF.
+ Jei profilyje pakeisite JIF vertę, Ciklas į pokytį iškart atsižvelgs.
+ https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#insulin-sensitivity-factor-isf-mmol-l-u-or-mg-dl-u
+ https://androidaps.readthedocs.io/en/latest/EN/Usage/Profiles.html
+ Tema: IA santykis
+ Didesnis insulino ir angliavandenių IA santykis reiškia, kad mažiau insulino reikia padengti tam tikram angliavandenių kiekiui.
+ Mažesnis insulino ir angliavandenių IA santykis reiškia, kad mažiau insulino reikia padengti tam tikram angliavandenių kiekiui.
+ Jei turite 0 AAO (aktyvių angliavandenių organizme), pakeitus IA, glikemija bus koreguojama kitokiu insulino kiekiu.
+ IA vertė skirsis priklausomai nuo to, ar duonos vienetui skaičiuojate 10g, ar 12g angliavandenių.
+ IA reiškia: kiek vienas vienetas insulino dengia angliavandenių (gramais).
+ https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#carbohydrate-to-insulin-ratio-cr-g-u
+ Tema: Profilio keitimas
+ Kai profilio keitime nustatote 90%…
+ Bazė bus 10% aukštesnė.
+ Bazė bus 10% žemesnė.
+ IA reikšmė bus 10% didesnė.
+ IA reikšmė bus 10% mažesnė.
+ JIF reikšmė bus 10% didesnė.
+ JIF reikšmė bus 10% mažesnė.
+ Jums bus viso suleista 10% mažiau insulino.
+ Tikslas bus 10% aukštesnis.
+ Tikslas bus 10% žemesnis.
+ Tik apatinis tikslas bus 10% žemesnis.
+ https://androidaps.readthedocs.io/en/latest/EN/Usage/Profiles.html?highlight=profile%20switch#profile-switch
+ Jei atsibundate 1 valanda anksčiau nei įprastai, kaip turėtumėte pranešti AAPS apie savo tvarkaraščio pasikeitimą?
+ Perjunkite profilį su laiko poslinkiu +1
+ Perjunkite profilį su laiko poslinkiu -1
+ https://androidaps.readthedocs.io/en/latest/EN/Usage/Profiles.html?highlight=profile%20switch#timeshift
+ Perjunkite profilį su laiko poslinkiu +60
+ Perjunkite profilį su laiko poslinkiu -60
+ https://androidaps.readthedocs.io/en/latest/EN/Module/module.html#good-individual-dosage-algorithm-for-your-diabetes-therapy
+ Tema: Pagalba su valandinėmis bazėmis
+ Kur kreiptis, jei jums reikia pagalbos nustatant valandines bazes ir pan.?
+ Į Jūsų endokrinologą ir diabetologą
+ Google
+ Facebook
+ Kiti vaistai
+ AAPS sumažina valandinę bazę, siekiant padidinti glikemiją. Dėl vaistų iš SGLT2 inhibitorių grupės (Gliflozinas) naudojimo, numatomas glikemijos padidėjimas gali būti neteisingai parodytas ir tokiu būdu gali sukelti pavojingą insulino trūkumą (DKA - ketoacidozę).
+ \n Prekių ženklų pavadinimai apima: „Invokana®“, „Forxiga®“, „Jardiance®“, „Steglatro®“, „Suglat®“, „Apleway®“, „Deberza®“, „Synjardy®“, „Vokanamet®“, „Xigduo®“. \n\n Pažadu nenaudoti tokių vaistų, naudojant AAPS, arba prieš vartodamas juos, atjungsiu ciklą.
+
diff --git a/app/src/main/res/values-lt-rLT/objectives.xml b/app/src/main/res/values-lt-rLT/objectives.xml
new file mode 100644
index 0000000000..3a3bf2bcac
--- /dev/null
+++ b/app/src/main/res/values-lt-rLT/objectives.xml
@@ -0,0 +1,74 @@
+
+
+
+ Atgal
+ Pradėti
+ Patikrinti
+ %1$d. tikslas
+ %1$d tikslas nepradėtas
+ %1$d tikslas nepasiektas
+ Nustatymai vizualizacijai, monitoringui ir bazės verčių bei koeficientų analizei
+ Įsitikinkite, kad gliukozės duomenys rodomi Nightscout, o pompos insulino duomenys yra įkelti
+ Aktyvuojamas atviras ciklas
+ Keletą dienų praleiskite atvirojo ciklo (Open Loop) režime, rankiniu būdu tvirtindami kuo daugiau siūlomų bazės pakeitimų. Nustatykite ir naudokite laikinus bei numatytuosiuos tikslus (pvz.: fiziniam aktyvumui ir hipo korekcijai angliavandeniais)
+ Perpraskite atvirojo ciklo veikimą bei laikinos bazės rekomendacijas
+ Remdamiesi šia patirtimi, nuspręskite, koks turėtų būti maksimalus bazės dydis bei įveskite jį pompoje ir programos Nustatymuose
+ Pradėkite uždaro ciklo (Closed Loop) režimą su pompos stabdymu esant žemai gliukozei
+ Keletą dienų praleiskite uždaro ciklo režime su kuo mažiau hipoglikemijų, kai AIO = 0
+ Koreguokite savo uždarąjį ciklą po truputį didindami maks AIO ir mažindami tikslinę glikemijos reikšmę
+ Praleiskite keletą dienų ir bent vieną naktį be hipoglikemijos aliarmų
+ Jei reikia, paderinkite valandines bazės vertes bei pagrindinius parametrus ir įgalinkite Autosens funkciją
+ 1 savaitę praleiskite sėkmingai naudodami uždarąjį ciklą dienos metu ir įvesdami visus valgomus angliavandenius
+ Dienos metu aktyvuokite papildomas funkcijas, tokias kaip pažangioji maisto skaičiuoklė (AMA Advanced Meal Assist)
+ Dienos metu aktyvuokite papildomas funkcijas, tokias kaip SMB (Super Mikro Bolusas)
+ Norėdami, kad SMB veiktų gerai, turite perskaityti dokumentaciją ir padidinti max AIO! Pradžiai patartina skaičiuoti taip: maxAIO=(didžiausia valandinė bazė x 3) + vidutinis bolusas
+ KG matoma NS
+ NS matomas pompos statusas
+ Įvesti rankiniu būdu
+ Įvykdyta: %1$s
+ Išmokite kaip valdyti AndroidAPS
+ Atlikite įvairius veiksmus AndroidAPS
+ Nustatykite profilį 90% 10 min (ilgai paspauskite profilio pavadinimą Apžvalgos skiltyje)
+ Imituokite maudynes duše. Atjunkite pompą 1 valandai (ilgai paspauskite Atviras Ciklas)
+ ... ir iš naujo prisijunkite tuo pačiu būdu
+ Nustatykite 10 min trukmės laikiną tikslą (ilgai spausti ant dabartinio tikslo)
+ Konfigūracijoje įjunkite Veiksmų įskiepį, nustatykite jį matomą ir jo turinio rodymą viršutiniame meniu
+ Parodyti Ciklo įskiepio turinį
+ Panaudokite vaizdo dydžio keitimo funkciją ilgai spaudžiant ant glikemijos kreivės
+ Įeiti
+ Įveskite kūrėjo kodą, kad apeitumėte likusius tikslus
+ Kodas priimtas
+ Neteisingas kodas
+ Patvirtinkite savo žinias
+ Išnagrinėkite ir atsakykite į klausimus teisingai
+ Atsakymas sustabdytas: %1$s
+ Neteisingas atsakymas!
+ 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
+ Neprisijungta prie interneto
+ Nepavyko nuskaityti laiko
+ Tikslo reikalavimai neįvykdyti
+
+ %1$d diena
+ %1$d dienos(-ų)
+ %1$d dienos(-ų)
+ %1$d dienos(-ų)
+
+
+ %1$d valanda
+ %1$d valandos(-ų)
+ %1$d valandos(-ų)
+ %1$d valandos(-ų)
+
+
+ %1$d minutė
+ %1$d minutės(-čių)
+ %1$d minutės(-čių)
+ %1$d minutės(-čių)
+
+
diff --git a/app/src/main/res/values-lt-rLT/strings.xml b/app/src/main/res/values-lt-rLT/strings.xml
index 5fa2be39f6..b857748b1a 100644
--- a/app/src/main/res/values-lt-rLT/strings.xml
+++ b/app/src/main/res/values-lt-rLT/strings.xml
@@ -5,7 +5,6 @@
-
Terapijos saugumasMaksimalus leistinas bolusas [U]Maks. leistini angliavandeniai [g]
@@ -18,6 +17,7 @@
DanaR Bluetooth įrenginysVisada naudoti bazės absoliučias vertesPrašome iš naujo paleisti telefoną arba sistemos nustatymuose iš naujo paleisti AndroidAPS \nkitaip AndroidAPS negalės registruoti prisijungimų (svarbu stebėti ir tikrinti ar algoritmai veikia tinkamai)!
+ Šis įrenginys nepalaiko baterijos optimizavimo išimčių - galite patirti veikimo nesklandumų.Mygtukai greitesniam pagrindinių funkcijų paleidimuiPapildomų įrašų žurnalas.Naudojama aktyvių įskiepių konfigūravimui
@@ -33,6 +33,7 @@
Naujausias algoritmas patyrusiems vartotojamsRodo dabartinę Ciklo būseną ir pagrindinių veiksmų mygtukusRodo atsinaujinančius pranešimus su trumpa Ciklo veiklos apžvalga
+ Nustatykite vietinį profilį.Nustato profilį, kuris įvestas Nightscout puslapyjeNustato profilį su vieninteliu laiko bloku.Accu-Chek Combo pompos integracija, reikalinga Ruffy programėlė
@@ -55,9 +56,6 @@
Stebėti ir kontroliuoti AndroidAPS naudojant WearOS laikrodį.Rodyti Ciklo informaciją laikrodyje, xDrip+ pradžios ekrane.Nuotolinis AndroidAPS valdymas naudojant SMS komandas.
- Atgal
- Pradėti
- PatikrintiVienetaiIVT (Insulino Veikimo Trukmė)IA (insulino/angliavandenių santykis)
@@ -66,7 +64,7 @@
TikslasNenustatytas profilisInsulinas:
- Angliavandeniai:
+ AV:AIO:AIO:Visas AIO:
@@ -77,10 +75,10 @@
AIO:Visas AIO:Insulinas
- Angliavandeniai
+ AVKGLT
- Angliavandeniai
+ AVKorekcijavvBolusų AIO
@@ -100,6 +98,7 @@
ProfilisMaisto duomenysRezultatas
+ Rezultatas: %1$s %2$sNėra gliukozės duomenųPakeitimai nereikalingiUžklausa
@@ -159,7 +158,7 @@
Bolusas:Valandinė bazėValandinė bazė:
- Angliavandeniai
+ AVPakeiskite įvestus duomenis!Nustatyti naują ištęstą bolusą:KG šaltinis
@@ -175,9 +174,6 @@
Nepalaikoma NSClient versijaNepalaikoma Nightscout versijaNeįdiegtas NSClient. Įrašai prarasti!
- KG matoma NS
- Pompos statusas matomas NS
- Įvesti rankiniu būduCIKLAS NEAKTYVUS DĖL APRIBOJIMŲBazės AIOPritaikytas boluso apribojimas
@@ -220,7 +216,7 @@
Laikina bazėIštęstas bolusasNightscout versija:
- Trūksta
+ Trūksta %1$dgNustatymai eksportuotiEksportuoti nustatymusImportuoti nustatymus iš
@@ -315,8 +311,6 @@
Paspausta STOPLaukiama ryšio su pompaBus suleista %1$.2fvv
- Nustatymai vizualizacijai, monitoringui ir bazės verčių bei koeficientų analizei
- Įsitikinkite, kad gliukozės duomenys rodomi Nightscout, o pompos insulino duomenys yra įkeltiPasiekėte leistiną ribąNepasirinktas profilisCiklas buvo išjungtas
@@ -347,7 +341,7 @@
Greitasis patarėjasGreitojo patarėjo nustatymaiMygtuko tekstas:
- Angliavandeniai:
+ AV:Galioja:PridėtiRedaguoti
@@ -519,10 +513,12 @@
Ciklas sustabdytasSustabdyta (%1$d m)Superbolusas (%1$d m)
+ Sustabdyti cikląSustabdyti ciklą 1 valSustabdyti ciklą 2 valSustabdyti ciklą 3 valSustabdyti ciklą 10 val
+ Sustabdyti ciklą %1$d minAtjungti pompą 15 minAtjungti pompą 30 minAtjungti pompą 1 val
@@ -548,10 +544,12 @@
Įgalinti superbolusus skaičiuoklėjeĮ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.Į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 [%%]
- Įspėjimo apie kritiškai žemą baterijos įkrovimo lygį riba [%%]
+ Įspėjimo apie žemą baterijos įkrovimo lygį riba [%]
+ Įspėjimo apie kritiškai žemą baterijos įkrovimo lygį riba [%]AIOAAOPrograminė įranga
@@ -621,7 +619,7 @@
AtšauktiNe visi profiliai įkelti!Reikšmės neišsaugotos!
- Įgalinti duomenų perdavimą kitoms programėlėms (kaip xDrip).
+ Įgalinti perdavimą į kitas programas (pvz., „XDrip“). Neįgalinkite, jei įdiegta daugiau nei vienas AAPS arba NSClient egzempliorius!Įgalinti lokalų duomenų perdavimą.AKTYVUMAS & ATGALINIS RYŠYSANGLIAVANDENIAI & BOLUSAS
@@ -775,6 +773,7 @@
Ištęstinio boluso suleidimo klaidaSightprieš
+ %1$.2f hLeisti SMB visadaLeisti SMB visada, nepriklausomai nuo bolusų. Įmanoma tik naudojant patikimų, filtruotų KG duomenų šaltinį, pvz.: Dexcom G5Leisti SMB po angliavandenių įvedimo
@@ -788,7 +787,7 @@
Paleisti laikinąją bazęNutildytiInsulinas
- Angliavandeniai
+ AVMygtukaiSiunčia kalibravimą į xDrip+ arba atidaro G5 kalibravimo dialogąAtidaro xDrip+, o mygtukas ATGAL gražina į AAPS
@@ -807,6 +806,7 @@
Duomenų perdavimas kūrėjamsLeisti automatinį pranešimų apie programos trikdžius ir funkcijų naudojimo duomenų siuntimą kūrėjams, naudojant fabric.io servisą.Atnaujinkite savo Dexcom programėlės versiją
+ Dexcom app neįdiegta.Pradėti Aktyvumo LTPradėti Netrukus valgysiu LTLT
@@ -816,6 +816,7 @@
Bolusas bus tik įrašytasAutomatiškai atstatyti trūkstamus KG duomenis iš NSSMB nustatyta iš pompos
+ AktyvumasJautrumas insulinuiNuokrypiaiAktyvūs angliavandeniai
@@ -826,6 +827,7 @@
Naudojama neužbaigta versija. Uždaras ciklas neaktyvus.Inžinerinis režimas įjungtasInžinerinis režimas negalimas vartotojo atšakoje
+ %1$.2f vv/valNuskaitomas bazės profilisSkaičiuojant bolusą pasikeitė pompos istorija. Bolusas nesuleistas. Prašome perskaičiuoti, jei boluso vis dar reikia.Bolusas sėkmingai suleistas, tačiau įrašas žurnale neįvestas. Taip gali nutikti, jei du vienodi nedideli bolusai suleisti per pastarąsias 2 min. Patikrinkite pompos istoriją ir įrašų žurnalą bei naudodamiesi Careportal įveskite trūkstamus įrašus. Patikrinkite, ar įvedamas įrašas neturi tokios pat laiko žymos ir insulino kiekio, kaip jau egzistuojantis.
@@ -841,8 +843,6 @@
Neatliktas profilio keitimas. Prašome atlikti profilio keitimą arba paspausti \"Aktyvuoti profilį\" Vietinio profilio (VP) skiltyje.Bolusų skaičiusLBD skaičius
- %1$d tikslas nepradėtas
- %1$d tikslas nepasiektasPompa negali nustatyti laikinos bazėsJokio tinkamo bazės kiekio nenuskaityta iš pomposUždaro ciklo būsena išjungta nustatymuose
@@ -929,6 +929,7 @@
Konfigūruoti Jautrumo nustatymo įskiepįJautrumo įskiepis yra naudojamas jautrumo aptikimui ir AAO skaičiavimams. Daugiau informacijos:https://github.com/MilosKozak/AndroidAPS/wiki/Sensitivity-detection-and-COB
+ NSClient palaiko ryšį su Nightscout. Jūs galite praleisti šią dalį dabar, bet negalėsite baigti mokymosi programos, kol nenustatysite ryšio su NS.Atminkite: DKS profiliams reikia IVT bent 5 val. IVT = 5 - 6 val DKS profilyje atitinka IVT = 3 val sename (pompos terapijos) insulino profilyje.Sukonfigūruoti KG šaltinįPrašome pasirinkti profilį. Jei pacientas yra vaikas, turite naudoti NS profilį. Jei niekas neseka jūsų Nightscout platformoje, tada geriau pasirinkti Vietinį profilį. Atminkite, kad čia Jūs tik pasirenkate profilio šaltinį. Norėdami jį aktyvuoti, turite atlikti Profilio keitimą
@@ -963,7 +964,6 @@
Užbaigta, puiku!Dar nebaigtaPraėjo laiko
- %1$d. tikslas PoctechGauti KG vertes iš Poctech programėlėsGauti KG vertes iš Tomato programėlės (MiaoMiao)
@@ -1006,6 +1006,7 @@
Greičio klaidaPažeistas insulino dozės limitasMinimalaus pokyčio užklausa [%]
+ Atviras Ciklas parodys naujų pakeitimų užklausą tik tada, kai pokytis bus didesnis nei ši vertė %. Numatytoji vertė yra 20%Atnaujinkite pompos ir telefono ryšį!Ieškoma įrenginių…Palaukite…
@@ -1073,7 +1074,48 @@
Min. atkūrimo trukmė [s]Atkūrimo trukmėRyšio užmezgimui skirtas laikas baigėsi - iš naujo nustatykite bluetooth
+ Sek
+ Šeš
+ Pen
+ Ket
+ Tre
+ An
+ Pir
+ Vartotojo nustatytos automatizavimo užduotys
+ Įveskite užduoties pavadinimą.
+ Nurodykite mažiausiai vieną sąlygą.
+ Nurodykite mažiausiai vieną veiksmą.
+ Jau įjungta
+ Jau išjungta
+ Jau sustabdyta
+ Atnaujinti ciklą
+ Nesustabdyta
+ Nustatykite laikiną tikslą
+ Sustabdykite laikiną tikslą
+ mažesnis nei
+ lygus arba mažesnis nei
+ yra lygus
+ yra lygus arba didesnis nei
+ didesnis nei
+ negalimas
+ nežinoma
+ Glikemija nepasiekiama
+ Glikemija %1$s %2$.0f %3$s
+ Glikemija %1$s %2$.1f %3$s
+ Profilis %1$s%2$d
+ AIO %1$s %2$.1f
+ Ir
+ Arba
+ Išskyrus arba
+ %1$s
+ Naudoti tinklo vietovę
+ Naudoti GPS vietovę
+ Naudoti pasyviąją vietovę
+ Vietovės paslaugos
+ Auto
+ Automatiškai== ∑ %1$s vv
+ Vv/valg/vv/vvRegistruoti sensoriaus keitimą NS
@@ -1083,11 +1125,28 @@
sekundėminutėvalanda
+ diena
+ savaitėsekundėsminutėsvalandos
+ dienų
+ savaičiųJūsų Tidepool vartotojo vardas, įprastai jūsų el. pašto adresasVartotojo vardas
+ Jūsų Tidepool prisijungimo slaptažodis
+ Prisijungimo slaptažodis
+ Patikrinti Tidepool prisijungimą
+ Jei įjungta, duomenys bus perduoti https://int-app.tidepool.org, vietoje https://app.tidepool.org/
+ Naudoti integracijos (test) serverius
+ Tidepool
+ TDP
+ Perduoda duomenis į Tidepool
+ Perduoti NGJ duomenis
+ Įkelti terapijas (insulinas, angliavandeniai)
+ Perkelti laikiną bazę
+ Perduoti profilio pokyčius, laikinas bazes
+ Perduoti KG testusLaiko persukimas įvyks po 24 val ar mažiauLaikas persuktas prieš mažiau nei 3 val - Uždaras ciklas deaktyvuotasvidinės saugyklos apribojimas
@@ -1096,42 +1155,222 @@
Neteisingas kodas. Komanda atšaukta.NesukonfigūruotaProfilio perjungimas sukurtas
+ Pasikartojantis laikas
+ Kiekvienas
+ Niekada
+ %1$dmins
+ Sąlyga:
+ Veiksmas:
+ AIO [U]:
+ Gliukozė [%1$s]:
+ IŠTRINTI
+ PRIDĖTI
+ KOPIJUOTI
+ Pridėti naująVersijos tikrintuvas
+ Parašo tikrinimas
+ Nustatyta, kad naudojate neteisingą versiją. Ciklas išjungtas!sena versijalabai sena versijaNauja versija pasiekiama mažiausiai %1$d dienų! Po 60 d. grįšite prie stabdymo prie žemo, po 90 d. ciklas bus išjungtas.
+ 2 val
+ %1$.2fV
+ Dexcom programėlė (modifikuota)
+ DXCM
+ Gauti kraujo gliukozės reikšmes iš modifikuotos Dexcom programėlės.
+ Pranešimas
+ Įspėjimas: %1$s
+ Pranešimas:
+ Profilio procentas
+ Procentais [%]:
+ Pradėti profilį %1$d%% %2$d min
+ Pradėti profilį %1$d%%
+ egzistuoja
+ neegzistuoja
+ Laikinas tikslas %1$s
+ WiFi SSID %1$s %2$s
+ Autosens %1$s %2$s %%
+ Autosens %
+ %3$s %1$s %2$s
+ KG skirtumas
+ KG skirtumas [%1$s]
+ Dabartinė vieta
+ Vieta
+ Platuma:
+ Ilguma:
+ Atstumas [m]:
+ Vardas:
+ Vietovė %1$s
+ Paskutinis bolusas
+ Paskutinis Bolusas prieš %1$s %2$s min
+ AAO
+ AAO %1$s %2$.0f
+ Užduoties pavadinimas
+ Keisti
+ Pasirinkite veiksmo tipą:
+ Pasirinkite sąlygos tipą:
+ Sąlygos:
+ PAŠALINTI
+ Išankstinės sąlygos:
+ Pompa ir/ar jos valdiklis nepalaiko operacijos.
+ Pompa dar nepalaiko operacijos.
+ Integracija su Medronic pompa reikalauja RileyLink įrenginio ir specialaus pompos modelio
+ Pompos serijos Nr.
+ Pompos tipas
+ Pompos dažnis
+ Užlaikymas prieš Boluso suleidimą (s)
+ Max Bolusas pompoje (vv)
+ Maks val. bazė pompoje (vv/val)
+ Medronic kodavimas
+ US & Kanada (916 MHz)
+ Pasaulinis (868 Mhz)
+ Programinis kodavimas 4b6b
+ Įrangos kodavimas 4b6b
+ Pažadinti ir nustatyti
+ Išvalyti Boluso bloką
+ Išvalyti RileyLink nustatymus
+ Baterijos tipas (galios vaizdas)
+ Nepasirinkta (paprastas vaizdas)
+ Šarminė (išplėstinis vaizdas)
+ Ličio (išplėstinis vaizdas)
+ SKENAVIMAS
+ STOP
+ Parinkta
+ RileyLink skanavimas
+ Bluetooth Low Energy nepalaikoma.
+ Bluetooth neįjungta.
+ Vietovės nustatymas neįjungtas
+ Vietos nustatymo paslauga turi būti įjungta, kad Bluetooth aptikimas veiktų naujesniuose įrenginiuose. AAPS neseka Jūsų lokacijos, o vietos nustatymo paslauga gali būti išjungta po sėkmingo įrenginių suporavimo.
+ Įjungti
+ Ne
+ Skanuojama
+ Skanavimas baigtas
+ Skanavimo klaida: %1$dParametraiIstorija
+ RileyLink statusas
+ Pompos statusasRileyLink parametrai
+ RileyLink
+ Nustatytas adresas
+ Prijungtas įrenginys
+ Ryšio būsena
+ Prisijungimo klaida
+ Įrenginys
+ Įrenginio tipas
+ Įrenginio modelis
+ Paskutinis naudotas dažnis
+ Paskutinis įrenginio kontaktas
+ RL Programinė įranga
+ Inicijuojamas Bluetooth…
+ Bluetooth klaida
+ Bluetooth paruošta
+ Nepradėta
+ RileyLink inicijavimas…
+ RileyLink klaida
+ RileyLink ir Pompos suderinimas
+ Sujungimo su pompa problema
+ Prisijungta
+ Įrenginys nėra RileyLink
+ RileyLink nepasiekiama
+ Bluetooth išjungtas
+ Nėra Bluetooth adapterio
+ TuneUp klaida
+ Pompa nepasiekiama
+ Pod nepasiekiamas
+ Nenustatyta
+ Pompa Medtronic
+ Omnipod
+ Klaidos
+ Serijos Nr. nenustatytas.
+ Serijos Nr. neteisingas.
+ Nenustatytas pompos tipas.
+ Nepalaikomas pompos tipas.
+ Nenustatytas pompos dažnis.
+ Nepalaikomas pompos dažnis.
+ RileyLink adresas neteisingas.
+ Aptiktas pompos tipas neatitinka nustatymų.
+ Pompoje neįjungtas bazės profilis.
+ Pompoje nustatytas neteisingas bazės profilis (turi būti STD).
+ Pompoje nustatytas neteisingas laikinos bazės tipas (turi būti absoliutus).
+ Pompoje nustatytas neteisingas Max Bolusas (turi būti %1$.2f).
+ Pompoje nustatyta neteisinga Maks val. bazė (turi būti %1$.2f).
+ Operacija negalima. \n\n Pirmiausia turite sukonfigūruoti Medronic pompą prieš atliekant šią operaciją.
+ Laiko pokytis didesnis nei 24 val.
+ Valandinės bazės
+ Nustatymai
+ Pranešimai
+ Statistika
+ Nežinoma
+ Visi
+ Medronic pompos istorija
+ Niekada nebuvo sujungta
+ Pažadinimas
+ Ryšio klaida
+ Ryšiui skirtas laikas baigėsi
+ Pompa nepasiekiama
+ Neteisinga konfigūracija
+ Aktyvi
+ Užmigusi
+ Atšaukėte Bolusą, kuris jau buvo nustatytas pompoje. Medronic pompa nepalaiko šio atšaukimo, todėl turite jį atšaukti rankiniu būdu. Sustabdykite pompą ir vėl ją paleiskite (jei vis dar norite atšaukti Bolusą). Aplikacija perims pokyčius su kitu atnaujinimu (per mažiau nei 5 minutes).
+ Negalima sužinoti dabartinės laikinos bazės.
+ Negalima atšaukti dabartinės laikinos bazės. Operacija stabdoma.
+ Profilio nustatymas nepavyko dėl per didelės nustatytos bazės: %1$s
+ Bolusas nesuleistas.
+ Bolusas nesuleistas, nes turimas insulino kiekis (%1$.2f) yra mažesnis, nei nustatytas Bolusas (%2$.2f).
+ Laikina bazė nenustatyta.
+ Negalima atšaukti dabartinės laikinos bazės.
+ Bazės profilis nenustatytas.
+ Bazės profilis toks pat, todėl nenustatomas pakartotinai.
+ Gauti istoriją - Lapas %1$d (%2$d/16)
+ Gauti istoriją - Lapas %1$d
+ Gauti pompos laikąGauti parametrus
-
- %1$d diena
- %1$d diena
- %1$d dienų
- %1$d dienos(-ų)
-
-
- %1$d valanda
- %1$d valandos
- %1$d valandų
- %1$d valandų
-
-
- %1$d minutė
- %1$d minutė(s)
- %1$d minučių
- %1$d minutės(-čių)
-
+ Gauti pompos modelį
+ Gauti bazės profilį
+ Nustatyti bazės profilį
+ Gauti laikiną bazę
+ Nustatyti laikiną bazę
+ Nustatyti bolusą
+ Pakeisti profilį
+ Pakeisti profilį %1$s
+ Paskutinis prisijungimas prie pompos
+ Paskutinis prijungimas prie pompos [min]
+ Paskutinis prijungimas prie pompos prieš %1$s%2$s min.
+ Siųsti SMS: %1$s
+ Siųsti SMS visais nurodytais numeriais
+ Išsiųsti SMS žinutę su tekstu
+ %2$+.2fU]]>
+ Pritaikyti boluso apribojimai: %2$.2fU to %3$.2fU]]>
+ !!!!! Nustatytas lėtas angliavandenių įsisavinimas: %2$d%% laiko. Dar karą patikrinkite savo skaičiavimus. AAO gali būti pervertinti, todėl gali būti suleista per daug insulino!!!!!]]>
+ %1$.0f / %2$d vv
+ Suleisti šią boluso skaičiuoklės rezultato dalį [%]
+ Boluso skaičiuoklė atlieka skaičiavimus, tačiau tik dalis apskaičiuoto insulino yra suleidžiama. Naudinga kartu su SMB algoritmu.
+ Kraunama...
+ Snausti
+ Laiko intervalas
+ Laikas yra tarp %1$s ir %2$s
+ Tarp
+ Uždaryti
+ Didinama maksimali valandinės bazės reikšmė, nes nustatytoji reikšmė yra mažesnė nei profilio maksimali val. bazės reikšmė
+ Neteisingas pranešimas
+ %1$s JIF: %2$.1f
+ %1$.0fg IA: %2$.1f
+ %1$.1fg IA: %2$.1f
+ %1$d%%
+ Boluso patarėjas
+ min.
+ %1$dg
diff --git a/app/src/main/res/values-nl-rNL/exam.xml b/app/src/main/res/values-nl-rNL/exam.xml
new file mode 100644
index 0000000000..377eba5335
--- /dev/null
+++ b/app/src/main/res/values-nl-rNL/exam.xml
@@ -0,0 +1,169 @@
+
+
+
+ Wat is waar over DIA?
+ Thema: duur van de Insuline-actie
+ De minimumwaarde is 3 uur.
+ De minimumwaarde is 5 uur.
+ https://androidaps.readthedocs.io/en/latest/CROWDIN/nl/Configuration/Config-Builder.html#insuline
+ De betekenis is gelijk aan die van de DIA-parameter die in uw pomp wordt gebruikt.
+ 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.
+ 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?
+ Thema: offline profiel
+ NS-Profiel kan worden gebruikt, maar niet geconfigureerd.
+ 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.
+ 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?
+ Exporteer de instellingen vanuit het menu Onderhoud.
+ Sla het geëxporteerde bestand op in een andere locatie zoals e-mail, Dropbox, Google-station…
+ Exporteer deze direct na de installatie van AAPS.
+ Exporteer ze na het wijzigen van instellingen.
+ Exporteer ze na het voltooien van een doel.
+ Exporteer deze nadat u de eerste instellingen heeft afgemaakt.
+ https://androidaps.readthedocs.io/en/latest/CROWDIN/nl/Usage/ExportImportSettings.html
+ https://androidaps.readthedocs.io/en/latest/CROWDIN/nl/Getting-Started/FAQ.html#welke-spullen-moet-ik bij-me-hebben-voor-noodgevallen
+ Onderwerp: Ruis in CGM-Uitlezingen
+ Wat moet er gebeuren als CGM-gegevens ruis vertonen?
+ Niets, AAPS zal het oplossen.
+ Schakel de Loop uit om overdosering te voorkomen.
+ Vervang de CGM-sensor.
+ 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
+ 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%.
+ 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?
+ Ja, de basale insuline wordt nog steeds geleverd.
+ Nee, de levering van insuline is gestopt.
+ Onderwerp: Basaal, ISF en IC-tests
+ Wanneer moet ik de basaal, ISF, en KH-waarden uittesten?
+ Voordat ik begin te loopen.
+ Wanneer je vaak een lage BG hebt.
+ Wanneer je vaak een hoge BG hebt.
+ https://androidaps.readthedocs.io/en/latest/CROWDIN/nl/Getting-Started/FAQ.html#androidaps-instellingen
+ Onderwerp: Vereisten
+ Wat heb ik nodig?
+ Goed geteste profielgegevens (Basaal, KH ratio, ISF, DIA).
+ Een computer om een APK te maken.
+ Een geschikte telefoon.
+ Een auto.
+ Nightscout om de doelstellingen te halen.
+ Een Tidepool account.
+ Een Google account.
+ Een Github account.
+ Ervaring met Android ontwikkeling.
+ Een MiniMed 670G pomp.
+ https://androidaps.readthedocs.io/en/latest/CROWDIN/nl/Module/module.html
+ Een Smartwatch.
+ Een geschikte CGM.
+ Onderwerp: Bijwerken van AndroidAPS
+ Wat is waar?
+ Je moet Git geïnstalleerd hebben.
+ Update zodra nieuwe versie wordt vrijgegeven en je genoeg tijd hebt om het te doen.
+ Gebruik dezelfde ondertekeningssleutels.
+ Doe nooit een update als het systeem goed werkt.
+ Vraag uw vriend om de nieuwe APK.
+ https://androidaps.readthedocs.io/en/latest/CROWDIN/nl/Installing-AndroidAPS/Update-to-new-version.html#bijwerken-naar-een-nieuwe-versie
+ Onderwerp: Problemen oplossen
+ Waar kun je hulp vinden?
+ Wordt lid van de AndroidAPS Facebook-groep.
+ Lees de volledige AndroidAPS documentatie (kies voor Nederlands in het menu)
+ Bezoek de AndroidAPS Gitter Room.
+ Bezoek AndroidAPS Google-ondersteuning
+ Praat met je endocrinoloog.
+ 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
+ Onderwerp: Insuline Plugins
+ Welk merk insuline kan worden gebruikt met de \'Ultra-Rapid-Oref\' plugin?
+ Fiasp®
+ NovoRapid ®
+ Humalog®
+ Actrapid®
+ https://androidaps.readthedocs.io/en/latest/CROWDIN/nl/Configuration/Config-Builder.html#insuline
+ Thema: Gevoeligheid Plugin
+ Welk gevoeligheidsalgoritme heeft een configureerbaar tijdbereik?
+ https://androidaps.readthedocs.io/en/latest/CROWDIN/nl/Configuration/Sensitivity-detection-and-COB.html
+ Welke gevoeligheidsplugin moet worden gebruikt voor de UAM-functie?
+ Onderwerp: koolhydraten invoer fouten
+ Wat moet u doen als u een onjuiste hoeveelheid koolhydraten hebt ingevoerd?
+ In Behandelingen verwijdert u de onjuiste invoer. Voer nieuwe koolhydraten in.
+ Voeg nep insuline toe met behulp van de \'Refill\' functie
+ Onderwerp: Voedsel met Vet en Eiwit
+ Wat te doen als je eten een grote hoeveelheid vet en/of eiwitten bevat?
+ Reken vetten en eiwitten om naar koolhydraten en gebruik de functie \"Vertraagde koolhydraten (eCarbs)\".
+ Reken vetten en eiwitten om naar koolhydraten en voeg dit toe aan de boluscalculator.
+ Gebruik een uitgestelde bolus om het effect van vet en eiwitten af te dekken.
+ https://androidaps.readthedocs.io/en/latest/CROWDIN/nl/Usage/Extended-Carbs.html
+ Onderwerp: volgen op afstand
+ Hoe kun je AAPS van je kind op afstand volgen?
+ Met behulp van een Nightscout site.
+ Dexcom volgapp als u de originele Dexcom app gebruikt (alleen BG).
+ Dexcom Volg-app als u gebruik maakt van de xDrip app.
+ xDrip app in volg-modus.
+ Loop app op de iPhone.
+ Spike app op de iPhone.
+ https://androidaps.readthedocs.io/en/latest/CROWDIN/nl/Children/kinderen.html
+ Onderwerp: Insulinegevoeligheidsfactor
+ 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.
+ 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
+ Onderwerp: De KH ratio
+ 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 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% hoger.
+ ISF-waarde wordt 10% hoger.
+ ISF-waarde wordt 10% lager.
+ In totaal zul je ongeveer 10% minder insuline krijgen.
+ Doel zal 10% hoger zijn.
+ Doel zal 10% lager zijn.
+ Alleen de onderste target zal 10% lager zijn.
+ https://androidaps.readthedocs.io/en/latest/CROWDIN/nl/Usage/Profiles.html?highlight=profilewitch#profiel-wissel
+ Als u 1 uur eerder dan normaal wakker wordt, hoe moet u dan AAPS van deze wijziging in uw schema op de hoogte stellen?
+ Voer een profielwijziging uit met een tijdverschuiving van 1
+ Voer een profiel wissel uit met een tijdverschuiving van -1
+ https://androidaps.readthedocs.io/en/latest/CROWDIN/nl/Usage/Profiles.html?highlight=profilewitch#tijd-verschuiving
+ Voer een profiel wissel uit met een tijdverschuiving van 60
+ Voer een profiel wissel uit met een tijdverschuiving van -60
+ https://androidaps.readthedocs.io/en/latest/CROWDIN/nl/Module/module.html#goed-individueel-doserings-algoritme-voor-jouw-diabetesbehandeling
+ Onderwerp: Hulp met basaal waarden
+ Waar je terecht kunt voor hulp met basaal waarden etc.
+ Jouw behandelaars
+ Google
+ Facebook
+ Andere medicatie
+ AAPS vermindert BR om bloedsuiker te verhogen. Geneesmiddelen van de groep SGLT2-remmers (gliflozins) kunnen de verwachte toename in BG voorkomen en kunnen dus een gevaarlijk insulinekort (DKA) veroorzaken.
+\nGemeenschappelijke merknamen zijn: Invokana ®, Forxiga ®, Jardiance ®, Steglatro ®, Suglat ®, Apleway ®, Deberza ®, Synjardy ®, Vokanamet ®, Xigduo ®.\n\nIk beloof hierbij dat ik dergelijke geneesmiddelen niet zal nemen wanneer ik AAPS gebruik of de lus zal deactiveren voordat ik deze medicijnen gebruik.
+
diff --git a/app/src/main/res/values-nl-rNL/objectives.xml b/app/src/main/res/values-nl-rNL/objectives.xml
new file mode 100644
index 0000000000..f605592027
--- /dev/null
+++ b/app/src/main/res/values-nl-rNL/objectives.xml
@@ -0,0 +1,68 @@
+
+
+
+ Terug
+ Start
+ Verifieer
+ %1$d. Doel
+ Doel %1$d niet gestart
+ Doel %1$d niet gereed
+ Opzetten van visualisatie en monitoring en analyseren van basalen en ratio\'s
+ Verifieer dat BG beschikbaar is in Nightscout, en dat de insuline gegevens van de pomp worden geüpload
+ Starten met de Open Loop modus
+ Draai enkele dagen In Open Loop modus en voer meermaals handmatig tijdelijke basalen uit. Stel standaard en aangepaste tijdelijke streefdoelen in (bv. bij sporten of koolhydraten inname bij hypo)
+ De Open Loop begrijpen, inclusief de voorgestelde tijdelijke basalen
+ Gebaseerd op deze ervaringen, beslis wat het maximale basaal mag zijn en stel dit in op de pomp
+ Starten met de Closed Loop met bescherming tegen lage Bg
+ In closed loop draaien met een max. IOB = 0 gedurende enkele dagen met een beperkt aantal lage BG
+ Inregelen van de closed loop, verhoog de max IOB boven 0 en laat geleidelijk het streef BG dalen
+ Test enkele dagen als ook minstens 1 nacht zonder een laag BG alarm voordat je jouw streef BG verlaagt
+ Pas het basaal en de ratios aan indien nodig, activeer hierna de auto-sens optie
+ Gedurende 1 week succesvol overdag loopen met regelmatige invoer van koolhydraten
+ Activeren van extra functies overdag zoals AMA (geavanceerde maaltijdhulp, Advanced Meal Assist)
+ Activeren van extra functies overdag zoals SMB (super micro bolus)
+ Lees de wiki en verhoog maxIOB om SMB goed werkend te krijgen. Een goed begin is maxIOB=gemiddelde maaltijdbolus + 3 x max dagelijkse basaal
+ BG beschikbaar in NS
+ Pomp status beschikbaar in NS
+ Handmatige aanpassingen
+ Voltooid: %1$s
+ Leer hoe AndroidAPS te gebruiken
+ Voer verschillende acties uit in AndroidAPS
+ Stel profiel in op 90% voor 10 min (houd profielnaam lang ingedrukt op Overzicht scherm)
+ Simuleer douchen. Ontkoppel de pomp voor 1u (houd Open Loop lang ingedrukt)
+ ... en op dezelfde manier weer aankoppelen
+ Stel een aangepast tijdelijk doel in met een duur van 10 min (houd huidige doel lang ingedrukt)
+ Schakel in Configurator de Acties plugin in zodat deze zichtbaar wordt en de inhoud ervan via de menubar bovenaan kan worden ingezien
+ Inhoud van loop plugin weergeven
+ Gebruik de schaalfunctie: houd de BG grafiek lang ingedrukt
+ Enter
+ Voer de code in die u van de ontwikkelaars hebt gekregen om de rest van de doelen te omzeilen
+ Code geaccepteerd
+ Code ongeldig
+ Bewijs je kennis
+ Bestudeer en beantwoord de vragen correct
+ Beantwoorden uitgeschakeld tot: %1$s
+ Verkeerd antwoord!
+ 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
+ Niet verbonden met het internet
+ Ophalen tijd mislukt
+ Vereisten van doel niet behaald
+
+ %1$d dag
+ %1$d dagen
+
+
+ %1$d uur
+ %1$d uren
+
+
+ %1$d minuut
+ %1$d minuten
+
+
diff --git a/app/src/main/res/values-nl-rNL/strings.xml b/app/src/main/res/values-nl-rNL/strings.xml
index fd286064cd..5822a1ccaa 100644
--- a/app/src/main/res/values-nl-rNL/strings.xml
+++ b/app/src/main/res/values-nl-rNL/strings.xml
@@ -5,7 +5,6 @@
-
Behandelingen veiligheidMax toegestane bolus [E]Max toegestane koolhydraten [g]
@@ -57,9 +56,6 @@
AndroidAPS controleren en bedienen met behulp van uw WearOS-horloge.Toon informatie over de Loop op jouw xDrip+ wijzerplaat.Bedien AndroidAPS op afstand met SMS commando\'s.
- Terug
- Start
- ControleerEénhedenDIAKH ratio
@@ -102,6 +98,7 @@
ProfielMaaltijd gegevensResultaat
+ Resultaat: %1$s %2$sGeen BG gegevens beschikbaarGeen aanpassing noodzakelijkVoorstel
@@ -177,9 +174,6 @@
Niet ondersteunde versie van NSClientNiet ondersteunde versie van NightscoutNSClient niet geïnstalleerd. Gegevens verloren!
- BG beschikbaar op NS
- Pomp status beschikbaar op NS
- Manuele correctiesLoop gedeactiveerd door doelen tabBasaal IOBBolus limiet ingesteld
@@ -222,7 +216,7 @@
Tijdelijk basaalVertraagde bolusNightscout versie:
- Te weinig
+ Ontbrekend %1$dgVoorkeuren geëxporteerdExporteer instellingen naarImporteer instellingen van
@@ -317,8 +311,6 @@
STOP INGEDRUKTWacht op pompEr worden %1$.2fE toegediend
- Opzetten van visualisatie en monitoring en analyzeren van basaal en ratio\'s
- Controleren van beschikbaarheid BG en insuline pomp data op NightscoutLimiet bereiktGeen profiel geselecteerdLoop was uitgeschakeld
@@ -552,10 +544,12 @@
Activeer superbolus in de wizardActiveer de superbolus functie in de wizard. Activeer deze niet tot je begrijpt wat dit doet. OVERDOSIS IS MOGELIJK BIJ BLINDELINGS GEBRUIK!Toon statusindicatoren op startscherm
+ Toon uitgebreide statusindicatoren op overzicht scherm
+ Statusindicatoren inschakelen voor cage, iage, sage, reservoir en batterijniveau op het overzicht scherm.Drempel waarschuwing reservoir niveau [E]Drempel alarm reservoir niveau [E]
- Drempel waarschuwing batterij niveau [%%]
- Drempel alarm voor batterij niveau [%%]
+ Drempel waarschuwing batterij niveau [%]
+ Drempel alarm batterij niveau [%]IOBCOBFirmware
@@ -625,7 +619,7 @@
AfbrekenNiet alle profielen zijn geladen!Waarden niet opgeslagen!
- Activeer delen met andere apps (zoals xDrip).
+ Schakel broadcasts in naar andere apps (zoals xDrip). Schakel niet in als je NSClient of meer dan één installatie van AAPS hebt geïnstalleerd!Activeer locaal delen.ACTIVITEIT & FEEDBACKKOOLHYDRATEN & BOLUS
@@ -849,8 +843,6 @@
Profiel wissel ontbreekt. Doe aub een profiel wissel of duw op Activeer Profiel in het Lokale profiel.Aantal bolussenAantal TBR
- Doel %1$d niet gestart
- Doel %1$d niet gereedPomp kan geen tijdelijk basaal aanvaardenGeen correcte basale snelheid van pomp kunnen lezenClosed Loop modus gedeactiveerd in de voorkeuren
@@ -972,7 +964,6 @@
Voltooid, goed gedaan!Nog niet voltooidVerstreken tijd
- %1$d. DoelPoctechOntvang BG waardes van Poctech appOntvang BG waardes van Tomato app (MiaoMiao apparaatje)
@@ -1283,7 +1274,7 @@
Niet gestartRileyLink initialiseren…RileyLink fout
- RileyLink en Pomp status opvragen
+ Tuning van RileyLink en PompProbleem tijdens verbinden met de pompVerbonden
@@ -1353,7 +1344,15 @@
Ophalen Tijdelijke BasaalInstellen Tijdelijke BasaalInstellen Bolus
- %2$.1fg %3$.2fU]]>
+ Wijzig profiel naar
+ Wijzig profiel in %1$s
+ Laatste verbinding met pomp
+ Laatste verbinding met pomp [minuten geleden]
+ Laatste verbinding met pomp %1$s %2$s min geleden
+ Stuur SMS: %1$s
+ Stuur SMS naar alle nummers in voorkeuren
+ Stuur SMS met tekst
+ %2$+.2fU]]>Bolus limiet bereikt: %2$.2fU naar %3$.2fU]]>!!! Trage koolhydraat absorptie gedetecteerd: %2$d%% van de tijd. Controleer je berekening nogmaals. COB kan zijn overschat waardoor er misschien meer insuline wordt afgegeven!!! zijn]]>%1$.0f / %2$d E
@@ -1361,16 +1360,17 @@
Bolus wizard voert de berekening uit maar alleen dit deel van berekende insuline wordt geleverd. Handig in combinatie met het SMB algoritme.Bezig met laden...Sluimeren
-
- %1$d dag
- %1$d dag
-
-
- %1$d uur
- %1$d uur
-
-
- %1$d minuut
- %1$d minuut
-
+ Tijdsinterval
+ Tijd ligt tussen %1$s en %2$s
+ Tussen
+ Sluiten
+ Verhogen van de maximale basaal waarde omdat de instelling lager is dan het maximum in het profiel
+ Ongeldige inhoud van het bericht
+ %1$s ISF: %2$.1f
+ %1$.0fg KH ratio: %2$.1f
+ %1$.1fg KH ratio: %2$.1f
+ %1$d%%
+ Bolus wizard
+ min
+ %1$dg
diff --git a/app/src/main/res/values-pl-rPL/exam.xml b/app/src/main/res/values-pl-rPL/exam.xml
new file mode 100644
index 0000000000..cf6cb932dc
--- /dev/null
+++ b/app/src/main/res/values-pl-rPL/exam.xml
@@ -0,0 +1,169 @@
+
+
+
+ Co jest prawdą w przypadku DIA?
+ Temat: Czas działania aktywnej insuliny
+ Wartość minimalna to 3 godziny.
+ Wartość minimalna to 5 godzin.
+ https://androidaps.readthedocs.io/en/latest/EN/Configuration/Config-Builder.html?#insulin
+ Znaczenie jest takie same jak parametru DIA używanego w Twojej pompie.
+ Konieczne jest określenie indywidualnej wartości (ale nie mniej niż 5 godzin).
+ Temat: Cel tymczasowy Hipo
+ Jaki jest podstawowy powód, aby ustawić hypo TT?
+ Aby zapobiec spadkowi poziomu przy obecnie działąjącym zerowaniu bazy.
+ Aby przeciwdziałać AAPS przed podaniem zbyt dużej ilości insuliny po wzroście spowodowanym szybko działającymi węglowodanami użytymi do leczenia niskiego poziomu.
+ https://androidaps.readthedocs.io/en/latest/EN/Usage/temptarget.html
+ Który profil może być używany i skonfigurowany w trybie offline?
+ Temat: Profil w trybie offline
+ Profil NS może być używany, ale nie jest skonfigurowany.
+ https://androidaps.readthedocs.io/en/latest/EN/Configuration/Config-Builder.html#profile
+ Temat: Odłączanie od pompy
+ Co należy zrobić przy rozłączeniu pompy?
+ Naciśnij \"WYłącz pompę\" aby AAPS wiedział, że insulina nie jest dostarczana.
+ Naciśnij \"Wstrzymaj pętlę\"aby AAPS zatrzymał pętlę, gdy pompa jest odłączona.
+ Nie zmieniaj niczego w AAPS, po prostu odłącz pompę.
+ https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#other-settings
+ Temat: Ustawienia AndroidAPS
+ Jakie są sprawdzone procedury tworzenia kopii zapasowych ustawień?
+ Lokalnie wyeksportuj je z menu Konserwacja.
+ Zapisz wyeksportowany plik w innym miejscu, np. wyślij e-mailem, prześlij na Dropbox, dysk Google…
+ Wyeksportuj je zaraz po instalacji AAPS.
+ Wyeksportuj je po wprowadzeniu zmian.
+ Wyeksportuj je po wykonaniu zadania.
+ Wyeksportuj je po zakończeniu wstępnych ustawień.
+ https://androidaps.readthedocs.io/en/latest/EN/Usage/ExportImportSettings.html
+ https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#what-emergency-equipment-is-recommended-to-take-with-me
+ Temat: Szumy w odczytach z CGM
+ Co powinno być wykonane gdy dane CGM są zaszumione?
+ Nic, AAPS sobie z tym poradzi.
+ Wyłącz pętlę, by unilknąć przedawkowania insuliny.
+ Wymień czujnik CGM.
+ Wyłącz telefon.
+ https://androidaps.readthedocs.io/en/latest/EN/Usage/Smoothing-Blood-Glucose-Data-in-xDrip.html#smoothing-blood-glucose-data
+ Sprawdź, czy Twój CGM wygładza dane poziomu cukru.
+ Temat: Ćwiczenia
+ Jak możesz pomóc aby system poradził sobie z ćwiczeniami?
+ Korzystanie z funkcji tymczasowego docelowego poziomu cukru.
+ Wykonaj zmianę profilu poniżej 100%.
+ Wykonaj zmianę profilu powyżej 100%.
+ Zatrzymaj pętlę.
+ Ustaw cel tymczasowy Ćwiczenia przed rozpoczęciem ćwiczeń.
+ Ustawienie celu tymczasowego Ćwiczenia po rozpoczęciu ćwiczeń prowadzi do gorszych wynikow poziomu niż przy jego wcześniejszym rozpoczęciu.
+ https://androidaps.readthedocs.io/en/latest/EN/Usage/temptarget.html#activity-temp-target
+ Temat: Wyłączona/Zawieszona pętla
+ Czy otrzymuję insulinę, gdy pętla jest wyłączona/zawieszona?
+ Tak, insulina bazowa nadal jest dostarczana.
+ Nie, podawanie insuliny jest zatrzymane.
+ Temat: Testowanie Bazy, ISF i IC
+ Kiedy powinienem zweryfikować wartości bazy, ISF i IC?
+ Zanim zacznę używać pętli.
+ Gdy często występują niskie poziomy cukru.
+ Gdy często występują wysokie poziomy cukru.
+ https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#androidaps-settings
+ Temat: Wymagania wstępne
+ Czego potrzebuję?
+ Sprawdzone informacje profilowe (Basal, IC, ISF, DIA).
+ Komputer do utworzenia pliku APK.
+ Obsługiwany telefon.
+ Samochód.
+ Nightscout, aby przejść przez zadania.
+ Konto Tidepool.
+ Konto Google.
+ Konto Github.
+ Doświadczenie w rozwoju systemu Android.
+ Pompa MiniMed 670G.
+ https://androidaps.readthedocs.io/en/latest/EN/Module/module.html
+ Smartwatch.
+ Obsługiwany CGM.
+ Temat: Aktualizacja AndroidAPS
+ Co jest prawdą?
+ Musisz mieć zainstalowany Git.
+ Aktualizuj tak szybko jak nowe wersja zostanie opublikowana i znajdziesz czas do jej wprowadzenia.
+ Należy używać tych samych kluczy do podpisywania.
+ Nigdy nie aktualizuj, jeśli system działa dobrze.
+ Poproś swojego przyjaciela o nowy plik APK.
+ https://androidaps.readthedocs.io/en/latest/EN/Installing-AndroidAPS/Update-to-new-version.html#update-to-a-new-version-or-branch
+ Temat: Rozwiązywanie problemów
+ Gdzie szukać pomocy?
+ Dołącz do głównej grupy AndroidAPS na Facebooku.
+ Przeczytaj dokumentację AndroidAPS.
+ Odwiedź pokój Gitter na temat AndroidAPS.
+ Odwiedź stronę pomocy technicznej AndroidAPS Google
+ Porozmawiaj ze swoim endokrynologiem/diabetologiem.
+ https://androidaps.readthedocs.io/en/latest/EN/Installing-AndroidAPS/Update-to-new-version.html#troubleshooting
+ https://www.facebook.com/groups/AndroidAPSUsers/
+ https://gitter.im/MilosKozak/AndroidAPS
+ Temat: Wtyczki insuliny
+ Jakiej marki insuliny można używać z wtyczką Ultra-Rapid-Oref?
+ Fiasp®
+ NovoRapid®
+ Humalog®
+ Actrapid®
+ https://androidaps.readthedocs.io/en/latest/EN/Configuration/Config-Builder.html#insulin
+ Temat: Wtyczka wrażliwości
+ Który algorytm czułości ma konfigurowalny zakres czasu?
+ https://androidaps.readthedocs.io/en/latest/EN/Configuration/Sensitivity-detection-and-COB.html
+ Jakiej wtyczki wykrywania wrażliwości należy użyć dla funkcji UAM?
+ Temat: Błędy wprowadzania węglowodanów
+ Co powinieneś zrobić, gdy wprowadziłeś niewłaściwą ilość węglowodanów?
+ W karcie Leczenie (Treatments), usuń niewłaściwy wpis węglowodanów. Wprowadź ponownie właściwą wartość.
+ Dodaj fałszywą insulinę za pomocą funkcji napełniania
+ Temat: Posiłki z tłuszczami i białkami
+ Co zrobić, jeśli twoje jedzenie zawiera dużą ilość tłuszczu i/lub białek?
+ Przelicz tłuszcz i białka na węglowodany i użyj funkcji „Rozszerzone węglowodany” eCarbs.
+ Przelicz tłuszcz i białka na węglowodany i dodaj je do kalkulacji bolusa.
+ Użyj przedłużonego bolusa, aby pokryć tłuszcz i białka.
+ https://androidaps.readthedocs.io/en/latest/EN/Usage/Extended-Carbs.html
+ Temat: Monitorowanie zdalne
+ Jak zdalnie monitorować AAPS swojego dziecka?
+ Korzystanie ze strony Nightscout.
+ Aplikacja Dexcom Follo, jeśli korzystasz z oryginalnej aplikacji Dexcom (tylko BG).
+ Dexcom Follow, jeśli korzystasz z aplikacji xDrip.
+ xDrip działa w trybie śledzenia (follower).
+ Aplikacja Loop na iPhone\'a.
+ Aplikacja Spike na iPhone\'a.
+ https://androidaps.readthedocs.io/en/latest/EN/Children/Children.html
+ Temat: Współczynnik wrażliwości na insulinę
+ Wyższe wartości ISF prowadzą do mniejszej ilości podanej insuliny gdy AAPS koryguje wysoki poziom cukru.
+ Niższe wartości ISF prowadzą do mniejszej dawki insuliny gdy AAPS koryguje wysoki poziom cukru.
+ Zmiana wartości ISF nie ma wpływu na ilość insuliny dostarczanej, gdy AAPS koryguje wysoki poziom cukru.
+ Musisz wprowadzić ISF w Preferencjach.
+ Zmiana wartości ISF w profilu wystarczy, aby zastosować zmianę.
+ https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#insulin-sensitivity-factor-isf-mmol-l-u-or-mg-dl-u
+ https://androidaps.readthedocs.io/en/latest/EN/Usage/Profiles.html
+ Temat: Wartość przelicznika IC
+ Wyższe wartości ICprowadzą do mniejszej ilości insuliny dostarczonej do podanej ilości węglowodanów.
+ Niższe wartości IC prowadzą do mniejszej ilości insuliny podanej do wprowadzonej ilości węglowodanów.
+ Załóżmy, że masz 0 COB. Zmiana IC doprowadzi do podania innej ilości insuliny w celu skorygowania twojej wartości BG.
+ IC będzie inny, jeśli policzysz jednostkę chleba jako 10 g lub 12 g.
+ Znaczenie IC to: Ile jednostek chleba jest pokrytych 1U insuliny.
+ https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#carbohydrate-to-insulin-ratio-cr-g-u
+ Temat: Przełączanie profili
+ Jeśli podasz 90% podczas zmiany profilu…
+ Baza będzie o 10% wyższa.
+ Baza będzie o 10% niższa.
+ Wartość IC będzie o 10% wyższa.
+ Wartość IC będzie o 10% niższa.
+ Wartość ISF będzie o 10% wyższa.
+ Wartość ISF będzie o 10% niższa.
+ Otrzymasz w sumie około 10% mniej insuliny.
+ Cel będzie wyższy o 10%.
+ Cel będzie o 10% niższy.
+ Tylko dolny cel będzie o 10% niższy.
+ https://androidaps.readthedocs.io/en/latest/EN/Usage/Profiles.html?highlight=profile%20switch#profile-switch
+ Jeśli obudzisz się o 1h wcześniej niż zwykle, to jak należy powiadomić AAPS o zmianie w harmonogramie?
+ Wprowadź zmianę profilu ze zmianą czasu równą 1
+ Wprowadź zmianę profilu ze zmianą czasu równą -1
+ https://androidaps.readthedocs.io/en/latest/EN/Usage/Profiles.html?highlight=profile%20switch#timeshift
+ Wprowadź zmianę profilu ze zmianą czasu równą 60
+ Wprowadź zmianę profilu ze zmianą czasu równą -60
+ https://androidaps.readthedocs.io/en/latest/EN/Module/module.html#good-individual-dosage-algorithm-for-your-diabetes-therapy
+ Temat: Pomoc z dawkami podstawowymi (bazą)
+ Gdzie uzyskać pomoc w sprawie dawek podstawowych itp.
+ Twój zespół cukrzycowy
+ Google
+ Facebook
+ Inne leki
+ AAPS zmniejsza BR w celu podniesienia poziomu cukru we krwi. Leki z grupy inhibitorów SGLT2 (gliflozyny) mogą zapobiegać spodziewanemu wzrostowi stężenia glukozy we krwi, a zatem mogą powodować niebezpieczny niedobór insuliny (DKA).
+\nWspólne nazwy marek to: Invokana®, Forxiga®, Jardiance®, Steglatro®, Suglat®, Apleway®, Deberza®, Synjardy®, Vokanamet®, Xigduo®. \n\n Obiecuję, że nie będę brać takich leków podczas używania AAPS lub dezaktywuję pętlę przed użyciem tych leków.
+
diff --git a/app/src/main/res/values-pl-rPL/objectives.xml b/app/src/main/res/values-pl-rPL/objectives.xml
new file mode 100644
index 0000000000..17777caf68
--- /dev/null
+++ b/app/src/main/res/values-pl-rPL/objectives.xml
@@ -0,0 +1,74 @@
+
+
+
+ Wstecz
+ Start
+ Zweryfikuj
+ %1$d. Zadanie
+ Zadanie %1$d nierozpoczęte
+ Zadanie %1$d nieukończone
+ Konfiguracja wizualizacji i monitorowania, analiza dawek bazowych i współczynników
+ Sprawdź czy BG (pomiary cukru) są dostępne w Nightscout, i czy przesyłane są dane pompy insulinowej
+ Rozpoczęcie w trybie otwartej pętli (open loop)
+ Uruchom w trybie otwartej pętli przez kilka dni i ręcznie potwierdzaj kilka zmian dawki tymczasowej. Ustaw i używaj celów tymczasowych i domyślnych celów tymczasowych (np. Ćwiczenia lub Hipo)
+ Zrozumienie działania otwartej pętli, wraz z jej rekomendacjami dawek tymczasowych
+ Na podstawie tych doświadczeń zdecyduj jaka powinna być ustawiona maksymalna baza, i wprowadź ją w pompie i w ustawieniach AAPS
+ Rozpoczęcie zamknięcia pętli z zawieszeniem podawania bazy przy niskim poziomie cukru
+ Używaj przez kilka dni zamkniętej pętli (Closed Loop) z max IOB = 0 bez zbyt wielu incydentów niedocukrzeń
+ Dostrajanie zamkniętej pętli, podniesienie wartości max IOB powyżej 0 i stopniowe obniżanie docelowego poziomu cukru (BG target)
+ Używaj pętli przez kilka dni i przynajmniej jedną noc bez żadnego alarmu niskiego poziomu, przed obniżeniem docelowego poziomu cukru
+ Dostosuj bazę i wartości parametrów jeśli jest to potrzebne, i wtedy uruchom funkcję autosens
+ 1 tydzień sukcesu w działaniu pętli w ciągu dnia z regularnym wprowadzaniem spożywanych węglowodanów
+ Włączanie dodatkowych funkcji do użytku, jak AMA
+ Włączanie dodatkowych funkcji do użytku, jak SMB (Super Mikro Bolusy)
+ Musisz przeczytać wiki i zwiększyć maxIOB, aby SMB działało dobrze! Dobrym początkiem jest maxIOB = średni bolus + 3 x maks. dzienna dawka bazowa
+ BG dostępne w NS
+ Status pompy dostępny w NS
+ Ręczne zarządzanie
+ Ukończone: %1$s
+ Dowiedz się, jak kontrolować AndroidAPS
+ Wykonuj różne działania w AndroidAPS
+ Ustaw profil 90% na 10 min (Długie przytrzymanie nazwy profilu w Przegląd)
+ Symuluj prysznic. Odłącz pompę na 1 godzinę (długie naciśnięcie w otwartej pętli)
+ ... i połącz się ponownie w ten sam sposób
+ Utwórz własny cel tymczasowy z czasem trwania 10 min (przytrzymaj dłużej przycisk z Twoją nazwą profilu)
+ W konfiguracji włącz wtyczkę Akcje, zrób ją widoczną i wyświetl jej zawartość w górnym menu
+ Wyświetl zawartość wtyczki Pętla (Loop)
+ Użyj funkcji skalowania przez dłuższe przytrzymanie wykresu glikemii
+ Wprowadź
+ Wprowadź kod otrzymany od programistów by pominąć resztę zadań
+ Kod został zaakceptowany
+ Niepoprawny kod
+ Potwierdź swoje umiejętności
+ Ucz się i odpowiadaj poprawnie na pytania
+ Odpowiadanie wyłączone na: %1$s
+ Odpowiedź nieprawidłowa!
+ 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
+ Brak połączenia z Internetem
+ Nie udało się odzyskać
+ Wymagania celu nie zostały spełnione
+
+ %1$d dzień
+ %1$d dni
+ %1$d dni
+ %1$d dni
+
+
+ %1$d godzina
+ %1$d godziny
+ %1$d godzin
+ %1$d godziny
+
+
+ %1$d minuta
+ %1$d minut
+ %1$d minut
+ %1$d minuty
+
+
diff --git a/app/src/main/res/values-pl-rPL/strings.xml b/app/src/main/res/values-pl-rPL/strings.xml
index e17b532c4c..12c2770669 100644
--- a/app/src/main/res/values-pl-rPL/strings.xml
+++ b/app/src/main/res/values-pl-rPL/strings.xml
@@ -5,7 +5,6 @@
-
Bezpieczeństwo leczeniaMaks. dopuszczalny bolus [U]Maks. dopuszczalne węglowodany [g]
@@ -57,9 +56,6 @@
Monitoruj i kontroluj AndroidAPS, korzystając z SmartWatch WearOS.Pokaż informacje o swojej pętli na watchface xDrip+.Zdalne sterowanie AndroidAPS za pomocą poleceń SMS.
- Cofnij
- Start
- SprawdźJednostkiDIAIC
@@ -102,6 +98,7 @@
ProfilDane posiłkuRezultat
+ Wynik: %1$s %2$sBrak danych o glukozieZmiana nie wymaganaŻądanie
@@ -177,9 +174,6 @@
Niewspierana wersja NSClientNiewspierana wersja NightscoutNSClient nie zainstalowany. Zapis stracony!
- BG dostępne w NS
- Status pompy dostępny w NS
- Zmiany wykonanePĘTLA WYLĄCZONA Z UWAGI NA OGRANICZENIABazowa IOBOgraniczenia bolusa wprowadzone
@@ -222,7 +216,7 @@
BazaTymczasowaBolus PrzedłużonyWersja Nightscout:
- Brakujące
+ Brakuje %1$dgWłaściwości wyeksportowaneEksportuj ustawienia doImportuj ustawienia z
@@ -317,21 +311,6 @@
NACIŚNIĘTY STOPCzekam na pompęZamierzam dostarczyć %1$.2fU
- Konfiguracja wizualizacji i monitorowania, analiza dawek i wartości bazowych
- Sprawdź czy BG (pomiary cukru) są dostępne w Nightscout, i dane pompy insulinowej są ładowane
- Rozpoczęcie na trybie otwartej pętli (open loop)
- Działaj w trybie Otwartej Pętli przez kilka dni i ręcznie wprowadzaj wiele ustawień bazy tymczasowej. Ustaw i używaj tymczasowych i domyślnych tymczasowych celów (np. do aktywności fizycznej lub węglowodanów w leczeniu hipoglikemii)
- Zrozumienie działania otwartej pętli, wraz z jej rekomendacjami dawek tymczasowych
- Na podstawie tych doświadczeń zdecyduj jaka maksymalna baza powinna być ustawiona, i wprowadź ją w pompie i w ustawieniach AAPS
- Rozpoczęcie zamknięcia pętli z zawieszeniem podawania bazy przy niskim poziomie cukru
- Używaj zamkniętej pętli (Closed Loop) z max IOB (maksymalną dawką aktywnej insuliny) = 0 bez zbyt wielu incydentów niedocukrzeń
- Dostrajanie zamkniętej pętli, podniesienie wartości max IOB powyżej 0 i stopniowe obniżanie docelowego poziomu cukru (BG target)
- Używaj pętli przez kilka dni i przynajmniej jedną noc bez żadnego alarmu niskiego poziomu, przed obniżeniem docelowego poziomu cukru
- Dostosuj bazę i wartości parametrów, i wtedy uruchom funkcję autosens
- 1 tydzień sukcesu w działaniu pętli w ciągu dnia z regularnym wprowadzaniem spożywanych węglowodanów (węglow.)
- Uruchomienie do użytku dziennego dodatkowych funkcji, jak AMA (zaawansowany asystent posiłku)
- Uruchomienie do użytku dziennego dodatkowych funkcji, jak SMB (Super Mikro Bolusy)
- Musisz przeczytać wiki i zwiększyć maxIOB, aby SMB działało dobrze! Dobrym początkiem jest maxIOB = średni bolus + 3 x maks. dzienna dawka bazowaOsiągnąłeś dozwolony limitNie wybrano profiluPętla (Loop) została wyłączona
@@ -565,14 +544,12 @@
Zezwalaj na superbolus w kalkulatorzeWłącz funkcję Superbolus w kalkulatorze. Nie uruchamiaj, dopóki nie nauczysz się jak ta funkcja działa. MOŻESZ DOPROWADZIĆ DO PRZEDAWKOWANIA INSULINY JEŻELI UŻYJESZ TEJ FUNKCJI NIE POSIADAJĄC ODPOWIEDNIEJ WIEDZY!Pokaż diody stanu na ekranie głównym
- Pokaż diody stanu na ekranie głównym
- Włącz diody stanu dla cage, iage, sage, rezerwuar i poziom baterii na ekranie głównym.Pokaż diody stanu na ekranie głównymWłącz diody stanu dla cage, iage, sage, rezerwuar i poziom baterii na ekranie głównym.Próg ostrzeżenia o poziomie zbiornika [U]Próg ostrzeżenia o krytycznym poziomie zbiornika [U]
- Próg ostrzeżenia o poziomie baterii [%%]
- Próg ostrzeżenia o krytycznym poziomie baterii [%%]
+ Próg ostrzeżenia o poziomie baterii [%]
+ Próg ostrzeżenia o krytycznym poziomie baterii [%]IOBCOBFirmware
@@ -643,7 +620,7 @@
AnulujNie wszystkie profile zostały załadowane!Wartości nie są przechowywane!
- Włącz transmisje do innych aplikacji (jak xDrip).
+ Włącz rozgłaszanie do innych aplikacji (takich jak xDrip). Nie należy włączać, jeśli zainstalowana jest więcej niż jedna instancja AAPS lub NSClient!Włącz transmisję lokalnie.AKTYWNOŚĆ & REAKCJAWĘGLOW. & BOLUS
@@ -867,8 +844,6 @@
Brakuje ZmianyProfilu. Proszę wykonać ZmianęProfilu lub nacisnąć \"Aktywuj Profil\" w ProfiluLokalnymObliczenia BolusaObliczenia TBR
- Zadanie %1$d nierozpoczęte
- Zadanie %1$d nieukończonePompa nie jest zdolna do wykonywania dawek bazowych tymczasowychBrak prawidłowej dawki bazowej odczytanej z pompyTryb zamkniętej pętli wyłączony w ustawieniach
@@ -990,7 +965,6 @@
Ukończone, wspaniale!Nie ukończonoCzas jaki upłynął
- %1$d. ZadaniePoctechOdczytuj wartości BG z aplikacji PoctechOtrzymuj poziomy cukru (BG) z Apki Tomato) (urządzenie MiaoMiao)
@@ -1301,7 +1275,7 @@
Nie rozpoczętoUruchamianie RileyLink…Błąd RileyLink
- Strojenie RileyLink i pompy
+ Dostrojenie RileyLink i pompyProblem z połączeniem z pompąPołączono
@@ -1371,7 +1345,15 @@
Pobierz tymczasową dawkę bazowąUstaw tymczasową dawkę bazowąUstaw bolus
- %2$.1fg %3$.2fU]]>
+ Zmień profil na
+ Zmień profil na %1$s
+ Ostatnie połączenie z pompą
+ Ostatnie połączenie z pompą [minut temu]
+ Ostatnie połączenie z pompą %1$s %2$s min temu
+ Wyślij SMS: %1$s
+ Wyślij SMS do wszystkich numerów w preferencjach
+ Wyślij SMS z tekstem
+ %2$+.2fU]]>Wprowadzono ograniczenie bolusa: %2$.2fU to %3$.2fU]]>!!!!! Wykryto powolne wchłanianie węglowodanów: %2$d%% czasu. Sprawdź ponownie swoje obliczenia. COB mogły być przeszacowane przez co mogło być podane zbyt dużo insuliny !!!!!]]>%1$.0f / %2$d U
@@ -1379,44 +1361,17 @@
Kreator bolusa wykonuje obliczenia, ale tylko ta część obliczonej dawki insuliny jest dostarczana. Pomocne z algorytmem SMB.Wczytuję...Wycisz
- Wykonane: %1$s
- Naucz się jak zarządzać AndroidAPS
- Przeprowadź różne działania w AndroidAPS
- Ustaw profil 90% na 10 min (naciśnij dłużej nazwę profilu na ekranie głównym)
- Symuluj prysznic. Rozłącz pompę na 1 godzinę (naciśnij dłużej przycisk Otwarta Pętla na ekranie głównym)
- ... i połącz się ponownie w ten sam sposób
- Utwórz własny cel tymczasowy z czasem trwania 10 min (przyciśnij dłużej przycisk z Twoją nazwą profilu)
- W menu konfiguracji uruchom wtyczkę Akcje, zrób ją widoczną i wyświetl jej zawartość w górnym menu
- Wyświetl zawartość wtyczki Pętla (Loop)
- Użyj funkcji skalowania przez dłuższe dotknięcie wykresu glikemii
- Wprowadź
- Wprowadź kod otrzymany od programistów by pominąć resztę zadań
- Kod przyjęty
- Kod nieprawidłowy
- Potwierdź swoje umiejętności
- Ucz się i odpowiedz poprawnie na pytania
- Odpowiadanie wyłączone na: %1$s
- Nieprawidłowa odpowiedź!
- Następne nieukończone
+ Zakres czasu
+ Czas mieści się w zakresie od %1$s do %2$s
+ Pomiędzy Zamknij
- Kod żadania: %1$s
- (sprawdź wszystkie poprawne odpowiedzi)
-
- %1$d dzień
- %1$d dni
- %1$d dni
- %1$d dni
-
-
- %1$d godzina
- %1$d godzin
- %1$d godzin
- %1$d godziny
-
-
- %1$d minuta
- %1$d minut
- %1$d minut
- %1$d minut
-
+ Zwiększanie maksymalnej wartości bazowej ponieważ ustawienia są poniżej maxymalnej wartości bazy w profilu
+ Błędny tekst wiadomości
+ %1$s ISF: %2$.1f
+ %1$.0fg IC: %2$.1f
+ %1$.1fg IC: %2$.1f
+ %1$d%%
+ Kalkulator bolusa
+ min
+ %1$dg
diff --git a/app/src/main/res/values-pt-rBR/exam.xml b/app/src/main/res/values-pt-rBR/exam.xml
new file mode 100644
index 0000000000..6ca2e5ae4f
--- /dev/null
+++ b/app/src/main/res/values-pt-rBR/exam.xml
@@ -0,0 +1,169 @@
+
+
+
+ O que é verdade sobre o DIA?
+ Tópico: Duração da Ação de Insulina
+ O valor mínimo é de 3 horas.
+ O valor mínimo é de 5 horas.
+ https://androidaps.readthedocs.io/en/latest/EN/Configuration/Config-Builder.html?#insulin
+ O significado é igual ao parâmetro DIA usado na bomba.
+ Você tem que determinar o seu valor individual (mas não menos de 5 horas).
+ Tópico: Hipo Temp-Alvo
+ O que é a razão principal para definir TT hipoglicemia?
+ Para evitar que a Glic fique baixa se já estiver em funcionamento um temp zero.
+ Para evitar o AAPS dosear demasiada insulina após uma subida rápida causada por hidratos de actuação rápida para tratar hipoglicemia.
+ https://androidaps.readthedocs.io/en/latest/EN/Usage/temptarget.html
+ Qual perfil pode ser usado e configurado offline?
+ Tópico: Perfil Offline
+ Perfil NS pode ser usado, mas não configurado.
+ https://androidaps.readthedocs.io/en/latest/EN/Configuration/Config-Builder.html#profile
+ Tópico: Desconectando-se da bomba
+ O que deve ser feito ao desligar a bomba?
+ Clique em \'Desligar bomba\' para que o AAPS saiba que nenhuma insulina está a ser entregue.
+ Clique em \'Suspender loop\' para que AAPS pare o looping enquanto a bomba estiver desconectada.
+ Não altere nada no AAPS, apenas desconecte a bomba.
+ https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#other-settings
+ Tópico: Configurações do AndroidAPS
+ Quais são as melhores práticas para fazer backup de suas configurações?
+ Exporte-as localmente do menu Manutenção.
+ Salve o arquivo exportado para outro local como e-mail, Dropbox, Google drive…
+ Exporte-as logo após a instalação do AAPS.
+ Exportá-los depois de fazer alterações de configuração.
+ Exportá-los depois de completar um objectivo.
+ Exporte-as quando concluir as configurações iniciais.
+ https://androidaps.readthedocs.io/en/latest/EN/Usage/ExportImportSettings.html
+ https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#what-emergency-equipment-is-recommended-to-take-with-me
+ Tópico: Leituras do CGM imprecisas
+ O que deve ser feito se os dados do CGM são irregulares?
+ Nada, AAPS vai lidar com isso.
+ Desactivar o loop para evitar sobredosagem.
+ Substitua o sensor CGM.
+ Desligue o telefone.
+ https://androidaps.readthedocs.io/en/latest/EN/Usage/Smoothing-Blood-Glucose-Data-in-xDrip.html#smoothing-blood-glucose-data
+ Verifique que a app do CGM suaviza os dados da Glicose.
+ Tópico: Exercício
+ Como você pode ajudar o sistema a lidar com exercícios?
+ Usando o recurso de alvo-temp.
+ Faça um mudança de perfil abaixo de 100%.
+ Fazer uma mudança de perfil acima de 100%.
+ Pare o loop.
+ Definir um alvo-temp de actividade antes de iniciar o exercício.
+ Definir um alvo-temp de actividade após iniciar o exercício leva a resultados piores do que se iniciado antes.
+ https://androidaps.readthedocs.io/en/latest/EN/Usage/temptarget.html#activity-temp-target
+ Tópico: Loop Desactivado/Suspenso
+ Eu recebo insulina quando o loop estiver desactivado/suspenso?
+ Sim, a insulina basal continua a ser entregue.
+ Não, a entrega da insulina está parada.
+ Tópico: Testando Basal, ISF e IC
+ Quando devo validar os valores de basal, ISF e IC?
+ Antes de começar com o loop.
+ Quando ocorrer frequentemente Glic baixa.
+ Quando ocorrer frequentemente Glic alta.
+ https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#androidaps-settings
+ Tópico: Pré-requisitos
+ O que eu preciso?
+ Informações do perfil validadas (Basal, IC, FSI, DIA).
+ Um computador para criar um APK.
+ Um telefone compatível.
+ Um carro.
+ Nightscout para passar os objetivos.
+ Uma conta do Tidepool.
+ Uma conta Google.
+ Uma conta do Github.
+ Experiência de desenvolvimento Android.
+ Uma bomba MiniMed 670G.
+ https://androidaps.readthedocs.io/en/latest/EN/Module/module.html
+ Um Smartwatch.
+ Um CGM compatível.
+ Tópico: Actualização do AndroidAPS
+ O que é verdade?
+ Você precisa ter o Git instalado.
+ Actualizar assim que nova versão for lançada e tiver tempo suficiente para fazer isso.
+ Você deve utilizar as mesmas chaves de assinatura.
+ Nunca atualize se o sistema estiver funcionando bem.
+ Peça ao seu amigo para a nova APK.
+ https://androidaps.readthedocs.io/en/latest/EN/Installing-AndroidAPS/Update-to-new-version.html#update-to-a-new-version-or-branch
+ Tópico: Resolução de Problemas
+ Onde procurar ajuda?
+ Entrar no grupo AndroidAPS do Facebook.
+ Leia a documentação do AndroidAPS.
+ Visite a sala do AndroidAPS no Gitter.
+ Visite o suporte do Google para o AndroidAPS
+ Fale com seu endocrinologista.
+ https://androidaps.readthedocs.io/en/latest/EN/Installing-AndroidAPS/Update-to-new-version.html#troubleshooting
+ https://www.facebook.com/groups/AndroidAPSUsers/
+ https://gitter.im/MilosKozak/AndroidAPS
+ Tópico: Plugins de Insulina
+ Qual marca de insulina pode ser usada com o plugin \'Ultra-Rapid-Oref\'?
+ Fiasp®
+ NovoRapid ®
+ Humalog ®
+ Actrapid ®
+ https://androidaps.readthedocs.io/en/latest/EN/Configuration/Config-Builder.html#insulin
+ Tópico: Plugins de Sensibilidade
+ Qual algoritmo de sensibilidade tem um intervalo de tempo configurável?
+ https://androidaps.readthedocs.io/en/latest/EN/Configuration/Sensitivity-detection-and-COB.html
+ Qual plugin de sensibilidade deve ser usado para o recurso UAM?
+ Tópico: Erros de Entrada de Hidratos
+ O que deve fazer se tiver feito uma entrada incorrecta de hidratos?
+ Em Tratamentos, excluir a entrada incorrecta de hidratos. Insira novos hidratos.
+ Adicionar falsa insulina usando a função de Refill
+ Tópico: Alimentos com Gordura e Proteína
+ O que fazer se sua comida contiver uma grande quantidade de gordura e/ou proteínas?
+ Recalcule gordura e proteínas para carboidrato e use o recurso \"Carbs estentido\".
+ Recalcular gordura e proteínas em carboidrato e adicioná-lo ao cálculo de bolus.
+ Use o bolus estendido para cobrir gordura e proteínas.
+ https://androidaps.readthedocs.io/en/latest/EN/Usage/Extended-Carbs.html
+ Tópico: Monitorização Remota
+ Como você pode monitorar AAPS da sua criança remotamente?
+ Usando o site do Nightscout.
+ Dexcom Follow app se você estiver usando o aplicativo Dexcom original(apenas Glicemia).
+ Dexcom Follow se você estiver usando o aplicativo xDrip.
+ xDrip rodando no modo follower.
+ Aplicativo Loop no iPhone.
+ Aplicativo Spike no iPhone.
+ https://androidaps.readthedocs.io/en/latest/EN/Children/Children.html
+ Tópico: Fator de Sensibilidade de Insulina
+ Valores elevados de FSI levam a uma entrega de menos insulina quando o AAPS corrige Glic alta.
+ Valores baixos de FSI levam a uma entrega de menos insulina quando o AAPS corrige Glic alta.
+ Alterar os valores FSI não tem efeito sobre a quantidade de insulina entregue quando a AAPS corrige Glic alta.
+ Você precisa inserir o ISF nas Preferências.
+ Alterar o valor do ISF no seu perfil é o suficiente para aplicar a alteração.
+ https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#insulin-sensitivity-factor-isf-mmol-l-u-or-mg-dl-u
+ https://androidaps.readthedocs.io/en/latest/EN/Usage/Profiles.html
+ Tópico: Rácio IC
+ Rácios IC mais altos levam a menos insulina entregue para uma dada quantidade de hidratos.
+ Rácios IC mais baixos levam a menos insulina entregue para uma dada quantidade de hidratos.
+ Se tiver 0 COB, alterar o rácio IC irá levar a uma quantidade diferente de insulina para corrigir um determinado valor da Glic.
+ O IC será diferente se você contar a unidade de pão como 10g ou 12g.
+ O significado do IC é: Quantos pães são cobertas por 1U de insulina.
+ https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#carbohydrate-to-insulin-ratio-cr-g-u
+ Tópico: Alternando Perfil
+ Ao especificar 90% na mudança de perfil…
+ Os basais serão 10% maiores.
+ Os basais serão 10% menores.
+ O valor do IC será 10% maior.
+ O valor do IC será 10% menor.
+ O valor do ISF será 10% maior.
+ O valor do ISF será 10% menor.
+ Você receberá aproximadamente 10% menos insulina no total.
+ O alvo será 10% maior.
+ O alvo será 10% menor.
+ Só o alvo inferior será 10% menor.
+ https://androidaps.readthedocs.io/en/latest/EN/Usage/Profiles.html?highlight=profile%20switch#profile-switch
+ Se acordar 1h mais cedo do que o normal, como deve notificar a AAPS da mudança no seu horário?
+ Iniciar uma mudança de perfil com uma alteração de turno de 1
+ Iniciar uma mudança de perfil com uma alteração de turno de -1
+ https://androidaps.readthedocs.io/en/latest/EN/Usage/Profiles.html?highlight=profile%20switch#timeshift
+ Iniciar uma mudança de perfil com uma alteração de turno de 60
+ Iniciar uma mudança de perfil com uma alteração de turno de -60
+ https://androidaps.readthedocs.io/en/latest/EN/Module/module.html#good-individual-dosage-algorithm-for-your-diabetes-therapy
+ Tópico: Ajuda com taxas basais
+ Onde procurar ajuda para taxas basais e etc.
+ Sua equipe de diabetes
+ Google
+ Facebook
+ Outra Medicação
+ AAPS reduz Basal para aumentar o açúcar no sangue. As drogas do grupo de inibidores de SGLT2 (gliflozins) podem evitar o aumento esperado da Glic e, assim, podem produzir uma deficiência de insulina perigosa (DKA).
+\nOs nomes comuns de marca são: Invokana®, Forxiga®, Jardiance®, Steglatro®, Suglat®, Apleway®, Deberza®, Synjardy®, Vokanamet®, Xigduo®.\n\nPrometo que não vou tomar tais drogas ao usar o AAPS ou vou desactivar o loop antes de usar essas drogas.
+
diff --git a/app/src/main/res/values-pt-rBR/objectives.xml b/app/src/main/res/values-pt-rBR/objectives.xml
new file mode 100644
index 0000000000..c2c6db7b39
--- /dev/null
+++ b/app/src/main/res/values-pt-rBR/objectives.xml
@@ -0,0 +1,68 @@
+
+
+
+ Voltar
+ Iniciar
+ Verificar
+ %1$d. Objetivo
+ Objetivo %1$d não iniciado
+ Objetivo %1$d não concluido
+ Configurando a visualização e monitorando e analisando basais e proporções
+ Verificar se a Glicemia está disponível no Nightscout, e se os dados de insulina da bomba estão sendo transferidos
+ Iniciando em um loop aberto
+ Utilize o modo Open Loop por alguns dias e execute manualmente muitos basais temporários. Configure e use alvos temporários e padrão (por exemplo, para exercício ou tratamento hipos com carboidratos)
+ Entendendo o seu open loop, incluindo as suas recomendações de basais temporárias
+ Com base nessa experiência, decidir qual deve ser a basal máximo e configurá-lo na bomba e nas preferências
+ Começar a fechar loop com Suspensão por Glicose Baixa
+ Utilizar em close loop com IOB máx = 0 por alguns dias sem muitas situações de Suspensão por Baixa Glicose
+ Ajustar o close loop, aumentar a IOB máximo acima de 0 e reduzir gradualmente os alvos de valor glicêmico
+ Utilizar por alguns dias e pelo menos uma noite sem alarmes de Glic baixa, antes de baixar Glic
+ Ajuste as basais e os rácios, se necessário, e, em seguida, active o auto-sens
+ 1 semana de looping durante o dia com sucesso com entrada regular de hidratos de carbono
+ A activar recursos adicionais para uso durante o dia, como assistente avançado de refeição
+ Activando recursos adicionais para uso durante o dia, como SMB
+ Deverá ler a wiki e aumentar a IOB máx para que os SMBs funcionem devidamente! Inicialmente poderá considerar maxIOB=média dos bólus + 3 x a basal máxima
+ Glic disponível no NS
+ Estado da Bomba disponível no NS
+ Execução manual
+ Concluído: %1$s
+ Aprenda como controlar AndroidAPS
+ Executar diferentes acções no AndroidAPS
+ Definir perfil de 90% por 10 min (pressione longo no nome de perfil na Visão Geral)
+ Simular chuveiro. Desligar a bomba de 1h (Pressione longo em Open Loop)
+ ... e volte a ligar de volta da mesma forma
+ Crie um alvo temporário personalizado com 10 min de duração (pressione longo no seu alvo actual)
+ No Configurador active o plugiin de Acções, torne-o visível e exiba o seu conteúdo no menu superior
+ Mostrar conteúdo do plugin Loop
+ Utilizar a função de escala premindo longamente gráfico Glic
+ Inserir
+ Insira o código obtido dos programadores para ignorar o resto dos objectivos
+ Código aceite
+ Código inválido
+ Prove seu conhecimento
+ Estude e responda as perguntas correctamente
+ Responder desactivado até: %1$s
+ Resposta errada!
+ 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
+ Não está ligado à internet
+ Falha ao recuperar tempo
+ Requisitos de objectivo não cumpridos
+
+ %1$d dia
+ %1$d dias
+
+
+ %1$d hora
+ %1$d horas
+
+
+ %1$d minuto
+ %1$d minutos
+
+
diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml
index ffc3e460d7..68993b7a55 100644
--- a/app/src/main/res/values-pt-rBR/strings.xml
+++ b/app/src/main/res/values-pt-rBR/strings.xml
@@ -5,7 +5,6 @@
-
Segurança do TratamentoMáximo bolus permitido [U]Máximo de carbs permitidos [g]
@@ -57,9 +56,6 @@
Monitore e controle AndroidAPS usando seu relógio WearOS.Mostrar informações sobre o loop no watchface do xDrip+.Controlar remotamente o AndroidAPS usando comandos SMS.
- Voltar
- Iniciar
- VerificarUnidadesDIAIC
@@ -102,6 +98,7 @@
PerfilDados de refeiçãoResultado
+ Resultado: %1$s %2$ssSem dados de glicose disponíveisNenhuma alteração solicitadaSolicitar
@@ -177,9 +174,6 @@
Versão não suportada do NSClientVersão não suportada do NightscoutNSClient não instalado. Registro perdido!
- BG disponível no NS
- Status da Bomba está disponível no NS
- Execução manualLOOP DESATIVADO POR RESTRIÇÕESIOB BasalRestrição de bólus aplicada
@@ -222,7 +216,7 @@
Basal TemporáriaBólus estendidoVersão do Nightscout:
- Faltando
+ Falta %1$dgPreferências exportadasExportar configurações paraImportar configurações de
@@ -317,9 +311,6 @@
STOP PRESSIONADOAguardando a bombaVão ser administradas %1$.2fU
- Configuração da visualização e monitoramento, e análise de rácios e basals
- Verificar se a BG está disponível no Nightscout, e se os dados de insulina da bomba estão a ser carregados
- A iniciar em Open LoopAtingiu o limite autorizadoNenhum perfil selecionadoLoop foi desativado
@@ -553,10 +544,12 @@
Activar superbólus no assistenteHabilite a funcionalidade de superbolus no assistente. Não habilite até que aprenda o funcionamento. PODE CAUSAR OVERDOSE DE INSULINA SE USAR INDISCRIMINADAMENTE!Mostrar luzes de estado no ecrã principal
+ Mostrar luzes de estado estendido no ecrã principal
+ Ativar as luzes de status estendida para idade da cânula, insulina, sensor, reservatório e bateria no ecrã inicial.Limite de aviso de nível de reservatório [U]Limite crítico de nível de reservatório [U]
- Limite de aviso de nível de bateria [%%]
- Limite crítico de nível de bateria [%%]
+ Limite de aviso de nível de bateria [%]
+ Limite de crítico de nível de bateria [%]IOBCOBFirmware
@@ -626,7 +619,7 @@
CancelarNem todos perfis foram carregados!Valores não guardados!
- Activar partilha para outras aplicações (como xDrip).
+ Ative as transmissões para outros apps (como xDrip). Não ative se você tiver mais de uma instância de AAPS ou NSClient instalada!Activar partilha local.ATIVIDADE & FEEDBACKCARBOS & BOLUS
@@ -634,7 +627,7 @@
BOMBAValor da Basal [U/h]Duração [min]
- OpenAPS SMB
+ SMB OpenAPSSMBActivar UAMActivar SMB
@@ -850,8 +843,6 @@
TrocaPerfil em falta. Por favor faça uma troca de perfil ou pressione \"Activar Perfil\" em PerfilLocal.Contagem BólusContagem TBR
- Objetivo %1$d não iniciado
- Objetivo %1$d não concluidoA bomba não é capaz de basais temporáriasNenhum valor de basal temporaria valido foi lido da bombaLoop fecchado disabilitado nas preferências
@@ -973,7 +964,6 @@
Terminado, parabéns!IncompletoTempo decorrido
- %1$d. ObjectivoPoctechReceber valores Glucose da app PoctechReceber valores de Glicose da aplicação Tomato (dispositivo MiaoMiao)
@@ -1284,7 +1274,7 @@
Não IniciadoInicialização do RileyLink…Erro no RileyLink
- A configurar RileyLink e Bomba
+ Configurando RileyLink e a BombaProblema ao ligar à BombaLigado
@@ -1354,7 +1344,15 @@
Obter Basal temporárioDefinir Basal temporárioDefinir Bólus
- %2$.1fg %3$.2fU]]>
+ Alterar perfil para
+ Alterar perfil para %1$s
+ Última ligação à bomba
+ Última ligação à bomba [minutos atrás]
+ Última ligação à bomba %1$s %2$s min atrás
+ Enviar SMS: %1$s
+ Enviar SMS para todos os números nas preferências
+ Enviar SMS com texto
+ %2$+.2fU]]>Restrição de Bolus aplicada: %2$.2fU para %3$.2fU]]>!!!!! Absorção lenta de hidratos detectada: %2$d%% do tempo. Verifique o seu cálculo. COB pode estar sobreestimado, assim mais insulina pode ser dada !!!]]>%1$.0f / %2$d U
@@ -1362,31 +1360,17 @@
Assistente de bólus executa o cálculo, mas apenas esta parte da insulina calculada é entregue. Útil com o algoritmo SMB.A carregar ...Silenciar
- Concluído: %1$s
- Aprenda a controlar o AndroidAPS
- Executar diferentes acções no AndroidAPS
- Exibir conteúdo do plugin do Loop
- Inserir
- Digite o código obtido dos programadores para ignorar o resto dos objectivos
- Código aceite
- Código inválido
- Prove seu conhecimento
- Resposta desactivada para: %1$s
- Resposta errada!
- Próximo não concluído
+ Intervalo de tempo
+ O tempo está entre %1$s e %2$s
+ Entre Fechar
- Pedir código: %1$s
- (seleccione todas as respostas correctas)
-
- %1$d dia
- %1$d dias
-
-
- %1$d hora
- %1$d hora
-
-
- %1$d minuto
- %1$d minutos
-
+ Aumentar o valor máximo de basal porque a configuração é inferior à sua basal máxima no perfil
+ Corpo da mensagem inválido
+ %1$s FSI: %2$.1f
+ %1$.0fg IC: %2$.1f
+ %1$.1fg IC: %2$.1f
+ %1$d%%
+ Assistente de Bólus
+ min
+ %1$dg
diff --git a/app/src/main/res/values-pt-rPT/exam.xml b/app/src/main/res/values-pt-rPT/exam.xml
new file mode 100644
index 0000000000..9ad55b2946
--- /dev/null
+++ b/app/src/main/res/values-pt-rPT/exam.xml
@@ -0,0 +1,169 @@
+
+
+
+ O que é verdade sobre DIA?
+ Tópico: Duração da Acção de Insulina (DIA)
+ O valor mínimo é de 3 horas.
+ O valor mínimo é de 5 horas.
+ https://androidaps.readthedocs.io/en/latest/EN/Configuration/Config-Builder.html?#insulin
+ O significado é igual ao parâmetro DIA usado na bomba.
+ É necessário determinar o seu valor individual (mas não menos de 5 horas).
+ Tópico: Alvo-Temp. Hipo
+ O que é a razão principal para definir TT hipoglicemia?
+ Para evitar que a Glic fique baixa se já estiver em funcionamento um temp zero.
+ Para evitar o AAPS dosear demasiada insulina após uma subida rápida causada por hidratos de actuação rápida para tratar hipoglicemia.
+ https://androidaps.readthedocs.io/en/latest/EN/Usage/temptarget.html
+ Qual perfil pode ser usado e configurado offline?
+ Tópico: Perfil Offline
+ Perfil NS pode ser usado, mas não configurado.
+ https://androidaps.readthedocs.io/en/latest/EN/Configuration/Config-Builder.html#profile
+ Tópico: Desligar a Bomba
+ O que deve ser feito ao desligar a bomba?
+ Clique em \'Desligar bomba\' para que o AAPS saiba que nenhuma insulina está a ser entregue.
+ Clique em \'Suspender loop\' para que AAPS pare o looping enquanto a bomba estiver desconectada.
+ Não altere nada no AAPS, apenas desconecte a bomba.
+ https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#other-settings
+ Tópico: Definições do AndroidAPS
+ Quais são as práticas recomendadas para fazer cópia de segurança das configurações?
+ Exportá-las localmente a partir do menu Manutenção.
+ Armazenar ficheiro exportado para outro local como e-mail, Dropbox, Google drive…
+ Exportá-los logo após a instalação do AAPS.
+ Exportá-los depois de fazer alterações de configuração.
+ Exportá-los depois de completar um objectivo.
+ Exportá-los quando terminar as configurações iniciais.
+ https://androidaps.readthedocs.io/en/latest/EN/Usage/ExportImportSettings.html
+ https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#what-emergency-equipment-is-recommended-to-take-with-me
+ Tópico: Leituras Irregulares CGM
+ O que deve ser feito se os dados do CGM são irregulares?
+ Nada, AAPS vai lidar com isso.
+ Desactivar o loop para evitar sobredosagem.
+ Substituir o sensor CGM.
+ Desligue o telefone.
+ https://androidaps.readthedocs.io/en/latest/EN/Usage/Smoothing-Blood-Glucose-Data-in-xDrip.html#smoothing-blood-glucose-data
+ Verifique que a app do CGM suaviza os dados da Glicose.
+ Tópico: Exercício
+ Como você pode ajudar o sistema a lidar com exercícios?
+ Usando o recurso de alvo-temp.
+ Fazer uma mudança de perfil inferior a 100%.
+ Fazer uma mudança de perfil acima de 100%.
+ Parar o loop.
+ Definir um alvo-temp de actividade antes de iniciar o exercício.
+ Definir um alvo-temp de actividade após iniciar o exercício leva a resultados piores do que se iniciado antes.
+ https://androidaps.readthedocs.io/en/latest/EN/Usage/temptarget.html#activity-temp-target
+ Tópico: Loop Desactivado/Suspenso
+ Eu recebo insulina quando o loop estiver desactivado/suspenso?
+ Sim, a insulina basal continua a ser entregue.
+ Não, a entrega da insulina está parada.
+ Topic: Testar Basal, FSI e IC
+ Quando devo validar valores das basais, FSI e de IC?
+ Antes de começar com o looping.
+ Quando ocorrer frequentemente Glic baixa.
+ Quando ocorrer frequentemente Glic alta.
+ https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#androidaps-settings
+ Tópico: Pré-requisitos
+ O que preciso?
+ Informações do perfil validadas (Basal, IC, FSI, DIA).
+ Um computador para criar um APK.
+ Um telefone compatível.
+ Um Carro.
+ Nightscout para passar os objectivos.
+ Uma conta Tidepool.
+ Uma conta Google.
+ Uma conta Github.
+ Experiência de desenvolvimento Android.
+ Uma bomba MiniMed 670G.
+ https://androidaps.readthedocs.io/en/latest/EN/Module/module.html
+ Um Smartwatch.
+ Um CGM Suportado.
+ Tópico: Actualização do AndroidAPS
+ O que é verdadeiro?
+ Você precisa ter o Git instalado.
+ Actualizar assim que nova versão for lançada e tiver tempo suficiente para fazer isso.
+ Você deve utilizar as mesmas chaves de assinatura.
+ Nunca actualize se o sistema estiver a funcionar bem.
+ Pergunte ao seu amigo pelo novo APK.
+ https://androidaps.readthedocs.io/en/latest/EN/Installing-AndroidAPS/Update-to-new-version.html#update-to-a-new-version-or-branch
+ Tópico: Resolução de Problemas
+ Onde ir para obter ajuda?
+ Adira ao grupo do Facebook AndroidAPS.
+ Leia a documentação do AndroidAPS.
+ Visite AndroidAPS Gitter Room.
+ Visite o suporte AndroidAPS Google
+ Fale com seu endócrinologista.
+ https://androidaps.readthedocs.io/en/latest/EN/Installing-AndroidAPS/Update-to-new-version.html#troubleshooting
+ https://www.facebook.com/groups/AndroidAPSUsers/
+ https://gitter.im/MilosKozak/AndroidAPS
+ Tópico: Plugins de Insulina
+ Qual marca de insulina pode ser usada com o plugin \'Ultra-Rapid-Oref\'?
+ Fiasp®
+ NovoRapid ®
+ Humalog ®
+ Actrapid ®
+ https://androidaps.readthedocs.io/en/latest/EN/Configuration/Config-Builder.html#insulin
+ Tópico: Plugins de Sensibilidade
+ Qual algoritmo de sensibilidade tem um intervalo de tempo configurável?
+ https://androidaps.readthedocs.io/en/latest/EN/Configuration/Sensitivity-detection-and-COB.html
+ Qual plugin de sensibilidade deve ser usado para o recurso UAM?
+ Tópico: Erros de Entrada de Hidratos
+ O que deve fazer se tiver feito uma entrada incorrecta de hidratos?
+ Em Tratamentos, excluir a entrada incorrecta de hidratos. Insira novos hidratos.
+ Como adicionar insulina falsa utilizando a função Recarregar
+ Tópico: Alimentos com Gordura e Proteína
+ O que fazer se a comida contém uma grande quantidade de gordura e/ou proteínas?
+ Recalcular gordura e proteínas em hidratos e usar recurso de \"Hidratos Estendidos\".
+ Recalcular gordura e proteínas em hidratos e adicionar ao cálculo de bólus.
+ Use o bólus estendido para cobrir gordura e proteínas.
+ https://androidaps.readthedocs.io/en/latest/EN/Usage/Extended-Carbs.html
+ Tópico: Monitorização Remota
+ Como pode monitorizar AAPS do seu filho remotamente?
+ Usando um site Nightscout.
+ App Dex om Follow se estiver a usar a app original Dexcom (Glic apenas).
+ Dexcom Follow se estiver a usar a app xDrip.
+ xDrip a correr no modo seguidor.
+ App de Loop no iPhone.
+ App Spike no iPhone.
+ https://androidaps.readthedocs.io/en/latest/EN/Children/Children.html
+ Tópico: Factor de Sensibilidade de Insulina
+ Valores elevados de FSI levam a uma entrega de menos insulina quando o AAPS corrige Glic alta.
+ Valores baixos de FSI levam a uma entrega de menos insulina quando o AAPS corrige Glic alta.
+ Alterar os valores FSI não tem efeito sobre a quantidade de insulina entregue quando a AAPS corrige Glic alta.
+ É necessário inserir FSI nas Preferências.
+ A alteração do valor do FSI no seu perfil é suficiente para aplicar a mudança.
+ https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#insulin-sensitivity-factor-isf-mmol-l-u-or-mg-dl-u
+ https://androidaps.readthedocs.io/en/latest/EN/Usage/Profiles.html
+ Tópico: Rácio IC
+ Rácios IC mais altos levam a menos insulina entregue para uma dada quantidade de hidratos.
+ Rácios IC mais baixos levam a menos insulina entregue para uma dada quantidade de hidratos.
+ Se tiver 0 COB, alterar o rácio IC irá levar a uma quantidade diferente de insulina para corrigir um determinado valor da Glic.
+ IC será diferente se contar a unidade de pão como 10g ou 12g.
+ O significado do IC é: Quantas unidades de pão são cobertas por 1U de insulina.
+ https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#carbohydrate-to-insulin-ratio-cr-g-u
+ Tópico: Mudança De Perfil
+ Ao especificar 90% na mudança de perfil…
+ Basais são 10% superiores.
+ Basais serão 10% inferiores.
+ Valor IC será 10% superior.
+ Valor IC será 10% inferior.
+ O valor FSI será 10% mais alto.
+ O valor FSI será 10% mais baixo.
+ Você receberá aproximadamente 10% menos insulina no total.
+ Alvo será 10% superior.
+ Alvo será 10% inferior.
+ Só alvo inferior será 10% menor.
+ https://androidaps.readthedocs.io/en/latest/EN/Usage/Profiles.html?highlight=profile%20switch#profile-switch
+ Se acordar 1h mais cedo do que o normal, como deve notificar a AAPS da mudança no seu horário?
+ Iniciar uma mudança de perfil com uma alteração de turno de 1
+ Iniciar uma mudança de perfil com uma alteração de turno de -1
+ https://androidaps.readthedocs.io/en/latest/EN/Usage/Profiles.html?highlight=profile%20switch#timeshift
+ Iniciar uma mudança de perfil com uma alteração de turno de 60
+ Iniciar uma mudança de perfil com uma alteração de turno de -60
+ https://androidaps.readthedocs.io/en/latest/EN/Module/module.html#good-individual-dosage-algorithm-for-your-diabetes-therapy
+ Tópico: Ajuda com taxas de basal
+ Onde ir para obter ajuda com rácios da basal, etc.
+ A sua equipa da diabetes
+ Google
+ Facebook
+ Outra Medicação
+ AAPS reduz Basal para aumentar o açúcar no sangue. As drogas do grupo de inibidores de SGLT2 (gliflozins) podem evitar o aumento esperado da Glic e, assim, podem produzir uma deficiência de insulina perigosa (DKA).
+\nOs nomes comuns de marca são: Invokana®, Forxiga®, Jardiance®, Steglatro®, Suglat®, Apleway®, Deberza®, Synjardy®, Vokanamet®, Xigduo®.\n\nPrometo que não vou tomar tais drogas ao usar o AAPS ou vou desactivar o loop antes de usar essas drogas.
+
diff --git a/app/src/main/res/values-pt-rPT/objectives.xml b/app/src/main/res/values-pt-rPT/objectives.xml
new file mode 100644
index 0000000000..727c115853
--- /dev/null
+++ b/app/src/main/res/values-pt-rPT/objectives.xml
@@ -0,0 +1,68 @@
+
+
+
+ Voltar
+ Iniciar
+ Verificar
+ %1$d. Objectivo
+ Objetivo %1$d não iniciado
+ Objetivo %1$d não terminado
+ A configurar visualização e monitorização, e análise de rácios e basais
+ Verificar se a Glic está disponível no Nightscout, e se os dados da bomba de insulina estão a ser carregados
+ A iniciar em Open Loop
+ Utilizar em modo de Open Loop por alguns dias e dar manualmente muitas basais temporárias. Configurar e usar alvos temporários e alvos padrão temporários (por exemplo, para actividade ou tratamentos de hipo com hidratos)
+ Compreender o seu open loop, incluindo as recomendações de basais temporárias
+ Com base nessa experiência, decidir qual deve ser a basal máxima e configurá-la na bomba e nas preferências
+ Começar o close loop com Suspensão por Glicose Baixa
+ Utilizar em close loop com IOB máx = 0 por alguns dias sem muitas situações de Suspensão por Baixa Glicose
+ Ajustar o close loop, aumentar IOB máxima acima de 0 e reduzir gradualmente os alvos de Glic
+ Utilizar por alguns dias e pelo menos uma noite sem alarmes de Glic baixa, antes de baixar Glic
+ Ajuste as basais e os rácios, se necessário, e, em seguida, active o auto-sens
+ 1 semana de looping durante o dia com sucesso com entrada regular de hidratos de carbono
+ A activar recursos adicionais para uso durante o dia, como assistente avançado de refeição
+ Activando recursos adicionais para uso durante o dia, como SMB
+ Deverá ler a wiki e aumentar a IOB máx para que os SMBs funcionem devidamente! Inicialmente poderá considerar maxIOB=média dos bólus + 3 x a basal máxima
+ Glic disponível no NS
+ Estado da Bomba disponível no NS
+ Execução manual
+ Concluído: %1$s
+ Aprenda como controlar AndroidAPS
+ Executar diferentes acções no AndroidAPS
+ Definir perfil de 90% por 10 min (pressione longo no nome de perfil na Visão Geral)
+ Simular chuveiro. Desligar a bomba de 1h (Pressione longo em Open Loop)
+ ... e volte a ligar de volta da mesma forma
+ Crie um alvo temporário personalizado com 10 min de duração (pressione longo no seu alvo actual)
+ No Configurador active o plugiin de Acções, torne-o visível e exiba o seu conteúdo no menu superior
+ Mostrar conteúdo do plugin Loop
+ Utilizar a função de escala premindo longamente gráfico Glic
+ Inserir
+ Insira o código obtido dos programadores para ignorar o resto dos objectivos
+ Código aceite
+ Código inválido
+ Prove seu conhecimento
+ Estude e responda as perguntas correctamente
+ Responder desactivado até: %1$s
+ Resposta errada!
+ 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
+ Não está ligado à internet
+ Falha ao recuperar tempo
+ Requisitos de objectivo não cumpridos
+
+ %1$d dia
+ %1$d dias
+
+
+ %1$d hora
+ %1$d horas
+
+
+ %1$d minuto
+ %1$d minutos
+
+
diff --git a/app/src/main/res/values-pt-rPT/strings.xml b/app/src/main/res/values-pt-rPT/strings.xml
index 928ead2143..e186080045 100644
--- a/app/src/main/res/values-pt-rPT/strings.xml
+++ b/app/src/main/res/values-pt-rPT/strings.xml
@@ -5,7 +5,6 @@
-
Segurança de tratamentosMax bolus permitido [U]Max hidratos permitidos [g]
@@ -32,7 +31,7 @@
Estado do algoritmo em 2016Estado do algoritmo em 2017Algoritmo mais recente para usuários avançados
- Exibe o estado atual do seu loop e botões para ações mais comuns
+ Exibe o estado actual do loop e botões para acções mais comunsMostra uma notificação em curso com um breve resumo do que o seu loop está a fazerDefina um perfil que está disponível offline.Fornece o perfil definido no Nightscout
@@ -57,13 +56,10 @@
Monitorizar e controlar o AndroidAPS usando o seu relógio WearOS.Mostrar informações sobre o loop no watchface do xDrip+.Controlar remotamente o AndroidAPS usando comandos SMS.
- Anterior
- Iniciar
- VerificarUnidadesDIAIC
- ISF
+ FSIBasalAlvoSEM PERFIL DEFINIDO
@@ -102,6 +98,7 @@
PerfilDados de refeiçãoResultado
+ Resultado: %1$s %2$ssSem dados de glucose disponíveisNenhuma alteração solicitadaPedido
@@ -177,9 +174,6 @@
Versão não suportada do NSClienteVersão sem suporte do NightscoutNSCliente em falta. Perdido registo!
- Glic disponível no NS
- Status da Bomba está disponível no NS
- Execução manualLOOP DESATIVADO POR RESTRIÇÕESBasal IOBRestrição de bólus aplicada
@@ -222,7 +216,7 @@
BasalTempBólus estendidoVersão Nightscout:
- Em falta
+ Falta %1$dgPreferências exportadasExportar configurações paraImportar configurações de
@@ -302,7 +296,7 @@
Insulina diáriaErrosGlicose
- Reabastecimento
+ RecarregarSuspenderA ligar durante %1$d sSenha da bomba
@@ -317,9 +311,6 @@
STOP PRESSIONADOÀ espera da bombaVão ser administradas %1$.2fU
- Configuração da visualização e monitoramento, e análise de rácios e basals
- Verificar se a BG está disponível no Nightscout, e se os dados de insulina da bomba estão a ser carregados
- A iniciar em Open LoopAtingiu o limite autorizadoNenhum perfil seleccionadoLoop foi desactivado
@@ -553,10 +544,12 @@
Activar superbólus no assistenteHabilite a funcionalidade de superbolus no assistente. Não habilite até que aprenda o funcionamento. PODE CAUSAR OVERDOSE DE INSULINA SE USAR INDISCRIMINADAMENTE!Mostrar luzes de estado no ecrã principal
+ Mostrar luzes de estado no ecrã principal
+ Activar as luzes de estado para idade da cânula, idade da insulina, idade do sensor, reservatório e bateria no ecrã inicial.Limite de aviso de nível de reservatório [U]Limite crítico de nível de reservatório [U]
- Limite de aviso de nível de bateria [%%]
- Limite crítico de nível de bateria [%%]
+ Limite de aviso de nível de bateria [%]
+ Limite de crítico de nível de bateria [%]IOBCOBFirmware
@@ -626,7 +619,7 @@
CancelarNem todos perfis foram carregados!Valores não guardados!
- Activar partilha para outras aplicações (como xDrip).
+ Activar transmissões para outras aplicações (como xDrip). Não habilite se tiver mais de uma instância de AAPS ou NSClient instalado!Activar partilha local.ACTIVIDADE & FEEDBACKHIDRATOS & BÓLUS
@@ -850,8 +843,6 @@
TrocaPerfil em falta. Por favor faça uma troca de perfil ou pressione \"Activar Perfil\" em PerfilLocal.Contagem BólusContagem TBR
- Objetivo %1$d não iniciado
- Objetivo %1$d não concluidoA bomba não é capaz de basais temporáriasNenhum valor de basal temporaria valido foi lido da bombaLoop fecchado disabilitado nas preferências
@@ -973,7 +964,6 @@
Terminado, parabéns!IncompletoTempo decorrido
- %1$d. ObjectivoPoctechReceber valores Glucose da app PoctechReceber valores de Glicose da aplicação Tomato (dispositivo MiaoMiao)
@@ -1246,6 +1236,8 @@
Não seleccionado (Visão simples)Alcalina (Visão estendida)Lithium (visão estendida)
+ NiZn (Vista Estendida)
+ Depuração de Bólus/TratamentosPROCURARPARAR
@@ -1284,7 +1276,7 @@
Não IniciadoInicialização do RileyLink…Erro no RileyLink
- A configurar RileyLink e Bomba
+ A ajustar RileyLink e a BombaProblema ao ligar à BombaLigado
@@ -1354,7 +1346,15 @@
Obter Basal TemporáriaDefinir Basal TemporáriaDefinir Bólus
- %2$.1fg %3$.2fU]]>
+ Alterar perfil para
+ Alterar perfil para %1$s
+ Última ligação à bomba
+ Última ligação à bomba [minutos atrás]
+ Última ligação à bomba %1$s %2$s min atrás
+ Enviar SMS: %1$s
+ Enviar SMS para todos os números nas preferências
+ Enviar SMS com texto
+ %2$+.2fU]]>Restrição de Bolus aplicada: %2$.2fU para %3$.2fU]]>!!!!! Absorção lenta de hidratos detectada: %2$d%% do tempo. Verifique o seu cálculo. COB pode estar sobreestimado, assim mais insulina pode ser dada !!!]]>%1$.0f / %2$d U
@@ -1362,31 +1362,19 @@
Assistente de bólus executa o cálculo, mas apenas esta parte da insulina calculada é entregue. Útil com o algoritmo SMB.A carregar ...Silenciar
- Concluído: %1$s
- Aprenda a controlar o AndroidAPS
- Executar diferentes acções no AndroidAPS
- Exibir conteúdo do plugin do Loop
- Inserir
- Digite o código obtido dos programadores para ignorar o resto dos objectivos
- Código aceite
- Código inválido
- Prove seu conhecimento
- Resposta desactivada para: %1$s
- Resposta errada!
- Próximo não concluído
+ Intervalo de tempo
+ O tempo está entre %1$s e %2$s
+ Entre Fechar
- Pedir código: %1$s
- (seleccione todas as respostas correctas)
-
- %1$d dia
- %1$d dias
-
-
- %1$d hora
- %1$d hora
-
-
- %1$d minuto
- %1$d minutos
-
+ Aumentar o valor máximo de basal porque a configuração é inferior à sua basal máxima no perfil
+ Corpo da mensagem inválido
+ %1$s FSI: %2$.1f
+ %1$.0fg IC: %2$.1f
+ %1$.1fg IC: %2$.1f
+ %1$d%%
+ Assistente de Bólus
+ min
+ %1$dg
+ Ligado
+ Desligado
diff --git a/app/src/main/res/values-ro-rRO/exam.xml b/app/src/main/res/values-ro-rRO/exam.xml
new file mode 100644
index 0000000000..15be025f38
--- /dev/null
+++ b/app/src/main/res/values-ro-rRO/exam.xml
@@ -0,0 +1,48 @@
+
+
+
+ Care afirmații despre DIA sunt adevărate?
+ Subiect: Durata Acțiunii Insulinei
+ Valoarea minimă este de 3 ore.
+ Valoarea minimă este de 5 ore.
+ https://androidaps.readthedocs.io/en/latest/EN/Configuration/Config-Builder.html?#insulin
+ Este vorba despre ceva ce este egal cu parametrul DIA folosit în pompa dumneavoastră.
+ Va trebui să vă determinați valoarea individuală (dar nu mai mică de 5 ore).
+ Subiect: Țintă hipo temp
+ Care este scopul principal pentru care se stabilește o bazală temporară de hipo?
+ Pentru a preveni o scădere a glicemiei dacă este deja activă o bazală zero.
+ Pentru evitarea supradozării de insulină de către AAPS, după o creștere cauzată de carbohidrați rapizi folosiți pentru tratarea unui hipo.
+ https://androidaps.readthedocs.io/en/latest/EN/Usage/temptarget.html
+ Ce profil se va folosi și configura offline?
+ Subiect: Profil Offline
+ Profilul NS poate fi folosit, dar nu modificat.
+ https://androidaps.readthedocs.io/en/latest/EN/Configuration/Config-Builder.html#profile
+ Subiect: Deconectarae de la pompă
+ Ce trebuie să faceți atunci când deconectați pompa?
+ Apăsați ‘Deconectează pompa’ astfel încât AAPS să știe că nu se va putea livra insulină.
+ Apăsați ‘Suspendă bucla’ astfel încât AAPS să dezactiveze bucla atâta timp cât pompa este deconectată.
+ https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#other-settings
+ Subiect: Setări AndroidAPS
+ Care sunt cele mai bune metode de a păstra o copie de siguranță a setărilor AndroidAPS?
+ Export pe un mediu de stocare local folosind meniul Mentenanță.
+ Stocarea fișierului exportat într-un alt loc, precum email, Dropbox, Google drive…
+ Exportarea imedia după instalarea AAPS.
+ Exportarea atunci când ați terminat setarea inițială.
+ https://androidaps.readthedocs.io/en/latest/EN/Usage/ExportImportSettings.html
+ https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#what-emergency-equipment-is-recommended-to-take-with-me
+ Subiect: Citiri zgomotoase ale glicemiei
+ Se va înlocui senzorul CGM.
+ Se va opri telefonul.
+ https://androidaps.readthedocs.io/en/latest/EN/Usage/Smoothing-Blood-Glucose-Data-in-xDrip.html#smoothing-blood-glucose-data
+ Subiect: Exerciții fizice
+ Cum puteți ajuta sistemul să facă față exercițiilor fizice?
+ Se va face un schimb de profil de sub 100%.
+ Se va face o schimbare de profil de peste 100%.
+ Se va opri bucla.
+ https://androidaps.readthedocs.io/en/latest/EN/Usage/temptarget.html#activity-temp-target
+ Nu, livrarea de insulină este oprită.
+ Subiect: Bazală, ISF și testare IC
+ Când ar trebui să validez bazalele, ISF și valorile IC?
+ Înainte de pornirea buclei.
+ https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#androidaps-settings
+
diff --git a/app/src/main/res/values-ro-rRO/objectives.xml b/app/src/main/res/values-ro-rRO/objectives.xml
new file mode 100644
index 0000000000..76613910c2
--- /dev/null
+++ b/app/src/main/res/values-ro-rRO/objectives.xml
@@ -0,0 +1,70 @@
+
+
+
+ Înapoi
+ Start
+ Verifică
+ Obiectiv %1$d
+ Obiectivul %1$d nu a fost asumat
+ Obiectivul %1$d nu a fost atins
+ Se stabilesc vizualizările și monitorizarea și se analizează bazalele și valorile ratelor
+ Verificați că vedeți glicemia în Nightscout și că datele despre insulină date de pompă sunt înregistrate în site
+ Pornire cu buclă deschisă
+ Funcționare în modul Buclă Deschisă pentru câteva zile și introducere manuală a multiplelor sugestii de bazale temporare. Se stabilesc și se folosesc ținte temporare și ținte implicite (e.g. pentru activități sau pentru carbohidrați de corecție)
+ Se va înțelege modul de lucru în buclă deschisă, inclusiv recomandările de bazale temporare
+ Pe baza experienței, se va decide care va fi bazala maximă, și se va implementa aceasta în pompă și în preferințe
+ Se va începe modul buclă închisă cu funcția Suspendare la Glicemie Mică
+ Rulează în mod buclă închisă cu max IOB = 0 pentru câteva zile, fără prea multe evenimente LGS (Suspendare la Glicemii Mici)
+ Îmbunătățirea buclei închise, mărirea valorii max IOB peste 0 și scăderea graduală a țintelor de glicemie
+ Se rulează pentru câteva zile și cel puțin o noapte fără a avea alarme de glicemie mică înainte de scăderea țintei
+ Ajustarea bazalelor și a factorilor dacă este necesar și apoi activarea auto-sens
+ O săptămână de buclă închisă încheiată cu succes în condițiile introducerii regulate a carbohidraților
+ Activarea unor facilități adiționale pentru funcționarea în timpul zilei, cum ar fi advanced meal assist
+ Se activează opțiuni pentru uzul în timpul zilei, cum ar fi SMB
+ Trebuie sa citiți wiki și să măriți maxIOB pentru a obține SMB corect! Un start bun este maxIOB=media bolusurilor + 3x maxima bazalei din zi
+ Glicemie disponibilă în NS
+ Starea pompei disponibilă în NS
+ Acțiuni manuale
+ Îndeplinit: %1$s
+ Învățați cum se controlează AndroidAPS
+ Faceți diferite acțiuni în AndroidAPS
+ Stabiliți profilul 90% pentru 10 min (apăsare prelungă a numelui profilului în Vedere de ansamblu)
+ Simularea unui duș. Deconectarea pompei pentru 1 oră (Apăsare prelungă pe Buclă deschisă)
+ ... și reconectare în același mod
+ Creați ținte temporare personalizate pentru o durată de 10 min (apăsare prelungă pe ținta curentă)
+ În Generatorul de Configurații activați facilitatea Acțiuni, făceți-o vizibilă și afișați-i conținutul folosind meniul de sus
+ Afișați conținutul facilității Buclă
+ Folosiți funcția scală prin apăsarea prelungă a graficului glicemiei
+ Introduceţi
+ Introduceți codul obținut de la dezvoltatori pentru a sări peste restul obiectivelor
+ Cod acceptat
+ Cod invalid
+ Dovediți-vă cunoștințele
+ Studiați și răspundeți corect la întrebări
+ Răspuns greșit!
+ 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
+ Nu există conexiune la internet
+ Nu s-a reușit preluarea timpului
+ Nu au fost îndeplinite cerințele obiectivului
+
+ %1$d zi
+ %1$d zile
+ %1$d zile
+
+
+ %1$d oră
+ %1$d ore
+ %1$d ore
+
+
+ %1$d minut
+ %1$d minute
+ %1$d minute
+
+
diff --git a/app/src/main/res/values-ro-rRO/strings.xml b/app/src/main/res/values-ro-rRO/strings.xml
index fe249a37c1..38d793ffcb 100644
--- a/app/src/main/res/values-ro-rRO/strings.xml
+++ b/app/src/main/res/values-ro-rRO/strings.xml
@@ -5,7 +5,6 @@
-
Setări siguranță tratamentBolus maxim admis [U]Carbohidrați admiși maxim [g]
@@ -57,9 +56,6 @@
Monitorizează și controlează aplicația AndroidAPS folosind smartwatchul WearOS.Afișează informații privind starea buclei pe watchface-ul xDrip+.Controlare de la distanță a AndroidAPS folosind comenzi date prin SMS.
- Înapoi
- Start
- VerificăUnitățiDIAIC
@@ -177,9 +173,6 @@
Versiune incompatibilă de NSClientVersiune incompatibilă de NightscoutNSClient nu este instalat. Înregistrare pierdută!
- Glicemie disponibilă în NS
- Starea pompei disponibilă în NS
- Acțiuni manualeBUCLĂ DEZACTIVATĂ DATORITĂ CONSTRÂNGERILORIOB bazalăConstrângere de bolus aplicată
@@ -222,7 +215,7 @@
Bazală temporarăBolus extinsVersiune Nightscout:
- Lipsă
+ Lipsă %1$dgAm exportat preferințeleExportă setările cătreImportă setările din
@@ -317,21 +310,6 @@
STOP APĂSATSe așteaptă pompaSe va livra un bolus de %1$.2fU
- Se stabilesc vizualizările și monitorizarea și se analizează bazalele și valorile ratelor
- Verificați că vedeți glicemia în Nightscout și că datele despre insulină date de pompă sunt înregistrate în site
- Pornire cu buclă deschisă
- Funcționare în modul Buclă Deschisă pentru câteva zile și introducere manuală a multiplelor sugestii de bazale temporare. Se stabilesc și se folosesc ținte temporare și ținte implicite (e.g. pentru activități sau pentru carbohidrați de corecție)
- Se va înțelege modul de lucru în buclă deschisă, inclusiv recomandările de bazale temporare
- Pe baza experienței, se va decide care va fi bazala maximă, și se va implementa aceasta în pompă și în preferințe
- Se va începe modul buclă închisă cu funcția Suspendare la Glicemie Mică
- Rulează în mod buclă închisă cu max IOB = 0 pentru câteva zile, fără prea multe evenimente LGS (Suspendare la Glicemii Mici)
- Îmbunătățirea buclei închise, mărirea valorii max IOB peste 0 și scăderea graduală a țintelor de glicemie
- Se rulează pentru câteva zile și cel puțin o noapte fără a avea alarme de glicemie mică înainte de scăderea țintei
- Ajustarea bazalelor și a factorilor dacă este necesar și apoi activarea auto-sens
- O săptămână de buclă închisă încheiată cu succes în condițiile introducerii regulate a carbohidraților
- Activarea unor facilități adiționale pentru funcționarea în timpul zilei, cum ar fi advanced meal assist
- Se activează opțiuni pentru uzul în timpul zilei, cum ar fi SMB
- Trebuie sa citiți wiki și să măriți maxIOB pentru a obține SMB corect! Un start bun este maxIOB=media bolusurilor + 3x maxima bazalei din ziAți atins limita permisăNiciun profil selectatBucla a fost dezactivată
@@ -565,14 +543,10 @@
Activează superbolus în asistentActivează funcționalitatea de superbolus în asistentul de buclă. Nu activați până nu înțelegeți ce face cu adevărat. DACĂ ESTE FOLOSIT ÎN NECUNOȘTINȚĂ DE CAUZĂ POATE DUCE LA SUPRADOZĂ DE INSULINĂ!Afișați indicatorii luminoși ai pompei pe ecranul de start
- Afișați indicatorii luminoși de pe pompă pe ecranul de start
- Activați indicatori pentru CAGE, IAGE, SAGE, nivel baterie și rezervor pe ecranul principal.Afișați indicatorii luminoși referitori la starea detaliată a pompei pe ecranul principalActivați indicatori pentru CAGE, IAGE, SAGE, nivel baterie și rezervor pe ecranul principal.Pragul de avertisment pentru insulina din rezervor [U]Pragul critic al nivelului insulinei în rezervor [U]
- Pragul de avertizare nivel baterie [%%]
- Pragul critic al nivelului baterie [%%]IOBCOBFirmware
@@ -642,7 +616,7 @@
RenunțăNu s-au încărcat toate profilurile!Nu s-au salvat valorile!
- Permite anunțarea altor aplicații (ca xDrip).
+ Activează mesajele pentru alte aplicații (cum ar fi xDrip). Nu activați dacă aveți mai mult de o instanță de AAPS sau NSClient instalată!Permite anunțuri locale.ACTIVITATE ȘI VERIFICĂRICARBO ȘI BOLUS
@@ -866,8 +840,6 @@
Lipsă SchimbareProfil. Efectuați o schimbare de profil sau apăsați \"Activare profil\" în ProfilulLocal.Total bolusuriTotal RBTuri
- Obiectivul %1$d nu a fost asumat
- Obiectivul %1$d nu a fost atinsPompa nu suportă bazale temporareNu s-a citit o rată bazală validă din pompăModul buclă închisă dezactivat în preferințe
@@ -989,7 +961,6 @@
Finalizat cu succes!Încă incompletTimp scurs
- Obiectiv %1$dPoctechCitire a valorii glicemiei din aplicația PoctechÎnregistrează valorile glicemiei din aplicația Tomato (dispozitiv MiaoMIao)
@@ -1300,7 +1271,7 @@
NepornitSe inițializează RileyLink…Eroare RileyLink
- Sincronizare cu RileyLink și pompă
+ Se îmbunătățește RileyLink și pompaProbleme la conectarea cu pompaConectat
@@ -1370,7 +1341,15 @@
Preia bazala temporarăSetează bazala temporarăSetează bolusul
- %2$.1fg %3$.2fU]]>
+ Schimbă profilul în
+ Schimbă profilul la %1$s
+ Ultima conexiune la pompă
+ Ultima conexiune la pompă [minute în urmă]
+ Ultima conexiune la pompă %1$s %2$s minute în urmă
+ Trimite SMS: %1$s
+ Trimite SMS la toate numerele prestabilite
+ Trimite SMS cu text
+ %2$+.2fU]]>Restricție de bolus aplicată: %2$.2fU la %3$.2fU]]>!!!!! A fost detectată o absorbție lentă a carbohidraților: %2$d%% din timp. Reverificați calculele. COB poate fi supraestimat, astfel că este posibilă administrarea de mai multă insulină !!!!!]]>%1$.0f / %2$d U
@@ -1378,41 +1357,17 @@
Wizard bolus face un calcul, dar numai o parte din insulina calculată este și livrată. Este mai eficient când se folosește cu algoritmul SMB.Se încarcă ...Amână
- Îndeplinit: %1$s
- Învățați cum se controlează AndroidAPS
- Faceți diferite acțiuni în AndroidAPS
- Stabiliți profilul 90% pentru 10 min (apăsare prelungă a numelui profilului în Vedere de ansamblu)
- Simularea unui duș. Deconectarea pompei pentru 1 oră (Apăsare prelungă pe Buclă deschisă)
- ... și reconectare în același mod
- Creați ținte temporare personalizate pentru o durată de 10 min (apăsare prelungă pe ținta curentă)
- În Generatorul de Configurații activați facilitatea Acțiuni, făceți-o vizibilă și afișați-i conținutul folosind meniul de sus
- Afișați conținutul facilității Buclă
- Folosiți funcția scală prin apăsarea prelungă a graficului glicemiei
- Introduceţi
- Introduceți codul obținut de la dezvoltatori pentru a sări peste restul obiectivelor
- Cod acceptat
- Cod invalid
- Dovediți-vă cunoștințele
- Studiați și răspundeți corect la întrebări
- Răspunsul este dezactivat pentru: %1$s
- Răspuns greșit!
- Următoarea nefinalizată
+ Interval de timp
+ Timpul este între %1$s și %2$s
+ Între Închide
- Solicită codul: %1$s
- (bifați toate răspunsurile corecte)
-
- %1$d zi
- %1$d zi
- %1$d zile
-
-
- %1$d oră
- %1$d oră
- %1$d ore
-
-
- %1$d minut
- %1$d minut
- %1$d minute
-
+ Se mărește valoarea bazalei maxime deoarece setarea este mai joasă decât bazala maximă din profil
+ Conținutul mesajului nu este valid
+ %1$s ISF: %2$.1f
+ %1$.0fg IC: %2$.1f
+ %1$.1fg IC: %2$.1f
+ %1$d%%
+ Asistent bolusare
+ min
+ %1$dg
diff --git a/app/src/main/res/values-ru-rRU/exam.xml b/app/src/main/res/values-ru-rRU/exam.xml
new file mode 100644
index 0000000000..cccb9912e5
--- /dev/null
+++ b/app/src/main/res/values-ru-rRU/exam.xml
@@ -0,0 +1,171 @@
+
+
+
+ Что верно о длительности работы инсулина DIA?
+ Тема: продолжительность действия инсулина DIA
+ Минимальное значение 3 часа.
+ Минимальное значение 5 часов.
+ https://androidaps.readthedocs.io/en/latest/EN/Configuration/Config-Builder.html?#insulin
+ Равно параметру продолжительность действия инсулина DIA помпы.
+ Следует определить свое индивидуальное значение (но не менее 5 часов).
+ Тема: Временная цель Hypo
+ Что является основной причиной для установки временной цели TT гипо?
+ Предотвратить падение ГК, если уже запущен нулевой временный базал.
+ Чтобы AAPS не давал слишком много инсулина после роста, вызваного быстродействующими углеводами данными на купирование гипо.
+ https://androidaps.readthedocs.io/en/latest/EN/Usage/temptarget.html
+ Какой профиль можно применить и настроить в автономном режиме?
+ Тема: Автономный профиль
+ Профилем NS можно пользоваться, но не настраивать.
+ https://androidaps.readthedocs.io/en/latest/EN/Configuration/Config-Builder.html#profile
+ Тема: Отключение от помпы
+ Что следует делать при отсоединении помпы?
+ Нажать «Отключить помпу», чтобы AAPS знал, что инсулин не подается.
+ Нажать \'Приостановить цикл\', чтобы AAPS перестал выполнять цикл, когда помпа отсоединена.
+ Ничего не менять в AAPS, просто отключить помпу.
+ https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#other-settings
+ Тема: Параметры AndroidAPS
+ Как эффективнее сохранить свои настройки?
+ Локально экспортировать их из меню Обслуживание.
+ Хранить экспортированный файл в другом месте, например, отправив по электронной почте, Dropbox, Google drive…
+ Экспортировать их сразу после установки AAPS.
+ Экспортировать их после внесения изменений в параметры.
+ Экспортировать их после завершения цели.
+ Экспортировать их при завершении начальной настройки.
+ https://androidaps.readthedocs.io/en/latest/EN/Usage/ExportImportSettings.html
+ https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#what-emergency-equipment-is-recommended-to-take-with-me
+ Тема: Зашумленные данные мониторинга
+ Что следует делать, если данные мониторинга зашумлены?
+ Ничего, алгоритм AAPS сам справится с этим.
+ Отключите цикл, чтобы избежать чрезмерной дозировки.
+ Заменить сенсор.
+ Выключить телефон.
+ https://androidaps.readthedocs.io/en/latest/EN/Usage/Smoothing-Blood-Glucose-Data-in-xDrip.html#smoothing-blood-glucose-data
+ Убедитесь, что приложение мониторинга сглаживает данные ГК.
+ Тема: Нагрузки
+ Как помочь системе справиться с физическими нагрузками?
+ Использование функции временная цель TT.
+ Задать профиль ниже 100%.
+ Задать профиль выше 100%.
+ Остановить цикл.
+ Задать временную цель Нагрузка перед началом активности.
+ Установка временной цели TT после начала активности приводит к худшим результатам, чем если бы была задана заранее.
+ https://androidaps.readthedocs.io/en/latest/EN/Usage/temptarget.html#activity-temp-target
+ Тема: Отключение/приостановка цикла
+ Получаю ли я инсулин, когда цикл отключен/приостановлен?
+ Да, базальный инсулин продолжает подаваться.
+ Нет, подача инсулина прекращается.
+ Тема: Определение базальной скорости, чувствительности к инсулину ISF и соотношения инсулин- углеводы IC
+ Когда следует определить значения базала, ISF и IC?
+ Перед тем, как начать пользоваться AAPS.
+ При частых низких ГК.
+ При частых высоких ГК.
+ https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#androidaps-settings
+ Тема: Предварительные требования
+ Что необходимо?
+ Проверенные данные профиля (базал, инс-углеводы IC, фактор чувствительности к инсулину ISF, длительность действия инсулина DIA).
+ Компьютер для создания APK.
+ Поддерживаемый телефон.
+ Автомобиль.
+ Nightscout для передачи целей.
+ Учетная запись Tidepool.
+ Учетная запись Google.
+ Учетная запись Github.
+ Опыт разработки Android.
+ Помпа MiniMed 670G.
+ https://androidaps.readthedocs.io/en/latest/EN/Module/module.html
+ Смарт часы.
+ Поддерживаемый мониторинг.
+ Тема: Обновление AndroidAPS
+ Что верно?
+ Вы должны иметь установленный Git.
+ Обновлять, как только выпускается новая версия и есть достаточно времени для этого.
+ Следует использовать те же ключи подписи.
+ Никогда не обновлять, если система работает хорошо.
+ Попросить новую версию APK у друга.
+ https://androidaps.readthedocs.io/en/latest/EN/Installing-AndroidAPS/Update-to-new-version.html#update-to-a-new-version-or-branch
+ Тема: Устранение неполадок
+ Куда обращаться за помощью?
+ Присоединиться к группе AndroidAPS на Facebook.
+ Читайте документацию AndroidAPS.
+ Посетить чат Gitter AndroidAPS.
+ Посетить поддержку AndroidAPS Google
+ Поговорить с эндокринологом.
+ https://androidaps.readthedocs.io/en/latest/EN/Installing-AndroidAPS/Update-to-new-version.html#troubleshooting
+ https://www.facebook.com/groups/AndroidAPSUsers/
+ https://gitter.im/MilosKozak/AndroidAPS
+
+Context | Edit Context
+ Тема: Модули инсулина
+ Какой тип инсулина можно использовать с модулем Ultra-Rapid-Oref?
+ Fiasp®
+ Новорапид®
+ Хумалог®
+ Актрапид®
+ https://androidaps.readthedocs.io/en/latest/EN/Configuration/Config-Builder.html#insulin
+ Тема: Модули чувствительности
+ Какой алгоритм чувствительности имеет настраиваемый диапазон времени?
+ https://androidaps.readthedocs.io/en/latest/EN/Configuration/Sensitivity-detection-and-COB.html
+ Какой модуль чувствительности должен использоваться для функции UAM?
+ Тема: Ошибки записи углеводов
+ Что нужно делать, если сделан неправильный ввод углеводов?
+ На вкладке Лечение/назначения удалите неправильные записи углеводов. Вводите новые углеводы.
+ Добавить фиктивный инсулин с помощью функции Заполнение
+ Тема: Продукты с содержанием жиров и белков
+ Что делать, если ваша еда содержит большое количество жиров и/или белков?
+ Пересчитать жир и белки в углеводах и использовать функцию \"Пролонгированные углеводы\".
+ Пересчитать жир и белки в углеводах и добавить их в калькулятор болюса.
+ Использовать пролонгированный болюс для покрытия жиров и белков.
+ https://androidaps.readthedocs.io/en/latest/EN/Usage/Extended-Carbs.html
+ Тема: Удаленный мониторинг
+ Как можно дистанционно отслеживать AAPS вашего ребенка?
+ С помощью сайта Nightscout.
+ Приложение Dexcom Follow, если вы используете оригинальное приложение Dexcom (только ГК).
+ Dexcom Follow, если вы используете приложение xDrip.
+ xDrip в режиме follower.
+ Приложения Loop на iPhone.
+ Приложения Spike на iPhone.
+ https://androidaps.readthedocs.io/en/latest/EN/Children/Children.html
+ Тема: Коэффициент чувствительности к инсулину
+ Более высокие значения ISF приводят к меньшей подаче инсулина, когда AAPS исправляет высокую ГК.
+ Более низкие значения ISF приводят к меньшей подаче инсулина, когда AAPS исправляет высокую ГК.
+ Изменение значений ISF никак не влияет на количество инсулина, подаваемого AAPS при коррекции высокой ГК.
+ Необходимо ввести ISF в Настройках.
+ Изменение значения ISF в профиле достаточно для применения изменений.
+ https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#insulin-sensitivity-factor-isf-mmol-l-u-or-mg-dl-u
+ https://androidaps.readthedocs.io/en/latest/EN/Usage/Profiles.html
+ Тема: Сотношение инсулин-углеводы IC
+ Более высокие коэффициенты инсулин-углеводы IC приводят к уменьшению инсулина на данное количество углеводов.
+ Более низкие коэффициенты инсулин-углеводы IC приводят к уменьшению инсулина на данное количество углеводов.
+ Если у вас 0 активных углеводов COB, изменение соотношения инсулин-углеводы IC приведет к иному количеству инсулина на коррекцию данной ГК.
+ Соотношение инсулин-углеводы изменится если принимать ХЕ за 10 или 12г.
+ Смысл соотношения инсулин-углеводы IC таков: сколько хлебных единиц покрываются одной ед. инсулина.
+ https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#carbohydrate-to-insulin-ratio-cr-g-u
+ Тема: Переключение Профиля
+ При установке 90% в переключателе профиля…
+ Базал будет на 10% выше.
+ Базал будет на 10% ниже.
+ Значение IC будет на 10% больше.
+ Значение IC будет на 10% ниже.
+ Значение ISF будет на 10% выше.
+ Значение ISF будет на 10% ниже.
+ В общей сложности вы получите на 10% меньше инсулина.
+ Целевое значение ГК будет на 10% выше.
+ Целевое значение ГК будет на 10% ниже.
+ Только нижняя цель будет ниже на 10%.
+ https://androidaps.readthedocs.io/en/latest/EN/Usage/Profiles.html?highlight=profile%20switch#profile-switch
+ Если вы просыпаетесь на 1ч раньше, чем обычно, как вы должны уведомлять AAPS об изменении вашего графика?
+ Выполнить переключение профиля со сдвигом времени 1
+ Выполнить переключение профиля со сдвигом времени -1
+ https://androidaps.readthedocs.io/en/latest/EN/Usage/Profiles.html?highlight=profile%20switch#timeshift
+ Выполнить переключение профиля со сдвигом времени 60
+ Выполнить переключение профиля со сдвигом времени -60
+ https://androidaps.readthedocs.io/en/latest/EN/Module/module.html#good-individual-dosage-algorithm-for-your-diabetes-therapy
+ Тема: Скорость базала. Справка
+ Куда обращаться за помощью по скорости базала и т. д.
+ Ваши эндокринологи
+ Google
+ Facebook
+ Другие препараты
+ ААPS понижает базал, чтобы повысить уровень сахара в крови. Препараты из группы ингибиторов SGLT2 (глифлозинов) могут предотвратить ожидаемый рост ГК и, следовательно, привести к опасной недостаточности инсулина (диабетическому кетоацитозу DKA).
+\nНаиболее распространенные коммерческие наименования:® Invokana, Forxiga®, Jardiance®, Steglatro®, Suglat®, Apleway®, Deberza®, Synjardy®, Vokanamet®, Xigduo®.\n\n Настоящим подтверждаю, что не буду принимать такие препараты при использовании AAPS или буду отключать AAPS перед их употреблением.
+
diff --git a/app/src/main/res/values-ru-rRU/objectives.xml b/app/src/main/res/values-ru-rRU/objectives.xml
new file mode 100644
index 0000000000..ca1f3159d9
--- /dev/null
+++ b/app/src/main/res/values-ru-rRU/objectives.xml
@@ -0,0 +1,74 @@
+
+
+
+ Назад
+ Старт
+ Подтвердить
+ %1$d. Цель
+ Цель %1$d не начата
+ Цель %1$d не завершена
+ Настройка визуализации и мониторинга, анализ базала и коэффициентов
+ Убедитесь, что BG доступен в Nightscut, и данные инсулина помпы загружаются
+ Старт незамкнутого цикла
+ Начинайте работу в режиме незамкнутого цикла и ручной подстройки величины временного базала. Установите и применяйте временные цели и временные цели по умолчанию (напр. углеводы при нагрузке или купировании гипо)
+ Глубже понимаем незакольцованную систему Open Loop, включая ее рекомендации по временным базалам
+ На основе полученного опыта определияем макс величину базала и вводим ее в помпу и настройки
+ Начинаем замыкать цикл с Low Glucose Suspend (прекращением подачи инсулина на низких сахарах)
+ Работа в замкнутом цикле с макс активным инсулином IOB = 0 на протяжении нескольких дней избегая событий типа приостановка на низких ГК Low Suspend
+ Настройка замкнутого цикла с поднятием макс величины IOB выше 0 и постепенным понижением целевой ГК
+ Работа несколько дней и по кр мере одну ночь без срабатывания оповещений о низкой ГК
+ Настраиваем базал и коэффициенты с последующей активацией auto-sens
+ 1 неделя успешной дневной работы с регулярным введением углеводов
+ Активация таких доп функций для дневного времени как расширенный калькулятор болюса advanced meal assist
+ Активация таких доп функций для дневного времени как супер микро болюс SMB
+ Прочтите wiki и увеличьте maxIOB чтобы супер микро болюс SMB заработал как положено! Хорошее начало – maxIOB = средний болюс на еду + троекратный максимальный суточный базал
+ гликемия доступна в NS
+ Статус помпы доступен в NS
+ Ввод вручную
+ Выполнено: %1$s
+ Научитесь контролировать AndroidAPS
+ Выполняйте различные действия в AndroidAPS
+ Установите профиль 90% на 10 мин (Долгое нажатие на имя профиля на главном экране)
+ Имитация душа. Отключите помпу на 1ч (Долгое нажатие на Открытый цикл Open Loop)
+ ... и обратное подключение таким же способом
+ Создайте настраиваемую временную цель длительностью 10 мин. (Долгое нажатие на текущую цель)
+ В Конфигураторе активируйте модуль Действия Actions, сделав его видимым и показав содержимое верхнего меню
+ Просмотр содержимого модуля Цикл Loop
+ Применить функцию масштабирования по долгому нажатию на диаграмму ГК
+ Ввод
+ Введите код, полученный от разработчиков, чтобы обойти остальные цели
+ Код принят
+ Неверный код
+ Подтвердите ваши знания
+ Изучите вопросы и дайте точные ответы
+ Ответы отключены до: %1$s
+ Неверный ответ!
+ Следующий незавершенный
+ Код запроса: %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
+ Нет подключения к Интернету
+ Не удалось загрузить время
+ Требования к цели не выполнены
+
+ %1$d день
+ %1$d дня
+ %1$d дней
+ %1$d д
+
+
+ %1$d час
+ %1$d часа
+ %1$d часов
+ %1$d ч
+
+
+ %1$d минута
+ %1$d минут(ы)
+ %1$d минут
+ %1$d мин
+
+
diff --git a/app/src/main/res/values-ru-rRU/strings.xml b/app/src/main/res/values-ru-rRU/strings.xml
index 132c1bb39c..de60ad8813 100644
--- a/app/src/main/res/values-ru-rRU/strings.xml
+++ b/app/src/main/res/values-ru-rRU/strings.xml
@@ -5,7 +5,6 @@
-
Безопасность терапииМакс разрешенный болюс [U] ед.макс разрешенные углеводы (г)
@@ -57,9 +56,6 @@
Мониторить и контролировать AndroidAPS при помощи часов WearOS.Показать информацию о работе алгоритма ИПЖ на экране смарт-часов xDrip+.Дистанционное управление AndroidAPS при помощи команд SMS.
- Назад
- старт
- ВерификацияединицыDIA (время действия инсулина)IC (инсулин/углеводы):
@@ -102,6 +98,7 @@
профильданные приема пищирезультат
+ Результат: %1$s %2$sданные гликемии недоступныизменения не запрошенызапрос
@@ -177,9 +174,6 @@
неподдерживаемая версия NSClientНеподдерживаемая версия Nightscoutотключите \"только передача в NS\" чтобы активировать эту опцию
- гликемия доступна в NS
- статус помпы доступен в NS
- ввод вручнуюЗЦ ОТМЕНЕН ОГРАНИЧЕНИЯМИбазал IOBприменено ограничение болюса
@@ -222,7 +216,7 @@
ВремБазалрасширенный болюсверсия Nightscout:
- отсутствует
+ Отсутствует %1$dgнастройки экспортированыэкспортировать настройки вимпортировать настройки из
@@ -317,21 +311,6 @@
нажат стопожидание помпыНачинается подача болюса %1$.2fед.
- настройка визуализации и мониторинга, анализ базала и коэффициентов
- убедитесь что СК и данные помпы передаются в NS
- Старт незамкнутого цикла
- Начинайте работу в режиме незамкнутого цикла и ручной подстройки величины временного базала. Установите и применяйте временные цели и временные цели по умолчанию (напр. углеводы при нагрузке или купировании гипо)
- Глубже понимаем незакольцованную систему Open Loop, включая ее рекомендации по временным базалам
- На основе полученного опыта определияем макс величину базала и вводим ее в помпу и настройки
- Начинаем замыкать цикл с Low Glucose Suspend (прекращением подачи инсулина на низких сахарах)
- Работа в замкнутом цикле с макс активным инсулином IOB = 0 на протяжении нескольких дней избегая событий типа приостановка на низких ГК Low Suspend
- Настройка замкнутого цикла с поднятием макс величины IOB выше 0 и постепенным понижением целевой ГК
- Работа несколько дней и по кр мере одну ночь без срабатывания оповещений о низкой ГК
- Настраиваем базал и коэффициенты с последующей активацией auto-sens
- 1 неделя успешной дневной работы с регулярным введением углеводов
- Активация таких доп функций для дневного времени как расширенный калькулятор болюса advanced meal assist
- Активация таких доп функций для дневного времени как супер микро болюс SMB
- Прочтите wiki и увеличьте maxIOB чтобы супер микро болюс SMB заработал как положено! Хорошее начало – maxIOB = средний болюс на еду + троекратный максимальный суточный базалразрешенный предел достигнутпрофиль не выбранзцикл был деактивирован
@@ -565,14 +544,12 @@
активировать суперболюсактивировать возможность суперболюса в мастере. не активируйте если не знаете что это. МОЖЕТ ВЫЗВАТЬ ПЕРЕДОЗИРОВКУ ИНСУЛИНА ЕСЛИ ИСПОЛЬЗУЕТСЯ ВСЛЕПУЮПоказать индикаторы состояния на главном экране
- Показывать индикаторы состояния на главном экране
- Включить на главном экране индикаторы отработанного времени для канюли помпы, инсулина, сенсора, резервуара, а также показать уровень аккумулятора.Показывать подробные индикаторы состояния на главном экранеВключить на главном экране подробные индикаторы отработанного времени для канюли помпы, инсулина, сенсора, резервуара, а также уровня заряда батареи.Порог уровня наполненности резервуара для оповещения [ед.]Порог критического уровня наполненности резервуара [U]
- Порог предупреждения о разрядке батареи [%%]
- Порог предупреждения о критическом уровне разрядки батареи [%%]
+ Порог предупреждения о разрядке батареи [%]
+ Порог предупреждения о критическом уровне разрядки батареи [%]IOB акт инсакт углевпрошивка
@@ -642,7 +619,7 @@
отменане все профили загружены!Данные не сохранены!
- Активировать передачу на другие приложения (напр. xDrip)
+ Включить трансляцию для других приложений (например, xDrip). Не включайте, если установлено несколько экземпляров приложений AAPS или NSClient!Активировать локальную передачуАКТИВНОСТЬУГЛЕВОДЫ ; БОЛЮС
@@ -866,8 +843,6 @@
Профиль не переключен. Пожалуйста переключите профиль или нажмите \"активировать профиль\" в LocalProfile.Отсчет болюсаОтсчет временного базала TBR
- Цель %1$d не запущена
- Цель %1$d не завершенаЭта помпа не рассчитана на подачу временного базалаНа помпе не найдены валидные записи о базалахРежим замкнутого цикла отключен в настройках
@@ -991,7 +966,6 @@ Context | Edit Context
Завершено, отлично!Не завершеноПрошло времени
- %1$d. ЦельPoctechПолучать данные гликемии от приложения PoctechПолучать значения ГК от приложения Tomato (устройство MiaoMiao)
@@ -1372,7 +1346,15 @@ Context | Edit Context
Получить временный базалУстановить временный базалНастроить болюс
- %2$.1fг %3$.2fU]]>
+ Изменить профиль на
+ Изменить профиль на %1$s
+ Последнее соединение с помпой
+ Последняя связь с помпой [ мин. назад]
+ Последняя связь с помпой %1$s %2$sмин. назад
+ Отправить SMS: %1$s
+ Отправьте SMS на все настроенные номера
+ Отправить SMS с текстом
+ %2$+.2fед]]>Применено ограничение на болюс: %2$.2fед до %3$.2fед]]>!!!!! Обнаружено медленное всасывание углеводов: %2$d%% времени. Еще раз проверьте свои расчеты. Возможно акт углеводы COB вне диапазона и может быть подано больше инсулина!!!!!]]>%1$.0f/%2$d ед
@@ -1380,44 +1362,17 @@ Context | Edit Context
Мастер болюса выполняет расчет, но подана только эта часть рекомендуемого инсулина. Полезно с алгоритмом SMB.Загрузка...Отложить
- Выполнено: %1$s
- Научитесь контролировать AndroidAPS
- Выполните различные действия в AndroidAPS
- Установите профиль 90% на 10 мин (Долгое нажатие на имя профиля на Обзор)
- Имитация душа. Отключите помпу на 1ч (Долгое нажатие на Open Loop)
- ... и снова подключитесь таким же способом
- Создайте настраиваемую временную цель длительностью 10 мин. (Долгое нажатие на текущую цель)
- В Конфигураторе включите плагин Actions, сделав его видимым и показав содержимое верхнего меню
- Показывать содержимое расширения ИПЖ
- Применить функцию масштабирования по долгому нажатию на диаграмму ГК
- Ввод
- Введите код, полученный от разработчиков, чтобы обойти остальные цели
- Код принят
- Неверный код
- Подтвердите ваши знания
- Изучите вопросы и дайте точные ответы.
- Рассмотрение ответов приостановлено на: %1$s
- Неправильный ответ!
- Следующий незавершенный
+ Диапазон времени
+ Время между %1$s и %2$s
+ Между Закрыть
- Запросить код
- (проверить ответы)
-
- %1$d день
- %1$d дня
- %1$d дней
- %1$d дня
-
-
- %1$d час
- %1$d часа
- %1$d часов
- %1$d часа
-
-
- %1$d минута
- %1$d минуты
- %1$d минут
- %1$d минут
-
+ Повышаю максимальное значение базы т. к. оно меньше, чем максимальное значение в профиле
+ Недопустимое тело сообщения
+ %1$s ISF: %2$.1f
+ %1$.0fg IC: %2$.1f
+ %1$.1fg IC: %2$.1f
+ %1$d%%
+ Мастер Болюса
+ мин
+ %1$d гр
diff --git a/app/src/main/res/values-sk-rSK/exam.xml b/app/src/main/res/values-sk-rSK/exam.xml
new file mode 100644
index 0000000000..6bc806f51d
--- /dev/null
+++ b/app/src/main/res/values-sk-rSK/exam.xml
@@ -0,0 +1,169 @@
+
+
+
+ Čo je pravda o DIA?
+ Téma: Doba trvania účinku inzulínu
+ Minimálna hodnota je 3 hodiny.
+ Minimálna hodnota je 5 hodín.
+ https://androidaps.readthedocs.io/en/latest/CROWDIN/cs/Configuration/Config-Builder.html#inzulin
+ Význam je rovnaký, ako parameter DIA používaný vo vašej pumpe.
+ Musíte určiť svoju, individuálnu hodnotu (ale nie menej ako 5 hodín).
+ Téma: Dočasný cieľ Hypo
+ Čo je hlavným dôvodom pre nastavenie dočasného cieľa Hypoglykémie?
+ Zabrániť nízkej glykémii, pokiaľ už je spustený nulový dočasný bazál.
+ Aby sa zabránilo AAPS podaniu príliš veľkého množstva inzulínu po vzostupe glykémie, spôsobenom rýchlymi sacharidmi použitými k liečbe hypoglykémie.
+ https://androidaps.readthedocs.io/en/latest/CROWDIN/cs/Usage/temptarget.html
+ Ktorý profil je možné použiť a konfigurovať offline?
+ Téma: Offline profil
+ NS profil môže byť použitý, ale nenakonfigurovaný.
+ https://androidaps.readthedocs.io/en/latest/CROWDIN/cs/Configuration/Config-Builder.html#profile
+ Téma: Odpojenie od pumpy
+ Čo je potrebné urobiť, pri odpojení pumpy?
+ Kliknite na \"Odpojiť pumpu\", aby AAPS vedelo, že nie je podávaný žiadny inzulín.
+ Kliknite na tlačítko \"Pozastaviť uzavretý okruh\", aby AAPS zastavil uzavretý okruh na dobu, kým je pumpa odpojená.
+ Nemeňte nič v AAPS, iba odpojte pumpu.
+ https://androidaps.readthedocs.io/en/latest/CROWDIN/cs/Getting-Started/FAQ.html#dalsi-nastaveni
+ Téma: Nastavenie AndroidAPS
+ Aké sú odporúčané postupy pre zálohovanie Vašich nastavení?
+ Exportovať ich lokálne z menu Údržby.
+ Uložte exportovaný súbor na iné miesto, ako napr. E-mail, Dropbox, Google Drive...
+ Exportujte ich ihneď po inštalácii AAPS.
+ Exportujte ich po vykonaní zmien v nastaveniach.
+ Exportujte ich po dokončení cieľa.
+ Exportujte ich, akonáhle dokončíte úvodné nastavenia.
+ https://androidaps.readthedocs.io/en/latest/CROWDIN/cs/Usage/ExportImportSettings.html
+ https://androidaps.readthedocs.io/en/latest/CROWDIN/cs/Getting-Started/FAQ.html#jake-vybaveni-pro-pripad-nouze-se-doporucuje-brat-s-sebou
+ Téma: Šum dát zo senzora
+ Čo je potrebné urobiť v prípade, že CGM dáta poskakujú?
+ Nič, uzavretý okruh si s tým poradí.
+ Zakážte uzavretý okruh, aby ste sa vyhli predávkovaniu inzulínom.
+ Vymeňte senzor.
+ Vypnúť telefón.
+ https://androidaps.readthedocs.io/en/latest/CROWDIN/cs/Usage/Smoothing-Blood-Glucose-Data-in-xDrip.html#vyhlazovani-zarusenych-dat-glykemii
+ Overte, že vaša aplikácia CGM vyhladzuje glykémie.
+ Téma: Šport a pohyb
+ Ako môžete pomôcť systému vysporiadať sa so športom a pohybom?
+ Použitie funkcie dočasný cieľ.
+ Prepnúť na profil pod 100 %.
+ Prepnúť na profil nad 100 %.
+ Zastaviť uzavretý okruh.
+ Nastaviť dočasný cieľ aktivity pred zahájením cvičenia.
+ Nastavenie dočasného cieľa aktivity až po zahájení cvičenia, vedie k horšiemu výsledku, ako v prípade, keby bol spustený dopredu.
+ https://androidaps.readthedocs.io/en/latest/CROWDIN/cs/Usage/temptarget.html#docasny-cil-pri-pohybove-aktivite
+ Téma: Deaktivovaný/Pozastavený uzavretý okruh
+ Dostávam inzulín, keď je uzavretý okruh deaktivovaný/pozastavený?
+ Áno, bazálny inzulín je podávaný naďalej.
+ Nie, podávanie inzulínu je zastavené.
+ Téma: Testovanie bazálu, ISF a IC
+ Kedy mám overiť hodnoty bazálov, ISF a IC?
+ Predtým, ako začnem používať uzavretý okruh.
+ Pokiaľ máte často nízke glykémie.
+ Pokiaľ máte často vysoké glykémie.
+ https://androidaps.readthedocs.io/en/latest/CROWDIN/cs/Getting-Started/FAQ.html#nastaveni-androidaps
+ Téma: Nevyhnutné predpoklady
+ Čo potrebujem?
+ Overené informácie o profile (Bazál, IC, ISF, DIA).
+ Počítač na vytvorenie APK.
+ Podporovaný telefón.
+ Auto.
+ Nightscout, kvôli splneniu cieľov.
+ Tidepool účet.
+ Google účet.
+ Github účet.
+ Skúsenosti s vývojom pre Android.
+ Pumpu MiniMed 670G.
+ https://androidaps.readthedocs.io/en/latest/CROWDIN/cs/Module/module.html
+ Inteligentné hodinky.
+ Podporovaný CGM.
+ Téma: Aktualizácia AndroidAPS
+ Čo je pravda?
+ Musíte mať nainštalovaný Git.
+ Aktualizujte hneď, akonáhle se uvoľní nová verzia a budete mať dostatok času na to, to urobiť.
+ Mali by ste používať rovnaké podpisové kľúče.
+ Nikdy neaktualizujte, pokiaľ systém funguje dobre.
+ Požiadajte kamaráta o novú verziu APK.
+ https://androidaps.readthedocs.io/en/latest/CROWDIN/cs/Installing-AndroidAPS/Update-to-new-version.html
+ Téma: Riešenie problémov
+ Kde hľadať pomoc?
+ Pripojte sa do facebookovej skupiny AndroidAPS.
+ Prečítajte si dokumentáciu AndroidAPS.
+ Navštívte miestnosť AndroidAPS na Gitter kanáli.
+ Navštívte Google podporu AndroidAPS
+ Porozprávajte sa so svojím diabetológom.
+ https://androidaps.readthedocs.io/en/latest/CROWDIN/cs/index.html#poradce-pri-potizich
+ https://www.facebook.com/groups/AndroidAPSUsers/
+ https://gitter.im/MilosKozak/AndroidAPS
+ Téma: Inzulínové moduly
+ Aký druh inzulínu môže byť použitý s modulom \'Ultra-Rýchlý-Oref\'?
+ Fiasp®
+ NovoRapid®
+ Humalog®
+ Actrapid®
+ https://androidaps.readthedocs.io/en/latest/CROWDIN/cs/Configuration/Config-Builder.html#inzulin
+ Téma: Moduly citlivosti
+ Ktorý algoritmus citlivosti má konfigurovateľnú dobu detekcie?
+ https://androidaps.readthedocs.io/en/latest/CROWDIN/cs/Configuration/Config-Builder.html#detekce-citlivosti
+ Ktorý modul citlivosti musí byť použitý pre funkciu UAM (rozpoznanie neoznámeného jedla)?
+ Téma: Chyby pri zadávaní sacharidov
+ Čo by ste mali urobiť, pokiaľ ste chybne zadali sacharidy?
+ V Ošetreniach odstráňte chybnú položku. Zadajte nové sacharidy.
+ Pridať falošný inzulín pomocou funkcie \"Plnenie/Doplňovanie\".
+ Téma: Jedlo s tukom a bielkovinami
+ Čo robiť, keď jedlo obsahuje veľké množstvo tukov a/alebo bielkovín?
+ Prepočítajte tuky a bielkoviny na sacharidy a použite funkciu „Rozložené sacharidy“.
+ Prepočítajte tuky a bielkoviny na sacharidy a pridajte ich do výpočtu bolusu.
+ Použite predĺžený bolus, aby ste pokryli tuky a bielkoviny.
+ https://androidaps.readthedocs.io/en/latest/CROWDIN/cs/Usage/Extended-Carbs.html
+ Téma: Vzdialené sledovanie
+ Ako môžete na diaľku monitorovať AAPS svojho dieťaťa?
+ Pomocou stránky Nightscout.
+ Dexcom follow aplikácia, pokiaľ používate originálnu aplikáciu Dexcom (iba hodnoty glykémie).
+ Aplikácia Dexcom Follow, pokiaľ používate aplikáciu xDrip.
+ Aplikácia xDrip v režime sledovania (Follower).
+ Aplikácia Loop na iPhone.
+ Aplikácia Spike na iPhone.
+ https://androidaps.readthedocs.io/en/latest/CROWDIN/cs/Children/Children.html
+ Téma: Citlivosť na inzulín
+ Vyššie hodnoty ISF vedú k menšej dávke inzulínu pri korigovaní vysokej glykémie.
+ Nižšie hodnoty ISF vedú k menšej dávke inzulínu pri korigovaní vysokej glykémie.
+ Zmena hodnoty ISF nemá vplyv na dávku inzulínu, keď AAPS koriguje vysokú glykémiu.
+ Musíte zadať citlivosť v Nastaveniach.
+ Zmena hodnoty citlivosti vo vašom profile stačí k tomu, aby se táto zmena použila.
+ https://androidaps.readthedocs.io/en/latest/CROWDIN/cs/Getting-Started/FAQ.html#korekcni-faktor-citlivost-na-inzulin-isf-mmol-l-u-nebo-mg-dl-u
+ https://androidaps.readthedocs.io/en/latest/CROWDIN/cs/Usage/Profiles.html
+ Téma: Inzulíno-sacharidový pomer
+ Vyššie hodnoty IC vedú k menšej dávke inzulínu ku rovnakému množstvu sacharidov.
+ Nižšie hodnoty IC vedú k menšej dávke inzulínu ku rovnakému množstvu sacharidov.
+ Pokiaľ máte 0 COB, zmena inzulíno-sacharidového pomeru povedie k inému množstvu inzulínu vydanému pre korekciu glykémie.
+ Inzulíno-sacharidový pomer sa bude líšiť podľa toho, či počítate sacharidovú jednotku ako 10 g, alebo ako 12 g sacharidov.
+ Inzulíno-sacharidový pomer vyjadruje: koľko sacharidových jednotiek pokryje 1 jednotka inzulínu.
+ https://androidaps.readthedocs.io/en/latest/CROWDIN/cs/Getting-Started/FAQ.html#inzulino-sacharidovy-pomer-cr-g-u
+ Téma: Prepínanie profilu
+ Keď v prepnutí profilu zadáte 90 %…
+ Bazály budú o 10 % vyššie.
+ Bazály budú o 10 % nižšie.
+ Hodnota inzulíno-sacharidového pomeru bude o 10 % vyššia.
+ Hodnota inzulíno-sacharidového pomeru bude o 10 % nižšia.
+ Hodnota citlivosti bude o 10 % vyššia.
+ Hodnota citlivosti bude o 10 % nižšia.
+ Celkovo dostanete o cca. 10 % inzulínu menej.
+ Cieľ bude o 10 % vyšší.
+ Cieľ bude o 10 % nižší.
+ Iba dolný cieľ bude o 10 % nižší.
+ https://androidaps.readthedocs.io/en/latest/CROWDIN/cs/Usage/Profiles.html?highlight=p%C5%99epnut%C3%AD%20profilu
+ Pokiaľ sa prebudíte o 1h skôr než obvykle, ako by ste mali oznámiť AAPS túto zmenu?
+ Urobte prepnutie profilu s posunom času 1
+ Urobte prepnutie profilu s posunom času -1
+ https://androidaps.readthedocs.io/en/latest/CROWDIN/cs/Usage/Profiles.html#posun-casu
+ Urobte prepnutie profilu s posunom času 60
+ Urobte prepnutie profilu s posunom času -60
+ https://androidaps.readthedocs.io/en/latest/CROWDIN/cs/Module/module.html#spravny-individualni-algoritmus-davkovani-pro-lecbu-vaseho-diabetu
+ Téma: Pomoc s bazálmi
+ Kam ísť pre pomoc s bazálmi a pod.
+ K Vášmu lekárovi
+ Google
+ Facebook
+ Iné Lieky
+ AAPS znižuje bazály na zvýšenie hladiny cukru v krvi. Lieky zo skupiny inhibítorov SGLT2 (gliflozíny) môžu zabrániť očakávanému zvýšeniu hodnoty glykémie a tak môžu produkovať nebezpečný nedostatok inzulínu (ketoacidózu).
+\nSpoločné značky sú: Invokana ®, Forxiga ®, Jardiance ®, Steglatro ®, Suglat ®, Apleway ®, Deberza ®, Synjardy ®, Vokanamet ®, Xigduo ®.\n\n. Týmto sľubujem, že tieto lieky neberiem pri používaní AAPS, alebo deaktivujem uzavretý okruh pred užívaním týchto liekov.
+
diff --git a/app/src/main/res/values-sk-rSK/objectives.xml b/app/src/main/res/values-sk-rSK/objectives.xml
new file mode 100644
index 0000000000..8de93ea158
--- /dev/null
+++ b/app/src/main/res/values-sk-rSK/objectives.xml
@@ -0,0 +1,74 @@
+
+
+
+ Naspäť
+ Začiatok
+ Overenie
+ %1$d. Cieľ
+ Výukový cieľ %1$d nespustený
+ Výukový cieľ %1$d nedokončený
+ Nastaviť vizualizáciu a monitoring, analyzovať bazály a pomery
+ Skontrolovať, či sú glykémie a údaje z pumpy viditeľné v Nightscoute
+ Začať s otvoreným okruhom
+ Niekoľko dní používať otvorený okruh a ručne potvrdzovať doporučené dočasné bazály. Nastavovať a používať dočasné ciele (napr. pre šport, alebo hypo)
+ Porozumieť otvorenému okruhu, vrátane jeho doporučení ohľadne dočasných bazálov
+ Na základe predchádzajúcich skúseností rozhodnúť, aký je potrebný maximálny bazál a nastaviť ho v pumpe a v aplikácii
+ Spustiť uzavretý okruh iba zo zastavovaním pri nízkej glykémii
+ Spustiť uzavretý okruh s max IOB = 0 na niekoľko dní s minimom nutných korekcií na nízku glykémiu
+ Zapnúť uzavretý okruh, zvyšovať max IOB nad 0 a znižovať cieľovou glykémii
+ Používať uzavretý okruh niekoľko dní s aspoň jednou nocou bez alarmov na nízku glykémiu
+ Upraviť bazály a pomery, ak je to potrebné, a povoliť automatickú detekciu citlivosti na inzulín
+ Jeden týždeň úspešného používania s bežným príjmom sacharidov
+ Povolenie doplnkových funkcií pre každodenné použitie, ako napr. pokročilý asistent jedál (AMA)
+ Povoliť ďalšie funkcie pre bežné používanie ako SMB
+ Prečítať si dokumentáciu a zvýšiť maximálne IOB, aby mohlo správne fungovať SMB! Pre začiatok sa dá použiť veľkosť bežného bolusu + 3x maximálny denný bazál
+ Glykémia dostupná v NS
+ Stav pumpy dostupný v NS
+ Spustené manuálne
+ Splnené: %1$s
+ Naučte sa, ako ovládať AndroidAPS
+ Vykonávajte v AndroidAPS rôzne akcie
+ Nastavte profil na 90 % na 10 min (Dlhé stlačenie názvu profilu na obrazovke Prehľad)
+ Predstierajte, že se idete sprchovať. Odpojte pumpu na 1 h (Dlhšie pridržte tlačítko Otvorený okruh)
+ ...a rovnakým spôsobom ju znovu pripojte
+ Vytvorte vlastný dočasný cieľ s trvaním 10 min (Dlhšie pridržte aktuálny cieľ)
+ V Konfigurácii povoľte modul Akcie, aktivujte jeho zobrazenie a zobrazte jeho obsah z hornej ponuky
+ Zobrazte obsah modulu uzavretý okruh
+ Prepnite režim zobrazenia dlhým stlačením grafu glykémie
+ Zadať
+ Zadajte kód, ktorý ste získali od vývojárov, aby ste obišli zostávajúce ciele
+ Kód akceptovaný
+ Neplatný kód
+ Preukážte svoje znalosti
+ Preštudujte a správne odpovedajte na otázky
+ Odpovedanie zakázané do: %1$s
+ Nesprávna odpoveď!
+ Ď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
+ Nie ste pripojený k internetu
+ Vyčítanie času zlyhalo
+ Požiadavky cieľa nie sú splnené
+
+ %1$d deň
+ %1$d dní
+ %1$d dní
+ %1$d dní
+
+
+ %1$d hodina
+ %1$d hodín
+ %1$d hodín
+ %1$d hodín
+
+
+ %1$d minúta
+ %1$d minút
+ %1$d minút
+ %1$d minút
+
+
diff --git a/app/src/main/res/values-sk-rSK/strings.xml b/app/src/main/res/values-sk-rSK/strings.xml
index 88f4cbbd8c..9181d43ee7 100644
--- a/app/src/main/res/values-sk-rSK/strings.xml
+++ b/app/src/main/res/values-sk-rSK/strings.xml
@@ -5,7 +5,6 @@
-
Bezpečnosť zadania ošetreniaMaximálny povolený bolus [JI]Maximálne povolené množstvo sacharidov [g]
@@ -34,6 +33,7 @@
Najnovší algoritmus pre pokročilých užívateľovZobrazenie aktuálneho stavu vašeho uzavretého okruhu a tlačidlá k najpoužívanejším ovládacím prvkomZobrazuje priebežné oznámenia v Androide s krátkym prehľadom, čo práve uzavretý okruh robí
+ Definujte profil, ktorý je dostupný offline.Použitie profilu, ktorý je definovaný v NightscouteDefinuj profil s iba jedným časovým pásmom.Ovládač pumpy pre Accu-Check Combo, vyžaduje nainštalovanú aplikáciu Ruffy
@@ -56,9 +56,6 @@
Zobrazovanie stavu a riadenie AndroidAPS z hodiniek s WearOS.Zobraz informácie o uzavretom okruhu na xDrip+ watchface.Ovládaj na diaľku AndroidAPS použitím SMS príkazov.
- Naspäť
- Začiatok
- OverenieJednotkyDoba pôsobenia inzulínuInzulínovo-sacharidový pomer
@@ -101,6 +98,7 @@
ProfilDáta o jedleVýsledok
+ Výsledok: %1$s %2$sNedostupné dáta o glykémiáchNepožadovaná žiadna zmenaPožiadavka
@@ -117,12 +115,12 @@
NS ProfilJednoduchý profilDočasnýBazál
- Ošetrenie
+ OšetreniaVirtuálna pumpaStarostlivosťPumpaAkú pumpu chcete používať s AndroidAPS?
- Ošetrenie
+ OšetreniaAký modul chcete používať pre spracovanie ošetrení?ProfilAký profil má používať AndroidAPS?
@@ -176,9 +174,6 @@
Nepodporovaná verzia NS klientaNepodporovaná verzia NighscoutuNS klient nie je nainštalovaný. Záznam je stratený!
- Glykémia dostupná v NS
- Stav pumpy dostupný v NS
- Spustené manuálneUzavretý okruh deaktivovaný obmedzenímBazálny IOBAplikované obmedzenie bolusu
@@ -221,7 +216,7 @@
Dočasný bazálPredĺžený bolusVerzia Nightscoutu:
- Chýba
+ Chýba %1$dgNastavenie exportovanéExportovať nastavenia doImportovať nastavenia z
@@ -316,8 +311,6 @@
STLAČENÝ STOPČakám na pumpuPodávanie %1$.2fJ inzulínu
- Nastavenie vizualizácie a monitoringu (Nightscout), analyzovať bazály a prevody
- Skontrolovať, či sú glykémie a údaje z pumpy viditeľné v NightscouteDosiahnutý limitNebol vybraný žiadny profilUzavretý okruh bol deaktivovaný
@@ -551,10 +544,12 @@
Povoliť superbolusPovolenie superbolusu v kalkulátore. Nepovoľujte, pokiaľ se nenaučíte, čo to v skutočnosti robí. MÔŽE SPÔSOBIŤ PREDÁVKOVANIE INZULÍNOM PRI NESPRÁVNOM POUŽITÍ!Zobraziť indikátory stavu na domovskej obrazovke
+ Zobraziť rozšírené indikátory stavu na domovskej obrazovke
+ Povoliť rozšírené indikátory stavu pre CAGE, IAGE, SAGE, Reservoir a Battery Level na domovskej obrazovke.Prah upozornenia na úroveň hladiny zásobníka [JI]Prah kritickej úrovne hladiny zásobníka [JI]
- Prah upozornenia na úroveň batérie [%%]
- Prah kritickej úrovne batérie [%%]
+ Prah upozornenia na úroveň batérie [%]
+ Prah kritickej úrovne batérie [%]IOBCOBFirmware
@@ -624,7 +619,7 @@
ZrušiťNenačítané všetky profily!Hodnoty nie sú uložené!
- Povoliť odosielanie do ostatných aplikácií (napr. xDrip).
+ Povoliť vysielanie do iných aplikácií (napr. xDrip). Nepovoľujte, pokiaľ máte nainštalovanú viac ako jednu AAPS, alebo NSClient inštanciu!Povoliť lokálne vysielanie.AKTIVITA & SPÄTNÁ VÄZBASACHARIDY & BOLUSY
@@ -848,8 +843,6 @@
Prepnutie profilu chýba. Vykonajte prepnutie profilu, alebo ho aktivujte na záložke lokálneho profilu.Počet bolusovPočet dočasných bazálov
- Výukový cieľ %1$d nespustený
- Výukový cieľ %1$d nedokončenýPumpa nepodporuje dočasné bazályNenačítaný žiadny platný bazál z pumpyUzavretý okruh zakázaný v nastaveniach
@@ -936,6 +929,7 @@
Nastavenie citlivostiModul citlivosť slúži k detekcii zmien v citlivosti a k počítaniu COB. Viac informácií tu:https://github.com/MilosKozak/AndroidAPS/wiki/Sensitivity-detection-and-COB
+ NSClient slúži na spojenie s Nightscoutom. Nastavenia môžete teraz preskočiť, ale nebudete schopný dokončiť ciele, pokiaľ neurobíte nastavenia.Prosím, zapamätajte si: Nové inzulínové profily vyžadujú DIA minimálne 5h. DIA 5-6 hodín zodpovedá zhruba nastaveniam 3h na starších typoch profilu.Konfigurácia zdroja glykémiíVyberte zdroj profilov. Pokiaľ ide o dieťa, využijete pravdepodobne NS profil. Pokiaľ Vás nikto cez NS nesleduje, budete pravdepodobne preferovať lokálny profil. Uvedomte si, že nastavujete iba zdroj profilov. Na to aby se naozaj profil začal používať, je potrebné vykonať aktiváciu profilu použitím funkcie \"Prepnutie profilu\"
@@ -970,7 +964,6 @@
Hotovo, gratulujeme!NedokončenéUplynutý čas
- %1$d. CieľPoctechZískavať glykémie z aplikácie PoctechPrijímať glykémie z aplikácie Tomato (zariadenie MiaoMiao)
@@ -1243,6 +1236,7 @@
Nevybrané (jednoduché zobrazenie)Alkalické (rozšírené zobrazenie)Líthiové (rozšírené zobrazenie)
+ NiZn (Rozšírené)VYHĽADAŤZASTAVIŤ
@@ -1351,29 +1345,33 @@
Načítanie dočasného bazáluNastavovanie dočasného bazáluNastavovanie bolusu
- %2$.1fg %3$.2fJI]]>
+ Zmeniť profil na
+ Zmena profilu na %1$s
+ Posledné spojenie s pumpou
+ Posledné spojenie s pumpou [pred X minútami]
+ Posledné spojenie s pumpou pred %1$s %2$s minútami
+ Poslať SMS: %1$s
+ Odoslať SMS na všetky predvolené čísla
+ Odoslať SMS s textom
+ %2$+.2fU]]>Aplikované obmedzenie bolusu: %2$.2fJI na %3$.2fJI]]>!!!!! Detekovaná pomalá absorbcia sacharidov: %2$d%% času. Prekontrolujte kalkuláciu. COB môže byť úplne iné, môže byť podaného viac inzulínu!!!!!]]>%1$.0f / %2$d JIPodaj túto časť z výsledku kalkulácie [%]Bolusová kalkulačka urobí výpočet, ale iba táto časť vypočítaného inzulínu je podaná. Pomáha pri SMB algoritme.Načítavanie...
-
- %1$d deň
- %1$d dní
- %1$d dní
- %1$d dní
-
-
- %1$d hodina
- %1$d hodín
- %1$d hodín
- %1$d hodín
-
-
- %1$d minúta
- %1$d minút
- %1$d minút
- %1$d minút
-
+ Stíšiť
+ Časový rozsah
+ Čas je medzi %1$s a %2$s
+ Medzi
+ Zavrieť
+ Zvýšenie maximálnej hodnoty bazálu, pretože nastavenie je nižšie, než je vaša maximálna hodnota bazálu v profile
+ Neplatný obsah správy
+ %1$s ISF: %2$.1f
+ %1$.0fg IC: %2$.1f
+ %1$.1fg IC: %2$.1f
+ %1$d%%
+ Bolusová kalkulačka
+ min
+ %1$dg
diff --git a/app/src/main/res/values-sv-rSE/exam.xml b/app/src/main/res/values-sv-rSE/exam.xml
new file mode 100644
index 0000000000..6c67f14c63
--- /dev/null
+++ b/app/src/main/res/values-sv-rSE/exam.xml
@@ -0,0 +1,167 @@
+
+
+
+ Vad är sant om DIA?
+ Ämne: Insulinduration
+ Minimivärdet är 3 timmar.
+ Minimivärdet är 5 timmar.
+ https://androidaps.readthedocs.io/en/latest/EN/Configuration/Config-Builder.html?#insulin
+ Det är samma som värdet Insulinduration som används i pumpen.
+ Du måste bestämma ditt individuella värde (men inte mindre än 5 timmar).
+ Ämne: \"Hypo\" temp mål
+ Vad är främsta skälet till att sätta ett \"hypo\" temp mål?
+ För att förhindra BG från att gå lågt om du redan har en nolltemp igång.
+ För att förhindra att AAPS tillför för mycket insulin efter en BG-höjning orsakad av snabbverkande kolhydrater som använts för att behandla ett lågt BG.
+ https://androidaps.readthedocs.io/en/latest/EN/Usage/temptarget.html
+ Vilken profiltyp kan användas och konfigureras offline?
+ Ämne: Offlineprofil
+ NS-profil kan användas, men inte konfigureras.
+ https://androidaps.readthedocs.io/en/latest/EN/Configuration/Config-Builder.html#profile
+ Ämne: Koppla från pumpen
+ Vad bör göras innan du kopplar bort pumpen?
+ Klicka på \"Koppla loss pump\" så att AAPS vet att inget insulin levereras.
+ Klicka på \"pausa loopen\" så att AAPS slutar att loopa medan pumpen inte är ansluten.
+ Ändra inte på någonting i AAPS, koppla bara bort pumpen.
+ https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#other-settings
+ Ämne: AndroidAPS inställningar
+ Vad är bästa praxis för att säkerhetskopiera dina inställningar?
+ Lokalt exportera dem från underhållsmenyn.
+ Spara den exporterade filen till ett annat ställe som e-post, Dropbox, Google Drive…
+ Exportera dem direkt efter installationen av AAPS.
+ Exportera dem efter att gjort ändringar i inställningarna.
+ Exportera dem efter att ha slutfört ett mål.
+ Exportera dem när du är klar med initiala inställningar.
+ https://androidaps.readthedocs.io/en/latest/EN/Usage/ExportImportSettings.html
+ https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#what-emergency-equipment-is-recommended-to-take-with-me
+ Ämne: Brusiga CGM-avläsningar
+ Vad bör göras om CGM-datat är brusigt?
+ Inget, AAPS tar hand om det.
+ Inaktivera loopen för att undvika överdosering.
+ Byt CGM-sensor.
+ Stäng av telefonen.
+ https://androidaps.readthedocs.io/en/latest/EN/Usage/Smoothing-Blood-Glucose-Data-in-xDrip.html#smoothing-blood-glucose-data
+ Kontrollera att CGM-appen jämnar ut BG-data.
+ Ämne: Träning
+ Hur kan du hjälpa systemet att hantera fysisk aktivitet?
+ Användning av funktionen för temp mål.
+ Gör ett profilbyte med mindre än 100%.
+ Gör ett profilbyte med mer än 100%.
+ Pausa loopen.
+ Ange ett \"aktivitet\" temp mål innan du börjar träna.
+ Att ställa in ett \"aktivitet\" temp mål efter träning leder till sämre resultat än om du börjar innan.
+ https://androidaps.readthedocs.io/en/latest/EN/Usage/temptarget.html#activity-temp-target
+ Ämne: Avstängd / pausad loop
+ Får jag insulin när loopen är avstängd eller pausad?
+ Ja. Basalinsulin fortsätter att levereras.
+ Nej, leverans av insulin är stoppad.
+ Ämne: Basal, ISF, och IC-testning
+ När ska jag validera basaler, ISF-och IC-värden?
+ Innan jag börjar loopa.
+ Om du upplever låga värden ofta.
+ Om du upplever höga värden ofta.
+ https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#androidaps-settings
+ Ämne: Krav innan start
+ Vad behöver jag?
+ Validerad profilinformation (Basal, IC, ISF, DIA).
+ En dator för att skapa en APK.
+ En telefon som stöds.
+ En bil.
+ Nightscout för att klara målen.
+ Ett Tidepool-konto.
+ Ett Google-konto.
+ Ett Github-konto.
+ Erfarenhet av Android-utveckling.
+ En MiniMed 670G pump.
+ https://androidaps.readthedocs.io/en/latest/EN/Module/module.html
+ En smart klocka.
+ En CGM som stöds.
+ Ämne: Uppdatering av AndroidAPS
+ Vad är sant?
+ Du måste ha Git installerat.
+ Uppdatera så snart den nya versionen har släppts och har tillräckligt med tid för att göra det.
+ Du bör använda samma signeringsnycklar.
+ Uppdatera aldrig om systemet fungerar bra.
+ Be din vän om den nya APK-filen.
+ https://androidaps.readthedocs.io/en/latest/EN/Installing-AndroidAPS/Update-to-new-version.html#update-to-a-new-version-or-branch
+ Ämne: Felsökning
+ Var ska jag leta efter hjälp?
+ Gå med i AndroidAPS Facebook-grupp.
+ Läs AndroidAPS-dokumentationen.
+ Besök AndroidAPS Gitter-rum.
+ Besök AndroidAPS Google-support
+ Tala med din endokrinolog.
+ https://androidaps.readthedocs.io/en/latest/EN/Installing-AndroidAPS/Update-to-new-version.html#troubleshooting
+ https://www.facebook.com/groups/AndroidAPSUsers/
+ https://gitter.im/MilosKozak/AndroidAPS
+ Ämne: Insticksmoduler för insulin
+ Vilket insulin kan användas med insulinprofilen Ultra-Rapid-Oref?
+ Fiasp®
+ NovoRapid ®
+ Humalog ®
+ Actrapid ®
+ https://androidaps.readthedocs.io/en/latest/EN/Configuration/Config-Builder.html#insulin
+ Ämne: Insticksmoduler för känslighetsavkänning
+ Vilken känslighetsalgoritm har ett konfigurerbart tidsintervall?
+ https://androidaps.readthedocs.io/en/latest/EN/Configuration/Sensitivity-detection-and-COB.html
+ Vilken känslighetsplugin måste användas för att kunna använda UAM-funktionen?
+ Ämne: Felaktig inmatning av kolhydrater
+ Vad ska du göra om du har gjort en felaktig inmatning?
+ I Behandlingar, ta bort den felaktiga posten. Ange nya kolhydrater.
+ Lägg till en falsk bolus genom att använda påfyllningsfunktionen
+ Ämne: Mat med fett och protein
+ Vad ska du göra om din mat innehåller en stor mängd fett och/eller proteiner?
+ Räkna fett och proteiner till kolhydrater och använda eCarbs-funktionen.
+ Räkna om fett och proteiner till kolhydrater och lägga till det i bolusberäkningen.
+ Använd förlängd bolus för att täcka fett och protein.
+ https://androidaps.readthedocs.io/en/latest/EN/Usage/Extended-Carbs.html
+ Ämne: Fjärrövervakning
+ Hur kan du övervaka AAPS för ditt barn på distans?
+ Med hjälp av en Nightscout webbplats.
+ Appen Dexcom Follow om du använder Dexcoms app (endast BG).
+ Dexcom Follow om du använder xDrip på barnets mobil.
+ xDrip i följarläge.
+ Appen Loop för iPhone.
+ Appen Spike för iPhone.
+ https://androidaps.readthedocs.io/en/latest/EN/Children/Children.html
+ Ämne: Insulinkänslighetsfaktor (ISF)
+ Högre ISF-värden leder till mindre insulintillförsel när AAPS korrigerar för högt BG.
+ Lägre ISF-värden leder till mindre insulintillförsel när AAPS korrigerar för högt BG.
+ Ändringar av ISF-värden påverkar inte det insulin som levereras när AAPS korrigerar för högt BG.
+ Du måste ange ISF i Inställningar.
+ Om du ändrar ISF-värdet i din profil är det tillräckligt för att tillämpa ändringen.
+ https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#insulin-sensitivity-factor-isf-mmol-l-u-or-mg-dl-u
+ https://androidaps.readthedocs.io/en/latest/EN/Usage/Profiles.html
+ Ämne: IC-kvoten
+ Högre IC-kvot leder till mindre insulin som levereras för en given mängd kolhydrater.
+ Lägre IC-kvot leder till mindre insulin som levereras för en given mängd kolhydrater.
+ Om du har 0 COB, kommer en förändring av IC-kvoten leda till en annan mängd insulin för att korrigera din BG-nivå.
+ IC kommer att vara annorlunda om du räknar en skiva bröd som 10g eller 12g.
+ IC-betydelsen är: Hur många skivor bröd omfattas av 1U insulin.
+ https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#carbohydrate-to-insulin-ratio-cr-g-u
+ Ämne: Profilbyte
+ När du anger 90% i profilbytet…
+ kommer basalerna bli 10% högre.
+ kommer basalerna bli 10% lägre.
+ kommer IC-värdet bli 10% högre.
+ kommer IC-värdet bli 10% lägre.
+ kommer ISF-värdet bli 10% högre.
+ kommer ISF-värdet bli 10% lägre.
+ Du kommer att få cirka 10% mindre insulin totalt.
+ kommer målet justeras upp med 10%.
+ kommer målet justeras ner med 10%.
+ kommer endast den nedre målgränsen bli 10% lägre.
+ https://androidaps.readthedocs.io/en/latest/EN/Usage/Profiles.html?highlight=profile%20switch#profile-switch
+ Om du vaknar upp 1 timme tidigare än vanligt, hur ska du meddela AAPS om ändringen i ditt schema?
+ Gör ett profilbyte med en tidsförskjutning av 1
+ Gör ett profilbyte med en tidsförskjutning av -1
+ https://androidaps.readthedocs.io/en/latest/EN/Usage/Profiles.html?highlight=profile%20switch#timeshift
+ Gör ett profilbyte med en tidsförskjutning av 60
+ Gör ett profilbyte med en tidsförskjutning av -60
+ https://androidaps.readthedocs.io/en/latest/EN/Module/module.html#good-individual-dosage-algorithm-for-your-diabetes-therapy
+ Ämne: Hjälp med basaldoser
+ Var man hittar hjälp för basaldoser m. m.
+ Ditt diabetesteam
+ Google
+ Facebook
+ Annan medicinering
+
diff --git a/app/src/main/res/values-sv-rSE/objectives.xml b/app/src/main/res/values-sv-rSE/objectives.xml
new file mode 100644
index 0000000000..a3b1d3adfd
--- /dev/null
+++ b/app/src/main/res/values-sv-rSE/objectives.xml
@@ -0,0 +1,68 @@
+
+
+
+ Tillbaka
+ Starta
+ Kontrollera
+ %1$d. Målet
+ Mål %1$d inte uppnått
+ Mål %1$d inte uppnått
+ Ställer in utseende och övervakning för att sedan kunna analysera basaler och kvoter
+ Kontrollera att BG syns i Nightscout och att insulindata från pumpen laddas upp
+ Starta med open loop
+ Kör i Open Loop-läge i några dagar och sätt ett antal temp-basaler manuellt. Konfigurera och använd temporära och förinställda temporära mål (t.ex. Träning eller Hypo)
+ Förstå din open loop och hur den föreslår temp basaler
+ Utifrån vad du nu lärt dig, besluta vilken max basal du vill ha. Ställ in det både i inställningarna i appen och i din pump
+ Börja använda closed loop med aktiverad funktion att stänga av vid lågt BG
+ Aktivera closed loop med max IOB=0 i några dagar till dess systemet inte stänger av pga lågt BG för många gånger
+ Finjustering av closed loop, med gradvis ökande max IOB och minskande målvärde för BG
+ Kör några dagar och åtminstone en natt utan larm för lågt BG innan du sänker målvärdet för BG
+ Justera basaler och kvoter om det behövs. Aktivera sedan autosens
+ 1 veckas lyckad looping dagtid, där alla måltider lagts in
+ Aktiverar extra funktioner som kan användas dagtid, såsom avancerad måltidsassistans, AMA
+ Aktiverar ytterligare funktioner för användning dagtid, t ex SMB
+ Du måste läsa på wikin och öka max IOB för att få SMB att fungera bra. En bra start är att sätta max IOB till din genomsnittliga måltidsbolus plus 3 gånger den högsta basalen du har under ett dygn
+ BG är tillängligt i Nightscout
+ Pumpstatus tillgängligt i Nightscout
+ Manuella justeringar
+ Utfört: %1$s
+ Lär dig hur du kontrollerar AndroidAPS
+ Utföra olika åtgärder i AndroidAPS
+ Ställ in profilen 90% för 10 minuter (Tryck och håll in profilens namn i Översikten)
+ Simulera dusch. Koppla från pump i 1 timme (Tryck och håll in på Open Loop i Översikten)
+ ... och återanslut på samma sätt
+ Skapa ett anpassat tillfälligt mål med 10 min varaktighet (Tryck och håll in på nuvarande BG-mål i Översikten)
+ I Konfigurationsverktyget, aktivera insticksprogrammet Åtgärder, gör det synligt och visa dess innehåll från övre menyn
+ Visa innehållet i insticksprogrammet \"Loop\"
+ Testa skala om BG-grafen genom att trycka och hålla in fingret på den
+ Enter
+ Ange kod som erhållits från utvecklare för att kringgå resten av målen
+ Koden godkänd
+ Koden är felaktig
+ Bevisa dina kunskaper
+ Studera och besvara frågor på rätt sätt
+ Svarsfunktionen inaktiverad till: %1$s
+ Fel svar
+ 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
+ Inte ansluten till internet
+ Fel vid hämtning av tid
+ Målets krav är inte uppfyllda
+
+ %1$d dag
+ %1$d dagar
+
+
+ %1$d tim
+ %1$d tim
+
+
+ %1$d min
+ %1$d min
+
+
diff --git a/app/src/main/res/values-sv-rSE/strings.xml b/app/src/main/res/values-sv-rSE/strings.xml
index 5683cc37d3..66d5e0b734 100644
--- a/app/src/main/res/values-sv-rSE/strings.xml
+++ b/app/src/main/res/values-sv-rSE/strings.xml
@@ -5,7 +5,6 @@
-
Säkerhetsbegränsningar för behandlingarMax tillåten bolus [E]Max tillåtna KH [g]
@@ -34,6 +33,7 @@
Den senaste algoritmen för avancerade användareVisar loopens nuvarande tillstånd och knappar för de vanligaste funktionernaVisar en konstant avisering med en kort sammanfattning av vad din loop gör
+ Definiera en profil som är tillgänglig offline.Använder profiler från NightscoutDefiniera en insulinprofil som bara har ett enda tidsblock.Pumpintegration för Accu-Chek Combo. Kräver att Ruffy är installerat
@@ -57,9 +57,6 @@ Eversense-appen.
Följ och kontrollera din AndroidAPS med din WearOS-klockaVisa AAPS-information på din xDrip-urtavlaFjärrstyr AndroidAPS med SMS-kommandon.
- Backa
- Starta
- GodkännEnheterDIAIC
@@ -71,13 +68,13 @@ Eversense-appen.
KH:IOB:IOB:
- Total IOB (bolus):
- Total aktivitet (5m):
+ IOB fr bolus:
+ Insulinaktivitet (5m):Dur:Tot:Ins:IOB:
- Total IOB (basal):
+ IOB fr basal:InsulinKHBG
@@ -86,7 +83,7 @@ Eversense-appen.
KorrEBolus IOB
- Beräkna nu
+ Utför nuVirtuell pumpProfilens basaldosTemp basal
@@ -102,6 +99,7 @@ Eversense-appen.
ProfilMåltidsdataResultat
+ Resultat: %1$s %2$sIngen BG-data tillängligIngen ändring behövsBeräknat behov
@@ -177,9 +175,6 @@ Eversense-appen.
Versionen av NSClient stöds inteVersionen av Nightscout stöds inteNSClient är inte installerad. Data förlorad!
- BG är tillängligt i Nightscout
- Pumpstatus tillgängligt i Nightscout
- Manuella justeringarLOOP STOPPAD PGA BEGRÄNSNINGARIOB från basalBolusspärr aktiverad
@@ -222,7 +217,7 @@ Eversense-appen.
Temp basalFörlängd bolusNightscoutversion:
- Saknas:
+ Saknar %1$dgInställningar exporteradeExportera inställningar tillImportera inställningar från
@@ -317,8 +312,6 @@ Eversense-appen.
Stopp nedtrycktVäntar på pumpKommer att leverera %1$.2f enheter
- Ställer in utseende och övervakning för att sedan kunna analysera basaler och kvoter
- Kontrollera att BG syns i Nightscout och att insulindata från pumpen laddas uppDu har nått din tillåtna gränsIngen profil valdLoop stängdes av
@@ -399,7 +392,7 @@ Eversense-appen.
Minimed 640GKonstant avisering i telefonenAktuellt BG saknas!
- %1$d min sedan
+ %1$d min sedan%1$d min sedanLokal profilOpenAPS AMA
@@ -552,10 +545,12 @@ Eversense-appen.
Aktivera superbolus i kalkylatornAktiverar superbolusfunktionen i kalkylatorn. Aktivera inte innan du förstått hur den fungerar. DEN KAN ORSAKA ÖVERDOSERING AV INSULIN OM INSIKT SAKNAS OM FUNKTIONEN!Visa statusindikationer på hemskärmen
+ Visa statusindikatorer på hemskärmen
+ Aktivera statusindikatorerna för cage, iage, sage, reservoar och batterinivå på hemskärmen.Varningsnivå för reservoar [U]Akut varningsnivå för reservoar [U]
- Varningsnivå för batteri [%%]
- Akut varningsnivå för batteri [%%]
+ Varningsnivå för batteri [%]
+ Akut varningsnivå för batteri [%]IOBCOBFirmwareversion
@@ -596,7 +591,7 @@ Eversense-appen.
Akut varning efter [min]Intervall för autosens [tim]Antal timmar för beräkning av känslighet (absorptionstid för KH är exkluderad)
- P
+ PumpOpenAPSUppladdareKänslighetsavkänning
@@ -612,7 +607,7 @@ Eversense-appen.
SAGEIAGECAGE
- PBAGE
+ BAGEAPSUpld battBAS
@@ -625,7 +620,7 @@ Eversense-appen.
AvbrytAlla profiler laddades inte!Alla värden sparades inte!
- Slå på sändning av data till alla appar i telefonen (ex xDrip).
+ Aktivera sändning till andra appar (som xDrip). Aktivera inte detta om du har fler än en förekomst av AAPS eller NSClient installerad.Aktivera lokala broadcastsTRÄNING & BG-MÅLKOLHYDRATER & BOLUS
@@ -822,7 +817,7 @@ Eversense-appen.
Bolusen sparas bara i loggbokenHämta saknad BG-data från NightscoutSMB satt i pump
- Aktivitet
+ Insulinaktivitet (5m)Känslighet (Sens)Avvikelser (Dev)Aktiva KH (COB)
@@ -849,8 +844,6 @@ Eversense-appen.
Profilbyte saknas. Vänligen gör ett profilbyte eller tryck Aktivera profil under Lokal Profil.Antal bolusAntal temp basaler
- Mål %1$d inte startat
- Mål %1$d inte uppnåttPumpen kan inte hantera temp basalerIngen giltig data om temp basaler fanns i pumpenClosed Loop inaktiverat i Inställningar
@@ -883,7 +876,7 @@ Eversense-appen.
ÅterställVäntar på tidssynkronisering (%1$d sek)Frånkopplad (%1$d min)
- Max IOB som OpenAPS inte kan överstiga [E]
+ Max IOB som OpenAPS inte kan överstiga [U]Det här värdet kallas Max IOB av OpenAPS. Om denna mängd insulin on board (IOB) nås, kan inte OpenAPS lägga till mer.Pump stoppadPump startad
@@ -937,6 +930,7 @@ Eversense-appen.
Konfigurera insticksprogram för känslighetInsticksprogrammet för känslighet används för att detektera insulinkänslighet och för att beräkning av aktiva kolhydrater, COB. För mer information, besök:https://github.com/MilosKozak/AndroidAPS/wiki/Sensitivity-detection-and-COB
+ NSClient hanterar anslutningen till Nightscout. Du kan hoppa över denna del nu, men du kommer inte att kunna passera vissa mål tills du har satt upp det.Kom ihåg: De nya insulinprofilerna kräver en duration (DIA) på minst 5 timmar. En DIA på 5-6 timmar enligt de nya profilerna är ungefär lika med DIA 3 timmar enligt de gamla insulinprofilerna.Konfigurera BG-källaVänligen välj källa för profil. Om patienten är ett barn bör du använda NS profil. Om ingen följer dig på Nightscout kommer du förmodligen föredra lokal profil. Kom ihåg att du endast väljer profilkälla här. För att använda den måste du aktivera den genom att köra ”Byt Profil”
@@ -971,7 +965,6 @@ Eversense-appen.
Klart. Bra jobbat!Inte slutfört ännuFörfluten tid
- %1$d. MålPoctechTa emot BG-data från PoctechappenTa emot BG-data från tomato app (MiaoMiao-enhet)
@@ -1182,7 +1175,7 @@ Eversense-appen.
väldigt gammal versionNy version tillgänglig sedan %1$d dagar! Systemet kommer att byta läge till \"stopp innan lågt\" efter 60 dagar och sluta loopa helt efter 90 dagar2 tim
- %1$.2f enheter
+ %1$.2f UDexcoms app (modifierad)DXCMTa emot BG-data från den modifierade Dexcom-appen.
@@ -1352,21 +1345,33 @@ Eversense-appen.
Hämta temp basalSätt temp basalLeverera bolus
- %2$.1fg %3$.2fU]]>
+ Byt profil till
+ Byt profil till %1$s
+ Senaste anslutning till pump
+ Senaste anslutning till pump [min sedan]
+ Senaste anslutning till pump %1$s %2$s min sedan
+ Skicka SMS: %1$s
+ Skicka SMS till alla nummer i inställningar
+ Skicka SMS med text
+ %2$+.2fU]]>Bolusbegränsning: %2$.2fU till %3$.2fU]]>
+ Varning! Långsam KH-absorption upptäckt %2$d%% av tiden. Dubbelkolla din beräkning. COB kan vara väldigt missvisande och du riskerar få för mycket insulin!]]>%1$.0f / %2$d U
+ Direkt bolus [%]
+ Bolusguiden utför beräkningar, men endast denna del av beräknat insulin levereras. Användbar med SMB-algoritm.Laddar...Snooze
-
- %1$d dag
- %1$d dagar
-
-
- %1$d timme
- %1$d timmar
-
-
- %1$d min
- %1$d min
-
+ Tidsintervall
+ Klockan är mellan %1$s och %2$s
+ Mellan
+ Stäng
+ Ökar maximalt basaldos eftersom inställningen är lägre än din maximala basal i profilen
+ Ogiltigt innehåll i meddelande
+ %1$s ISF: %2$.1f
+ %1$.0fg IC: %2$.1f
+ %1$.1fg IC: %2$.1f
+ %1$d%%
+ Kalkylator
+ min
+ %1$dg
diff --git a/app/src/main/res/values-tr-rTR/exam.xml b/app/src/main/res/values-tr-rTR/exam.xml
new file mode 100644
index 0000000000..70489fbc5e
--- /dev/null
+++ b/app/src/main/res/values-tr-rTR/exam.xml
@@ -0,0 +1,3 @@
+
+
+
diff --git a/app/src/main/res/values-tr-rTR/objectives.xml b/app/src/main/res/values-tr-rTR/objectives.xml
new file mode 100644
index 0000000000..70489fbc5e
--- /dev/null
+++ b/app/src/main/res/values-tr-rTR/objectives.xml
@@ -0,0 +1,3 @@
+
+
+
diff --git a/app/src/main/res/values-tr-rTR/strings.xml b/app/src/main/res/values-tr-rTR/strings.xml
index 8dbfbe7279..e42bee6ba7 100644
--- a/app/src/main/res/values-tr-rTR/strings.xml
+++ b/app/src/main/res/values-tr-rTR/strings.xml
@@ -5,7 +5,6 @@
-
Tedavilerin güvenlik ayarlarıMax izin verilen bolus [U]Max izin verilen karbonhidrat [g]
@@ -53,8 +52,6 @@
WearOS saatinizi kullanarak AndroidAPS\'yi izleyin ve kontrol edin.Döngü\'yle ilgili bilgileri xDrip+ watchface\'inizde gösterin.SMS komutlarını kullanarak uzaktan AndroidAPS kontrolü.
- Başlat
- DoğrulayınÜniteDIAIC Karbonhidrat İnsülin Oranı
@@ -170,9 +167,6 @@
NSClient\'in desteklenmeyen sürümüNightscout\'un desteklenmeyen sürümüNSClient yüklü değil. Kayıt kaybedildi!
- KŞ NS\'de mevcut
- Pompa durumu NS mevcut
- Manuel eylemlerDÖNGÜ KISITLAMALARDAN İPTAL EDİLDİBazal IOBBolus kısıtlaması uygulandı
@@ -215,7 +209,6 @@
Geçici BazalYayım BolusNightscout sürümü:
- EksikTercihler dışa aktarıldıAyarları aktarAyarları içe aktar
@@ -304,8 +297,6 @@
DurDURDUR\'A BASTIĞINIZPompa bekleniyor
- Nightscout üzerinden izlemeyi ve görselleştirmeyi yapılandırın ve bazal oranlarını ve faktörleri düzenleyin
- Nightscout\'ta KŞ\'nin bulunduğunu ve insülin verilerinin yüklenmekte olduğunu doğrulayınİzin verilen sınıra ulaştınızProfil seçilmediDöngü devre dışı bırakıldı
@@ -588,7 +579,6 @@ Aktif Karbonhidratın ne kadar hızlı sindirildiğine ve KŞ\'nin beklenenden d
VazgeçTüm profiller yüklenmedi!Değerler saklanmadı!
- Yayınları (xDrip gibi) diğer uygulamalar için etkinleştirin.Yerel yayınları etkinleştirin.AKTIVITE & GERİBİLDİRİMKARBONHİDRATLAR & BOLUS
@@ -799,8 +789,6 @@ Aktif Karbonhidratın ne kadar hızlı sindirildiğine ve KŞ\'nin beklenenden d
Profildeğiştir kayıp. Lütfen bir profil değiştir seçin veya YerelPorfil\'de \"Profili Etkinleştir\" düğmesine basın.Bolus sayısıTBR (GBO) Geçici Bazal Oranı sayısı
- Hedef %1$d başlanamadı
- Hedef %1$d tamamlanamadıPompa geçici bazal yetenekli değilPompadan okunan geçerli bir bazal oranı yokKapalı Döngü tercihlerde devre dışı bırakıldı
@@ -921,7 +909,6 @@ Aktif Karbonhidratın ne kadar hızlı sindirildiğine ve KŞ\'nin beklenenden d
Tamamlandı, aferin!Henüz tamamlanmadıGeçen süre
- %1$d. GörevPoctechPoctech app\'ten KŞ değerlerini alırKŞ değerlerini Tomato app (MiaoMiao Cihazından) al
@@ -982,16 +969,4 @@ Aktif Karbonhidratın ne kadar hızlı sindirildiğine ve KŞ\'nin beklenenden d
-
- %1$d gün
- %1$d gün
-
-
- %1$d saat
- %1$d saat
-
-
- %1$d dakika
- %1$d dakika
-
diff --git a/app/src/main/res/values-zh-rCN/exam.xml b/app/src/main/res/values-zh-rCN/exam.xml
new file mode 100644
index 0000000000..70489fbc5e
--- /dev/null
+++ b/app/src/main/res/values-zh-rCN/exam.xml
@@ -0,0 +1,3 @@
+
+
+
diff --git a/app/src/main/res/values-zh-rCN/objectives.xml b/app/src/main/res/values-zh-rCN/objectives.xml
new file mode 100644
index 0000000000..70489fbc5e
--- /dev/null
+++ b/app/src/main/res/values-zh-rCN/objectives.xml
@@ -0,0 +1,3 @@
+
+
+
diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml
index 88c88a016d..f256f77aa4 100644
--- a/app/src/main/res/values-zh-rCN/strings.xml
+++ b/app/src/main/res/values-zh-rCN/strings.xml
@@ -5,7 +5,6 @@
-
治疗安全允许的最大大剂量值[U]最大允许碳水化合物 [g]
@@ -55,9 +54,6 @@
使用您的 WearOS 手表监视和控制 AndroidAPS。在 xDrip + 表盘上显示有关闭环的信息。远程控制 AndroidAPS 使用 SMS 短信命令。
- 返回
- 开始
- 校验单位DIA胰岛素作用持续时间IC碳水系数
@@ -175,9 +171,6 @@
不支持的 NSClient 版本不支持的 Nightscout 版本未安装 NSClient。记录丢失!
- 血糖在NS中可用
- 泵状态在 NS 中可用
- 手动制定按约束条件禁用循环基础 IOB大剂量约束条件应用了
@@ -220,7 +213,6 @@
临时基础扩展大剂量Nightscout 版本:
- 缺少参数选项导出了导出配置导入配置
@@ -315,8 +307,6 @@
停止键按下了正在等待泵将要输注 %1$.2fU
- 设置可视化和监视, 并分析基础率和比率
- 验证 Nightscout 中的血糖是否可用, 并且正在上传泵的胰岛素数据你达到了允许的极限没有选定配置文件闭环已经被禁用
@@ -550,8 +540,6 @@
在主屏幕上显示状态指示灯储药器药量低于阈值[U] 警告储药器药量低于阈值[U] 严重警告
- 电池电量低于阈值[%%] 警告
- 电池电量低于阈值[%%] 严重警告IOB活性胰岛素COB活性碳水固件
@@ -621,7 +609,6 @@
取消配置文件加载不完整值没有被存储
- 启用广播到其他应用程序(如xDrip).启用本地广播。活动 & 反馈碳水化合物 & 大剂量
@@ -843,8 +830,6 @@
配置文件切换缺失。请做一次配置文件切换或者在本地配置文件里按“激活配置文件”大剂量 计数临时基础率 计数
- 目标 %1$d 未开始
- 目标 %1$d 未完成这个泵无法设置临时基础率从泵中无法读取有效的基础率在参数选项中禁用了闭环模式
@@ -965,7 +950,6 @@
完成了,做的好尚未完成已用时间
- %1$d.目标Poctech从 Poctech app 接收血糖值。从番茄app(喵喵设备) 接收血糖值
@@ -1136,13 +1120,4 @@
-
- %1$d 天
-
-
- %1$d 小时
-
-
- %1$d 分钟
-
diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml
index d714a07c8c..6b98e1c0dd 100644
--- a/app/src/main/res/values/arrays.xml
+++ b/app/src/main/res/values/arrays.xml
@@ -24,6 +24,7 @@
@string/ko_lang@string/lt_lang@string/pt_lang
+ @string/pt_BR_lang@string/ro_lang@string/ru_lang@string/sk_lang
@@ -46,6 +47,7 @@
koltpt
+ pt_BRrorusk
@@ -79,52 +81,25 @@
2
-
+ @string/yes@string/no
-
- @string/yes
- @string/no
-
-
-
- @string/yes
- @string/no
-
-
-
+ @string/yes@string/no@string/positiveonly@string/negativeonly
-
- @string/no
- @string/yes
- @string/positiveonly
- @string/negativeonly
-
-
-
- @string/no
- @string/yes
-
-
-
- @string/no
- @string/yes
-
-
@string/use_passive_location@string/use_network_location@string/use_gps_location
-
+ PASSIVENETWORKGPS
@@ -176,7 +151,7 @@
@string/medtronic_pump_frequency_worldwide
-
+ @string/key_medtronic_pump_frequency_us_ca@string/key_medtronic_pump_frequency_worldwide
@@ -192,6 +167,11 @@
@string/medtronic_pump_encoding_4b6b_rileylink
+
+ @string/common_on
+ @string/common_off
+
+
@string/key_medtronic_pump_encoding_4b6b_local@string/key_medtronic_pump_encoding_4b6b_rileylink
@@ -201,12 +181,17 @@
@string/medtronic_pump_battery_no@string/medtronic_pump_battery_alkaline@string/medtronic_pump_battery_lithium
+ @string/medtronic_pump_battery_nizn@string/key_medtronic_pump_battery_no@string/key_medtronic_pump_battery_alkaline@string/key_medtronic_pump_battery_lithium
+ @string/key_medtronic_pump_battery_nizn
+
+ key_medtronic_bolus_debug
+
diff --git a/app/src/main/res/values/exam.xml b/app/src/main/res/values/exam.xml
index 546262a71f..e9063fd2b1 100644
--- a/app/src/main/res/values/exam.xml
+++ b/app/src/main/res/values/exam.xml
@@ -2,65 +2,66 @@
What is true about DIA?Topic: Duration of Insulin Action
- The predetermined minimum is 3 hours.
- The predetermined minimum is 5 hours.
+ The minimum value is 3 hours.
+ The minimum value is 5 hours.https://androidaps.readthedocs.io/en/latest/EN/Configuration/Config-Builder.html?#insulin
- It is equal to the DIA parameter used in your pump.
+ The meaning is equal to the DIA parameter used in your pump.You have to determine your individual value (but not less than 5 hours).Topic: Hypo Temp-Target
- Why is it useful to set a hypo TT?
- Prevent BG from going low.
- To help recovering from a low BG.
- To prevent SMB enactment after a hypo rise from fast carbs.
+ What is primary reason to set a hypo TT?
+ To prevent BG from going low if there is already zero temp running.
+ To prevent AAPS from dosing too much insulin after a rise caused by fast-acting carbs used to treat a low.https://androidaps.readthedocs.io/en/latest/EN/Usage/temptarget.htmlWhich profile can be used and configured offline?Topic: Offline ProfileNS Profile can be used, but not configured.https://androidaps.readthedocs.io/en/latest/EN/Configuration/Config-Builder.html#profileTopic: Disconnecting from the Pump
- What to do when taking the pump off?
- Let the loop know that there is no insulin being delivered to your body by clicking disconnect pump.
- Don\'t change anything in loop, just take the pump off.
+ What should be done when disconnecting the pump?
+ Click ‘Disconnect pump’ so that AAPS knows that no insulin is being delivered.
+ Click ‘Suspend loop’ so that AAPS stops looping while the pump is disconnected.
+ Don’t change anything in AAPS, just disconnect the pump.https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#other-settingsTopic: AndroidAPS SettingsWhat are best practices to backup your settings?Locally export them from Maintenance menu.Store exported file to another place like email, Dropbox, Google drive…Export them right after installation of AAPS.
- Export them after every change of a setting.
+ Export them after making setting changes.
+ Export them after completing an objective.Export them when you finish initial settings.https://androidaps.readthedocs.io/en/latest/EN/Usage/ExportImportSettings.htmlhttps://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#what-emergency-equipment-is-recommended-to-take-with-meTopic: Noisy CGM Readings
- What to do when you see CGM signals are too noisy?
- Nothing, the loop will deal with it.
- Pause closed-loop mode to avoid overdosing.
+ What should be done if CGM data is noisy?
+ Nothing, AAPS will deal with it.
+ Disable the loop to avoid overdosing.Replace the CGM sensor.Turn off the phone.https://androidaps.readthedocs.io/en/latest/EN/Usage/Smoothing-Blood-Glucose-Data-in-xDrip.html#smoothing-blood-glucose-data
- Check if your CGM app smoothes data.
+ Verify that your CGM app smoothes BG data.Topic: ExerciseHow can you help the system deal with exercise?
- Set an activity temp-target.
+ Using of temp-target feature.Do a profile switch below 100%.Do a profile switch above 100%.Stop the loop.
- Set activity temp-target before the start of exercise.
- Set activity temp-target after the start of exercise.
+ Set an activity temp-target before starting exercise.
+ Setting an activity temp-target after starting exercise leads to worse results than if started before.https://androidaps.readthedocs.io/en/latest/EN/Usage/temptarget.html#activity-temp-target
- Topic: Suspended Loop
- Do I get insulin when loop is suspended?
- Yes, the common basal rate.
+ Topic: Disabled/Suspended loop
+ Do I receive insulin when the loop is disabled/suspended?
+ Yes, basal insulin continues to be delivered.No, delivery of insulin is stopped.Topic: Basal, ISF, and IC TestingWhen should I validate basals, ISF, and IC values?Before I start looping.
- When having regular hypos BG\'s.
- When having regular hypers BG\'s.
+ When experiencing low BG frequently.
+ When experiencing high BG frequently.https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#androidaps-settingsTopic: PrerequisitesWhat do I need?
- Determined correct profile (Basals, IC, ISF, DIA).
+ Validated profile information (Basal, IC, ISF, DIA).A computer to create an APK.A supported phone.A Car.
@@ -68,43 +69,43 @@
A Tidepool account.A Google account.A Github account.
- Need to be an Android developer.
+ Android development experience.A MiniMed 670G pump.https://androidaps.readthedocs.io/en/latest/EN/Module/module.htmlA Smartwatch.A Supported CGM.
- Topic: Updating of AndroidAPS
+ Topic: Updating AndroidAPSWhat is true?You need to have Git installed.
- Update as soon as new version is released.
- You can use the same signing keys.
+ Update as soon as new version is released and having enough time to do it.
+ You should use the same signing keys.Never update if the system is working well.Ask your friend for the new APK.https://androidaps.readthedocs.io/en/latest/EN/Installing-AndroidAPS/Update-to-new-version.html#update-to-a-new-version-or-branchTopic: TroubleshootingWhere to look for help?Join the AndroidAPS Facebook group.
- Visit the AndroidAPS Wiki.
+ Read the AndroidAPS documentation.Visit AndroidAPS Gitter Room.Visit AndroidAPS Google supportSpeak to your endocrinologist.https://androidaps.readthedocs.io/en/latest/EN/Installing-AndroidAPS/Update-to-new-version.html#troubleshootinghttps://www.facebook.com/groups/AndroidAPSUsers/https://gitter.im/MilosKozak/AndroidAPS
- Topic: Insulin
- Which brand of insulin can be used with Ultra-Rapid-Oref plugin?
+ Topic: Insulin Plugins
+ Which brand of insulin can be used with the ‘Ultra-Rapid-Oref’ plugin?Fiasp®NovoRapid®Humalog®Actrapid®https://androidaps.readthedocs.io/en/latest/EN/Configuration/Config-Builder.html#insulin
- Topic: Sensitivity Plugin
- Which sensitivity plugin has user defined time range for detection?
+ Topic: Sensitivity Plugins
+ Which sensitivity algorithm has a configurable time range?https://androidaps.readthedocs.io/en/latest/EN/Configuration/Sensitivity-detection-and-COB.htmlWhich sensitivity plugin must be used for the UAM feature?
- Topic: Wrong Carb Entries
- You see you have entered wrong carbs. What should you do?
- Go to Treatments, delete wrong carbs and enter new carbs.
+ Topic: Carb Entry Errors
+ What should you do if you’ve made an incorrect carb entry?
+ In Treatments, delete the incorrect carb entry. Enter new carbs.Add fake insulin by using Refill functionTopic: Food with Fat and ProteinWhat to do if your food contains a large amount of fat and\/or proteins?
@@ -112,26 +113,27 @@
Recalculate fat and proteins to carbs and add it to bolus calculation.Use extended bolus to cover fat and proteins.https://androidaps.readthedocs.io/en/latest/EN/Usage/Extended-Carbs.html
- Topic: Monitoring Children
+ Topic: Remote MonitoringHow can you monitor AAPS of your child remotely?Using a Nightscout site.
- Dexcom Follow app if you are using the original Dexcom app.
+ Dexcom Follow app if you are using the original Dexcom app (BG only).Dexcom Follow if you are using the xDrip app.xDrip running in follower mode.Loop app on iPhone.Spike app on iPhone.
+ https://androidaps.readthedocs.io/en/latest/EN/Children/Children.htmlTopic: Insulin Sensitivity Factor
- Increasing ISF number will lead to less insulin delivery if you are trying to lower your BG with the bolus wizard.
- Decreasing ISF number will lead to less insulin delivery if you are trying to lower your BG with the bolus wizard.
- Changing ISF has no effect on amount of insulin given by AAPS when trying to correct hyperglycemia.
+ Higher ISF values lead to less insulin delivery when AAPS corrects for high BG.
+ Lower ISF values lead to less insulin delivery when AAPS corrects for high BG.
+ Changing ISF values has no effect on the amount of insulin delivered when AAPS corrects for high BG.You have to enter ISF in Preferences.Changing the ISF value in your profile is enough to apply the change.https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#insulin-sensitivity-factor-isf-mmol-l-u-or-mg-dl-uhttps://androidaps.readthedocs.io/en/latest/EN/Usage/Profiles.html
- Topic: The IC Value
- Increasing the IC value will lead to less insulin delivery for the same amount of carbs.
- Decreasing the IC value will lead to less insulin delivery for the same amount of carbs.
- Assume you have 0 COB. Changing IC will lead to a different amount of insulin to correct your BG number.
+ Topic: The IC Ratio
+ Higher IC ratios lead to less insulin delivered for a given amount of carbs.
+ Lower IC ratios lead to less insulin delivered for a given amount of carbs.
+ If you have 0 COB, changing the IC ratio will lead to a different amount of insulin to correct a given BG value.IC will be different if you count bread unit as 10g or 12g.IC meaning is: How many bread units are covered by 1U of insulin.https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#carbohydrate-to-insulin-ratio-cr-g-u
@@ -143,16 +145,25 @@
IC value will be 10% lower.ISF value will be 10% higher.ISF value will be 10% lower.
- You will get 10% less insulin in total.
+ You will get around 10% less insulin in total.Target wiil be 10% higher.Target will be 10% lower.Only bottom target will be 10% lower.https://androidaps.readthedocs.io/en/latest/EN/Usage/Profiles.html?highlight=profile%20switch#profile-switch
- I want to do a profile switch because I had to wake up 1h earlier than usually, so it makes more sense to announce the change by the time shift with a profile switch. What number should I use?
- 1
- -1
+ If you wake up 1h earlier than usual, how should you notify AAPS of the change in your schedule?
+ Initiate a profile switch with a timeshift of 1
+ Initiate a profile switch with a timeshift of -1https://androidaps.readthedocs.io/en/latest/EN/Usage/Profiles.html?highlight=profile%20switch#timeshift
- 60
- -60
+ Initiate a profile switch with a timeshift of 60
+ Initiate a profile switch with a timeshift of -60
+ https://androidaps.readthedocs.io/en/latest/EN/Module/module.html#good-individual-dosage-algorithm-for-your-diabetes-therapy
+ Topic: Help with basal rates
+ Where to go for help with basalrate etc.
+ Your diabetes team
+ Google
+ Facebook
+ Other Medication
+ AAPS reduces BR to raise blood sugar. Drugs from the group of SGLT2 inhibitors (gliflozins) can prevent the expected increase in BG and thus may produce a dangerous insulin deficiency (DKA).
+\nCommon brand names are: Invokana®, Forxiga®, Jardiance®, Steglatro®, Suglat®, Apleway®, Deberza®, Synjardy®, Vokanamet®, Xigduo®.\n\nI hereby promise that I will not take such drugs when using AAPS or will deactivate the loop before using these drugs.
diff --git a/app/src/main/res/values/objectives.xml b/app/src/main/res/values/objectives.xml
new file mode 100644
index 0000000000..469db88006
--- /dev/null
+++ b/app/src/main/res/values/objectives.xml
@@ -0,0 +1,80 @@
+
+
+ ObjectivesProfileSwitchUsed
+ ObjectivesDisconnectUsed
+ ObjectivesReconnectUsed
+ ObjectivesTempTargetUsed
+ ObjectivesActionsUsed
+ ObjectivesLoopUsed
+ ObjectivesScaleUsed
+ objectives_request_code
+ ObjectivesbgIsAvailableInNS
+ ObjectivespumpStatusIsAvailableInNS
+ ObjectivesmanualEnacts
+
+ Back
+ Start
+ Verify
+ %1$d. Objective
+ Objective %1$d not started
+ Objective %1$d not finished
+ Setting up visualization and monitoring, and analyzing basals and ratios
+ Verify that BG is available in Nightscout, and pump insulin data is being uploaded
+ Starting on an open loop
+ Run in Open Loop mode for a few days and manually enact lots of temp basals. Set up and use temporary and default temporary targets (e.g. for activity or hypo treatment carbs)
+ Understanding your open loop, including its temp basal recommendations
+ Based on that experience, decide what max basal should be, and set it on the pump and preferences
+ Starting to close the loop with Low Glucose Suspend
+ Run in closed loop with max IOB = 0 for a few days without too many LGS events
+ Tuning the closed loop, raising max IOB above 0 and gradually lowering BG targets
+ Run for a few days, and at least one night with no low BG alarms, before dropping BG
+ Adjust basals and ratios if needed, and then enable auto-sens
+ 1 week successful daytime looping with regular carb entry
+ Enabling additional features for daytime use, such as advanced meal assist
+ Enabling additional features for daytime use, such as SMB
+ You must read the wiki and rise maxIOB to get SMBs working fine! A good start is maxIOB=average mealbolus + 3 x max daily basal
+ BG available in NS
+ Pump status available in NS
+ Manual enacts
+ Accomplished: %1$s
+ Learn how to control AndroidAPS
+ Perform different actions in AndroidAPS
+ Set profile 90% for 10 min (Long-press profile name on Overview)
+ Simulate shower. Disconnect pump for 1h (Long-press on Open Loop)
+ ... and reconnect back the same way
+ Create custom temporary target with 10 min duration (Long-press on your current target)
+ In Config Builder enable Actions plugin, make it visible and display its content from top menu
+ Display content of Loop plugin
+ Use scale function by long-pressing BG chart
+ Enter
+ Enter code obtained from developers to bypass the rest of objectives
+ Code accepted
+ Code invalid
+ Prove your knowledge
+ Study and answer questions correctly
+ Answering disabled until: %1$s
+ Wrong answer!
+ Next unfinished
+ Request code: %1$s
+ (check all correct answers)
+ 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
+ Not connected to the internet
+ Failed retrieve time
+ Objective requirements not met
+
+
+ %1$d day
+ %1$d days
+
+
+ %1$d hour
+ %1$d hours
+
+
+ %1$d minute
+ %1$d minutes
+
+
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 39259e1c71..230235c9f5 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -4,20 +4,20 @@
AfrikaansBulgarianDutch
-
+
FrenchGermanGreek
-
+
Chinese
-
+
Italian
-
+
KoreanLithuanianPolishPortuguese
-
+ Portuguese, BrazilianRomanianRussianSlovak
@@ -79,9 +79,6 @@
Show information about your loop on your xDrip+ watchface.Remote control AndroidAPS using SMS commands.
- Back
- Start
- VerifyUnitsDIAIC
@@ -124,6 +121,7 @@
ProfileMeal dataResult
+ Result: %1$s %2$sNo glucose data availableNo change requestedRequest
@@ -205,9 +203,6 @@
Unsupported version of NSClientUnsupported version of NightscoutNSClient not installed. Record lost!
- BG available in NS
- Pump status available in NS
- Manual enactsLOOP DISABLED BY CONSTRAINTSBasal IOBBolus constraint applied
@@ -251,7 +246,7 @@
TempBasalExtended BolusNightscout version:
- Missing
+ Missing %1$dgPreferences exportedExport settings toImport settings from
@@ -348,21 +343,6 @@
STOP PRESSEDWaiting for pumpGoing to deliver %1$.2fU
- Setting up visualization and monitoring, and analyzing basals and ratios
- Verify that BG is available in Nightscout, and pump insulin data is being uploaded
- Starting on an open loop
- Run in Open Loop mode for a few days and manually enact lots of temp basals. Set up and use temporary and default temporary targets (e.g. for activity or hypo treatment carbs)
- Understanding your open loop, including its temp basal recommendations
- Based on that experience, decide what max basal should be, and set it on the pump and preferences
- Starting to close the loop with Low Glucose Suspend
- Run in closed loop with max IOB = 0 for a few days without too many LGS events
- Tuning the closed loop, raising max IOB above 0 and gradually lowering BG targets
- Run for a few days, and at least one night with no low BG alarms, before dropping BG
- Adjust basals and ratios if needed, and then enable auto-sens
- 1 week successful daytime looping with regular carb entry
- Enabling additional features for daytime use, such as advanced meal assist
- Enabling additional features for daytime use, such as SMB
- You must read the wiki and rise maxIOB to get SMBs working fine! A good start is maxIOB=average mealbolus + 3 x max daily basalYou reached allowed limitNo profile selectedLoop has been disabled
@@ -632,9 +612,9 @@
key_statuslights_res_criticalThreshold critical reservoir level [U]key_statuslights_bat_warning
- Threshold warning battery level [%%]
+ Threshold warning battery level [%]key_statuslights_bat_critical
- Threshold critical battery level [%%]
+ Threshold critical battery level [%]IOBCOBFirmware
@@ -993,8 +973,6 @@
ProfileSwitch missing. Please do a profile switch or press \"Activate Profile\" in the LocalProfile.Bolus countTBR count
- Objective %1$d not started
- Objective %1$d not finishedPump is not temp basal capableNo valid basal rate read from pumpClosed loop mode disabled in preferences
@@ -1142,7 +1120,6 @@
Completed, well done!Not completed yetTime elapsed
- %1$d. ObjectivePoctechReceive BG values from Poctech appReceive BG values from Tomato app (MiaoMiao device)
@@ -1354,9 +1331,9 @@
Upload BG testssmbmaxminutes
- Dayligh Saving time
- Dayligh Saving time change in 24h or less
- Daylight saving time change less than 3 hours ago - Closed loop disabled
+ Daylight Saving time
+ Daylight Saving time change in 24h or less
+ Daylight Saving time change less than 3 hours ago - Closed loop disabledinternal storage constraintFree at least %1$d MB from internal storage! Loop disabled!Wrong format
@@ -1428,6 +1405,7 @@
REMOVEPreconditions:
+
Operation not supported by pump and/or driver.Operation not YET supported by pump.
@@ -1446,6 +1424,7 @@
pref_medtronic_bolus_delaypref_medtronic_encodingpref_medtronic_battery_type
+ pref_medtronic_bolus_debugpref_rileylink_mac_addressmedtronic_pump_frequency_us_camedtronic_pump_frequency_worldwide
@@ -1454,6 +1433,7 @@
medtronic_pump_battery_nomedtronic_pump_battery_alkalinemedtronic_pump_battery_lithium
+ medtronic_pump_battery_niznPump Serial NumberPump Type
@@ -1473,6 +1453,8 @@
Not selected (Simple view)Alkaline (Extended view)Lithium (Extended view)
+ NiZn (Extended view)
+ Bolus/Treatments DebuggingSCAN
@@ -1596,9 +1578,17 @@
Get Temporary BasalSet Temporary BasalSet Bolus
+ Change profile to
+ Change profile to %1$s
+ Last connection to pump
+ Last connection to pump [minutes ago]
+ Last connection to pump %1$s %2$s min ago
+ Send SMS: %1$s
+ Send SMS to all numbers in preferences
+ Send SMS with text
- %2$.1fg %3$.2fU]]>
+ %2$+.2fU]]>Bolus constraint applied: %2$.2fU to %3$.2fU]]>!!!!! Slow carbs absorption detected: %2$d%% of time. Double check your calculation. COB can be overestimated thus more insulin could be given !!!!!]]>%1$.0f / %2$d U
@@ -1607,39 +1597,23 @@
Bolus wizard performs calculation but only this part of calculated insulin is delivered. Useful with SMB algorithm.Loading ...Snooze
- Accomplished: %1$s
- Learn how to control AndroidAPS
- Perform different actions in AndroidAPS
- Set profile 90% for 10 min (Long-press profile name on Overview)
- ObjectivesProfileSwitchUsed
- ObjectivesDisconnectUsed
- ObjectivesReconnectUsed
- ObjectivesTempTargetUsed
- ObjectivesActionsUsed
- ObjectivesLoopUsed
- ObjectivesScaleUsed
- Simulate shower. Disconnect pump for 1h (Long-press on Open Loop)
- ... and reconnect back the same way
- Create custom temporary target with 10 min duration (Long-press on your current target)
- In Config Builder enable Actions plugin, make it visible and display its content from top menu
- Display content of Loop plugin
- Use scale function by long-pressing BG chart
- Enter
- Enter code obtained from developers to bypass the rest of objectives
- Code accepted
- Code invalid
- ObjectivesbgIsAvailableInNS
- ObjectivespumpStatusIsAvailableInNS
- ObjectivesmanualEnacts
- Prove your knowledge
- Study and answer questions correctly
- Answering disabled to: %1$s
- Wrong answer!
- Next unfinished
+ Time range
+ Time is between %1$s and %2$s
+ Between
+
Close
- objectives_request_code
- Request code: %1$s
- (check all correct answers)
+ Increasing max basal value because setting is lower than your max basal in profile
+ Invalid message body
+ %1$s ISF: %2$.1f
+ %1$.0fg IC: %2$.1f
+ %1$.1fg IC: %2$.1f
+ %1$d%%
+ Bolus wizard
+ min
+ wizard_calculation_visible
+ %1$dg
+ On
+ Off
diff --git a/app/src/main/res/xml/pref_medtronic.xml b/app/src/main/res/xml/pref_medtronic.xml
index 603d3873f8..10730f4fcb 100644
--- a/app/src/main/res/xml/pref_medtronic.xml
+++ b/app/src/main/res/xml/pref_medtronic.xml
@@ -68,6 +68,14 @@
android:selectable="true"
android:title="@string/medtronic_pump_battery_select" />
+
+
list = new ProfileIntervals<>();
@@ -89,7 +89,7 @@ public class ProfileIntervalsTest {
public void prepareMock() {
AAPSMocker.mockMainApp();
AAPSMocker.mockStrings();
- AAPSMocker.mockBus();
AAPSMocker.mockConfigBuilder();
+ AAPSMocker.mockTreatmentPlugin();
}
}
diff --git a/app/src/test/java/info/nightscout/androidaps/data/ProfileTest.java b/app/src/test/java/info/nightscout/androidaps/data/ProfileTest.java
index 8de24fc43c..08f0aab20c 100644
--- a/app/src/test/java/info/nightscout/androidaps/data/ProfileTest.java
+++ b/app/src/test/java/info/nightscout/androidaps/data/ProfileTest.java
@@ -22,7 +22,6 @@ import info.nightscout.androidaps.plugins.configBuilder.ConfigBuilderPlugin;
import info.nightscout.androidaps.plugins.pump.virtual.VirtualPumpPlugin;
import info.nightscout.androidaps.utils.FabricPrivacy;
-import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
/**
@@ -99,7 +98,7 @@ public class ProfileTest {
//Test basal profile below limit
p = new Profile(new JSONObject(belowLimitValidProfile), 100, 0);
p.isValid("Test");
- Assert.assertEquals(true, ((AAPSMocker.MockedBus) MainApp.bus()).notificationSent);
+ //Assert.assertEquals(true, ((AAPSMocker.MockedBus) MainApp.bus()).notificationSent);
// Test profile w/o units
p = new Profile(new JSONObject(noUnitsValidProfile), 100, 0);
@@ -134,10 +133,10 @@ public class ProfileTest {
// Test hour alignment
ConfigBuilderPlugin.getPlugin().getActivePump().getPumpDescription().is30minBasalRatesCapable = false;
- ((AAPSMocker.MockedBus) MainApp.bus()).notificationSent = false;
+ //((AAPSMocker.MockedBus) MainApp.bus()).notificationSent = false;
p = new Profile(new JSONObject(notAllignedBasalValidProfile), 100, 0);
p.isValid("Test");
- Assert.assertEquals(true, ((AAPSMocker.MockedBus) MainApp.bus()).notificationSent);
+ //Assert.assertEquals(true, ((AAPSMocker.MockedBus) MainApp.bus()).notificationSent);
}
@Before
@@ -145,7 +144,6 @@ public class ProfileTest {
AAPSMocker.mockMainApp();
AAPSMocker.mockConfigBuilder();
AAPSMocker.mockStrings();
- AAPSMocker.prepareMockedBus();
when(ConfigBuilderPlugin.getPlugin().getActivePump()).thenReturn(pump);
diff --git a/app/src/test/java/info/nightscout/androidaps/data/QuickWizardTest.java b/app/src/test/java/info/nightscout/androidaps/data/QuickWizardTest.java
index 7bf5bbfe70..bda66cc121 100644
--- a/app/src/test/java/info/nightscout/androidaps/data/QuickWizardTest.java
+++ b/app/src/test/java/info/nightscout/androidaps/data/QuickWizardTest.java
@@ -1,12 +1,12 @@
package info.nightscout.androidaps.data;
-import junit.framework.Assert;
-
import org.json.JSONArray;
import org.json.JSONException;
+import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
+import org.powermock.api.mockito.PowerMockito;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;
@@ -16,16 +16,15 @@ import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.utils.SP;
@RunWith(PowerMockRunner.class)
-@PrepareForTest({SP.class, MainApp.class})
+@PrepareForTest({SP.class, MainApp.class, Profile.class})
public class QuickWizardTest {
- String data1 = "{\"buttonText\":\"Meal\",\"carbs\":36,\"validFrom\":0,\"validTo\":18000," +
+ private String data1 = "{\"buttonText\":\"Meal\",\"carbs\":36,\"validFrom\":0,\"validTo\":18000," +
"\"useBG\":0,\"useCOB\":0,\"useBolusIOB\":0,\"useBasalIOB\":0,\"useTrend\":0,\"useSuperBolus\":0,\"useTemptarget\":0}";
- String data2 = "{\"buttonText\":\"Lunch\",\"carbs\":18,\"validFrom\":36000,\"validTo\":39600," +
+ private String data2 = "{\"buttonText\":\"Lunch\",\"carbs\":18,\"validFrom\":36000,\"validTo\":39600," +
"\"useBG\":0,\"useCOB\":0,\"useBolusIOB\":1,\"useBasalIOB\":2,\"useTrend\":0,\"useSuperBolus\":0,\"useTemptarget\":0}";
- JSONArray array;
- QuickWizard qv = new QuickWizard();
+ private JSONArray array;
public QuickWizardTest() {
try {
@@ -36,48 +35,64 @@ public class QuickWizardTest {
}
@Before
- public void mock() {
+ public void mock() throws Exception {
AAPSMocker.mockMainApp();
SPMocker.prepareMock();
+ PowerMockito.mockStatic(Profile.class);
+ PowerMockito.when(Profile.class, "secondsFromMidnight").thenReturn(0);
+
}
@Test
public void setDataTest() {
- qv.setData(array);
- Assert.assertEquals(2, qv.size());
+ QuickWizard.INSTANCE.setData(array);
+ Assert.assertEquals(2, QuickWizard.INSTANCE.size());
}
@Test
public void saveTest() {
- qv.setData(array);
- qv.save();
+ QuickWizard.INSTANCE.setData(array);
+ QuickWizard.INSTANCE.save();
Assert.assertEquals("[{\"useBolusIOB\":0,\"buttonText\":\"Meal\",\"useTrend\":0,\"carbs\":36,\"useCOB\":0,\"useBasalIOB\":0,\"useTemptarget\":0,\"useBG\":0,\"validFrom\":0,\"useSuperBolus\":0,\"validTo\":18000},{\"useBolusIOB\":1,\"buttonText\":\"Lunch\",\"useTrend\":0,\"carbs\":18,\"useCOB\":0,\"useBasalIOB\":2,\"useTemptarget\":0,\"useBG\":0,\"validFrom\":36000,\"useSuperBolus\":0,\"validTo\":39600}]", SP.getString("QuickWizard", "d"));
}
@Test
public void getTest() {
- qv.setData(array);
- Assert.assertEquals("Lunch", qv.get(1).buttonText());
- }
-
- @Test
- public void isActive() {
+ QuickWizard.INSTANCE.setData(array);
+ Assert.assertEquals("Lunch", QuickWizard.INSTANCE.get(1).buttonText());
}
@Test
public void getActive() {
+ QuickWizard.INSTANCE.setData(array);
+ QuickWizardEntry e = QuickWizard.INSTANCE.getActive();
+ Assert.assertEquals(36d, e.carbs(), 0.01d);
+ QuickWizard.INSTANCE.remove(0);
+ QuickWizard.INSTANCE.remove(0);
+ Assert.assertNull(QuickWizard.INSTANCE.getActive());
}
@Test
public void newEmptyItemTest() {
- Assert.assertNotNull(qv.newEmptyItem());
+ Assert.assertNotNull(QuickWizard.INSTANCE.newEmptyItem());
}
@Test
public void addOrUpdate() {
+ QuickWizard.INSTANCE.setData(array);
+ Assert.assertEquals(2, QuickWizard.INSTANCE.size());
+ QuickWizard.INSTANCE.addOrUpdate(QuickWizard.INSTANCE.newEmptyItem());
+ Assert.assertEquals(3, QuickWizard.INSTANCE.size());
+ QuickWizardEntry q = QuickWizard.INSTANCE.newEmptyItem();
+ q.position = 0;
+ QuickWizard.INSTANCE.addOrUpdate(q);
+ Assert.assertEquals(3, QuickWizard.INSTANCE.size());
}
@Test
public void remove() {
+ QuickWizard.INSTANCE.setData(array);
+ QuickWizard.INSTANCE.remove(0);
+ Assert.assertEquals(1, QuickWizard.INSTANCE.size());
}
}
\ No newline at end of file
diff --git a/app/src/test/java/info/nightscout/androidaps/interfaces/ConstraintsCheckerTest.java b/app/src/test/java/info/nightscout/androidaps/interfaces/ConstraintsCheckerTest.java
index 52de2d12c5..f3577e35c8 100644
--- a/app/src/test/java/info/nightscout/androidaps/interfaces/ConstraintsCheckerTest.java
+++ b/app/src/test/java/info/nightscout/androidaps/interfaces/ConstraintsCheckerTest.java
@@ -2,11 +2,8 @@ package info.nightscout.androidaps.interfaces;
import android.content.Context;
-import com.squareup.otto.Bus;
-
import junit.framework.Assert;
-import org.json.JSONException;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -20,12 +17,12 @@ import info.AAPSMocker;
import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.R;
import info.nightscout.androidaps.data.ConstraintChecker;
-import info.nightscout.androidaps.plugins.configBuilder.ConfigBuilderPlugin;
-import info.nightscout.androidaps.plugins.constraints.objectives.ObjectivesPlugin;
-import info.nightscout.androidaps.plugins.constraints.safety.SafetyPlugin;
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.constraints.objectives.ObjectivesPlugin;
+import info.nightscout.androidaps.plugins.constraints.safety.SafetyPlugin;
import info.nightscout.androidaps.plugins.pump.combo.ComboPlugin;
import info.nightscout.androidaps.plugins.pump.danaR.DanaRPlugin;
import info.nightscout.androidaps.plugins.pump.danaR.DanaRPump;
@@ -73,7 +70,7 @@ public class ConstraintsCheckerTest {
}
@Test
- public void isClosedLoopAllowedTest() {
+ public void isClosedLoopAllowedTest() {
when(SP.getString(R.string.key_aps_mode, "open")).thenReturn("closed");
objectivesPlugin.getObjectives().get(ObjectivesPlugin.INSTANCE.getMAXIOB_ZERO_CL_OBJECTIVE()).setStartedOn(0);
@@ -247,7 +244,7 @@ public class ConstraintsCheckerTest {
// Apply all limits
Constraint d = constraintChecker.getMaxIOBAllowed();
Assert.assertEquals(1.5d, d.value());
- Assert.assertEquals(d.getReasonList().toString(),2, d.getReasonList().size());
+ Assert.assertEquals(d.getReasonList().toString(), 2, d.getReasonList().size());
Assert.assertEquals("Safety: Limiting IOB to 1.5 U because of max value in preferences", d.getMostLimitedReasons());
}
@@ -278,7 +275,6 @@ public class ConstraintsCheckerTest {
AAPSMocker.mockConfigBuilder();
AAPSMocker.mockConstraintsChecker();
AAPSMocker.mockApplicationContext();
- AAPSMocker.mockBus();
AAPSMocker.mockStrings();
AAPSMocker.mockSP();
AAPSMocker.mockCommandQueue();
@@ -311,12 +307,4 @@ public class ConstraintsCheckerTest {
when(mainApp.getSpecificPluginsListByInterface(ConstraintsInterface.class)).thenReturn(constraintsPluginsList);
}
-
- class MockedBus extends Bus {
- @Override
- public void post(Object event) {
- notificationSent = true;
- }
- }
-
}
diff --git a/app/src/test/java/info/nightscout/androidaps/plugins/aps/loop/APSResultTest.java b/app/src/test/java/info/nightscout/androidaps/plugins/aps/loop/APSResultTest.java
index 0041f6f33a..1db142af2c 100644
--- a/app/src/test/java/info/nightscout/androidaps/plugins/aps/loop/APSResultTest.java
+++ b/app/src/test/java/info/nightscout/androidaps/plugins/aps/loop/APSResultTest.java
@@ -179,7 +179,6 @@ public class APSResultTest {
AAPSMocker.mockConfigBuilder();
AAPSMocker.mockSP();
AAPSMocker.mockStrings();
- AAPSMocker.mockBus();
AAPSMocker.mockProfileFunctions();
AAPSMocker.mockTreatmentService();
AAPSMocker.mockL();
diff --git a/app/src/test/java/info/nightscout/androidaps/plugins/aps/loop/LoopPluginTest.java b/app/src/test/java/info/nightscout/androidaps/plugins/aps/loop/LoopPluginTest.java
index 49a68cea4f..ecbc9d55c3 100644
--- a/app/src/test/java/info/nightscout/androidaps/plugins/aps/loop/LoopPluginTest.java
+++ b/app/src/test/java/info/nightscout/androidaps/plugins/aps/loop/LoopPluginTest.java
@@ -2,8 +2,6 @@ package info.nightscout.androidaps.plugins.aps.loop;
import android.content.Context;
-import com.squareup.otto.Bus;
-
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
@@ -31,7 +29,6 @@ public class LoopPluginTest {
VirtualPumpPlugin virtualPumpPlugin;
LoopPlugin loopPlugin;
- MockedBus bus;
@Test
public void testPluginInterface() {
@@ -91,17 +88,10 @@ public class LoopPluginTest {
AAPSMocker.mockSP();
AAPSMocker.mockStrings();
- bus = new MockedBus();
- when(MainApp.bus()).thenReturn(bus);
-
loopPlugin = LoopPlugin.getPlugin();
virtualPumpPlugin = VirtualPumpPlugin.getPlugin();
when(ConfigBuilderPlugin.getPlugin().getActivePump()).thenReturn(virtualPumpPlugin);
}
- class MockedBus extends Bus {
- }
-
-
}
diff --git a/app/src/test/java/info/nightscout/androidaps/plugins/configBuilder/ConfigBuilderPluginTest.java b/app/src/test/java/info/nightscout/androidaps/plugins/configBuilder/ConfigBuilderPluginTest.java
index f54105d994..39c5f3279e 100644
--- a/app/src/test/java/info/nightscout/androidaps/plugins/configBuilder/ConfigBuilderPluginTest.java
+++ b/app/src/test/java/info/nightscout/androidaps/plugins/configBuilder/ConfigBuilderPluginTest.java
@@ -13,8 +13,6 @@ import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.interfaces.PluginType;
import info.nightscout.androidaps.utils.SP;
-import static org.powermock.api.mockito.PowerMockito.mock;
-
@RunWith(PowerMockRunner.class)
@PrepareForTest({MainApp.class, SP.class})
public class ConfigBuilderPluginTest {
@@ -29,7 +27,6 @@ public class ConfigBuilderPluginTest {
public void onStartTest() {
ConfigBuilderPlugin configBuilderPlugin = ConfigBuilderPlugin.getPlugin();
configBuilderPlugin.setPluginEnabled(PluginType.GENERAL, true);
- Assert.assertEquals(true, ((AAPSMocker.MockedBus) MainApp.bus()).registered);
}
@Test
@@ -37,7 +34,6 @@ public class ConfigBuilderPluginTest {
ConfigBuilderPlugin configBuilderPlugin = ConfigBuilderPlugin.getPlugin();
configBuilderPlugin.setPluginEnabled(PluginType.GENERAL, true);
configBuilderPlugin.setPluginEnabled(PluginType.GENERAL, false);
- Assert.assertEquals(false, ((AAPSMocker.MockedBus) MainApp.bus()).registered);
}
@Before
@@ -45,7 +41,6 @@ public class ConfigBuilderPluginTest {
AAPSMocker.mockMainApp();
AAPSMocker.mockApplicationContext();
AAPSMocker.mockSP();
- AAPSMocker.prepareMockedBus();
}
diff --git a/app/src/test/java/info/nightscout/androidaps/plugins/constraints/objectives/ObjectivesPluginTest.java b/app/src/test/java/info/nightscout/androidaps/plugins/constraints/objectives/ObjectivesPluginTest.java
index 7c9514629d..371e970d23 100644
--- a/app/src/test/java/info/nightscout/androidaps/plugins/constraints/objectives/ObjectivesPluginTest.java
+++ b/app/src/test/java/info/nightscout/androidaps/plugins/constraints/objectives/ObjectivesPluginTest.java
@@ -8,8 +8,6 @@ import org.junit.runner.RunWith;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;
-import java.util.Date;
-
import info.AAPSMocker;
import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.interfaces.Constraint;
@@ -82,7 +80,6 @@ public class ObjectivesPluginTest {
public void prepareMock() {
AAPSMocker.mockMainApp();
AAPSMocker.mockConfigBuilder();
- AAPSMocker.mockBus();
AAPSMocker.mockSP();
AAPSMocker.mockStrings();
diff --git a/app/src/test/java/info/nightscout/androidaps/plugins/constraints/safety/SafetyPluginTest.java b/app/src/test/java/info/nightscout/androidaps/plugins/constraints/safety/SafetyPluginTest.java
index 7de706228e..1dabf0ff30 100644
--- a/app/src/test/java/info/nightscout/androidaps/plugins/constraints/safety/SafetyPluginTest.java
+++ b/app/src/test/java/info/nightscout/androidaps/plugins/constraints/safety/SafetyPluginTest.java
@@ -2,8 +2,7 @@ package info.nightscout.androidaps.plugins.constraints.safety;
import android.content.Context;
-import junit.framework.Assert;
-
+import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -33,11 +32,11 @@ import static org.mockito.Mockito.when;
@PrepareForTest({MainApp.class, ConfigBuilderPlugin.class, SP.class, Context.class})
public class SafetyPluginTest {
- VirtualPumpPlugin pump = new VirtualPumpPlugin();
- SafetyPlugin safetyPlugin;
+ private VirtualPumpPlugin pump = new VirtualPumpPlugin();
+ private SafetyPlugin safetyPlugin;
@Test
- public void pumpDescriptionShouldLimitLoopInvokation() throws Exception {
+ public void pumpDescriptionShouldLimitLoopInvocation() {
pump.getPumpDescription().isTempBasalCapable = false;
Constraint c = new Constraint<>(true);
@@ -53,7 +52,7 @@ public class SafetyPluginTest {
Constraint c = new Constraint<>(true);
c = safetyPlugin.isClosedLoopAllowed(c);
- Assert.assertEquals(true, c.getReasons().contains("Running dev version. Closed loop is disabled."));
+ Assert.assertTrue(c.getReasons().contains("Running dev version. Closed loop is disabled."));
Assert.assertEquals(Boolean.FALSE, c.value());
}
@@ -63,34 +62,34 @@ public class SafetyPluginTest {
Constraint c = new Constraint<>(true);
c = safetyPlugin.isClosedLoopAllowed(c);
- Assert.assertEquals(true, c.getReasons().contains("Closed loop mode disabled in preferences"));
+ Assert.assertTrue(c.getReasons().contains("Closed loop mode disabled in preferences"));
Assert.assertEquals(Boolean.FALSE, c.value());
}
@Test
- public void notEnabledSMBInPreferencesDisablesSMB() throws Exception {
+ public void notEnabledSMBInPreferencesDisablesSMB() {
when(SP.getBoolean(R.string.key_use_smb, false)).thenReturn(false);
when(MainApp.getConstraintChecker().isClosedLoopAllowed()).thenReturn(new Constraint<>(true));
Constraint c = new Constraint<>(true);
c = safetyPlugin.isSMBModeEnabled(c);
- Assert.assertEquals(true, c.getReasons().contains("SMB disabled in preferences"));
+ Assert.assertTrue(c.getReasons().contains("SMB disabled in preferences"));
Assert.assertEquals(Boolean.FALSE, c.value());
}
@Test
- public void openLoopPreventsSMB() throws Exception {
+ public void openLoopPreventsSMB() {
when(SP.getBoolean(R.string.key_use_smb, false)).thenReturn(true);
when(MainApp.getConstraintChecker().isClosedLoopAllowed()).thenReturn(new Constraint<>(false));
Constraint c = new Constraint<>(true);
c = safetyPlugin.isSMBModeEnabled(c);
- Assert.assertEquals(true, c.getReasons().contains("SMB not allowed in open loop mode"));
+ Assert.assertTrue(c.getReasons().contains("SMB not allowed in open loop mode"));
Assert.assertEquals(Boolean.FALSE, c.value());
}
@Test
- public void bgsourceShouldPreventSMBAlways() throws Exception {
+ public void bgSourceShouldPreventSMBAlways() {
when(ConfigBuilderPlugin.getPlugin().getActiveBgSource()).thenReturn(SourceGlimpPlugin.getPlugin());
Constraint c = new Constraint<>(true);
@@ -100,7 +99,7 @@ public class SafetyPluginTest {
}
@Test
- public void basalRateShouldBeLimited() throws Exception {
+ public void basalRateShouldBeLimited() {
when(SP.getDouble(R.string.key_openapsma_max_basal, 1d)).thenReturn(1d);
when(SP.getDouble(R.string.key_openapsama_current_basal_safety_multiplier, 4d)).thenReturn(4d);
when(SP.getDouble(R.string.key_openapsama_max_daily_safety_multiplier, 3d)).thenReturn(3d);
@@ -108,7 +107,7 @@ public class SafetyPluginTest {
Constraint c = new Constraint<>(Constants.REALLYHIGHBASALRATE);
safetyPlugin.applyBasalConstraints(c, AAPSMocker.getValidProfile());
- Assert.assertEquals(1d, c.value());
+ Assert.assertEquals(1d, c.value(), 0.01d);
Assert.assertEquals("Safety: Limiting basal rate to 1.00 U/h because of max value in preferences\n" +
"Safety: Limiting basal rate to 4.00 U/h because of max basal multiplier\n" +
"Safety: Limiting basal rate to 3.00 U/h because of max daily basal multiplier\n" +
@@ -118,17 +117,18 @@ public class SafetyPluginTest {
}
@Test
- public void doNotAllowNegativeBasalRate() throws Exception {
+ public void doNotAllowNegativeBasalRate() {
when(SP.getString(R.string.key_age, "")).thenReturn("child");
Constraint d = new Constraint<>(-0.5d);
safetyPlugin.applyBasalConstraints(d, AAPSMocker.getValidProfile());
- Assert.assertEquals(0d, d.value());
- Assert.assertEquals("Safety: Limiting basal rate to 0.00 U/h because of it must be positive value", d.getReasons());
+ Assert.assertEquals(0d, d.value(), 0.01d);
+ Assert.assertEquals("Safety: Limiting basal rate to 0.00 U/h because of it must be positive value\n" +
+ "Safety: Increasing max basal value because setting is lower than your max basal in profile", d.getReasons());
}
@Test
- public void percentBasalRateShouldBeLimited() throws Exception {
+ public void percentBasalRateShouldBeLimited() {
// No limit by default
when(SP.getDouble(R.string.key_openapsma_max_basal, 1d)).thenReturn(1d);
when(SP.getDouble(R.string.key_openapsama_current_basal_safety_multiplier, 4d)).thenReturn(4d);
@@ -149,7 +149,7 @@ public class SafetyPluginTest {
}
@Test
- public void doNotAllowNegativePercentBasalRate() throws Exception {
+ public void doNotAllowNegativePercentBasalRate() {
when(SP.getString(R.string.key_age, "")).thenReturn("child");
Constraint i = new Constraint<>(-22);
@@ -157,37 +157,38 @@ public class SafetyPluginTest {
Assert.assertEquals((Integer) 0, i.value());
Assert.assertEquals("Safety: Percent rate -22% recalculated to -0.22 U/h with current basal 1.00 U/h\n" +
"Safety: Limiting basal rate to 0.00 U/h because of it must be positive value\n" +
+ "Safety: Increasing max basal value because setting is lower than your max basal in profile\n" +
"Safety: Limiting percent rate to 0% because of pump limit", i.getReasons());
Assert.assertEquals("Safety: Limiting percent rate to 0% because of pump limit", i.getMostLimitedReasons());
}
@Test
- public void bolusAmountShouldBeLimited() throws Exception {
+ public void bolusAmountShouldBeLimited() {
when(SP.getDouble(R.string.key_treatmentssafety_maxbolus, 3d)).thenReturn(3d);
when(SP.getString(R.string.key_age, "")).thenReturn("child");
Constraint d = new Constraint<>(Constants.REALLYHIGHBOLUS);
d = safetyPlugin.applyBolusConstraints(d);
- Assert.assertEquals(3d, d.value());
+ Assert.assertEquals(3d, d.value(), 0.01d);
Assert.assertEquals("Safety: Limiting bolus to 3.0 U because of max value in preferences\n" +
"Safety: Limiting bolus to 5.0 U because of hard limit", d.getReasons());
Assert.assertEquals("Safety: Limiting bolus to 3.0 U because of max value in preferences", d.getMostLimitedReasons());
}
@Test
- public void doNotAllowNegativeBolusAmount() throws Exception {
+ public void doNotAllowNegativeBolusAmount() {
when(SP.getDouble(R.string.key_treatmentssafety_maxbolus, 3d)).thenReturn(3d);
when(SP.getString(R.string.key_age, "")).thenReturn("child");
Constraint d = new Constraint<>(-22d);
d = safetyPlugin.applyBolusConstraints(d);
- Assert.assertEquals(0d, d.value());
+ Assert.assertEquals(0d, d.value(), 0.01d);
Assert.assertEquals("Safety: Limiting bolus to 0.0 U because of it must be positive value", d.getReasons());
Assert.assertEquals("Safety: Limiting bolus to 0.0 U because of it must be positive value", d.getMostLimitedReasons());
}
@Test
- public void carbsAmountShouldBeLimited() throws Exception {
+ public void carbsAmountShouldBeLimited() {
// No limit by default
when(SP.getInt(R.string.key_treatmentssafety_maxcarbs, 48)).thenReturn(48);
@@ -204,7 +205,7 @@ public class SafetyPluginTest {
}
@Test
- public void iobShouldBeLimited() throws Exception {
+ public void iobShouldBeLimited() {
when(SP.getDouble(R.string.key_openapsma_max_iob, 1.5d)).thenReturn(1.5d);
when(SP.getString(R.string.key_age, "")).thenReturn("teenage");
OpenAPSMAPlugin.getPlugin().setPluginEnabled(PluginType.APS, true);
@@ -214,7 +215,7 @@ public class SafetyPluginTest {
// Apply all limits
Constraint d = new Constraint<>(Constants.REALLYHIGHIOB);
d = safetyPlugin.applyMaxIOBConstraints(d);
- Assert.assertEquals(1.5d, d.value());
+ Assert.assertEquals(1.5d, d.value(), 0.01d);
Assert.assertEquals("Safety: Limiting IOB to 1.5 U because of max value in preferences\n" +
"Safety: Limiting IOB to 7.0 U because of hard limit\n" +
"Safety: Limiting IOB to 7.0 U because of hard limit", d.getReasons());
@@ -228,7 +229,6 @@ public class SafetyPluginTest {
AAPSMocker.mockConstraintsChecker();
AAPSMocker.mockSP();
AAPSMocker.mockStrings();
- AAPSMocker.mockBus();
when(ConfigBuilderPlugin.getPlugin().getActivePump()).thenReturn(pump);
diff --git a/app/src/test/java/info/nightscout/androidaps/plugins/constraints/signatureVerifier/SignatureVerifierPluginTest.kt b/app/src/test/java/info/nightscout/androidaps/plugins/constraints/signatureVerifier/SignatureVerifierPluginTest.kt
new file mode 100644
index 0000000000..6d4a37882a
--- /dev/null
+++ b/app/src/test/java/info/nightscout/androidaps/plugins/constraints/signatureVerifier/SignatureVerifierPluginTest.kt
@@ -0,0 +1,15 @@
+package info.nightscout.androidaps.plugins.constraints.signatureVerifier
+
+import org.junit.Test
+
+import org.junit.Assert.*
+
+class SignatureVerifierPluginTest {
+
+ @Test
+ fun singleCharUnMapTest() {
+ val key = "2ΙšÄΠΒϨÒÇeЄtЄЗž-*Ж*ZcHijЊÄœ<|x\"Ε"
+ val unmapped = SignatureVerifierPlugin.getPlugin().singleCharUnMap(key)
+ assertEquals("32:99:61:C4:A0:92:E8:D2:C7:65:04:74:04:17:7E:2D:2A:16:2A:5A:63:48:69:6A:0A:C4:53:3C:7C:78:22:95", unmapped)
+ }
+}
\ No newline at end of file
diff --git a/app/src/test/java/info/nightscout/androidaps/plugins/constraints/storage/StorageConstraintPluginTest.java b/app/src/test/java/info/nightscout/androidaps/plugins/constraints/storage/StorageConstraintPluginTest.java
index 34c064a214..bd118d1391 100644
--- a/app/src/test/java/info/nightscout/androidaps/plugins/constraints/storage/StorageConstraintPluginTest.java
+++ b/app/src/test/java/info/nightscout/androidaps/plugins/constraints/storage/StorageConstraintPluginTest.java
@@ -1,4 +1,5 @@
package info.nightscout.androidaps.plugins.constraints.storage;
+
import android.os.Environment;
import android.os.StatFs;
@@ -15,13 +16,12 @@ import java.io.File;
import info.AAPSMocker;
import info.nightscout.androidaps.MainApp;
-import info.nightscout.androidaps.R;
import info.nightscout.androidaps.interfaces.Constraint;
-import static org.mockito.Mockito.when;
-import static org.mockito.Mockito.mock;
-import static org.powermock.api.mockito.PowerMockito.whenNew;
import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+import static org.powermock.api.mockito.PowerMockito.whenNew;
/**
* Created by Rumen on 06.03.2019.
@@ -72,7 +72,6 @@ public class StorageConstraintPluginTest extends StorageConstraintPlugin{
public void prepareMock() {
AAPSMocker.mockMainApp();
AAPSMocker.mockStrings();
- AAPSMocker.mockBus();
mockedFile = mock(File.class);
mockedStatFs = mock(StatFs.class);
storageConstraintPlugin = StorageConstraintPlugin.getPlugin();
diff --git a/app/src/test/java/info/nightscout/androidaps/plugins/constraints/versionChecker/VersionCheckerUtilsKtTest.kt b/app/src/test/java/info/nightscout/androidaps/plugins/constraints/versionChecker/VersionCheckerUtilsKtTest.kt
new file mode 100644
index 0000000000..49fd78ff13
--- /dev/null
+++ b/app/src/test/java/info/nightscout/androidaps/plugins/constraints/versionChecker/VersionCheckerUtilsKtTest.kt
@@ -0,0 +1,478 @@
+package info.nightscout.androidaps.plugins.constraints.versionChecker
+
+import info.nightscout.androidaps.MainApp
+import info.nightscout.androidaps.R
+import info.nightscout.androidaps.logging.L
+import info.nightscout.androidaps.utils.SP
+import org.junit.Assert.assertEquals
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mockito.ArgumentMatchers
+import org.mockito.Mockito.*
+import org.powermock.api.mockito.PowerMockito
+import org.powermock.core.classloader.annotations.PrepareForTest
+import org.powermock.modules.junit4.PowerMockRunner
+
+
+@RunWith(PowerMockRunner::class)
+class VersionCheckerUtilsKtTest {
+
+
+
+ @Test
+ fun `should keep 2 digit version`() {
+ assertEquals("1.2", "1.2".numericVersionPart())
+ }
+
+ @Test
+ fun `should keep 3 digit version`() {
+ assertEquals("1.2.3", "1.2.3".numericVersionPart())
+ }
+
+ @Test
+ fun `should keep 4 digit version`() {
+ assertEquals("1.2.3.4", "1.2.3.4".numericVersionPart())
+ }
+
+ @Test
+ fun `should strip 2 digit version RC`() {
+ assertEquals("1.2", "1.2-RC1".numericVersionPart())
+ }
+
+ @Test
+ fun `should strip 2 digit version RC old format`() {
+ assertEquals("1.2", "1.2RC1".numericVersionPart())
+ }
+
+ @Test
+ fun `should strip 2 digit version RC without digit`() {
+ assertEquals("1.2", "1.2-RC".numericVersionPart())
+ }
+
+ @Test
+ fun `should strip 2 digit version dev`() {
+ assertEquals("1.2", "1.2-dev".numericVersionPart())
+ }
+
+ @Test
+ fun `should strip 2 digit version dev old format 1`() {
+ assertEquals("1.2", "1.2dev".numericVersionPart())
+ }
+
+ @Test
+ fun `should strip 2 digit version dev old format 2`() {
+ assertEquals("1.2", "1.2dev-a3".numericVersionPart())
+ }
+
+ @Test
+ fun `should strip 3 digit version RC`() {
+ assertEquals("1.2.3", "1.2.3-RC1".numericVersionPart())
+ }
+
+ @Test
+ fun `should strip 4 digit version RC`() {
+ assertEquals("1.2.3.4", "1.2.3.4-RC5".numericVersionPart())
+ }
+
+ @Test
+ fun `should strip even with dot`() {
+ assertEquals("1.2", "1.2.RC5".numericVersionPart())
+ }
+
+
+ @Test
+ fun findVersionMatchesRegularVersion() {
+ val buildGradle = """blabla
+ | android {
+ | aosenuthoae
+ | }
+ | version = "2.2.2"
+ | appName = "Aaoeu"
+ """.trimMargin()
+ val detectedVersion: String? = findVersion(buildGradle)
+ assertEquals("2.2.2", detectedVersion)
+ }
+
+
+ // In case we merge a "x.x.x-dev" into master, don't see it as update.
+ @Test
+ fun `should return null on non-digit versions on master`() {
+ val buildGradle = """blabla
+ | android {
+ | aosenuthoae
+ | }
+ | version = "2.2.2-nefarious-underground-mod"
+ | appName = "Aaoeu"
+ """.trimMargin()
+ val detectedVersion: String? = findVersion(buildGradle)
+ assertEquals(null, detectedVersion)
+ }
+
+ @Test
+ fun findVersionMatchesDoesNotMatchErrorResponse() {
+ val buildGradle = """Balls! No build.gradle here. Move along"""
+ val detectedVersion: String? = findVersion(buildGradle)
+ assertEquals(null, detectedVersion)
+ }
+
+ @Test
+ fun testVersionStrip() {
+ assertEquals("2.2.2", "2.2.2".versionStrip())
+ assertEquals("2.2.2", "2.2.2-dev".versionStrip())
+ assertEquals("2.2.2", "2.2.2dev".versionStrip())
+ assertEquals("2.2.2", """"2.2.2"""".versionStrip())
+ }
+
+ @Test
+ @PrepareForTest(MainApp::class, L::class, SP::class)
+ fun `should find update1`() {
+ prepareMainApp()
+
+ compareWithCurrentVersion(newVersion = "2.2.3", currentVersion = "2.2.1")
+
+ //verify(bus, times(1)).post(any())
+
+ PowerMockito.verifyStatic(SP::class.java, times(1))
+ SP.getLong(eq(R.string.key_last_versionchecker_warning), ArgumentMatchers.anyLong())
+ PowerMockito.verifyStatic(SP::class.java, times(1))
+ SP.putLong(eq(R.string.key_last_versionchecker_warning), ArgumentMatchers.anyLong())
+ PowerMockito.verifyNoMoreInteractions(SP::class.java)
+
+ }
+
+ @Test
+ @PrepareForTest(MainApp::class, L::class, SP::class)
+ fun `should find update2`() {
+ prepareMainApp()
+
+ compareWithCurrentVersion(newVersion = "2.2.3", currentVersion = "2.2.1-dev")
+
+ //verify(bus, times(1)).post(any())
+
+ PowerMockito.verifyStatic(SP::class.java, times(1))
+ SP.getLong(eq(R.string.key_last_versionchecker_warning), ArgumentMatchers.anyLong())
+ PowerMockito.verifyStatic(SP::class.java, times(1))
+ SP.putLong(eq(R.string.key_last_versionchecker_warning), ArgumentMatchers.anyLong())
+ PowerMockito.verifyNoMoreInteractions(SP::class.java)
+ }
+
+ @Test
+ @PrepareForTest(MainApp::class, L::class, SP::class)
+ fun `should find update3`() {
+ prepareMainApp()
+
+ compareWithCurrentVersion(newVersion = "2.2.3", currentVersion = "2.1")
+
+ //verify(bus, times(1)).post(any())
+
+ PowerMockito.verifyStatic(SP::class.java, times(1))
+ SP.getLong(eq(R.string.key_last_versionchecker_warning), ArgumentMatchers.anyLong())
+ PowerMockito.verifyStatic(SP::class.java, times(1))
+ SP.putLong(eq(R.string.key_last_versionchecker_warning), ArgumentMatchers.anyLong())
+ PowerMockito.verifyNoMoreInteractions(SP::class.java)
+ }
+
+ @Test
+ @PrepareForTest(MainApp::class, L::class, SP::class)
+ fun `should find update4`() {
+ prepareMainApp()
+
+ compareWithCurrentVersion(newVersion = "2.2", currentVersion = "2.1.1")
+
+ //verify(bus, times(1)).post(any())
+
+ PowerMockito.verifyStatic(SP::class.java, times(1))
+ SP.getLong(eq(R.string.key_last_versionchecker_warning), ArgumentMatchers.anyLong())
+ PowerMockito.verifyStatic(SP::class.java, times(1))
+ SP.putLong(eq(R.string.key_last_versionchecker_warning), ArgumentMatchers.anyLong())
+ PowerMockito.verifyNoMoreInteractions(SP::class.java)
+ }
+
+ @Test
+ @PrepareForTest(MainApp::class, L::class, SP::class)
+ fun `should find update5`() {
+ prepareMainApp()
+ compareWithCurrentVersion(newVersion = "2.2.1", currentVersion = "2.2-dev")
+
+ //verify(bus, times(1)).post(any())
+
+ PowerMockito.verifyStatic(SP::class.java, times(1))
+ SP.getLong(eq(R.string.key_last_versionchecker_warning), ArgumentMatchers.anyLong())
+ PowerMockito.verifyStatic(SP::class.java, times(1))
+ SP.putLong(eq(R.string.key_last_versionchecker_warning), ArgumentMatchers.anyLong())
+ PowerMockito.verifyNoMoreInteractions(SP::class.java)
+ }
+
+ @Test
+ @PrepareForTest(MainApp::class, L::class, SP::class)
+ fun `should find update6`() {
+ prepareMainApp()
+ compareWithCurrentVersion(newVersion = "2.2.1", currentVersion = "2.2dev")
+
+ //verify(bus, times(1)).post(any())
+
+ PowerMockito.verifyStatic(SP::class.java, times(1))
+ SP.getLong(eq(R.string.key_last_versionchecker_warning), ArgumentMatchers.anyLong())
+ PowerMockito.verifyStatic(SP::class.java, times(1))
+ SP.putLong(eq(R.string.key_last_versionchecker_warning), ArgumentMatchers.anyLong())
+ PowerMockito.verifyNoMoreInteractions(SP::class.java)
+ }
+
+ @Test
+ @PrepareForTest(MainApp::class, L::class, SP::class)
+ fun `should not find update on fourth version digit`() {
+ prepareMainApp()
+ compareWithCurrentVersion(newVersion = "2.5.0", currentVersion = "2.5.0.1")
+
+ //verify(bus, times(0)).post(any())
+
+ PowerMockito.verifyStatic(SP::class.java, times(1))
+ SP.putLong(eq(R.string.key_last_time_this_version_detected), ArgumentMatchers.anyLong())
+ PowerMockito.verifyNoMoreInteractions(SP::class.java)
+ }
+
+ @Test
+ @PrepareForTest(MainApp::class, L::class, SP::class)
+ fun `should not find update on personal version with same number` (){
+ prepareMainApp()
+ compareWithCurrentVersion(newVersion = "2.5.0", currentVersion = "2.5.0-myversion")
+
+ //verify(bus, times(0)).post(any())
+
+ PowerMockito.verifyStatic(SP::class.java, times(1))
+ SP.putLong(eq(R.string.key_last_time_this_version_detected), ArgumentMatchers.anyLong())
+ PowerMockito.verifyNoMoreInteractions(SP::class.java)
+ }
+
+
+ @Test
+ @PrepareForTest(MainApp::class, L::class, SP::class)
+ fun `find same version`() {
+ val buildGradle = """blabla
+ | android {
+ | aosenuthoae
+ | }
+ | version = "2.2.2"
+ | appName = "Aaoeu"
+ """.trimMargin()
+ prepareMainApp()
+ compareWithCurrentVersion(findVersion(buildGradle), currentVersion = "2.2.2")
+
+ //verify(bus, times(0)).post(any())
+
+ PowerMockito.verifyStatic(SP::class.java, times(1))
+ SP.putLong(eq(R.string.key_last_time_this_version_detected), ArgumentMatchers.anyLong())
+ PowerMockito.verifyNoMoreInteractions(SP::class.java)
+ }
+
+ @Test
+ @PrepareForTest(MainApp::class, L::class, SP::class)
+ fun `find higher version`() {
+ val buildGradle = """blabla
+ | android {
+ | aosenuthoae
+ | }
+ | version = "3.0.0"
+ | appName = "Aaoeu"
+ """.trimMargin()
+ prepareMainApp()
+ compareWithCurrentVersion(findVersion(buildGradle), currentVersion = "2.2.2")
+
+ PowerMockito.verifyStatic(SP::class.java, times(1))
+ SP.getLong(eq(R.string.key_last_versionchecker_warning), ArgumentMatchers.anyLong())
+ PowerMockito.verifyStatic(SP::class.java, times(1))
+ SP.putLong(eq(R.string.key_last_versionchecker_warning), ArgumentMatchers.anyLong())
+ PowerMockito.verifyNoMoreInteractions(SP::class.java)
+ }
+
+
+ @Test
+ @PrepareForTest(MainApp::class, L::class, SP::class)
+ fun `find higher version with longer number`() {
+ val buildGradle = """blabla
+ | android {
+ | aosenuthoae
+ | }
+ | version = "3.0"
+ | appName = "Aaoeu"
+ """.trimMargin()
+ prepareMainApp()
+ compareWithCurrentVersion(findVersion(buildGradle), currentVersion = "2.2.2")
+
+ PowerMockito.verifyStatic(SP::class.java, times(1))
+ SP.getLong(eq(R.string.key_last_versionchecker_warning), ArgumentMatchers.anyLong())
+ PowerMockito.verifyStatic(SP::class.java, times(1))
+ SP.putLong(eq(R.string.key_last_versionchecker_warning), ArgumentMatchers.anyLong())
+ PowerMockito.verifyNoMoreInteractions(SP::class.java)
+ }
+
+ @Test
+ @PrepareForTest(MainApp::class, L::class, SP::class)
+ fun `find higher version after RC`() {
+ val buildGradle = """blabla
+ | android {
+ | aosenuthoae
+ | }
+ | version = "3.0.0"
+ | appName = "Aaoeu"
+ """.trimMargin()
+ prepareMainApp()
+ compareWithCurrentVersion(findVersion(buildGradle), currentVersion = "3.0-RC04")
+
+ PowerMockito.verifyStatic(SP::class.java, times(1))
+ SP.getLong(eq(R.string.key_last_versionchecker_warning), ArgumentMatchers.anyLong())
+ PowerMockito.verifyStatic(SP::class.java, times(1))
+ SP.putLong(eq(R.string.key_last_versionchecker_warning), ArgumentMatchers.anyLong())
+ PowerMockito.verifyNoMoreInteractions(SP::class.java)
+ }
+
+ @Test
+ @PrepareForTest(MainApp::class, L::class, SP::class)
+ fun `find higher version after RC 2 - typo`() {
+ val buildGradle = """blabla
+ | android {
+ | aosenuthoae
+ | }
+ | version = "3.0.0"
+ | appName = "Aaoeu"
+ """.trimMargin()
+ prepareMainApp()
+ compareWithCurrentVersion(findVersion(buildGradle), currentVersion = "3.0RC04")
+
+ PowerMockito.verifyStatic(SP::class.java, times(1))
+ SP.getLong(eq(R.string.key_last_versionchecker_warning), ArgumentMatchers.anyLong())
+ PowerMockito.verifyStatic(SP::class.java, times(1))
+ SP.putLong(eq(R.string.key_last_versionchecker_warning), ArgumentMatchers.anyLong())
+ PowerMockito.verifyNoMoreInteractions(SP::class.java)
+ }
+
+ @Test
+ @PrepareForTest(MainApp::class, L::class, SP::class)
+ fun `find higher version after RC 3 - typo`() {
+ val buildGradle = """blabla
+ | android {
+ | aosenuthoae
+ | }
+ | version = "3.0.0"
+ | appName = "Aaoeu"
+ """.trimMargin()
+ prepareMainApp()
+ compareWithCurrentVersion(findVersion(buildGradle), currentVersion = "3.RC04")
+
+ PowerMockito.verifyStatic(SP::class.java, times(1))
+ SP.getLong(eq(R.string.key_last_versionchecker_warning), ArgumentMatchers.anyLong())
+ PowerMockito.verifyStatic(SP::class.java, times(1))
+ SP.putLong(eq(R.string.key_last_versionchecker_warning), ArgumentMatchers.anyLong())
+ PowerMockito.verifyNoMoreInteractions(SP::class.java)
+ }
+
+ @Test
+ @PrepareForTest(MainApp::class, L::class, SP::class)
+ fun `find higher version after RC 4 - typo`() {
+ val buildGradle = """blabla
+ | android {
+ | aosenuthoae
+ | }
+ | version = "3.0.0"
+ | appName = "Aaoeu"
+ """.trimMargin()
+ prepareMainApp()
+ compareWithCurrentVersion(findVersion(buildGradle), currentVersion = "3.0.RC04")
+
+ PowerMockito.verifyStatic(SP::class.java, times(1))
+ SP.getLong(eq(R.string.key_last_versionchecker_warning), ArgumentMatchers.anyLong())
+ PowerMockito.verifyStatic(SP::class.java, times(1))
+ SP.putLong(eq(R.string.key_last_versionchecker_warning), ArgumentMatchers.anyLong())
+ PowerMockito.verifyNoMoreInteractions(SP::class.java)
+ }
+
+ @Test
+ @PrepareForTest(MainApp::class, L::class, SP::class)
+ fun `find higher version on multi digit numbers`() {
+ val buildGradle = """blabla
+ | android {
+ | aosenuthoae
+ | }
+ | version = "3.7.12"
+ | appName = "Aaoeu"
+ """.trimMargin()
+ prepareMainApp()
+ compareWithCurrentVersion(findVersion(buildGradle), currentVersion = "3.7.9")
+
+ PowerMockito.verifyStatic(SP::class.java, times(1))
+ SP.getLong(eq(R.string.key_last_versionchecker_warning), ArgumentMatchers.anyLong())
+ PowerMockito.verifyStatic(SP::class.java, times(1))
+ SP.putLong(eq(R.string.key_last_versionchecker_warning), ArgumentMatchers.anyLong())
+ PowerMockito.verifyNoMoreInteractions(SP::class.java)
+ }
+
+ @Test
+ @PrepareForTest(MainApp::class, L::class, SP::class)
+ fun `don't find higher version on higher but shorter version`() {
+ val buildGradle = """blabla
+ | android {
+ | aosenuthoae
+ | }
+ | version = "2.2.2"
+ | appName = "Aaoeu"
+ """.trimMargin()
+ prepareMainApp()
+ compareWithCurrentVersion(findVersion(buildGradle), currentVersion = "2.3")
+
+ //verify(bus, times(0)).post(any())
+
+ PowerMockito.verifyStatic(SP::class.java, times(1))
+ SP.putLong(eq(R.string.key_last_time_this_version_detected), ArgumentMatchers.anyLong())
+ PowerMockito.verifyNoMoreInteractions(SP::class.java)
+ }
+
+ @Test
+ @PrepareForTest(MainApp::class, L::class, SP::class)
+ fun `don't find higher version if on next RC`() {
+ val buildGradle = """blabla
+ | android {
+ | aosenuthoae
+ | }
+ | version = "2.2.2"
+ | appName = "Aaoeu"
+ """.trimMargin()
+ prepareMainApp()
+ compareWithCurrentVersion(findVersion(buildGradle), currentVersion = "2.3-RC")
+
+ //verify(bus, times(0)).post(any())
+
+ PowerMockito.verifyStatic(SP::class.java, times(1))
+ SP.putLong(eq(R.string.key_last_time_this_version_detected), ArgumentMatchers.anyLong())
+ PowerMockito.verifyNoMoreInteractions(SP::class.java)
+ }
+
+
+
+
+ @Test
+ @PrepareForTest(System::class)
+ fun `set time`() {
+ PowerMockito.spy(System::class.java)
+ PowerMockito.`when`(System.currentTimeMillis()).thenReturn(100L)
+
+ assertEquals(100L, System.currentTimeMillis())
+ }
+
+ private fun prepareMainApp() {
+ PowerMockito.mockStatic(MainApp::class.java)
+ val mainApp = mock(MainApp::class.java)
+ `when`(MainApp.instance()).thenReturn(mainApp)
+ `when`(MainApp.gs(ArgumentMatchers.anyInt())).thenReturn("some dummy string")
+ prepareSP()
+ }
+
+ private fun prepareSP() {
+ PowerMockito.mockStatic(SP::class.java)
+ }
+
+ private fun prepareLogging() {
+ PowerMockito.mockStatic(L::class.java)
+ `when`(L.isEnabled(any())).thenReturn(true)
+ }
+
+}
diff --git a/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/actions/ActionLoopDisableTest.java b/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/actions/ActionLoopDisableTest.java
index 257392ca6e..c0cb9b70a2 100644
--- a/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/actions/ActionLoopDisableTest.java
+++ b/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/actions/ActionLoopDisableTest.java
@@ -65,7 +65,6 @@ public class ActionLoopDisableTest {
public void prepareTest() {
AAPSMocker.mockMainApp();
AAPSMocker.mockApplicationContext();
- AAPSMocker.mockBus();
AAPSMocker.mockSP();
AAPSMocker.mockConfigBuilder();
AAPSMocker.mockCommandQueue();
diff --git a/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/actions/ActionLoopEnableTest.java b/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/actions/ActionLoopEnableTest.java
index c5d9b81f56..d42549d222 100644
--- a/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/actions/ActionLoopEnableTest.java
+++ b/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/actions/ActionLoopEnableTest.java
@@ -65,7 +65,6 @@ public class ActionLoopEnableTest {
public void prepareTest() {
AAPSMocker.mockMainApp();
AAPSMocker.mockApplicationContext();
- AAPSMocker.mockBus();
AAPSMocker.mockSP();
AAPSMocker.mockConfigBuilder();
AAPSMocker.mockCommandQueue();
diff --git a/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/actions/ActionLoopResumeTest.java b/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/actions/ActionLoopResumeTest.java
index 755c56024d..c690681513 100644
--- a/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/actions/ActionLoopResumeTest.java
+++ b/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/actions/ActionLoopResumeTest.java
@@ -63,7 +63,6 @@ public class ActionLoopResumeTest {
AAPSMocker.mockMainApp();
AAPSMocker.mockApplicationContext();
AAPSMocker.mockStrings();
- AAPSMocker.mockBus();
AAPSMocker.mockSP();
AAPSMocker.mockConfigBuilder();
AAPSMocker.mockNSUpload();
diff --git a/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/actions/ActionLoopSuspendTest.java b/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/actions/ActionLoopSuspendTest.java
index 6b7c7f781f..67e22b0d5b 100644
--- a/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/actions/ActionLoopSuspendTest.java
+++ b/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/actions/ActionLoopSuspendTest.java
@@ -80,7 +80,6 @@ public class ActionLoopSuspendTest {
AAPSMocker.mockMainApp();
AAPSMocker.mockApplicationContext();
AAPSMocker.mockStrings();
- AAPSMocker.mockBus();
AAPSMocker.mockSP();
AAPSMocker.mockConfigBuilder();
AAPSMocker.mockNSUpload();
diff --git a/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/actions/ActionNotificationTest.java b/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/actions/ActionNotificationTest.java
index 62447ac717..d1393c6824 100644
--- a/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/actions/ActionNotificationTest.java
+++ b/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/actions/ActionNotificationTest.java
@@ -6,29 +6,17 @@ import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.mockito.Mockito;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;
import info.AAPSMocker;
-import info.nightscout.androidaps.Constants;
import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.R;
-import info.nightscout.androidaps.db.TempTarget;
-import info.nightscout.androidaps.plugins.configBuilder.ProfileFunctions;
-import info.nightscout.androidaps.plugins.general.automation.elements.InputBg;
-import info.nightscout.androidaps.plugins.general.automation.elements.InputDuration;
import info.nightscout.androidaps.plugins.general.automation.elements.InputString;
import info.nightscout.androidaps.plugins.general.nsclient.NSUpload;
-import info.nightscout.androidaps.plugins.general.overview.OverviewPlugin;
-import info.nightscout.androidaps.plugins.treatments.TreatmentsPlugin;
import info.nightscout.androidaps.queue.Callback;
import info.nightscout.androidaps.utils.SP;
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.anyString;
-import static org.mockito.Mockito.when;
-
@RunWith(PowerMockRunner.class)
@PrepareForTest({MainApp.class, SP.class, NSUpload.class})
public class ActionNotificationTest {
@@ -85,7 +73,6 @@ public class ActionNotificationTest {
AAPSMocker.mockMainApp();
AAPSMocker.mockSP();
AAPSMocker.mockStrings();
- AAPSMocker.mockBus();
AAPSMocker.mockNSUpload();
actionNotification = new ActionNotification();
diff --git a/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/actions/ActionProfileSwitchPercentTest.java b/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/actions/ActionProfileSwitchPercentTest.java
index 78a603701e..da1ce78cc7 100644
--- a/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/actions/ActionProfileSwitchPercentTest.java
+++ b/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/actions/ActionProfileSwitchPercentTest.java
@@ -1,7 +1,6 @@
package info.nightscout.androidaps.plugins.general.automation.actions;
import com.google.common.base.Optional;
-import com.squareup.otto.Bus;
import org.junit.Assert;
import org.junit.Before;
@@ -20,7 +19,7 @@ import info.nightscout.androidaps.queue.Callback;
import info.nightscout.androidaps.utils.SP;
@RunWith(PowerMockRunner.class)
-@PrepareForTest({MainApp.class, SP.class, Bus.class, ProfileFunctions.class})
+@PrepareForTest({MainApp.class, SP.class, ProfileFunctions.class})
public class ActionProfileSwitchPercentTest {
private ActionProfileSwitchPercent actionProfileSwitchPercent;
@@ -77,7 +76,6 @@ public class ActionProfileSwitchPercentTest {
public void prepareTest() {
AAPSMocker.mockMainApp();
AAPSMocker.mockSP();
- AAPSMocker.mockBus();
AAPSMocker.mockStrings();
AAPSMocker.mockProfileFunctions();
diff --git a/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/actions/ActionProfileSwitchTest.java b/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/actions/ActionProfileSwitchTest.java
new file mode 100644
index 0000000000..28f0278887
--- /dev/null
+++ b/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/actions/ActionProfileSwitchTest.java
@@ -0,0 +1,119 @@
+package info.nightscout.androidaps.plugins.general.automation.actions;
+
+import com.google.common.base.Optional;
+
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mockito;
+import org.powermock.api.mockito.PowerMockito;
+import org.powermock.core.classloader.annotations.PrepareForTest;
+import org.powermock.modules.junit4.PowerMockRunner;
+
+import info.AAPSMocker;
+import info.SPMocker;
+import info.nightscout.androidaps.MainApp;
+import info.nightscout.androidaps.R;
+import info.nightscout.androidaps.db.ProfileSwitch;
+import info.nightscout.androidaps.plugins.configBuilder.ConfigBuilderPlugin;
+import info.nightscout.androidaps.plugins.configBuilder.ProfileFunctions;
+import info.nightscout.androidaps.plugins.profile.ns.NSProfilePlugin;
+import info.nightscout.androidaps.plugins.treatments.TreatmentsPlugin;
+import info.nightscout.androidaps.queue.Callback;
+import info.nightscout.androidaps.utils.SP;
+
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.ArgumentMatchers.anyString;
+import static org.powermock.api.mockito.PowerMockito.when;
+
+@RunWith(PowerMockRunner.class)
+@PrepareForTest({MainApp.class, SP.class, TreatmentsPlugin.class, ProfileFunctions.class, ConfigBuilderPlugin.class, NSProfilePlugin.class})
+public class ActionProfileSwitchTest {
+ TreatmentsPlugin treatmentsPlugin;
+ ProfileSwitch profileAdded;
+ private ActionProfileSwitch actionProfileSwitch;
+ private String stringJson = "{\"data\":{\"profileToSwitchTo\":\"Test\"},\"type\":\"info.nightscout.androidaps.plugins.general.automation.actions.ActionProfileSwitch\"}";
+
+ @Before
+ public void setUp() {
+ AAPSMocker.mockMainApp();
+ SPMocker.prepareMock();
+ SP.putString("profile", AAPSMocker.getValidProfileStore().getData().toString());
+ AAPSMocker.mockConfigBuilder();
+ AAPSMocker.mockApplicationContext();
+ AAPSMocker.mockStrings();
+ AAPSMocker.mockTreatmentService();
+ AAPSMocker.mockDatabaseHelper();
+ AAPSMocker.mockProfileFunctions();
+
+ treatmentsPlugin = AAPSMocker.mockTreatmentPlugin();
+ NSProfilePlugin profilePlugin = NSProfilePlugin.getPlugin();
+ when(ConfigBuilderPlugin.getPlugin().getActiveProfileInterface())
+ .thenReturn(profilePlugin);
+
+ Mockito.doAnswer(invocation -> {
+ profileAdded = invocation.getArgument(0);
+ return null;
+ }).when(treatmentsPlugin).addToHistoryProfileSwitch(any(ProfileSwitch.class));
+ }
+
+ @Test
+ public void friendlyName() {
+ actionProfileSwitch = new ActionProfileSwitch();
+ Assert.assertEquals(R.string.profilename, actionProfileSwitch.friendlyName());
+ }
+
+ @Test
+ public void shortDescriptionTest() {
+ actionProfileSwitch = new ActionProfileSwitch();
+ actionProfileSwitch.inputProfileName.setValue("Test");
+ when(MainApp.gs(anyInt(), anyString())).thenReturn("Change profile to Test");
+ Assert.assertEquals("Change profile to Test", actionProfileSwitch.shortDescription());
+ }
+
+ @Test
+ public void doAction() {
+ PowerMockito.when(ProfileFunctions.getInstance().getProfileName()).thenReturn("Test");
+
+ actionProfileSwitch = new ActionProfileSwitch();
+ actionProfileSwitch.inputProfileName.setValue("someOtherProfile");
+ actionProfileSwitch.profileName = "someProfile";
+
+ actionProfileSwitch.doAction(new Callback() {
+ @Override
+ public void run() {
+ Assert.assertTrue(result.success);
+ }
+ });
+
+ }
+
+ @Test
+ public void hasDialogTest() {
+ actionProfileSwitch = new ActionProfileSwitch();
+ Assert.assertTrue(actionProfileSwitch.hasDialog());
+ }
+
+ @Test
+ public void toJSONTest() {
+ actionProfileSwitch = new ActionProfileSwitch();
+ actionProfileSwitch.inputProfileName.setValue("Test");
+ Assert.assertEquals(stringJson, actionProfileSwitch.toJSON());
+ }
+
+ @Test
+ public void fromJSONTest() {
+ String data = "{\"profileToSwitchTo\":\"Test\"}";
+ actionProfileSwitch = new ActionProfileSwitch();
+ actionProfileSwitch.fromJSON(data);
+ Assert.assertEquals("Test", actionProfileSwitch.profileName);
+ }
+
+ @Test
+ public void iconTest() {
+ actionProfileSwitch = new ActionProfileSwitch();
+ Assert.assertEquals(Optional.of(R.drawable.icon_actions_profileswitch), actionProfileSwitch.icon());
+ }
+}
\ No newline at end of file
diff --git a/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/actions/ActionSendSMSTest.java b/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/actions/ActionSendSMSTest.java
new file mode 100644
index 0000000000..7254d85192
--- /dev/null
+++ b/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/actions/ActionSendSMSTest.java
@@ -0,0 +1,86 @@
+package info.nightscout.androidaps.plugins.general.automation.actions;
+
+import android.telephony.SmsManager;
+
+import com.google.common.base.Optional;
+
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.powermock.api.mockito.PowerMockito;
+import org.powermock.core.classloader.annotations.PrepareForTest;
+import org.powermock.modules.junit4.PowerMockRunner;
+
+import info.AAPSMocker;
+import info.nightscout.androidaps.MainApp;
+import info.nightscout.androidaps.R;
+import info.nightscout.androidaps.plugins.general.automation.elements.InputString;
+import info.nightscout.androidaps.queue.Callback;
+import info.nightscout.androidaps.utils.SP;
+
+import static org.powermock.api.mockito.PowerMockito.mock;
+import static org.powermock.api.mockito.PowerMockito.mockStatic;
+
+@RunWith(PowerMockRunner.class)
+@PrepareForTest({MainApp.class, SP.class, SmsManager.class})
+public class ActionSendSMSTest {
+ private ActionSendSMS actionSendSMS;
+
+ @Test
+ public void friendlyNameTest() {
+ Assert.assertEquals(R.string.sendsmsactiondescription, actionSendSMS.friendlyName());
+ }
+
+ @Test
+ public void shortDescriptionTest() {
+ actionSendSMS = new ActionSendSMS();
+ Assert.assertEquals(null, actionSendSMS.shortDescription()); // not mocked
+ }
+
+ @Test
+ public void iconTest() {
+ Assert.assertEquals(Optional.of(R.drawable.ic_notifications), actionSendSMS.icon());
+ }
+
+ @Test
+ public void doActionTest() {
+ actionSendSMS.text = new InputString().setValue("Asd");
+ actionSendSMS.doAction(new Callback() {
+ @Override
+ public void run() {
+ Assert.assertTrue(result.success);
+ }
+ });
+ }
+
+ @Test
+ public void hasDialogTest() {
+ Assert.assertTrue(actionSendSMS.hasDialog());
+ }
+
+ @Test
+ public void toJSONTest() {
+ actionSendSMS = new ActionSendSMS();
+ actionSendSMS.text = new InputString().setValue("Asd");
+ Assert.assertEquals("{\"data\":{\"text\":\"Asd\"},\"type\":\"info.nightscout.androidaps.plugins.general.automation.actions.ActionSendSMS\"}", actionSendSMS.toJSON());
+ }
+
+ @Test
+ public void fromJSONTest() {
+ actionSendSMS = new ActionSendSMS();
+ actionSendSMS.fromJSON("{\"text\":\"Asd\"}");
+ Assert.assertEquals("Asd", actionSendSMS.text.getValue());
+ }
+
+ @Before
+ public void prepareTest() {
+ AAPSMocker.mockMainApp();
+ AAPSMocker.mockSP();
+ mockStatic(SmsManager.class);
+ SmsManager smsManager = mock(SmsManager.class);
+ PowerMockito.when(SmsManager.getDefault()).thenReturn(smsManager);
+ PowerMockito.when(SP.getString(R.string.key_smscommunicator_allowednumbers, "")).thenReturn("1234;5678");
+ actionSendSMS = new ActionSendSMS();
+ }
+}
diff --git a/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/actions/ActionStartTempTargetTest.java b/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/actions/ActionStartTempTargetTest.java
index ff2baf6198..ed1141f0a4 100644
--- a/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/actions/ActionStartTempTargetTest.java
+++ b/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/actions/ActionStartTempTargetTest.java
@@ -90,7 +90,6 @@ public class ActionStartTempTargetTest {
AAPSMocker.mockMainApp();
AAPSMocker.mockSP();
AAPSMocker.mockStrings();
- AAPSMocker.mockBus();
AAPSMocker.mockProfileFunctions();
treatmentsPlugin = AAPSMocker.mockTreatmentPlugin();
diff --git a/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/elements/InputBgTest.java b/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/elements/InputBgTest.java
index 8a56a65459..dd2e335e86 100644
--- a/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/elements/InputBgTest.java
+++ b/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/elements/InputBgTest.java
@@ -31,7 +31,6 @@ public class InputBgTest {
@Before
public void prepare() {
AAPSMocker.mockMainApp();
- AAPSMocker.mockBus();
AAPSMocker.mockStrings();
AAPSMocker.mockProfileFunctions();
}
diff --git a/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/elements/InputProfileNameTest.java b/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/elements/InputProfileNameTest.java
new file mode 100644
index 0000000000..7f257aa883
--- /dev/null
+++ b/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/elements/InputProfileNameTest.java
@@ -0,0 +1,29 @@
+package info.nightscout.androidaps.plugins.general.automation.elements;
+
+import org.junit.Assert;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.powermock.core.classloader.annotations.PrepareForTest;
+import org.powermock.modules.junit4.PowerMockRunner;
+
+import info.nightscout.androidaps.MainApp;
+import info.nightscout.androidaps.plugins.configBuilder.ProfileFunctions;
+import info.nightscout.androidaps.plugins.treatments.TreatmentsPlugin;
+import info.nightscout.androidaps.utils.SP;
+
+import static org.junit.Assert.*;
+
+@RunWith(PowerMockRunner.class)
+@PrepareForTest({MainApp.class, SP.class, TreatmentsPlugin.class, ProfileFunctions.class})
+public class InputProfileNameTest {
+ String profileName = "Test";
+ InputProfileName inputProfileName = new InputProfileName(profileName);
+
+ @Test
+ public void getSetValue() {
+ inputProfileName = new InputProfileName("Test");
+ Assert.assertEquals("Test", inputProfileName.getValue());
+ inputProfileName.setValue("Test2");
+ Assert.assertEquals("Test2", inputProfileName.getValue());
+ }
+}
\ No newline at end of file
diff --git a/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/elements/InputTempTargetTest.java b/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/elements/InputTempTargetTest.java
index a9a0a4c91f..008b7a6743 100644
--- a/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/elements/InputTempTargetTest.java
+++ b/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/elements/InputTempTargetTest.java
@@ -31,7 +31,6 @@ public class InputTempTargetTest {
@Before
public void prepare() {
AAPSMocker.mockMainApp();
- AAPSMocker.mockBus();
AAPSMocker.mockStrings();
AAPSMocker.mockProfileFunctions();
}
diff --git a/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/triggers/TriggerAutosensValueTest.java b/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/triggers/TriggerAutosensValueTest.java
index ab1851aefc..dd2a4a533e 100644
--- a/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/triggers/TriggerAutosensValueTest.java
+++ b/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/triggers/TriggerAutosensValueTest.java
@@ -1,7 +1,6 @@
package info.nightscout.androidaps.plugins.general.automation.triggers;
import com.google.common.base.Optional;
-import com.squareup.otto.Bus;
import org.json.JSONException;
import org.json.JSONObject;
@@ -28,7 +27,7 @@ import static org.mockito.ArgumentMatchers.anyDouble;
import static org.powermock.api.mockito.PowerMockito.when;
@RunWith(PowerMockRunner.class)
-@PrepareForTest({MainApp.class, Bus.class, ProfileFunctions.class, DateUtil.class, IobCobCalculatorPlugin.class, SP.class})
+@PrepareForTest({MainApp.class, ProfileFunctions.class, DateUtil.class, IobCobCalculatorPlugin.class, SP.class})
public class TriggerAutosensValueTest {
long now = 1514766900000L;
@@ -115,7 +114,6 @@ public class TriggerAutosensValueTest {
@Before
public void mock() {
AAPSMocker.mockMainApp();
- AAPSMocker.mockBus();
AAPSMocker.mockIobCobCalculatorPlugin();
AAPSMocker.mockProfileFunctions();
AAPSMocker.mockSP();
diff --git a/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/triggers/TriggerBgTest.java b/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/triggers/TriggerBgTest.java
index 002ac70488..a090058cd3 100644
--- a/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/triggers/TriggerBgTest.java
+++ b/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/triggers/TriggerBgTest.java
@@ -1,7 +1,6 @@
package info.nightscout.androidaps.plugins.general.automation.triggers;
import com.google.common.base.Optional;
-import com.squareup.otto.Bus;
import org.json.JSONException;
import org.json.JSONObject;
@@ -30,7 +29,7 @@ import info.nightscout.androidaps.utils.DateUtil;
import static org.powermock.api.mockito.PowerMockito.when;
@RunWith(PowerMockRunner.class)
-@PrepareForTest({MainApp.class, Bus.class, ProfileFunctions.class, DateUtil.class, IobCobCalculatorPlugin.class})
+@PrepareForTest({MainApp.class, ProfileFunctions.class, DateUtil.class, IobCobCalculatorPlugin.class})
public class TriggerBgTest {
long now = 1514766900000L;
@@ -112,7 +111,6 @@ public class TriggerBgTest {
@Before
public void mock() {
AAPSMocker.mockMainApp();
- AAPSMocker.mockBus();
AAPSMocker.mockIobCobCalculatorPlugin();
AAPSMocker.mockProfileFunctions();
diff --git a/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/triggers/TriggerBolusAgoTest.java b/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/triggers/TriggerBolusAgoTest.java
index b4965eb1d1..1d3a45a05e 100644
--- a/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/triggers/TriggerBolusAgoTest.java
+++ b/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/triggers/TriggerBolusAgoTest.java
@@ -1,7 +1,6 @@
package info.nightscout.androidaps.plugins.general.automation.triggers;
import com.google.common.base.Optional;
-import com.squareup.otto.Bus;
import org.json.JSONException;
import org.json.JSONObject;
@@ -25,7 +24,7 @@ import static org.mockito.ArgumentMatchers.anyDouble;
import static org.powermock.api.mockito.PowerMockito.when;
@RunWith(PowerMockRunner.class)
-@PrepareForTest({MainApp.class, Bus.class, ProfileFunctions.class, DateUtil.class, TreatmentsPlugin.class})
+@PrepareForTest({MainApp.class, ProfileFunctions.class, DateUtil.class, TreatmentsPlugin.class})
public class TriggerBolusAgoTest {
long now = 1514766900000L;
@@ -109,7 +108,6 @@ public class TriggerBolusAgoTest {
@Before
public void mock() {
AAPSMocker.mockMainApp();
- AAPSMocker.mockBus();
AAPSMocker.mockProfileFunctions();
PowerMockito.mockStatic(DateUtil.class);
AAPSMocker.mockTreatmentPlugin();
diff --git a/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/triggers/TriggerCOBTest.java b/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/triggers/TriggerCOBTest.java
index 1681f00356..725cc6cfd5 100644
--- a/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/triggers/TriggerCOBTest.java
+++ b/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/triggers/TriggerCOBTest.java
@@ -1,7 +1,6 @@
package info.nightscout.androidaps.plugins.general.automation.triggers;
import com.google.common.base.Optional;
-import com.squareup.otto.Bus;
import org.json.JSONException;
import org.json.JSONObject;
@@ -16,8 +15,6 @@ import org.powermock.modules.junit4.PowerMockRunner;
import info.AAPSMocker;
import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.R;
-import info.nightscout.androidaps.data.IobTotal;
-import info.nightscout.androidaps.data.Profile;
import info.nightscout.androidaps.logging.L;
import info.nightscout.androidaps.plugins.configBuilder.ProfileFunctions;
import info.nightscout.androidaps.plugins.general.automation.elements.Comparator;
@@ -27,12 +24,10 @@ import info.nightscout.androidaps.utils.DateUtil;
import info.nightscout.androidaps.utils.SP;
import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.anyLong;
-import static org.powermock.api.mockito.PowerMockito.verifyNew;
import static org.powermock.api.mockito.PowerMockito.when;
@RunWith(PowerMockRunner.class)
-@PrepareForTest({MainApp.class, Bus.class, ProfileFunctions.class, DateUtil.class, IobCobCalculatorPlugin.class, SP.class, L.class})
+@PrepareForTest({MainApp.class, ProfileFunctions.class, DateUtil.class, IobCobCalculatorPlugin.class, SP.class, L.class})
public class TriggerCOBTest {
long now = 1514766900000L;
@@ -104,7 +99,6 @@ public class TriggerCOBTest {
@Before
public void mock() {
AAPSMocker.mockMainApp();
- AAPSMocker.mockBus();
iobCobCalculatorPlugin = AAPSMocker.mockIobCobCalculatorPlugin();
AAPSMocker.mockProfileFunctions();
AAPSMocker.mockSP();
diff --git a/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/triggers/TriggerDeltaTest.java b/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/triggers/TriggerDeltaTest.java
index 722b6f1643..c09af0f5b1 100644
--- a/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/triggers/TriggerDeltaTest.java
+++ b/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/triggers/TriggerDeltaTest.java
@@ -1,7 +1,6 @@
package info.nightscout.androidaps.plugins.general.automation.triggers;
import com.google.common.base.Optional;
-import com.squareup.otto.Bus;
import org.json.JSONException;
import org.json.JSONObject;
@@ -32,7 +31,7 @@ import info.nightscout.androidaps.utils.DateUtil;
import static org.powermock.api.mockito.PowerMockito.when;
@RunWith(PowerMockRunner.class)
-@PrepareForTest({MainApp.class, Bus.class, ProfileFunctions.class, DateUtil.class, IobCobCalculatorPlugin.class, GlucoseStatus.class})
+@PrepareForTest({MainApp.class, ProfileFunctions.class, DateUtil.class, IobCobCalculatorPlugin.class, GlucoseStatus.class})
public class TriggerDeltaTest {
long now = 1514766900000L;
@@ -122,7 +121,6 @@ public class TriggerDeltaTest {
@Before
public void mock() {
AAPSMocker.mockMainApp();
- AAPSMocker.mockBus();
AAPSMocker.mockIobCobCalculatorPlugin();
AAPSMocker.mockProfileFunctions();
AAPSMocker.mockApplicationContext();
diff --git a/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/triggers/TriggerIobTest.java b/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/triggers/TriggerIobTest.java
index f2deee54a3..db39c05d2c 100644
--- a/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/triggers/TriggerIobTest.java
+++ b/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/triggers/TriggerIobTest.java
@@ -1,7 +1,6 @@
package info.nightscout.androidaps.plugins.general.automation.triggers;
import com.google.common.base.Optional;
-import com.squareup.otto.Bus;
import org.json.JSONException;
import org.json.JSONObject;
@@ -28,7 +27,7 @@ import static org.mockito.ArgumentMatchers.anyLong;
import static org.powermock.api.mockito.PowerMockito.when;
@RunWith(PowerMockRunner.class)
-@PrepareForTest({MainApp.class, Bus.class, ProfileFunctions.class, DateUtil.class, IobCobCalculatorPlugin.class})
+@PrepareForTest({MainApp.class, ProfileFunctions.class, DateUtil.class, IobCobCalculatorPlugin.class})
public class TriggerIobTest {
long now = 1514766900000L;
@@ -103,7 +102,6 @@ public class TriggerIobTest {
@Before
public void mock() {
AAPSMocker.mockMainApp();
- AAPSMocker.mockBus();
iobCobCalculatorPlugin = AAPSMocker.mockIobCobCalculatorPlugin();
AAPSMocker.mockProfileFunctions();
diff --git a/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/triggers/TriggerLocationTest.java b/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/triggers/TriggerLocationTest.java
index 3e9a566615..9e1f713339 100644
--- a/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/triggers/TriggerLocationTest.java
+++ b/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/triggers/TriggerLocationTest.java
@@ -3,7 +3,6 @@ package info.nightscout.androidaps.plugins.general.automation.triggers;
import android.location.Location;
import com.google.common.base.Optional;
-import com.squareup.otto.Bus;
import org.json.JSONException;
import org.json.JSONObject;
@@ -26,7 +25,7 @@ import info.nightscout.androidaps.utils.DateUtil;
import static org.powermock.api.mockito.PowerMockito.when;
@RunWith(PowerMockRunner.class)
-@PrepareForTest({MainApp.class, Bus.class, ProfileFunctions.class, DateUtil.class, LocationService.class})
+@PrepareForTest({MainApp.class, ProfileFunctions.class, DateUtil.class, LocationService.class})
public class TriggerLocationTest {
@@ -35,7 +34,6 @@ public class TriggerLocationTest {
@Before
public void mock() {
AAPSMocker.mockMainApp();
- AAPSMocker.mockBus();
AAPSMocker.mockApplicationContext();
PowerMockito.mockStatic(DateUtil.class);
diff --git a/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/triggers/TriggerProfilePercentTest.java b/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/triggers/TriggerProfilePercentTest.java
index 9aea88e141..4b83495937 100644
--- a/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/triggers/TriggerProfilePercentTest.java
+++ b/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/triggers/TriggerProfilePercentTest.java
@@ -1,7 +1,6 @@
package info.nightscout.androidaps.plugins.general.automation.triggers;
import com.google.common.base.Optional;
-import com.squareup.otto.Bus;
import org.json.JSONException;
import org.json.JSONObject;
@@ -24,7 +23,7 @@ import info.nightscout.androidaps.utils.DateUtil;
import static org.powermock.api.mockito.PowerMockito.when;
@RunWith(PowerMockRunner.class)
-@PrepareForTest({MainApp.class, Bus.class, ProfileFunctions.class, DateUtil.class, L.class})
+@PrepareForTest({MainApp.class, ProfileFunctions.class, DateUtil.class, L.class})
public class TriggerProfilePercentTest {
private long now = 1514766900000L;
@@ -102,7 +101,6 @@ public class TriggerProfilePercentTest {
@Before
public void mock() {
AAPSMocker.mockMainApp();
- AAPSMocker.mockBus();
AAPSMocker.mockProfileFunctions();
AAPSMocker.mockL();
diff --git a/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/triggers/TriggerPumpLastConnectionTest.java b/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/triggers/TriggerPumpLastConnectionTest.java
new file mode 100644
index 0000000000..9ba61af960
--- /dev/null
+++ b/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/triggers/TriggerPumpLastConnectionTest.java
@@ -0,0 +1,110 @@
+package info.nightscout.androidaps.plugins.general.automation.triggers;
+
+import com.google.common.base.Optional;
+
+import org.json.JSONException;
+import org.json.JSONObject;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.powermock.api.mockito.PowerMockito;
+import org.powermock.core.classloader.annotations.PrepareForTest;
+import org.powermock.modules.junit4.PowerMockRunner;
+
+import info.AAPSMocker;
+import info.nightscout.androidaps.MainApp;
+import info.nightscout.androidaps.R;
+import info.nightscout.androidaps.plugins.configBuilder.ConfigBuilderPlugin;
+import info.nightscout.androidaps.plugins.configBuilder.ProfileFunctions;
+import info.nightscout.androidaps.plugins.general.automation.elements.Comparator;
+import info.nightscout.androidaps.plugins.pump.virtual.VirtualPumpPlugin;
+import info.nightscout.androidaps.plugins.treatments.TreatmentsPlugin;
+import info.nightscout.androidaps.utils.DateUtil;
+
+import static org.powermock.api.mockito.PowerMockito.when;
+
+@RunWith(PowerMockRunner.class)
+@PrepareForTest({MainApp.class, ProfileFunctions.class, DateUtil.class, TreatmentsPlugin.class, ConfigBuilderPlugin.class, System.class})
+public class TriggerPumpLastConnectionTest {
+
+ long now = 1514766900000L;
+
+ @Test
+ public void shouldRunTest() {
+// System.currentTimeMillis() is always 0
+// and so is every last connection time
+ VirtualPumpPlugin virtualPumpPlugin = VirtualPumpPlugin.getPlugin();
+ when(ConfigBuilderPlugin.getPlugin().getActivePump()).thenReturn(virtualPumpPlugin);
+ Assert.assertEquals(0L, virtualPumpPlugin.lastDataTime());
+ TriggerPumpLastConnection t = new TriggerPumpLastConnection().setValue(110).comparator(Comparator.Compare.IS_EQUAL).lastRun(now - 1);
+ Assert.assertFalse(t.shouldRun());
+ when(DateUtil.now()).thenReturn(now + (10*60*1000)); // set current time to now + 10 min
+ t = new TriggerPumpLastConnection().setValue(110).comparator(Comparator.Compare.IS_EQUAL);
+ Assert.assertEquals(110, t.getValue(), 0.01d);
+ Assert.assertEquals(Comparator.Compare.IS_EQUAL, t.getComparator().getValue());
+ Assert.assertFalse(t.shouldRun());
+ t = new TriggerPumpLastConnection().setValue(10).comparator(Comparator.Compare.IS_EQUAL);
+ Assert.assertEquals(10, t.getValue(), 0.01d);
+ Assert.assertFalse(t.shouldRun()); // 0 == 10 -> FALSE
+ t = new TriggerPumpLastConnection().setValue(5).comparator(Comparator.Compare.IS_EQUAL_OR_GREATER);
+ Assert.assertTrue(t.shouldRun()); // 5 => 0 -> TRUE
+ t = new TriggerPumpLastConnection().setValue(310).comparator(Comparator.Compare.IS_EQUAL_OR_LESSER);
+ Assert.assertFalse(t.shouldRun()); // 310 <= 0 -> FALSE
+ t = new TriggerPumpLastConnection().setValue(420).comparator(Comparator.Compare.IS_EQUAL);
+ Assert.assertFalse(t.shouldRun()); // 420 == 0 -> FALSE
+ }
+
+ @Test
+ public void copyConstructorTest() {
+ TriggerPumpLastConnection t = new TriggerPumpLastConnection().setValue(213).comparator(Comparator.Compare.IS_EQUAL_OR_LESSER);
+ TriggerPumpLastConnection t1 = (TriggerPumpLastConnection) t.duplicate();
+ Assert.assertEquals(213, t1.getValue(), 0.01d);
+ Assert.assertEquals(Comparator.Compare.IS_EQUAL_OR_LESSER, t.getComparator().getValue());
+ }
+
+ @Test
+ public void executeTest() {
+ TriggerPumpLastConnection t = new TriggerPumpLastConnection().setValue(213).comparator(Comparator.Compare.IS_EQUAL_OR_LESSER);
+ t.executed(1);
+ Assert.assertEquals(1l, t.getLastRun());
+ }
+
+ String LBJson = "{\"data\":{\"comparator\":\"IS_EQUAL\",\"lastRun\":0,\"minutesAgo\":410},\"type\":\"info.nightscout.androidaps.plugins.general.automation.triggers.TriggerPumpLastConnection\"}";
+
+ @Test
+ public void toJSONTest() {
+ TriggerPumpLastConnection t = new TriggerPumpLastConnection().setValue(410).comparator(Comparator.Compare.IS_EQUAL);
+ Assert.assertEquals(LBJson, t.toJSON());
+ }
+
+ @Test
+ public void fromJSONTest() throws JSONException {
+ TriggerPumpLastConnection t = new TriggerPumpLastConnection().setValue(410).comparator(Comparator.Compare.IS_EQUAL);
+
+ TriggerPumpLastConnection t2 = (TriggerPumpLastConnection) Trigger.instantiate(new JSONObject(t.toJSON()));
+ Assert.assertEquals(Comparator.Compare.IS_EQUAL, t2.getComparator().getValue());
+ Assert.assertEquals(410, t2.getValue(), 0.01d);
+ }
+
+ @Test
+ public void iconTest() {
+ Assert.assertEquals(Optional.of(R.drawable.remove), new TriggerPumpLastConnection().icon());
+ }
+
+ @Test
+ public void friendlyNameTest() {
+ Assert.assertEquals(R.string.automation_trigger_pump_last_connection_label, new TriggerPumpLastConnection().friendlyName());
+ }
+
+
+ @Before
+ public void mock() {
+ AAPSMocker.mockMainApp();
+ AAPSMocker.mockConfigBuilder();
+ PowerMockito.mockStatic(DateUtil.class);
+ when(DateUtil.now()).thenReturn(now);
+
+ }
+
+}
diff --git a/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/triggers/TriggerRecurringTimeTest.java b/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/triggers/TriggerRecurringTimeTest.java
index 21c69da80c..c9b463dfd0 100644
--- a/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/triggers/TriggerRecurringTimeTest.java
+++ b/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/triggers/TriggerRecurringTimeTest.java
@@ -1,7 +1,5 @@
package info.nightscout.androidaps.plugins.general.automation.triggers;
-import com.squareup.otto.Bus;
-
import org.json.JSONException;
import org.json.JSONObject;
import org.junit.Assert;
@@ -22,7 +20,7 @@ import info.nightscout.androidaps.utils.T;
import static org.powermock.api.mockito.PowerMockito.when;
@RunWith(PowerMockRunner.class)
-@PrepareForTest({MainApp.class, Bus.class, DateUtil.class, GregorianCalendar.class})
+@PrepareForTest({MainApp.class, DateUtil.class, GregorianCalendar.class})
public class TriggerRecurringTimeTest {
long now = 1514766900000L;
@@ -65,7 +63,6 @@ public class TriggerRecurringTimeTest {
@Before
public void mock() {
AAPSMocker.mockMainApp();
- AAPSMocker.mockBus();
PowerMockito.mockStatic(DateUtil.class);
when(DateUtil.now()).thenReturn(now);
diff --git a/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/triggers/TriggerTempTargetTest.java b/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/triggers/TriggerTempTargetTest.java
index 7e42d6ba48..03c7e5cda2 100644
--- a/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/triggers/TriggerTempTargetTest.java
+++ b/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/triggers/TriggerTempTargetTest.java
@@ -1,7 +1,6 @@
package info.nightscout.androidaps.plugins.general.automation.triggers;
import com.google.common.base.Optional;
-import com.squareup.otto.Bus;
import org.json.JSONException;
import org.json.JSONObject;
@@ -22,11 +21,10 @@ import info.nightscout.androidaps.plugins.general.automation.elements.Comparator
import info.nightscout.androidaps.plugins.treatments.TreatmentsPlugin;
import info.nightscout.androidaps.utils.DateUtil;
-import static org.mockito.ArgumentMatchers.any;
import static org.powermock.api.mockito.PowerMockito.when;
@RunWith(PowerMockRunner.class)
-@PrepareForTest({MainApp.class, Bus.class, ProfileFunctions.class, DateUtil.class, TreatmentsPlugin.class})
+@PrepareForTest({MainApp.class, ProfileFunctions.class, DateUtil.class, TreatmentsPlugin.class})
public class TriggerTempTargetTest {
TreatmentsPlugin treatmentsPlugin;
@@ -86,7 +84,6 @@ public class TriggerTempTargetTest {
@Before
public void mock() {
AAPSMocker.mockMainApp();
- AAPSMocker.mockBus();
treatmentsPlugin = AAPSMocker.mockTreatmentPlugin();
PowerMockito.mockStatic(DateUtil.class);
diff --git a/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/triggers/TriggerTimeRangeTest.java b/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/triggers/TriggerTimeRangeTest.java
new file mode 100644
index 0000000000..6b36cc1fd3
--- /dev/null
+++ b/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/triggers/TriggerTimeRangeTest.java
@@ -0,0 +1,107 @@
+package info.nightscout.androidaps.plugins.general.automation.triggers;
+
+import com.google.common.base.Optional;
+
+import org.json.JSONException;
+import org.json.JSONObject;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.powermock.api.mockito.PowerMockito;
+import org.powermock.core.classloader.annotations.PrepareForTest;
+import org.powermock.modules.junit4.PowerMockRunner;
+
+import java.util.GregorianCalendar;
+
+import info.AAPSMocker;
+import info.nightscout.androidaps.MainApp;
+import info.nightscout.androidaps.R;
+import info.nightscout.androidaps.utils.DateUtil;
+
+import static org.powermock.api.mockito.PowerMockito.when;
+
+@RunWith(PowerMockRunner.class)
+@PrepareForTest({MainApp.class, DateUtil.class, GregorianCalendar.class})
+public class TriggerTimeRangeTest {
+
+ int now = 754;
+ int timeZoneOffset = (int) (DateUtil.getTimeZoneOffsetMs() / 60000);
+
+ String timeJson = "{\"data\":{\"lastRun\":0,\"start\":753,\"end\":784},\"type\":\"info.nightscout.androidaps.plugins.general.automation.triggers.TriggerTimeRange\"}";
+
+ @Test
+ public void shouldRunTest() {
+
+ TriggerTimeRange t;
+ now = now + timeZoneOffset;
+ // range starts 1 min in the future
+ t = new TriggerTimeRange().period(now + 1 - timeZoneOffset, now + 30 - timeZoneOffset);
+ Assert.assertEquals(false, t.shouldRun());
+
+ // range starts 30 min back
+ t = new TriggerTimeRange().period(now - 30 - timeZoneOffset, now + 30 - timeZoneOffset);
+ Assert.assertEquals(true, t.shouldRun());
+
+ // Period is all day long
+ t = new TriggerTimeRange().period(1, 1440);
+ Assert.assertEquals(true, t.shouldRun());
+
+ // already run
+ t = new TriggerTimeRange().lastRun((long) (now - 1)*60000);
+ Assert.assertFalse(t.shouldRun());
+
+ }
+
+ @Test
+ public void toJSONTest() {
+ TriggerTimeRange t = new TriggerTimeRange().period(now - 1 - timeZoneOffset , now + 30 - timeZoneOffset);
+ Assert.assertEquals(timeJson, t.toJSON());
+ }
+
+ @Test
+ public void fromJSONTest() throws JSONException {
+ TriggerTimeRange t = new TriggerTimeRange().period(120 , 180);
+
+ TriggerTimeRange t2 = (TriggerTimeRange) Trigger.instantiate(new JSONObject(t.toJSON()));
+ Assert.assertEquals(timeZoneOffset + now - 1, t2.period(753 , 360).getStart());
+ Assert.assertEquals(timeZoneOffset + 360, t2.period(753 , 360).getEnd());
+ }
+
+ @Test
+ public void copyConstructorTest() {
+ TriggerTimeRange t = new TriggerTimeRange();
+ t.period(now, now + 30);
+
+ TriggerTimeRange t1 = (TriggerTimeRange) t.duplicate();
+// Assert.assertEquals(now, t1.getRunAt(), 0.01d);
+ }
+
+ @Test
+ public void friendlyNameTest() {
+ Assert.assertEquals(R.string.time_range, new TriggerTimeRange().friendlyName());
+ }
+
+ @Test
+ public void friendlyDescriptionTest() {
+ Assert.assertEquals(null, new TriggerTimeRange().friendlyDescription()); //not mocked }
+ }
+
+ @Test
+ public void iconTest() {
+ Assert.assertEquals(Optional.of(R.drawable.ic_access_alarm_24dp), new TriggerTimeRange().icon());
+
+ }
+
+ @Before
+ public void mock() {
+ AAPSMocker.mockMainApp();
+
+ PowerMockito.mockStatic(DateUtil.class);
+ when(DateUtil.now()).thenReturn((long) now * 60000);
+
+ GregorianCalendar calendar = new GregorianCalendar();
+ calendar.setTimeInMillis((long) now * 60000);
+ when(DateUtil.gregorianCalendar()).thenReturn(calendar);
+ }
+}
diff --git a/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/triggers/TriggerTimeTest.java b/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/triggers/TriggerTimeTest.java
index cf8cfd7b75..b4b1794481 100644
--- a/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/triggers/TriggerTimeTest.java
+++ b/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/triggers/TriggerTimeTest.java
@@ -1,7 +1,6 @@
package info.nightscout.androidaps.plugins.general.automation.triggers;
import com.google.common.base.Optional;
-import com.squareup.otto.Bus;
import org.json.JSONException;
import org.json.JSONObject;
@@ -24,7 +23,7 @@ import info.nightscout.androidaps.utils.T;
import static org.powermock.api.mockito.PowerMockito.when;
@RunWith(PowerMockRunner.class)
-@PrepareForTest({MainApp.class, Bus.class, DateUtil.class, GregorianCalendar.class})
+@PrepareForTest({MainApp.class, DateUtil.class, GregorianCalendar.class})
public class TriggerTimeTest {
long now = 1514766900000L;
@@ -90,7 +89,6 @@ public class TriggerTimeTest {
@Before
public void mock() {
AAPSMocker.mockMainApp();
- AAPSMocker.mockBus();
PowerMockito.mockStatic(DateUtil.class);
when(DateUtil.now()).thenReturn(now);
diff --git a/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/triggers/TriggerWifiSsidTest.java b/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/triggers/TriggerWifiSsidTest.java
index 8156e483cc..d6eef521ed 100644
--- a/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/triggers/TriggerWifiSsidTest.java
+++ b/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/triggers/TriggerWifiSsidTest.java
@@ -1,7 +1,6 @@
package info.nightscout.androidaps.plugins.general.automation.triggers;
import com.google.common.base.Optional;
-import com.squareup.otto.Bus;
import org.json.JSONException;
import org.json.JSONObject;
@@ -24,7 +23,7 @@ import info.nightscout.androidaps.utils.DateUtil;
import static org.powermock.api.mockito.PowerMockito.when;
@RunWith(PowerMockRunner.class)
-@PrepareForTest({MainApp.class, Bus.class, NetworkChangeReceiver.class, DateUtil.class})
+@PrepareForTest({MainApp.class, NetworkChangeReceiver.class, DateUtil.class})
public class TriggerWifiSsidTest {
long now = 1514766900000L;
@@ -36,22 +35,22 @@ public class TriggerWifiSsidTest {
TriggerWifiSsid t = new TriggerWifiSsid().setValue("aSSID").comparator(Comparator.Compare.IS_EQUAL);
- e.wifiConnected = false;
+ e.setWifiConnected(false);
Assert.assertFalse(t.shouldRun());
- e.wifiConnected = true;
- e.ssid = "otherSSID";
+ e.setWifiConnected(true);
+ e.setSsid("otherSSID");
Assert.assertFalse(t.shouldRun());
- e.wifiConnected = true;
- e.ssid = "aSSID";
+ e.setWifiConnected(true);
+ e.setSsid("aSSID");
Assert.assertTrue(t.shouldRun());
t.lastRun(now - 1);
Assert.assertFalse(t.shouldRun());
t = new TriggerWifiSsid().setValue("aSSID").comparator(Comparator.Compare.IS_NOT_AVAILABLE);
- e.wifiConnected = false;
+ e.setWifiConnected(false);
Assert.assertTrue(t.shouldRun());
// no network data
@@ -102,7 +101,6 @@ public class TriggerWifiSsidTest {
@Before
public void mock() {
AAPSMocker.mockMainApp();
- AAPSMocker.mockBus();
PowerMockito.mockStatic(NetworkChangeReceiver.class);
diff --git a/app/src/test/java/info/nightscout/androidaps/plugins/general/careportal/Dialogs/NewNSTreatmentDialogTest.java b/app/src/test/java/info/nightscout/androidaps/plugins/general/careportal/Dialogs/NewNSTreatmentDialogTest.java
index a1b21fe9a2..f8496a71b2 100644
--- a/app/src/test/java/info/nightscout/androidaps/plugins/general/careportal/Dialogs/NewNSTreatmentDialogTest.java
+++ b/app/src/test/java/info/nightscout/androidaps/plugins/general/careportal/Dialogs/NewNSTreatmentDialogTest.java
@@ -68,7 +68,6 @@ public class NewNSTreatmentDialogTest {
AAPSMocker.mockStrings();
PowerMockito.mockStatic(NSUpload.class);
AAPSMocker.mockTreatmentService();
- AAPSMocker.mockBus();
AAPSMocker.mockDatabaseHelper();
NSProfilePlugin profilePlugin = NSProfilePlugin.getPlugin();
diff --git a/app/src/test/java/info/nightscout/androidaps/plugins/general/nsclient/NsClientReceiverDelegateTest.java b/app/src/test/java/info/nightscout/androidaps/plugins/general/nsclient/NsClientReceiverDelegateTest.java
index 0400532e9d..ad172f13e9 100644
--- a/app/src/test/java/info/nightscout/androidaps/plugins/general/nsclient/NsClientReceiverDelegateTest.java
+++ b/app/src/test/java/info/nightscout/androidaps/plugins/general/nsclient/NsClientReceiverDelegateTest.java
@@ -1,7 +1,6 @@
package info.nightscout.androidaps.plugins.general.nsclient;
import android.content.Context;
-import com.squareup.otto.Bus;
import org.junit.Before;
import org.junit.Test;
@@ -34,10 +33,9 @@ public class NsClientReceiverDelegateTest {
AAPSMocker.mockMainApp();
AAPSMocker.mockApplicationContext();
- Bus bus = MainApp.bus();
Context context = MainApp.instance().getApplicationContext();
- sut = new NsClientReceiverDelegate(context, bus);
+ sut = new NsClientReceiverDelegate(context);
}
@Test
@@ -64,67 +62,67 @@ public class NsClientReceiverDelegateTest {
when(SP.getBoolean(anyInt(), anyBoolean())).thenReturn(false);
when(SP.getString(anyInt(), anyString())).thenReturn("");
EventNetworkChange ev = new EventNetworkChange();
- ev.ssid = "";
+ ev.setSsid("");
- ev.mobileConnected = true;
- ev.wifiConnected = true;
+ ev.setMobileConnected(true);
+ ev.setWifiConnected(true);
assertTrue(sut.calculateStatus(ev));
- ev.ssid = "test";
+ ev.setSsid("test");
when(SP.getString(anyInt(), anyString())).thenReturn("\"test\"");
assertTrue(sut.calculateStatus(ev));
- ev.ssid = "\"test\"";
+ ev.setSsid("\"test\"");
assertTrue(sut.calculateStatus(ev));
- ev.wifiConnected = false;
+ ev.setWifiConnected(false);
assertTrue(sut.calculateStatus(ev));
// wifiOnly = true
// allowRoaming = true as well
when(SP.getBoolean(anyInt(), anyBoolean())).thenReturn(true);
- ev.wifiConnected = true;
+ ev.setWifiConnected(true);
assertTrue(sut.calculateStatus(ev));
- ev.wifiConnected = false;
+ ev.setWifiConnected(false);
assertTrue(!sut.calculateStatus(ev));
// wifiOnly = false
// allowRoaming = false as well
when(SP.getBoolean(anyInt(), anyBoolean())).thenReturn(false);
- ev.wifiConnected = false;
- ev.roaming = true;
+ ev.setWifiConnected(false);
+ ev.setRoaming(true);
assertTrue(!sut.calculateStatus(ev));
// wifiOnly = false
// allowRoaming = true
when(SP.getBoolean(R.string.key_ns_wifionly, false)).thenReturn(false);
when(SP.getBoolean(R.string.key_ns_allowroaming, true)).thenReturn(true);
- ev.wifiConnected = false;
- ev.roaming = true;
+ ev.setWifiConnected(false);
+ ev.setRoaming(true);
assertTrue(sut.calculateStatus(ev));
// wifiOnly = true
// allowRoaming = true
when(SP.getBoolean(R.string.key_ns_wifionly, false)).thenReturn(true);
when(SP.getBoolean(R.string.key_ns_allowroaming, true)).thenReturn(true);
- ev.wifiConnected = false;
- ev.roaming = true;
+ ev.setWifiConnected(false);
+ ev.setRoaming(true);
assertTrue(!sut.calculateStatus(ev));
// wifiOnly = true
// allowRoaming = true
when(SP.getBoolean(R.string.key_ns_wifionly, false)).thenReturn(true);
when(SP.getBoolean(R.string.key_ns_allowroaming, true)).thenReturn(true);
- ev.wifiConnected = true;
- ev.roaming = true;
+ ev.setWifiConnected(true);
+ ev.setRoaming(true);
assertTrue(sut.calculateStatus(ev));
// wifiOnly = false
// allowRoaming = false
when(SP.getBoolean(R.string.key_ns_wifionly, false)).thenReturn(false);
when(SP.getBoolean(R.string.key_ns_allowroaming, true)).thenReturn(false);
- ev.wifiConnected = true;
- ev.roaming = true;
+ ev.setWifiConnected(true);
+ ev.setRoaming(true);
assertTrue(sut.calculateStatus(ev));
}
}
diff --git a/app/src/test/java/info/nightscout/androidaps/plugins/general/smsCommunicator/SmsCommunicatorPluginTest.java b/app/src/test/java/info/nightscout/androidaps/plugins/general/smsCommunicator/SmsCommunicatorPluginTest.java
index abc29216b0..bc928ded85 100644
--- a/app/src/test/java/info/nightscout/androidaps/plugins/general/smsCommunicator/SmsCommunicatorPluginTest.java
+++ b/app/src/test/java/info/nightscout/androidaps/plugins/general/smsCommunicator/SmsCommunicatorPluginTest.java
@@ -57,7 +57,7 @@ import static org.powermock.api.mockito.PowerMockito.when;
L.class, SP.class, MainApp.class, DateUtil.class, ProfileFunctions.class,
TreatmentsPlugin.class, SmsManager.class, IobCobCalculatorPlugin.class,
CommandQueue.class, ConfigBuilderPlugin.class, NSUpload.class, ProfileInterface.class,
- SimpleProfilePlugin.class, XdripCalibrations.class, VirtualPumpPlugin.class
+ SimpleProfilePlugin.class, XdripCalibrations.class, VirtualPumpPlugin.class, LoopPlugin.class
})
public class SmsCommunicatorPluginTest {
@@ -718,7 +718,6 @@ public class SmsCommunicatorPluginTest {
AAPSMocker.mockSP();
AAPSMocker.mockL();
AAPSMocker.mockStrings();
- AAPSMocker.mockBus();
AAPSMocker.mockProfileFunctions();
AAPSMocker.mockTreatmentPlugin();
AAPSMocker.mockTreatmentService();
@@ -745,8 +744,9 @@ public class SmsCommunicatorPluginTest {
smsCommunicatorPlugin = SmsCommunicatorPlugin.getPlugin();
smsCommunicatorPlugin.setPluginEnabled(PluginType.GENERAL, true);
+ mockStatic(LoopPlugin.class);
loopPlugin = mock(LoopPlugin.class);
- when(MainApp.getSpecificPlugin(LoopPlugin.class)).thenReturn(loopPlugin);
+ when(LoopPlugin.getPlugin()).thenReturn(loopPlugin);
Mockito.doAnswer(invocation -> {
Callback callback = invocation.getArgument(1);
diff --git a/app/src/test/java/info/nightscout/androidaps/plugins/general/versionChecker/VersionCheckerUtilsKtTest.kt b/app/src/test/java/info/nightscout/androidaps/plugins/general/versionChecker/VersionCheckerUtilsKtTest.kt
deleted file mode 100644
index 1e67bb2d4f..0000000000
--- a/app/src/test/java/info/nightscout/androidaps/plugins/general/versionChecker/VersionCheckerUtilsKtTest.kt
+++ /dev/null
@@ -1,230 +0,0 @@
-package info.nightscout.androidaps.plugins.general.versionChecker
-
-import com.squareup.otto.Bus
-import info.nightscout.androidaps.MainApp
-import info.nightscout.androidaps.R
-import info.nightscout.androidaps.logging.L
-import info.nightscout.androidaps.utils.SP
-import org.junit.Assert.assertEquals
-import org.junit.Test
-import org.junit.runner.RunWith
-import org.mockito.ArgumentMatchers
-import org.mockito.Mockito.*
-import org.powermock.api.mockito.PowerMockito
-import org.powermock.core.classloader.annotations.PrepareForTest
-import org.powermock.modules.junit4.PowerMockRunner
-
-
-@RunWith(PowerMockRunner::class)
-class VersionCheckerUtilsKtTest {
- @Test
- fun findVersionMatchesRegularVersion() {
- val buildGradle = """blabla
- | android {
- | aosenuthoae
- | }
- | version = "2.2.2"
- | appName = "Aaoeu"
- """.trimMargin()
- val detectedVersion: String? = findVersion(buildGradle)
- assertEquals("2.2.2", detectedVersion)
- }
-
-
- // In case we merge a "x.x.x-dev" into master, don't see it as update.
- @Test
- fun `should return null on non-digit versions on master`() {
- val buildGradle = """blabla
- | android {
- | aosenuthoae
- | }
- | version = "2.2.2-nefarious-underground-mod"
- | appName = "Aaoeu"
- """.trimMargin()
- val detectedVersion: String? = findVersion(buildGradle)
- assertEquals(null, detectedVersion)
- }
-
- @Test
- fun findVersionMatchesDoesNotMatchErrorResponse() {
- val buildGradle = """Balls! No build.gradle here. Move along"""
- val detectedVersion: String? = findVersion(buildGradle)
- assertEquals(null, detectedVersion)
- }
-
- @Test
- fun testVersionStrip() {
- assertEquals("2.2.2", "2.2.2".versionStrip())
- assertEquals("2.2.2", "2.2.2-dev".versionStrip())
- assertEquals("2.2.2", "2.2.2dev".versionStrip())
- assertEquals("2.2.2", """"2.2.2"""".versionStrip())
- }
-
- @Test
- @PrepareForTest(MainApp::class, L::class, SP::class)
- fun `should find update1`() {
- val bus = prepareBus()
-
- compareWithCurrentVersion(newVersion = "2.2.3", currentVersion = "2.2.1")
-
- verify(bus, times(1)).post(any())
-
- PowerMockito.verifyStatic(SP::class.java, times(1))
- SP.getLong(eq(R.string.key_last_versionchecker_warning), ArgumentMatchers.anyLong())
- PowerMockito.verifyStatic(SP::class.java, times(1))
- SP.putLong(eq(R.string.key_last_versionchecker_warning), ArgumentMatchers.anyLong())
- PowerMockito.verifyNoMoreInteractions(SP::class.java)
-
- }
-
- @Test
- @PrepareForTest(MainApp::class, L::class, SP::class)
- fun `should find update2`() {
- val bus = prepareBus()
-
- compareWithCurrentVersion(newVersion = "2.2.3", currentVersion = "2.2.1-dev")
-
- verify(bus, times(1)).post(any())
-
- PowerMockito.verifyStatic(SP::class.java, times(1))
- SP.getLong(eq(R.string.key_last_versionchecker_warning), ArgumentMatchers.anyLong())
- PowerMockito.verifyStatic(SP::class.java, times(1))
- SP.putLong(eq(R.string.key_last_versionchecker_warning), ArgumentMatchers.anyLong())
- PowerMockito.verifyNoMoreInteractions(SP::class.java)
- }
-
- @Test
- @PrepareForTest(MainApp::class, L::class, SP::class)
- fun `should find update3`() {
- val bus = prepareBus()
-
- compareWithCurrentVersion(newVersion = "2.2.3", currentVersion = "2.1")
-
- verify(bus, times(1)).post(any())
-
- PowerMockito.verifyStatic(SP::class.java, times(1))
- SP.getLong(eq(R.string.key_last_versionchecker_warning), ArgumentMatchers.anyLong())
- PowerMockito.verifyStatic(SP::class.java, times(1))
- SP.putLong(eq(R.string.key_last_versionchecker_warning), ArgumentMatchers.anyLong())
- PowerMockito.verifyNoMoreInteractions(SP::class.java)
- }
-
- @Test
- @PrepareForTest(MainApp::class, L::class, SP::class)
- fun `should find update4`() {
- val bus = prepareBus()
-
- compareWithCurrentVersion(newVersion = "2.2", currentVersion = "2.1.1")
-
- verify(bus, times(1)).post(any())
-
- PowerMockito.verifyStatic(SP::class.java, times(1))
- SP.getLong(eq(R.string.key_last_versionchecker_warning), ArgumentMatchers.anyLong())
- PowerMockito.verifyStatic(SP::class.java, times(1))
- SP.putLong(eq(R.string.key_last_versionchecker_warning), ArgumentMatchers.anyLong())
- PowerMockito.verifyNoMoreInteractions(SP::class.java)
- }
-
- @Test
- @PrepareForTest(MainApp::class, L::class, SP::class)
- fun `should find update5`() {
- val bus = prepareBus()
- compareWithCurrentVersion(newVersion = "2.2.1", currentVersion = "2.2-dev")
-
- verify(bus, times(1)).post(any())
-
- PowerMockito.verifyStatic(SP::class.java, times(1))
- SP.getLong(eq(R.string.key_last_versionchecker_warning), ArgumentMatchers.anyLong())
- PowerMockito.verifyStatic(SP::class.java, times(1))
- SP.putLong(eq(R.string.key_last_versionchecker_warning), ArgumentMatchers.anyLong())
- PowerMockito.verifyNoMoreInteractions(SP::class.java)
- }
-
- @Test
- @PrepareForTest(MainApp::class, L::class, SP::class)
- fun `should find update6`() {
- val bus = prepareBus()
- compareWithCurrentVersion(newVersion = "2.2.1", currentVersion = "2.2dev")
-
- verify(bus, times(1)).post(any())
-
- PowerMockito.verifyStatic(SP::class.java, times(1))
- SP.getLong(eq(R.string.key_last_versionchecker_warning), ArgumentMatchers.anyLong())
- PowerMockito.verifyStatic(SP::class.java, times(1))
- SP.putLong(eq(R.string.key_last_versionchecker_warning), ArgumentMatchers.anyLong())
- PowerMockito.verifyNoMoreInteractions(SP::class.java)
- }
-
- @Test
- @PrepareForTest(MainApp::class, L::class, SP::class)
- fun `find same version`() {
- val buildGradle = """blabla
- | android {
- | aosenuthoae
- | }
- | version = "2.2.2"
- | appName = "Aaoeu"
- """.trimMargin()
- val bus = prepareBus()
- compareWithCurrentVersion(findVersion(buildGradle), currentVersion = "2.2.2")
-
- verify(bus, times(0)).post(any())
-
- PowerMockito.verifyStatic(SP::class.java, times(1))
- SP.putLong(eq(R.string.key_last_time_this_version_detected), ArgumentMatchers.anyLong())
- PowerMockito.verifyNoMoreInteractions(SP::class.java)
- }
-
- @Test
- @PrepareForTest(MainApp::class, L::class, SP::class)
- fun `find higher version`() {
- val buildGradle = """blabla
- | android {
- | aosenuthoae
- | }
- | version = "3.0"
- | appName = "Aaoeu"
- """.trimMargin()
- val bus = prepareBus()
- compareWithCurrentVersion(findVersion(buildGradle), currentVersion = "2.2.2")
-
- verify(bus, times(1)).post(any())
-
- PowerMockito.verifyStatic(SP::class.java, times(1))
- SP.getLong(eq(R.string.key_last_versionchecker_warning), ArgumentMatchers.anyLong())
- PowerMockito.verifyStatic(SP::class.java, times(1))
- SP.putLong(eq(R.string.key_last_versionchecker_warning), ArgumentMatchers.anyLong())
- PowerMockito.verifyNoMoreInteractions(SP::class.java)
- }
-
-
- @Test
- @PrepareForTest(System::class)
- fun `set time`() {
- PowerMockito.spy(System::class.java)
- PowerMockito.`when`(System.currentTimeMillis()).thenReturn(100L)
-
- assertEquals(100L, System.currentTimeMillis())
- }
-
- private fun prepareBus(): Bus {
- PowerMockito.mockStatic(MainApp::class.java)
- val mainApp = mock(MainApp::class.java)
- `when`(MainApp.instance()).thenReturn(mainApp)
- val bus = mock(Bus::class.java)
- `when`(MainApp.bus()).thenReturn(bus)
- `when`(MainApp.gs(ArgumentMatchers.anyInt())).thenReturn("some dummy string")
- prepareSP()
- return bus
- }
-
- private fun prepareSP() {
- PowerMockito.mockStatic(SP::class.java)
- }
-
- private fun prepareLogging() {
- PowerMockito.mockStatic(L::class.java)
- `when`(L.isEnabled(any())).thenReturn(true)
- }
-
-}
\ No newline at end of file
diff --git a/app/src/test/java/info/nightscout/androidaps/plugins/pump/combo/ComboPluginTest.java b/app/src/test/java/info/nightscout/androidaps/plugins/pump/combo/ComboPluginTest.java
index 1ea781941f..8e7784f5b8 100644
--- a/app/src/test/java/info/nightscout/androidaps/plugins/pump/combo/ComboPluginTest.java
+++ b/app/src/test/java/info/nightscout/androidaps/plugins/pump/combo/ComboPluginTest.java
@@ -62,7 +62,6 @@ public class ComboPluginTest {
public void prepareMocks() throws Exception {
AAPSMocker.mockMainApp();
AAPSMocker.mockConfigBuilder();
- AAPSMocker.mockBus();
AAPSMocker.mockStrings();
AAPSMocker.mockCommandQueue();
diff --git a/app/src/test/java/info/nightscout/androidaps/plugins/pump/common/bolusInfo/DetailedBolusInfoStorageTest.kt b/app/src/test/java/info/nightscout/androidaps/plugins/pump/common/bolusInfo/DetailedBolusInfoStorageTest.kt
new file mode 100644
index 0000000000..d0944d23bc
--- /dev/null
+++ b/app/src/test/java/info/nightscout/androidaps/plugins/pump/common/bolusInfo/DetailedBolusInfoStorageTest.kt
@@ -0,0 +1,104 @@
+package info.nightscout.androidaps.plugins.pump.common.bolusInfo
+
+import info.nightscout.androidaps.MainApp
+import info.nightscout.androidaps.data.DetailedBolusInfo
+import info.nightscout.androidaps.logging.L
+import info.nightscout.androidaps.utils.SP
+import org.junit.Assert.assertEquals
+import org.junit.Assert.assertNull
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mockito.ArgumentMatchers
+import org.mockito.Mockito
+import org.powermock.api.mockito.PowerMockito
+import org.powermock.core.classloader.annotations.PrepareForTest
+import org.powermock.modules.junit4.PowerMockRunner
+
+@RunWith(PowerMockRunner::class)
+class DetailedBolusInfoStorageTest {
+
+ private val info1 = DetailedBolusInfo()
+ private val info2 = DetailedBolusInfo()
+ private val info3 = DetailedBolusInfo()
+
+ init {
+ info1.date = 1000000
+ info1.insulin = 3.0
+ info2.date = 1000001
+ info2.insulin = 4.0
+ info3.date = 2000000
+ info3.insulin = 5.0
+ }
+
+ private fun setUp() {
+ DetailedBolusInfoStorage.store.clear()
+ DetailedBolusInfoStorage.add(info1)
+ DetailedBolusInfoStorage.add(info2)
+ DetailedBolusInfoStorage.add(info3)
+ }
+
+ @Test
+ fun add() {
+ DetailedBolusInfoStorage.store.clear()
+ assertEquals(0, DetailedBolusInfoStorage.store.size)
+ DetailedBolusInfoStorage.add(info1)
+ assertEquals(1, DetailedBolusInfoStorage.store.size)
+ }
+
+ @Test
+ @PrepareForTest(MainApp::class, L::class, SP::class)
+ fun findDetailedBolusInfo() {
+ prepareMainApp()
+ prepareSP()
+ prepareLogging()
+
+ // Look for exact bolus
+ setUp()
+ var d: DetailedBolusInfo? = DetailedBolusInfoStorage.findDetailedBolusInfo(1000000, 4.0)
+ assertEquals(4.0, d!!.insulin, 0.01)
+ assertEquals(2, DetailedBolusInfoStorage.store.size)
+ // Look for exact bolus
+ setUp()
+ d = DetailedBolusInfoStorage.findDetailedBolusInfo(1000000, 3.0)
+ assertEquals(3.0, d!!.insulin, 0.01)
+ assertEquals(2, DetailedBolusInfoStorage.store.size)
+ // With less insulin (bolus not delivered completely). Should return first one matching date
+ setUp()
+ d = DetailedBolusInfoStorage.findDetailedBolusInfo(1000500, 2.0)
+ assertEquals(3.0, d!!.insulin, 0.01)
+ assertEquals(2, DetailedBolusInfoStorage.store.size)
+ // With less insulin (bolus not delivered completely). Should return first one matching date
+ setUp()
+ d = DetailedBolusInfoStorage.findDetailedBolusInfo(1000500, 3.5)
+ assertEquals(4.0, d!!.insulin, 0.01)
+ assertEquals(2, DetailedBolusInfoStorage.store.size)
+ // With more insulin should return null
+ setUp()
+ d = DetailedBolusInfoStorage.findDetailedBolusInfo(1000500, 4.5)
+ assertNull(d)
+ assertEquals(3, DetailedBolusInfoStorage.store.size)
+ // With more than one minute off should return null
+ setUp()
+ d = DetailedBolusInfoStorage.findDetailedBolusInfo(1070000, 4.0)
+ assertNull(d)
+ assertEquals(3, DetailedBolusInfoStorage.store.size)
+
+ }
+
+ private fun prepareMainApp() {
+ PowerMockito.mockStatic(MainApp::class.java)
+ val mainApp = Mockito.mock(MainApp::class.java)
+ Mockito.`when`(MainApp.instance()).thenReturn(mainApp)
+ Mockito.`when`(MainApp.gs(ArgumentMatchers.anyInt())).thenReturn("some dummy string")
+ }
+
+ private fun prepareSP() {
+ PowerMockito.mockStatic(SP::class.java)
+ }
+
+ private fun prepareLogging() {
+ PowerMockito.mockStatic(L::class.java)
+ Mockito.`when`(L.isEnabled(Mockito.any())).thenReturn(true)
+ }
+
+}
\ No newline at end of file
diff --git a/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaR/DanaRPluginTest.java b/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaR/DanaRPluginTest.java
index c7407e7af5..322655caaa 100644
--- a/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaR/DanaRPluginTest.java
+++ b/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaR/DanaRPluginTest.java
@@ -62,7 +62,6 @@ public class DanaRPluginTest {
public void prepareMocks() throws Exception {
AAPSMocker.mockMainApp();
AAPSMocker.mockConfigBuilder();
- AAPSMocker.mockBus();
AAPSMocker.mockStrings();
AAPSMocker.mockApplicationContext();
AAPSMocker.mockSP();
diff --git a/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaR/comm/MsgBolusProgressTest.java b/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaR/comm/MsgBolusProgressTest.java
index 0ed6c5f7cd..289df3d186 100644
--- a/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaR/comm/MsgBolusProgressTest.java
+++ b/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaR/comm/MsgBolusProgressTest.java
@@ -11,7 +11,7 @@ import info.nightscout.androidaps.logging.L;
import info.nightscout.androidaps.plugins.treatments.Treatment;
import info.nightscout.androidaps.utils.SP;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
/**
* Created by Rumen Georgiev on 8/28/2018.
@@ -27,7 +27,6 @@ public class MsgBolusProgressTest {
AAPSMocker.mockSP();
AAPSMocker.mockL();
AAPSMocker.mockStrings();
- AAPSMocker.mockBus();
Treatment t = new Treatment();
MsgBolusProgress packet = new MsgBolusProgress(3D, t);
diff --git a/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaR/comm/MsgBolusStopTest.java b/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaR/comm/MsgBolusStopTest.java
index 5dc65b7228..4032ef7dad 100644
--- a/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaR/comm/MsgBolusStopTest.java
+++ b/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaR/comm/MsgBolusStopTest.java
@@ -11,7 +11,7 @@ import info.nightscout.androidaps.logging.L;
import info.nightscout.androidaps.plugins.treatments.Treatment;
import info.nightscout.androidaps.utils.SP;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
/**
* Created by Rumen Georgiev on 8/28/2018.
@@ -26,7 +26,7 @@ public class MsgBolusStopTest {
AAPSMocker.mockApplicationContext();
AAPSMocker.mockSP();
AAPSMocker.mockL();
- AAPSMocker.mockBus();
+ AAPSMocker.mockStrings();
Treatment t = new Treatment();
MsgBolusStop packet = new MsgBolusStop(1d,t);
diff --git a/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaR/comm/MsgCheckValueTest.java b/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaR/comm/MsgCheckValueTest.java
index 32b82270ab..83dbdcd12c 100644
--- a/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaR/comm/MsgCheckValueTest.java
+++ b/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaR/comm/MsgCheckValueTest.java
@@ -13,7 +13,7 @@ import info.nightscout.androidaps.plugins.pump.danaR.DanaRPump;
import info.nightscout.androidaps.plugins.treatments.Treatment;
import info.nightscout.androidaps.utils.SP;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
/**
* Created by Rumen Georgiev on 8/28/2018.
@@ -28,7 +28,6 @@ public class MsgCheckValueTest {
AAPSMocker.mockApplicationContext();
AAPSMocker.mockSP();
AAPSMocker.mockL();
- AAPSMocker.mockBus();
Treatment t = new Treatment();
MsgCheckValue packet = new MsgCheckValue();
diff --git a/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaR/comm/MsgErrorTest.java b/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaR/comm/MsgErrorTest.java
index b597c69062..45664cdfb7 100644
--- a/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaR/comm/MsgErrorTest.java
+++ b/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaR/comm/MsgErrorTest.java
@@ -11,7 +11,7 @@ import info.nightscout.androidaps.logging.L;
import info.nightscout.androidaps.plugins.general.nsclient.NSUpload;
import info.nightscout.androidaps.utils.SP;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
/**
* Created by Rumen Georgiev on 8/28/2018.
@@ -26,7 +26,6 @@ public class MsgErrorTest {
AAPSMocker.mockApplicationContext();
AAPSMocker.mockSP();
AAPSMocker.mockL();
- AAPSMocker.mockBus();
AAPSMocker.mockNSUpload();
MsgError packet = new MsgError();
diff --git a/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaR/comm/MsgHistoryAllTest.java b/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaR/comm/MsgHistoryAllTest.java
index c4d40abcc7..2bfec9baee 100644
--- a/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaR/comm/MsgHistoryAllTest.java
+++ b/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaR/comm/MsgHistoryAllTest.java
@@ -11,7 +11,7 @@ import info.nightscout.androidaps.logging.L;
import info.nightscout.androidaps.plugins.general.nsclient.NSUpload;
import info.nightscout.androidaps.utils.SP;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
/**
* Created by Rumen Georgiev on 8/30/2018.
@@ -26,7 +26,6 @@ public class MsgHistoryAllTest {
AAPSMocker.mockApplicationContext();
AAPSMocker.mockSP();
AAPSMocker.mockL();
- AAPSMocker.mockBus();
AAPSMocker.mockDatabaseHelper();
MsgHistoryAll packet = new MsgHistoryAll();
diff --git a/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaR/comm/MsgInitConnStatusBolusTest.java b/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaR/comm/MsgInitConnStatusBolusTest.java
index 11aa667f1e..f7860fbaa2 100644
--- a/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaR/comm/MsgInitConnStatusBolusTest.java
+++ b/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaR/comm/MsgInitConnStatusBolusTest.java
@@ -26,7 +26,6 @@ public class MsgInitConnStatusBolusTest {
AAPSMocker.mockApplicationContext();
AAPSMocker.mockSP();
AAPSMocker.mockL();
- AAPSMocker.mockBus();
MsgInitConnStatusBolus packet = new MsgInitConnStatusBolus();
// test message decoding
diff --git a/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaR/comm/MsgInitConnStatusOptionTest.java b/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaR/comm/MsgInitConnStatusOptionTest.java
index 467ccc2f9b..0b1d956ded 100644
--- a/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaR/comm/MsgInitConnStatusOptionTest.java
+++ b/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaR/comm/MsgInitConnStatusOptionTest.java
@@ -27,7 +27,6 @@ public class MsgInitConnStatusOptionTest {
AAPSMocker.mockApplicationContext();
AAPSMocker.mockSP();
AAPSMocker.mockL();
- AAPSMocker.mockBus();
AAPSMocker.mockConfigBuilder();
MsgInitConnStatusOption packet = new MsgInitConnStatusOption();
diff --git a/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaR/comm/MsgInitConnStatusTimeTest.java b/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaR/comm/MsgInitConnStatusTimeTest.java
index 1da818b5bc..b5ef46e9b2 100644
--- a/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaR/comm/MsgInitConnStatusTimeTest.java
+++ b/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaR/comm/MsgInitConnStatusTimeTest.java
@@ -1,5 +1,6 @@
package info.nightscout.androidaps.plugins.pump.danaR.comm;
+import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.powermock.core.classloader.annotations.PrepareForTest;
@@ -11,7 +12,7 @@ import info.nightscout.androidaps.logging.L;
import info.nightscout.androidaps.plugins.configBuilder.ConfigBuilderPlugin;
import info.nightscout.androidaps.utils.SP;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
/**
* Created by Rumen Georgiev on 8/30/2018.
@@ -22,14 +23,6 @@ import static org.junit.Assert.*;
public class MsgInitConnStatusTimeTest {
@Test
public void runTest() {
- AAPSMocker.mockMainApp();
- AAPSMocker.mockApplicationContext();
- AAPSMocker.mockSP();
- AAPSMocker.mockL();
- AAPSMocker.mockBus();
- AAPSMocker.mockConfigBuilder();
- AAPSMocker.mockCommandQueue();
- AAPSMocker.mockDanaRPlugin();
MsgInitConnStatusTime packet = new MsgInitConnStatusTime();
// test message decoding
@@ -57,4 +50,13 @@ public class MsgInitConnStatusTimeTest {
return ret;
}
+ @Before
+ public void mock() {
+ AAPSMocker.mockMainApp();
+ AAPSMocker.mockApplicationContext();
+ AAPSMocker.mockSP();
+ AAPSMocker.mockL();
+ AAPSMocker.mockConfigBuilder();
+ AAPSMocker.mockCommandQueue();
+ }
}
\ No newline at end of file
diff --git a/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaR/comm/MsgSetBasalProfileTest.java b/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaR/comm/MsgSetBasalProfileTest.java
index f49cb5eace..ed4fb83a10 100644
--- a/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaR/comm/MsgSetBasalProfileTest.java
+++ b/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaR/comm/MsgSetBasalProfileTest.java
@@ -25,7 +25,6 @@ public class MsgSetBasalProfileTest {
AAPSMocker.mockApplicationContext();
AAPSMocker.mockSP();
AAPSMocker.mockL();
- AAPSMocker.mockBus();
MsgSetBasalProfile packet = new MsgSetBasalProfile((byte) 1, createArray(24,1));
// test message decoding
diff --git a/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaR/comm/MsgSetSingleBasalProfileTest.java b/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaR/comm/MsgSetSingleBasalProfileTest.java
index 5a272c8cf6..cfb17d9ab5 100644
--- a/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaR/comm/MsgSetSingleBasalProfileTest.java
+++ b/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaR/comm/MsgSetSingleBasalProfileTest.java
@@ -25,7 +25,6 @@ public class MsgSetSingleBasalProfileTest {
AAPSMocker.mockApplicationContext();
AAPSMocker.mockSP();
AAPSMocker.mockL();
- AAPSMocker.mockBus();
MsgSetSingleBasalProfile packet = new MsgSetSingleBasalProfile(createArray(24, 2));
// test message decoding
diff --git a/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaR/comm/MsgSettingMealTest.java b/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaR/comm/MsgSettingMealTest.java
index 7680e6c5a9..2ba1be66a7 100644
--- a/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaR/comm/MsgSettingMealTest.java
+++ b/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaR/comm/MsgSettingMealTest.java
@@ -26,7 +26,6 @@ public class MsgSettingMealTest {
AAPSMocker.mockApplicationContext();
AAPSMocker.mockSP();
AAPSMocker.mockL();
- AAPSMocker.mockBus();
MsgSettingMeal packet = new MsgSettingMeal();
// test message decoding
diff --git a/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaRS/DanaRSPluginTest.java b/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaRS/DanaRSPluginTest.java
index ca249e016c..269a6a0304 100644
--- a/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaRS/DanaRSPluginTest.java
+++ b/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaRS/DanaRSPluginTest.java
@@ -62,7 +62,6 @@ public class DanaRSPluginTest {
public void prepareMocks() throws Exception {
AAPSMocker.mockMainApp();
AAPSMocker.mockConfigBuilder();
- AAPSMocker.mockBus();
AAPSMocker.mockStrings();
AAPSMocker.mockApplicationContext();
AAPSMocker.mockSP();
diff --git a/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaRS/comm/DanaRS_Packet_APS_History_EventsTest.java b/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaRS/comm/DanaRS_Packet_APS_History_EventsTest.java
index 309644d7f0..a866ce73a7 100644
--- a/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaRS/comm/DanaRS_Packet_APS_History_EventsTest.java
+++ b/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaRS/comm/DanaRS_Packet_APS_History_EventsTest.java
@@ -93,7 +93,6 @@ public class DanaRS_Packet_APS_History_EventsTest extends DanaRS_Packet_APS_Hist
AAPSMocker.mockMainApp();
AAPSMocker.mockApplicationContext();
AAPSMocker.mockSP();
- AAPSMocker.mockBus();
SPMocker.prepareMock();
SP.putString("profile", AAPSMocker.getValidProfileStore().getData().toString());
AAPSMocker.mockConfigBuilder();
diff --git a/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaRS/comm/DanaRS_Packet_Basal_Get_Basal_RateTest.java b/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaRS/comm/DanaRS_Packet_Basal_Get_Basal_RateTest.java
index a530749e27..762403142f 100644
--- a/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaRS/comm/DanaRS_Packet_Basal_Get_Basal_RateTest.java
+++ b/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaRS/comm/DanaRS_Packet_Basal_Get_Basal_RateTest.java
@@ -26,7 +26,6 @@ public class DanaRS_Packet_Basal_Get_Basal_RateTest {
AAPSMocker.mockMainApp();
AAPSMocker.mockApplicationContext();
AAPSMocker.mockSP();
- AAPSMocker.mockBus();
AAPSMocker.mockL();
DanaRS_Packet_Basal_Get_Basal_Rate packet = new DanaRS_Packet_Basal_Get_Basal_Rate();
diff --git a/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaRS/comm/DanaRS_Packet_Basal_Get_Profile_Basal_RateTest.java b/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaRS/comm/DanaRS_Packet_Basal_Get_Profile_Basal_RateTest.java
index da023edd1a..8feee88e7a 100644
--- a/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaRS/comm/DanaRS_Packet_Basal_Get_Profile_Basal_RateTest.java
+++ b/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaRS/comm/DanaRS_Packet_Basal_Get_Profile_Basal_RateTest.java
@@ -26,7 +26,6 @@ public class DanaRS_Packet_Basal_Get_Profile_Basal_RateTest extends DanaRS_Packe
AAPSMocker.mockMainApp();
AAPSMocker.mockApplicationContext();
AAPSMocker.mockSP();
- AAPSMocker.mockBus();
AAPSMocker.mockL();
// test if pumpRofile array is set right
diff --git a/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaRS/comm/DanaRS_Packet_Bolus_Get_Bolus_OptionTest.java b/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaRS/comm/DanaRS_Packet_Bolus_Get_Bolus_OptionTest.java
index 9931e02bd6..73e67f6830 100644
--- a/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaRS/comm/DanaRS_Packet_Bolus_Get_Bolus_OptionTest.java
+++ b/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaRS/comm/DanaRS_Packet_Bolus_Get_Bolus_OptionTest.java
@@ -28,7 +28,6 @@ public class DanaRS_Packet_Bolus_Get_Bolus_OptionTest {
AAPSMocker.mockApplicationContext();
AAPSMocker.mockSP();
AAPSMocker.mockL();
- AAPSMocker.mockBus();
DanaRS_Packet_Bolus_Get_Bolus_Option packet = new DanaRS_Packet_Bolus_Get_Bolus_Option();
diff --git a/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaRS/comm/DanaRS_Packet_Bolus_Set_Step_Bolus_StopTest.java b/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaRS/comm/DanaRS_Packet_Bolus_Set_Step_Bolus_StopTest.java
index c04ccd2767..f41a686201 100644
--- a/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaRS/comm/DanaRS_Packet_Bolus_Set_Step_Bolus_StopTest.java
+++ b/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaRS/comm/DanaRS_Packet_Bolus_Set_Step_Bolus_StopTest.java
@@ -25,8 +25,8 @@ public class DanaRS_Packet_Bolus_Set_Step_Bolus_StopTest extends DanaRS_Packet_B
public void runTest() {
AAPSMocker.mockMainApp();
AAPSMocker.mockApplicationContext();
+ AAPSMocker.mockStrings();
AAPSMocker.mockSP();
- AAPSMocker.mockBus();
AAPSMocker.mockL();
DanaRS_Packet_Bolus_Set_Step_Bolus_Stop testPacket = new DanaRS_Packet_Bolus_Set_Step_Bolus_Stop(1d , new Treatment());
diff --git a/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaRS/comm/DanaRS_Packet_General_Get_Pump_CheckTest.java b/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaRS/comm/DanaRS_Packet_General_Get_Pump_CheckTest.java
index 858abdbfd7..b3dde0b102 100644
--- a/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaRS/comm/DanaRS_Packet_General_Get_Pump_CheckTest.java
+++ b/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaRS/comm/DanaRS_Packet_General_Get_Pump_CheckTest.java
@@ -27,7 +27,6 @@ public class DanaRS_Packet_General_Get_Pump_CheckTest {
AAPSMocker.mockApplicationContext();
AAPSMocker.mockSP();
AAPSMocker.mockL();
- AAPSMocker.mockBus();
DanaRS_Packet_General_Get_Pump_Check packet = new DanaRS_Packet_General_Get_Pump_Check();
// test params
diff --git a/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaRS/comm/DanaRS_Packet_Notify_Delivery_CompleteTest.java b/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaRS/comm/DanaRS_Packet_Notify_Delivery_CompleteTest.java
index bf83dcee13..0d209edb33 100644
--- a/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaRS/comm/DanaRS_Packet_Notify_Delivery_CompleteTest.java
+++ b/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaRS/comm/DanaRS_Packet_Notify_Delivery_CompleteTest.java
@@ -30,7 +30,6 @@ public class DanaRS_Packet_Notify_Delivery_CompleteTest {
AAPSMocker.mockSP();
AAPSMocker.mockL();
AAPSMocker.mockStrings();
- AAPSMocker.mockBus();
DanaRS_Packet_Notify_Delivery_Complete packet = new DanaRS_Packet_Notify_Delivery_Complete(0.5d,new Treatment());
// test params
diff --git a/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaRS/comm/DanaRS_Packet_Notify_Delivery_Rate_DisplayTest.java b/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaRS/comm/DanaRS_Packet_Notify_Delivery_Rate_DisplayTest.java
index 7d2603991b..ce3554cf74 100644
--- a/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaRS/comm/DanaRS_Packet_Notify_Delivery_Rate_DisplayTest.java
+++ b/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaRS/comm/DanaRS_Packet_Notify_Delivery_Rate_DisplayTest.java
@@ -30,7 +30,6 @@ public class DanaRS_Packet_Notify_Delivery_Rate_DisplayTest {
AAPSMocker.mockSP();
AAPSMocker.mockL();
AAPSMocker.mockStrings();
- AAPSMocker.mockBus();
DanaRS_Packet_Notify_Delivery_Rate_Display packet = new DanaRS_Packet_Notify_Delivery_Rate_Display(1, new Treatment());
// test params
diff --git a/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaRv2/DanaRv2PluginTest.java b/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaRv2/DanaRv2PluginTest.java
index 288df852f9..71ae9b1d51 100644
--- a/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaRv2/DanaRv2PluginTest.java
+++ b/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaRv2/DanaRv2PluginTest.java
@@ -66,7 +66,6 @@ public class DanaRv2PluginTest {
public void prepareMocks() throws Exception {
AAPSMocker.mockMainApp();
AAPSMocker.mockConfigBuilder();
- AAPSMocker.mockBus();
AAPSMocker.mockStrings();
AAPSMocker.mockApplicationContext();
AAPSMocker.mockSP();
diff --git a/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaRv2/comm/MessageHashTable_rv2Test.java b/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaRv2/comm/MessageHashTable_rv2Test.java
index 33c64510cd..0dc1f174c9 100644
--- a/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaRv2/comm/MessageHashTable_rv2Test.java
+++ b/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaRv2/comm/MessageHashTable_rv2Test.java
@@ -25,7 +25,6 @@ public class MessageHashTable_rv2Test {
AAPSMocker.mockApplicationContext();
AAPSMocker.mockSP();
AAPSMocker.mockL();
- AAPSMocker.mockBus();
MessageHashTableRv2 hashTableRv2 = MessageHashTableRv2.INSTANCE;
diff --git a/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaRv2/comm/MsgCheckValue_v2Test.java b/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaRv2/comm/MsgCheckValue_v2Test.java
index acc2675c92..d7910d313d 100644
--- a/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaRv2/comm/MsgCheckValue_v2Test.java
+++ b/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaRv2/comm/MsgCheckValue_v2Test.java
@@ -1,5 +1,6 @@
package info.nightscout.androidaps.plugins.pump.danaRv2.comm;
+import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.powermock.core.classloader.annotations.PrepareForTest;
@@ -20,18 +21,10 @@ import static org.junit.Assert.*;
import static org.powermock.api.mockito.PowerMockito.when;
@RunWith(PowerMockRunner.class)
-@PrepareForTest({MainApp.class, SP.class, L.class, DanaRv2Plugin.class, DanaRPlugin.class, ConfigBuilderPlugin.class, CommandQueue.class})
+@PrepareForTest({MainApp.class, SP.class, L.class, ConfigBuilderPlugin.class, CommandQueue.class})
public class MsgCheckValue_v2Test {
@Test
public void runTest() {
- AAPSMocker.mockMainApp();
- AAPSMocker.mockApplicationContext();
- AAPSMocker.mockSP();
- AAPSMocker.mockL();
- AAPSMocker.mockBus();
- AAPSMocker.mockDanaRPlugin();
- AAPSMocker.mockConfigBuilder();
- AAPSMocker.mockCommandQueue();
Treatment t = new Treatment();
MsgCheckValue_v2 packet = new MsgCheckValue_v2();
// test message decoding
@@ -56,4 +49,13 @@ public class MsgCheckValue_v2Test {
return ret;
}
+ @Before
+ public void mock() {
+ AAPSMocker.mockMainApp();
+ AAPSMocker.mockApplicationContext();
+ AAPSMocker.mockSP();
+ AAPSMocker.mockL();
+ AAPSMocker.mockConfigBuilder();
+ AAPSMocker.mockCommandQueue();
+ }
}
\ No newline at end of file
diff --git a/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaRv2/comm/MsgHistoryEvents_v2Test.java b/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaRv2/comm/MsgHistoryEvents_v2Test.java
index 334c556ccb..fc70670e31 100644
--- a/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaRv2/comm/MsgHistoryEvents_v2Test.java
+++ b/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaRv2/comm/MsgHistoryEvents_v2Test.java
@@ -28,7 +28,6 @@ public class MsgHistoryEvents_v2Test {
AAPSMocker.mockApplicationContext();
AAPSMocker.mockSP();
AAPSMocker.mockL();
- AAPSMocker.mockBus();
AAPSMocker.mockDatabaseHelper();
AAPSMocker.mockTreatmentPlugin();
AAPSMocker.mockTreatmentService();
diff --git a/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaRv2/comm/MsgSetHistoryEntry_v2Test.java b/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaRv2/comm/MsgSetHistoryEntry_v2Test.java
index 50f80550b5..d554c33e8d 100644
--- a/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaRv2/comm/MsgSetHistoryEntry_v2Test.java
+++ b/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaRv2/comm/MsgSetHistoryEntry_v2Test.java
@@ -1,5 +1,6 @@
package info.nightscout.androidaps.plugins.pump.danaRv2.comm;
+import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.powermock.core.classloader.annotations.PrepareForTest;
@@ -18,16 +19,10 @@ import static org.junit.Assert.*;
*/
@RunWith(PowerMockRunner.class)
-@PrepareForTest({MainApp.class, SP.class, L.class, DanaRv2Plugin.class, DanaRPlugin.class})
+@PrepareForTest({MainApp.class, SP.class, L.class})
public class MsgSetHistoryEntry_v2Test {
@Test
public void runTest() {
- AAPSMocker.mockMainApp();
- AAPSMocker.mockApplicationContext();
- AAPSMocker.mockSP();
- AAPSMocker.mockL();
- AAPSMocker.mockBus();
- AAPSMocker.mockDanaRPlugin();
MsgSetHistoryEntry_v2 initializerTest = new MsgSetHistoryEntry_v2((byte) 1, System.currentTimeMillis(), 1, 0);
MsgSetHistoryEntry_v2 packet = new MsgSetHistoryEntry_v2();
@@ -57,4 +52,11 @@ public class MsgSetHistoryEntry_v2Test {
return ret;
}
+ @Before
+ public void mock() {
+ AAPSMocker.mockMainApp();
+ AAPSMocker.mockApplicationContext();
+ AAPSMocker.mockSP();
+ AAPSMocker.mockL();
+ }
}
\ No newline at end of file
diff --git a/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaRv2/comm/MsgStatusTempBasal_v2Test.java b/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaRv2/comm/MsgStatusTempBasal_v2Test.java
index 70a7a36f0e..8cb45dc5ee 100644
--- a/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaRv2/comm/MsgStatusTempBasal_v2Test.java
+++ b/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaRv2/comm/MsgStatusTempBasal_v2Test.java
@@ -1,5 +1,6 @@
package info.nightscout.androidaps.plugins.pump.danaRv2.comm;
+import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.powermock.core.classloader.annotations.PrepareForTest;
@@ -19,17 +20,10 @@ import static org.junit.Assert.*;
*/
@RunWith(PowerMockRunner.class)
-@PrepareForTest({MainApp.class, SP.class, L.class, DanaRv2Plugin.class, DanaRPlugin.class})
+@PrepareForTest({MainApp.class, SP.class, L.class})
public class MsgStatusTempBasal_v2Test {
@Test
public void runTest() {
- AAPSMocker.mockMainApp();
- AAPSMocker.mockApplicationContext();
- AAPSMocker.mockSP();
- AAPSMocker.mockL();
- AAPSMocker.mockBus();
- AAPSMocker.mockDanaRPlugin();
-
MsgStatusTempBasal_v2 packet = new MsgStatusTempBasal_v2();
DanaRPump pump = DanaRPump.getInstance();
// test message decoding
@@ -58,4 +52,12 @@ public class MsgStatusTempBasal_v2Test {
return ret;
}
+ @Before
+ public void mock() {
+ AAPSMocker.mockMainApp();
+ AAPSMocker.mockApplicationContext();
+ AAPSMocker.mockSP();
+ AAPSMocker.mockL();
+ }
+
}
\ No newline at end of file
diff --git a/app/src/test/java/info/nightscout/androidaps/plugins/pump/medtronic/comm/MedtronicHistoryDataUTest.java b/app/src/test/java/info/nightscout/androidaps/plugins/pump/medtronic/comm/MedtronicHistoryDataUTest.java
index 9c7a67cb1d..6ceb3cc438 100644
--- a/app/src/test/java/info/nightscout/androidaps/plugins/pump/medtronic/comm/MedtronicHistoryDataUTest.java
+++ b/app/src/test/java/info/nightscout/androidaps/plugins/pump/medtronic/comm/MedtronicHistoryDataUTest.java
@@ -3,25 +3,27 @@ package info.nightscout.androidaps.plugins.pump.medtronic.comm;
import android.util.Log;
import org.junit.Before;
-import org.junit.Ignore;
-import org.junit.Test;
import java.util.List;
+import info.AAPSMocker;
+import info.nightscout.androidaps.R;
import info.nightscout.androidaps.plugins.pump.common.utils.ByteUtil;
import info.nightscout.androidaps.plugins.pump.medtronic.comm.history.RawHistoryPage;
import info.nightscout.androidaps.plugins.pump.medtronic.comm.history.pump.MedtronicPumpHistoryDecoder;
import info.nightscout.androidaps.plugins.pump.medtronic.comm.history.pump.PumpHistoryEntry;
-import uk.org.lidalia.slf4jtest.TestLogger;
-import uk.org.lidalia.slf4jtest.TestLoggerFactory;
+import info.nightscout.androidaps.utils.SP;
+
+import static org.mockito.Mockito.when;
+//import uk.org.lidalia.slf4jtest.TestLogger;
+//import uk.org.lidalia.slf4jtest.TestLoggerFactory;
/**
* Created by andy on 3/10/19.
*/
-@Ignore
public class MedtronicHistoryDataUTest {
- TestLogger LOGGER = TestLoggerFactory.getTestLogger(MedtronicHistoryDataUTest.class);
+ //TestLogger LOGGER = TestLoggerFactory.getTestLogger(MedtronicHistoryDataUTest.class);
byte[] historyPageData = ByteUtil
.createByteArrayFromString("16 00 12 EC 14 47 13 33 00 14 F2 14 47 13 00 16 01 14 F2 14 47 13 33 00 1C C9 15 47 13 00 16 00 1C C9 15 47 13 33 4E 31 D3 15 47 13 00 16 01 31 D3 15 47 13 33 00 1A F1 15 47 13 00 16 00 1A F1 15 47 13 33 50 1D F1 15 47 13 00 16 01 1D F1 15 47 13 33 50 11 D8 16 47 13 00 16 01 11 D8 16 47 13 33 50 31 FB 16 47 13 00 16 01 31 FB 16 47 13 33 50 12 E3 17 47 13 00 16 01 12 E3 17 47 13 33 00 1E FB 17 47 13 00 16 00 1E FB 17 47 13 33 D8 21 FB 17 47 13 00 16 01 21 FB 17 47 13 07 00 00 05 CC 27 93 6D 27 93 05 0C 00 E8 00 00 00 00 05 CC 05 CC 64 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0C 00 E8 00 00 00 33 00 36 C4 00 48 13 00 16 00 36 C4 00 48 13 33 D8 29 C9 00 48 13 00 16 01 29 C9 00 48 13 33 00 12 E7 00 48 13 00 16 00 12 E7 00 48 13 33 BC 19 C9 01 48 13 00 16 01 19 C9 01 48 13 33 00 26 CE 01 48 13 00 16 00 26 CE 01 48 13 33 44 29 CE 01 48 13 00 16 01 29 CE 01 48 13 33 00 13 D3 01 48 13 00 16 00 13 D3 01 48 13 33 64 31 F1 01 48 13 00 16 01 31 F1 01 48 13 33 00 0B F7 01 48 13 00 16 00 0B F7 01 48 13 33 00 12 D8 02 48 13 00 16 01 12 D8 02 48 13 33 00 10 F1 02 48 13 00 16 00 10 F1 02 48 13 33 00 30 C4 03 48 13 00 16 01 30 C4 03 48 13 33 00 04 CA 03 48 13 00 16 00 04 CA 03 48 13 33 00 2F D3 03 48 13 00 16 01 2F D3 03 48 13 33 00 30 D8 03 48 13 00 16 00 30 D8 03 48 13 33 00 13 E7 03 48 13 00 16 01 13 E7 03 48 13 33 00 2E FB 03 48 13 00 16 00 2E FB 03 48 13 19 00 00 C1 04 08 13 07 00 00 04 0C 28 93 6D 28 93 05 0C 00 E8 00 00 00 00 04 0C 04 0C 64 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0C 00 E8 00 00 00 06 3E 03 7A 19 DC 48 49 13 0C 3E 0C E6 08 09 13 07 00 00 01 E4 29 93 6D 29 93 05 0C 00 E8 00 00 00 00 01 E4 01 E4 64 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0C 00 E8 00 00 00 1A 00 13 D2 0D 0A 13 1A 01 28 D2 0D 0A 13 21 00 2A D8 0D 0A 13 03 00 00 00 0E 2D D9 2D 0A 13 33 98 26 DE 0D 4A 13 00 16 01 26 DE 0D 4A 13 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 5D 70");
@@ -31,7 +33,7 @@ public class MedtronicHistoryDataUTest {
// Logger LOGGER = LoggerFactory.getLogger(MedtronicHistoryDataUTest.class);
- @Before
+ //@Before
public void setup() {
System.setProperty("org.slf4j.simpleLogger.defaultLogLevel", "trace");
@@ -44,10 +46,30 @@ public class MedtronicHistoryDataUTest {
// } finally {
// logger.removeAppender(appender);
// }
+
+
+ AAPSMocker.mockMainApp();
}
- @Test
+ @Before
+ public void prepareMocks() throws Exception {
+
+ System.setProperty("org.slf4j.simpleLogger.defaultLogLevel", "trace");
+ AAPSMocker.mockMainApp();
+ AAPSMocker.mockConfigBuilder();
+ AAPSMocker.mockStrings();
+ AAPSMocker.mockApplicationContext();
+ AAPSMocker.mockSP();
+ AAPSMocker.mockCommandQueue();
+
+ when(SP.getString(R.string.key_danars_address, "")).thenReturn("");
+
+ //danaRPlugin = DanaRPlugin.getPlugin();
+ }
+
+
+ //@Test
public void testTBR() throws Exception {
RawHistoryPage historyPage = new RawHistoryPage();
@@ -58,7 +80,7 @@ public class MedtronicHistoryDataUTest {
System.out.println("PumpHistoryEntries: " + pumpHistoryEntries.size());
Log.d("Test", "Log.d");
- LOGGER.debug("Logger.debug");
+ //LOGGER.debug("Logger.debug");
for (PumpHistoryEntry pumpHistoryEntry : pumpHistoryEntries) {
Log.d("MedtronicHistoryDataUTest", pumpHistoryEntry.toString());
@@ -79,7 +101,7 @@ public class MedtronicHistoryDataUTest {
System.out.println("PumpHistoryEntries: " + pumpHistoryEntries.size());
Log.d("Test", "Log.d");
- LOGGER.debug("Logger.debug");
+ //LOGGER.debug("Logger.debug");
for (PumpHistoryEntry pumpHistoryEntry : pumpHistoryEntries) {
Log.d("MedtronicHistoryDataUTest", pumpHistoryEntry.toString());
@@ -87,4 +109,27 @@ public class MedtronicHistoryDataUTest {
}
+
+ // @Test
+ public void testJRoth_2111() throws Exception {
+
+ byte[] historyPageData = ByteUtil
+ .createByteArrayFromString("01 03 03 00 8E 85 52 48 13 33 00 AB 89 12 48 13 00 16 00 AB 89 12 48 13 33 34 AD 89 12 48 13 00 16 01 AD 89 12 48 13 01 01 01 00 B8 8A 52 48 13 01 08 08 00 9F 8C 52 48 13 33 00 91 8F 12 48 13 00 16 00 91 8F 12 48 13 33 00 92 8F 12 48 13 00 16 03 92 8F 12 48 13 33 00 BA A7 12 48 13 00 16 04 BA A7 12 48 13 01 19 19 00 AF B0 52 48 13 33 00 8C 8A 13 48 13 00 16 04 8C 8A 13 48 13 33 00 9D A8 13 48 13 00 16 04 9D A8 13 48 13 33 00 AA 85 14 48 13 00 16 04 AA 85 14 48 13 33 00 8D A1 14 48 13 00 16 04 8D A1 14 48 13 33 10 89 BA 14 48 13 00 16 01 89 BA 14 48 13 33 00 AD 88 15 48 13 00 16 00 AD 88 15 48 13 33 00 AF 88 15 48 13 00 16 01 AF 88 15 48 13 01 1D 1D 00 95 8D 55 48 13 33 00 95 92 15 48 13 00 16 04 95 92 15 48 13 33 1E B7 9C 15 48 13 00 16 01 B7 9C 15 48 13 33 00 AA A6 15 48 13 00 16 00 AA A6 15 48 13 33 00 AC A6 15 48 13 00 16 04 AC A6 15 48 13 01 02 02 00 B7 A6 55 48 13 01 01 01 00 A6 AC 55 48 13 33 00 B3 8D 16 48 13 00 16 04 B3 8D 16 48 13 33 00 B7 97 16 48 13 00 16 04 B7 97 16 48 13 33 18 A7 B2 16 48 13 00 16 01 A7 B2 16 48 13 33 00 8B B8 16 48 13 00 16 00 8B B8 16 48 13 33 00 8D B8 16 48 13 00 16 03 8D B8 16 48 13 33 18 AE 85 17 48 13 00 16 01 AE 85 17 48 13 33 00 92 8A 17 48 13 00 16 00 92 8A 17 48 13 33 00 94 8A 17 48 13 00 16 01 94 8A 17 48 13 01 02 02 00 9F 8A 57 48 13 33 06 AC 8F 17 48 13 00 16 01 AC 8F 17 48 13 01 02 02 00 B8 8F 57 48 13 33 00 98 94 17 48 13 00 16 00 98 94 17 48 13 33 0C 9A 94 17 48 13 00 16 01 9A 94 17 48 13 01 02 02 00 A5 94 57 48 13 33 00 9C 99 17 48 13 00 16 00 9C 99 17 48 13 33 00 9E 99 17 48 13 00 16 01 9E 99 17 48 13 01 02 02 00 A9 99 57 48 13 01 02 02 00 84 9F 57 48 13 01 02 02 00 A7 A6 57 48 13 33 00 A4 AB 17 48 13 00 16 00 A4 AB 17 48 13 01 02 02 00 B0 AB 57 48 13 33 00 A7 B0 17 48 13 00 16 02 A7 B0 17 48 13 01 01 01 00 B2 B0 57 48 13 33 00 AD BA 17 48 13 00 16 04 AD BA 17 48 13 07 00 00 05 3A A8 13 6D A8 13 05 0C 00 E8 00 00 00 00 05 3A 00 F6 12 04 44 52 00 00 04 44 52 00 00 00 00 00 00 04 44 64 35 00 00 00 35 0C 00 E8 00 00 00 06 0A 1D 66 80 81 60 09 13 0C 0A 8D 82 00 09 13 1A 00 9A 82 00 09 13 1A 01 AF 82 00 09 13 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 28");
+
+ RawHistoryPage historyPage = new RawHistoryPage();
+ historyPage.appendData(historyPageData);
+
+ List pumpHistoryEntries = decoder.processPageAndCreateRecords(historyPage);
+
+ System.out.println("PumpHistoryEntries: " + pumpHistoryEntries.size());
+
+ Log.d("Test", "Log.d");
+ //LOGGER.debug("Logger.debug");
+
+ for (PumpHistoryEntry pumpHistoryEntry : pumpHistoryEntries) {
+ Log.d("MedtronicHistoryDataUTest", pumpHistoryEntry.toString());
+ }
+ }
+
+
}
diff --git a/app/src/test/java/info/nightscout/androidaps/plugins/pump/virtual/VirtualPumpPluginUTest.java b/app/src/test/java/info/nightscout/androidaps/plugins/pump/virtual/VirtualPumpPluginUTest.java
index 9ef75ef597..0a9d68c1ad 100644
--- a/app/src/test/java/info/nightscout/androidaps/plugins/pump/virtual/VirtualPumpPluginUTest.java
+++ b/app/src/test/java/info/nightscout/androidaps/plugins/pump/virtual/VirtualPumpPluginUTest.java
@@ -35,7 +35,6 @@ public class VirtualPumpPluginUTest {
public void prepareMocks() throws Exception {
AAPSMocker.mockMainApp();
AAPSMocker.mockConfigBuilder();
- AAPSMocker.mockBus();
AAPSMocker.mockStrings();
AAPSMocker.mockCommandQueue();
AAPSMocker.mockSP();
diff --git a/app/src/test/java/info/nightscout/androidaps/queue/CommandQueueTest.java b/app/src/test/java/info/nightscout/androidaps/queue/CommandQueueTest.java
index 63a626d8f7..baaccd95b3 100644
--- a/app/src/test/java/info/nightscout/androidaps/queue/CommandQueueTest.java
+++ b/app/src/test/java/info/nightscout/androidaps/queue/CommandQueueTest.java
@@ -2,9 +2,6 @@ package info.nightscout.androidaps.queue;
import android.content.Context;
-import com.squareup.otto.Bus;
-import com.squareup.otto.ThreadEnforcer;
-
import junit.framework.Assert;
import org.json.JSONException;
@@ -26,8 +23,8 @@ import info.nightscout.androidaps.data.Profile;
import info.nightscout.androidaps.interfaces.Constraint;
import info.nightscout.androidaps.interfaces.PumpInterface;
import info.nightscout.androidaps.plugins.configBuilder.ConfigBuilderPlugin;
-import info.nightscout.androidaps.plugins.treatments.TreatmentsPlugin;
import info.nightscout.androidaps.plugins.pump.virtual.VirtualPumpPlugin;
+import info.nightscout.androidaps.plugins.treatments.TreatmentsPlugin;
import info.nightscout.androidaps.queue.commands.Command;
import info.nightscout.androidaps.utils.ToastUtils;
@@ -140,9 +137,6 @@ public class CommandQueueTest extends CommandQueue {
String message = null;
PowerMockito.doNothing().when(ToastUtils.class, "showToastInUiThread", context, message);
- Bus bus = new Bus(ThreadEnforcer.ANY);
-
- when(MainApp.bus()).thenReturn(bus);
when(MainApp.gs(0)).thenReturn("");
PowerMockito.mockStatic(TreatmentsPlugin.class);
diff --git a/app/src/test/java/info/nightscout/androidaps/utils/SntpClientTest.java b/app/src/test/java/info/nightscout/androidaps/utils/SntpClientTest.java
new file mode 100644
index 0000000000..166ce04b10
--- /dev/null
+++ b/app/src/test/java/info/nightscout/androidaps/utils/SntpClientTest.java
@@ -0,0 +1,28 @@
+package info.nightscout.androidaps.utils;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+public class SntpClientTest {
+
+ @Test
+ public void ntpTimeTest() {
+ // no internet
+ SntpClient.ntpTime(new SntpClient.Callback() {
+ @Override
+ public void run() {
+ Assert.assertFalse(networkConnected);
+ Assert.assertFalse(success);
+ Assert.assertEquals(0L, time);
+ }
+ }, false);
+ // internet
+ SntpClient.doNtpTime(new SntpClient.Callback() {
+ @Override
+ public void run() {
+ Assert.assertTrue(success);
+ Assert.assertTrue(Math.abs(time - DateUtil.now()) < 60000);
+ }
+ });
+ }
+}
\ No newline at end of file
diff --git a/build.gradle b/build.gradle
index 8b9295e9e8..31658346b6 100644
--- a/build.gradle
+++ b/build.gradle
@@ -8,7 +8,7 @@ buildscript {
maven { url 'https://maven.fabric.io/public' }
}
dependencies {
- classpath 'com.android.tools.build:gradle:3.5.0'
+ classpath 'com.android.tools.build:gradle:3.5.1'
classpath 'com.google.gms:google-services:4.3.2'
classpath 'io.fabric.tools:gradle:1.31.0'
diff --git a/crowdin.yml b/crowdin.yml
index 34874e6403..7d92dfb8bc 100644
--- a/crowdin.yml
+++ b/crowdin.yml
@@ -5,3 +5,5 @@ files:
translation: /app/src/main/res/values-%android_code%/%original_file_name%
- source: /app/src/main/res/values/exam.xml
translation: /app/src/main/res/values-%android_code%/%original_file_name%
+ - source: /app/src/main/res/values/objectives.xml
+ translation: /app/src/main/res/values-%android_code%/%original_file_name%