diff --git a/app/build.gradle b/app/build.gradle index c834c2ac04..1a3096c856 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -10,6 +10,7 @@ buildscript { } } apply plugin: "com.android.application" +apply plugin: 'com.google.gms.google-services' apply plugin: "io.fabric" apply plugin: "jacoco-android" apply plugin: 'com.jakewharton.butterknife' @@ -44,6 +45,22 @@ def generateGitBuild = { -> return stringBuilder.toString() } +def generateGitRemote = { -> + StringBuilder stringBuilder = new StringBuilder(); + try { + def stdout = new ByteArrayOutputStream() + exec { + commandLine 'git', 'remote', 'get-url', 'origin' + standardOutput = stdout + } + String commitObject = stdout.toString().trim() + stringBuilder.append(commitObject) + } catch (ignored) { + stringBuilder.append('NoGitSystemAvailable') + } + return stringBuilder.toString() +} + def generateDate = { -> StringBuilder stringBuilder = new StringBuilder(); stringBuilder.append((new Date()).format('yyyy.MM.dd-HH:mm')) @@ -63,9 +80,10 @@ android { targetSdkVersion 25 multiDexEnabled true versionCode 1500 - version "2.2.1-dev" + version "2.2.3-dev" buildConfigField "String", "VERSION", '"' + version + '"' buildConfigField "String", "BUILDVERSION", '"' + generateGitBuild() + '-' + generateDate() + '"' + buildConfigField "String", "REMOTE", '"' + generateGitRemote()+ '"' buildConfigField "String", "HEAD", '"' + generateGitBuild() + '"' testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" // if you change minSdkVersion to less than 11, you need to change executeTask for wear @@ -168,12 +186,11 @@ dependencies { wearApp project(':wear') implementation fileTree(include: ['*.jar'], dir: 'libs') + implementation 'com.google.android.gms:play-services-wearable:16.0.1' + implementation 'com.google.firebase:firebase-core:16.0.8' implementation("com.crashlytics.sdk.android:crashlytics:2.9.9@aar") { transitive = true; } - implementation("com.crashlytics.sdk.android:answers:1.4.7@aar") { - transitive = true; - } libs "MilosKozak:danars-support-lib:master@zip" implementation "com.android.support:appcompat-v7:${supportLibraryVersion}" @@ -193,11 +210,11 @@ dependencies { } implementation "org.apache.commons:commons-lang3:3.7" implementation "org.slf4j:slf4j-api:1.7.21" + // Graphview cannot be upgraded implementation "com.jjoe64:graphview:4.0.1" implementation "com.joanzapata.iconify:android-iconify-fontawesome:2.1.1" - implementation 'com.google.android.gms:play-services-wearable:10.2.1' + implementation 'com.android.support.constraint:constraint-layout:1.1.3' implementation(name: "android-edittext-validator-v1.3.4-mod", ext: "aar") - implementation(name: "sightparser-release", ext: "aar") implementation 'com.madgag.spongycastle:core:1.58.0.0' implementation 'com.android.support.constraint:constraint-layout:1.1.3' diff --git a/app/google-services.json b/app/google-services.json new file mode 100644 index 0000000000..42db6f4289 --- /dev/null +++ b/app/google-services.json @@ -0,0 +1,107 @@ +{ + "project_info": { + "project_number": "477603612366", + "firebase_url": "https://androidaps-c34f8.firebaseio.com", + "project_id": "androidaps-c34f8", + "storage_bucket": "androidaps-c34f8.appspot.com" + }, + "client": [ + { + "client_info": { + "mobilesdk_app_id": "1:477603612366:android:aef229914e3e5448", + "android_client_info": { + "package_name": "info.nightscout.aapspumpcontrol" + } + }, + "oauth_client": [], + "api_key": [ + { + "current_key": "AIzaSyDcZpDRMaGjdhihXp531cVYM6LkEL8KbgM" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [ + { + "client_id": "477603612366-a925drvlvs7qn7gt73r585erbqto8c79.apps.googleusercontent.com", + "client_type": 3 + } + ] + } + } + }, + { + "client_info": { + "mobilesdk_app_id": "1:477603612366:android:efc956f55b281623", + "android_client_info": { + "package_name": "info.nightscout.androidaps" + } + }, + "oauth_client": [], + "api_key": [ + { + "current_key": "AIzaSyDcZpDRMaGjdhihXp531cVYM6LkEL8KbgM" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [ + { + "client_id": "477603612366-a925drvlvs7qn7gt73r585erbqto8c79.apps.googleusercontent.com", + "client_type": 3 + } + ] + } + } + }, + { + "client_info": { + "mobilesdk_app_id": "1:477603612366:android:b38d6e7351f73cc0", + "android_client_info": { + "package_name": "info.nightscout.nsclient" + } + }, + "oauth_client": [], + "api_key": [ + { + "current_key": "AIzaSyDcZpDRMaGjdhihXp531cVYM6LkEL8KbgM" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [ + { + "client_id": "477603612366-a925drvlvs7qn7gt73r585erbqto8c79.apps.googleusercontent.com", + "client_type": 3 + } + ] + } + } + }, + { + "client_info": { + "mobilesdk_app_id": "1:477603612366:android:2dc8cf3acd3332e7", + "android_client_info": { + "package_name": "info.nightscout.nsclient2" + } + }, + "oauth_client": [], + "api_key": [ + { + "current_key": "AIzaSyDcZpDRMaGjdhihXp531cVYM6LkEL8KbgM" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [ + { + "client_id": "477603612366-a925drvlvs7qn7gt73r585erbqto8c79.apps.googleusercontent.com", + "client_type": 3 + } + ] + } + } + } + ], + "configuration_version": "1" +} \ No newline at end of file diff --git a/app/libs/sightparser-release.aar b/app/libs/sightparser-release.aar deleted file mode 100644 index 1f0c16ee34..0000000000 Binary files a/app/libs/sightparser-release.aar and /dev/null differ diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cf159c0ea9..eed60ff12e 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -39,6 +39,7 @@ + @@ -47,10 +48,10 @@ @@ -73,30 +74,40 @@ + + android:name=".receivers.DataReceiver" + android:enabled="true" + android:exported="true"> - - - - + - + - + - - - + + + - + - + + + + + + + + + @@ -179,57 +190,57 @@ + android:pathPrefix="/nightscout_watch_data" + android:scheme="wear" /> + android:pathPrefix="/nightscout_watch_data_resend" + android:scheme="wear" /> + android:pathPrefix="/nightscout_watch_cancel_bolus" + android:scheme="wear" /> + android:pathPrefix="/nightscout_watch_confirmactionstring" + android:scheme="wear" /> + android:pathPrefix="/nightscout_watch_initiateactionstring" + android:scheme="wear" /> + android:pathPrefix="/openwearsettings" + android:scheme="wear" /> + android:pathPrefix="/sendstatustowear" + android:scheme="wear" /> + android:pathPrefix="/sendpreferencestowear" + android:scheme="wear" /> + android:pathPrefix="/nightscout_watch_basal" + android:scheme="wear" /> + android:pathPrefix="/nightscout_watch_bolusprogress" + android:scheme="wear" /> + android:pathPrefix="/nightscout_watch_actionconfirmationrequest" + android:scheme="wear" /> + android:pathPrefix="/nightscout_watch_changeconfirmationrequest" + android:scheme="wear" /> + android:pathPrefix="/nightscout_watch_cancelnotificationrequest" + android:scheme="wear" /> - + + android:label="@string/insight_pairing" + android:theme="@style/AppTheme" /> + android:label="@string/pairing_information" + android:theme="@style/AppTheme" /> diff --git a/app/src/main/java/info/nightscout/androidaps/MainActivity.java b/app/src/main/java/info/nightscout/androidaps/MainActivity.java index ad4a28c1f3..f441a8b243 100644 --- a/app/src/main/java/info/nightscout/androidaps/MainActivity.java +++ b/app/src/main/java/info/nightscout/androidaps/MainActivity.java @@ -54,6 +54,7 @@ import info.nightscout.androidaps.plugins.general.nsclient.data.NSSettingsStatus import info.nightscout.androidaps.setupwizard.SetupWizardActivity; import info.nightscout.androidaps.tabs.TabPageAdapter; import info.nightscout.androidaps.utils.AndroidPermission; +import info.nightscout.androidaps.utils.FabricPrivacy; import info.nightscout.androidaps.utils.LocaleHelper; import info.nightscout.androidaps.utils.OKDialog; import info.nightscout.androidaps.utils.PasswordProtection; @@ -115,6 +116,7 @@ public class MainActivity extends AppCompatActivity { } }); VersionChecker.check(); + FabricPrivacy.setUserStats(); } private void checkPluginPreferences(ViewPager viewPager) { @@ -170,7 +172,7 @@ public class MainActivity extends AppCompatActivity { 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, "AAPS"); + mWakeLock = pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK, "AndroidAPS:MainActivity_onEventPreferenceChange"); if (!mWakeLock.isHeld()) mWakeLock.acquire(); } else { diff --git a/app/src/main/java/info/nightscout/androidaps/MainApp.java b/app/src/main/java/info/nightscout/androidaps/MainApp.java index 36d9591532..8557a54843 100644 --- a/app/src/main/java/info/nightscout/androidaps/MainApp.java +++ b/app/src/main/java/info/nightscout/androidaps/MainApp.java @@ -9,7 +9,7 @@ import android.support.annotation.PluralsRes; import android.support.v4.content.LocalBroadcastManager; import com.crashlytics.android.Crashlytics; -import com.crashlytics.android.answers.Answers; +import com.google.firebase.analytics.FirebaseAnalytics; import com.j256.ormlite.android.apptools.OpenHelperManager; import com.squareup.otto.Bus; import com.squareup.otto.LoggingBus; @@ -98,6 +98,8 @@ public class MainApp extends Application { private static MainApp sInstance; public static Resources sResources; + private static FirebaseAnalytics mFirebaseAnalytics; + private static DatabaseHelper sDatabaseHelper = null; private static ConstraintChecker sConstraintsChecker = null; @@ -124,17 +126,18 @@ public class MainApp extends Application { try { if (FabricPrivacy.fabricEnabled()) { Fabric.with(this, new Crashlytics()); - Fabric.with(this, new Answers()); - Crashlytics.setString("BUILDVERSION", BuildConfig.BUILDVERSION); } } catch (Exception e) { log.error("Error with Fabric init! " + e); } + mFirebaseAnalytics = FirebaseAnalytics.getInstance(this); + JodaTimeAndroid.init(this); log.info("Version: " + BuildConfig.VERSION_NAME); log.info("BuildVersion: " + BuildConfig.BUILDVERSION); + log.info("Remote: " + BuildConfig.REMOTE); String extFilesDir = LoggerUtils.getLogDirectory(); File engineeringModeSemaphore = new File(extFilesDir, "engineering_mode"); @@ -309,6 +312,10 @@ public class MainApp extends Application { } } + public static FirebaseAnalytics getFirebaseAnalytics() { + return mFirebaseAnalytics; + } + public static ConstraintChecker getConstraintChecker() { return sConstraintsChecker; } diff --git a/app/src/main/java/info/nightscout/androidaps/data/GlucoseStatus.java b/app/src/main/java/info/nightscout/androidaps/data/GlucoseStatus.java index d65bf6b99f..be3e981fb4 100644 --- a/app/src/main/java/info/nightscout/androidaps/data/GlucoseStatus.java +++ b/app/src/main/java/info/nightscout/androidaps/data/GlucoseStatus.java @@ -8,9 +8,8 @@ import org.slf4j.LoggerFactory; import java.util.ArrayList; import java.util.List; -import info.nightscout.androidaps.MainApp; -import info.nightscout.androidaps.R; import info.nightscout.androidaps.db.BgReading; +import info.nightscout.androidaps.logging.L; import info.nightscout.androidaps.plugins.iob.iobCobCalculator.IobCobCalculatorPlugin; import info.nightscout.androidaps.utils.DateUtil; import info.nightscout.androidaps.utils.DecimalFormatter; @@ -30,12 +29,11 @@ public class GlucoseStatus { public long date = 0L; - @Override - public String toString() { - return MainApp.gs(R.string.glucose) + " " + DecimalFormatter.to0Decimal(glucose) + " mg/dl\n" + - MainApp.gs(R.string.delta) + " " + DecimalFormatter.to0Decimal(delta) + " mg/dl\n" + - MainApp.gs(R.string.short_avgdelta) + " " + DecimalFormatter.to2Decimal(short_avgdelta) + " mg/dl\n" + - MainApp.gs(R.string.long_avgdelta) + " " + DecimalFormatter.to2Decimal(long_avgdelta) + " mg/dl"; + public String log() { + return "Glucose: " + DecimalFormatter.to0Decimal(glucose) + " mg/dl " + + "Delta: " + DecimalFormatter.to0Decimal(delta) + " mg/dl" + + "Short avg. delta: " + " " + DecimalFormatter.to2Decimal(short_avgdelta) + " mg/dl " + + "Long avg. delta: " + DecimalFormatter.to2Decimal(long_avgdelta) + " mg/dl"; } public GlucoseStatus() { @@ -64,17 +62,22 @@ public class GlucoseStatus { List data = IobCobCalculatorPlugin.getPlugin().getBgReadings(); - if (data == null) - return null; - - int sizeRecords = data.size(); - if (sizeRecords == 0) { + if (data == null) { + if (L.isEnabled(L.GLUCOSE)) + log.debug("data=null"); return null; } - sizeRecords = Math.min(sizeRecords, 9); + int sizeRecords = data.size(); + if (sizeRecords == 0) { + if (L.isEnabled(L.GLUCOSE)) + log.debug("sizeRecords==0"); + return null; + } if (data.get(0).date < DateUtil.now() - 7 * 60 * 1000L && !allowOldData) { + if (L.isEnabled(L.GLUCOSE)) + log.debug("olddata"); return null; } @@ -90,18 +93,24 @@ public class GlucoseStatus { status.long_avgdelta = 0d; status.avgdelta = 0d; // for OpenAPS MA status.date = now_date; + if (L.isEnabled(L.GLUCOSE)) + log.debug("sizeRecords==1"); return status.round(); } - ArrayList last_deltas = new ArrayList(); - ArrayList short_deltas = new ArrayList(); - ArrayList long_deltas = new ArrayList(); + ArrayList now_value_list = new ArrayList<>(); + ArrayList last_deltas = new ArrayList<>(); + ArrayList short_deltas = new ArrayList<>(); + ArrayList long_deltas = new ArrayList<>(); + + // Use the latest sgv value in the now calculations + now_value_list.add(now.value); for (int i = 1; i < sizeRecords; i++) { if (data.get(i).value > 38) { BgReading then = data.get(i); long then_date = then.date; - double avgdelta = 0; + double avgdelta; long minutesago; minutesago = Math.round((now_date - then_date) / (1000d * 60)); @@ -109,10 +118,14 @@ public class GlucoseStatus { change = now.value - then.value; avgdelta = change / minutesago * 5; + if (L.isEnabled(L.GLUCOSE)) + log.debug(then.toString() + " minutesago=" + minutesago + " avgdelta=" + avgdelta); + // use the average of all data points in the last 2.5m for all further "now" calculations if (0 < minutesago && minutesago < 2.5) { - now.value = (now.value + then.value) / 2; - now_date = (now_date + then_date) / 2; + // Keep and average all values within the last 2.5 minutes + now_value_list.add(then.value); + now.value = average(now_value_list); // short_deltas are calculated from everything ~5-15 minutes ago } else if (2.5 < minutesago && minutesago < 17.5) { //console.error(minutesago, avgdelta); @@ -124,6 +137,9 @@ public class GlucoseStatus { // long_deltas are calculated from everything ~20-40 minutes ago } else if (17.5 < minutesago && minutesago < 42.5) { long_deltas.add(avgdelta); + } else { + // Do not process any more records after >= 42.5 minutes + break; } } } @@ -143,6 +159,8 @@ public class GlucoseStatus { status.long_avgdelta = average(long_deltas); status.avgdelta = status.short_avgdelta; // for OpenAPS MA + if (L.isEnabled(L.GLUCOSE)) + log.debug(status.log()); return status.round(); } 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 6600632869..a41939b326 100644 --- a/app/src/main/java/info/nightscout/androidaps/db/DatabaseHelper.java +++ b/app/src/main/java/info/nightscout/androidaps/db/DatabaseHelper.java @@ -35,7 +35,7 @@ import info.nightscout.androidaps.data.ProfileStore; import info.nightscout.androidaps.events.EventCareportalEventChange; import info.nightscout.androidaps.events.EventExtendedBolusChange; import info.nightscout.androidaps.events.EventNewBG; -import info.nightscout.androidaps.events.EventProfileSwitchChange; +import info.nightscout.androidaps.events.EventProfileNeedsUpdate; import info.nightscout.androidaps.events.EventRefreshOverview; import info.nightscout.androidaps.events.EventReloadProfileSwitchData; import info.nightscout.androidaps.events.EventReloadTempBasalData; @@ -726,7 +726,7 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper { String units = JsonHelper.safeGetString(trJson, "units", Constants.MGDL); TempTarget tempTarget = new TempTarget() .date(trJson.getLong("mills")) - .duration(trJson.getInt("duration")) + .duration(JsonHelper.safeGetInt(trJson, "duration")) .low(Profile.toMgdl(trJson.getDouble("targetBottom"), units)) .high(Profile.toMgdl(trJson.getDouble("targetTop"), units)) .reason(JsonHelper.safeGetString(trJson, "reason", "")) @@ -1574,9 +1574,9 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper { class PostRunnable implements Runnable { public void run() { if (L.isEnabled(L.DATABASE)) - log.debug("Firing EventProfileSwitchChange"); + log.debug("Firing EventProfileNeedsUpdate"); MainApp.bus().post(new EventReloadProfileSwitchData()); - MainApp.bus().post(new EventProfileSwitchChange()); + MainApp.bus().post(new EventProfileNeedsUpdate()); scheduledProfileSwitchEventPost = null; } } diff --git a/app/src/main/java/info/nightscout/androidaps/events/EventProfileSwitchChange.java b/app/src/main/java/info/nightscout/androidaps/events/EventProfileNeedsUpdate.java similarity index 62% rename from app/src/main/java/info/nightscout/androidaps/events/EventProfileSwitchChange.java rename to app/src/main/java/info/nightscout/androidaps/events/EventProfileNeedsUpdate.java index 7bab9d4518..9e3f3b08c7 100644 --- a/app/src/main/java/info/nightscout/androidaps/events/EventProfileSwitchChange.java +++ b/app/src/main/java/info/nightscout/androidaps/events/EventProfileNeedsUpdate.java @@ -4,5 +4,5 @@ package info.nightscout.androidaps.events; * Created by mike on 02.06.2017. */ -public class EventProfileSwitchChange extends Event { +public class EventProfileNeedsUpdate extends Event { } diff --git a/app/src/main/java/info/nightscout/androidaps/logging/L.java b/app/src/main/java/info/nightscout/androidaps/logging/L.java index e8dfff95e5..c97b418962 100644 --- a/app/src/main/java/info/nightscout/androidaps/logging/L.java +++ b/app/src/main/java/info/nightscout/androidaps/logging/L.java @@ -78,6 +78,7 @@ public class L { public static final String CORE = "CORE"; public static final String AUTOSENS = "AUTOSENS"; public static final String EVENTS = "EVENTS"; + public static final String GLUCOSE = "GLUCOSE"; public static final String BGSOURCE = "BGSOURCE"; public static final String OVERVIEW = "OVERVIEW"; public static final String NOTIFICATION = "NOTIFICATION"; @@ -103,6 +104,7 @@ public class L { logElements.add(new LogElement(APS, true)); logElements.add(new LogElement(AUTOSENS, false)); logElements.add(new LogElement(BGSOURCE, true)); + logElements.add(new LogElement(GLUCOSE, false)); logElements.add(new LogElement(CONFIGBUILDER, false)); logElements.add(new LogElement(CONSTRAINTS, true)); logElements.add(new LogElement(CORE, true)); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/aps/loop/LoopFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/aps/loop/LoopFragment.java index 0b11dd0ac3..951631eb0c 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/aps/loop/LoopFragment.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/aps/loop/LoopFragment.java @@ -10,7 +10,6 @@ import android.view.ViewGroup; import android.widget.Button; import android.widget.TextView; -import com.crashlytics.android.answers.CustomEvent; import com.squareup.otto.Subscribe; import butterknife.BindView; @@ -19,9 +18,9 @@ import butterknife.OnClick; import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.R; import info.nightscout.androidaps.interfaces.Constraint; -import info.nightscout.androidaps.plugins.common.SubscriberFragment; import info.nightscout.androidaps.plugins.aps.loop.events.EventLoopSetLastRunGui; import info.nightscout.androidaps.plugins.aps.loop.events.EventLoopUpdateGui; +import info.nightscout.androidaps.plugins.common.SubscriberFragment; import info.nightscout.androidaps.utils.FabricPrivacy; public class LoopFragment extends SubscriberFragment { @@ -62,7 +61,6 @@ public class LoopFragment extends SubscriberFragment { void onRunClick() { lastRunView.setText(MainApp.gs(R.string.executing)); new Thread(() -> LoopPlugin.getPlugin().invoke("Loop button", true)).start(); - FabricPrivacy.getInstance().logCustom(new CustomEvent("Loop_Run")); } @Subscribe @@ -75,7 +73,11 @@ public class LoopFragment extends SubscriberFragment { clearGUI(); final Activity activity = getActivity(); if (activity != null) - activity.runOnUiThread(() -> { synchronized (LoopFragment.this) { if (lastRunView != null) lastRunView.setText(ev.text); } }); + activity.runOnUiThread(() -> { + synchronized (LoopFragment.this) { + if (lastRunView != null) lastRunView.setText(ev.text); + } + }); } 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 91bbccc515..92378a1d6b 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 @@ -13,7 +13,6 @@ import android.os.SystemClock; import android.support.annotation.NonNull; import android.support.v4.app.NotificationCompat; -import com.crashlytics.android.answers.CustomEvent; import com.squareup.otto.Subscribe; import org.slf4j.Logger; @@ -33,6 +32,7 @@ import info.nightscout.androidaps.db.CareportalEvent; import info.nightscout.androidaps.db.DatabaseHelper; import info.nightscout.androidaps.db.Source; import info.nightscout.androidaps.db.TemporaryBasal; +import info.nightscout.androidaps.events.EventAcceptOpenLoopChange; import info.nightscout.androidaps.events.EventNewBG; import info.nightscout.androidaps.events.EventTempTargetChange; import info.nightscout.androidaps.interfaces.APSInterface; @@ -44,18 +44,17 @@ import info.nightscout.androidaps.interfaces.PumpDescription; import info.nightscout.androidaps.interfaces.PumpInterface; import info.nightscout.androidaps.interfaces.TreatmentsInterface; import info.nightscout.androidaps.logging.L; -import info.nightscout.androidaps.plugins.configBuilder.ConfigBuilderPlugin; -import info.nightscout.androidaps.plugins.constraints.objectives.ObjectivesPlugin; -import info.nightscout.androidaps.plugins.configBuilder.ProfileFunctions; -import info.nightscout.androidaps.plugins.iob.iobCobCalculator.events.EventAutosensCalculationFinished; import info.nightscout.androidaps.plugins.aps.loop.events.EventLoopSetLastRunGui; import info.nightscout.androidaps.plugins.aps.loop.events.EventLoopUpdateGui; import info.nightscout.androidaps.plugins.aps.loop.events.EventNewOpenLoopNotification; +import info.nightscout.androidaps.plugins.configBuilder.ConfigBuilderPlugin; +import info.nightscout.androidaps.plugins.configBuilder.ProfileFunctions; +import info.nightscout.androidaps.plugins.constraints.objectives.ObjectivesPlugin; import info.nightscout.androidaps.plugins.general.nsclient.NSUpload; +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; import info.nightscout.androidaps.plugins.treatments.TreatmentsPlugin; -import info.nightscout.androidaps.plugins.general.wear.ActionStringHandler; -import info.nightscout.androidaps.events.EventAcceptOpenLoopChange; import info.nightscout.androidaps.queue.Callback; import info.nightscout.androidaps.queue.commands.Command; import info.nightscout.androidaps.utils.FabricPrivacy; @@ -179,11 +178,9 @@ public class LoopPlugin extends PluginBase { @Subscribe public void onStatusEvent(final EventTempTargetChange ev) { new Thread(() -> invoke("EventTempTargetChange", true)).start(); - FabricPrivacy.getInstance().logCustom(new CustomEvent("TT_Loop_Run")); } - public void suspendTo(long endTime) { loopSuspendedTill = endTime; isSuperBolus = false; @@ -376,7 +373,7 @@ public class LoopPlugin extends PluginBase { if (resultAfterConstraints.bolusRequested) lastRun.smbSetByPump = waiting; MainApp.bus().post(new EventLoopUpdateGui()); - FabricPrivacy.getInstance().logCustom(new CustomEvent("APSRequest")); + FabricPrivacy.getInstance().logCustom("APSRequest"); applyTBRRequest(resultAfterConstraints, profile, new Callback() { @Override public void run() { @@ -395,7 +392,6 @@ public class LoopPlugin extends PluginBase { SystemClock.sleep(1000); LoopPlugin.getPlugin().invoke("tempBasalFallback", allowNotification, true); }).start(); - FabricPrivacy.getInstance().logCustom(new CustomEvent("Loop_Run_TempBasalFallback")); } MainApp.bus().post(new EventLoopUpdateGui()); } @@ -482,7 +478,7 @@ public class LoopPlugin extends PluginBase { MainApp.bus().post(new EventAcceptOpenLoopChange()); } }); - FabricPrivacy.getInstance().logCustom(new CustomEvent("AcceptTemp")); + FabricPrivacy.getInstance().logCustom("AcceptTemp"); } /** diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/aps/openAPSAMA/OpenAPSAMAFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/aps/openAPSAMA/OpenAPSAMAFragment.java index f73a66bbfe..0aadf52cbd 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/aps/openAPSAMA/OpenAPSAMAFragment.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/aps/openAPSAMA/OpenAPSAMAFragment.java @@ -8,7 +8,6 @@ import android.view.ViewGroup; import android.widget.Button; import android.widget.TextView; -import com.crashlytics.android.answers.CustomEvent; import com.squareup.otto.Subscribe; import org.json.JSONArray; @@ -19,11 +18,10 @@ import org.slf4j.LoggerFactory; import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.R; import info.nightscout.androidaps.logging.L; -import info.nightscout.androidaps.plugins.common.SubscriberFragment; import info.nightscout.androidaps.plugins.aps.openAPSMA.events.EventOpenAPSUpdateGui; import info.nightscout.androidaps.plugins.aps.openAPSMA.events.EventOpenAPSUpdateResultGui; +import info.nightscout.androidaps.plugins.common.SubscriberFragment; import info.nightscout.androidaps.utils.DateUtil; -import info.nightscout.androidaps.utils.FabricPrivacy; import info.nightscout.androidaps.utils.JSONFormatter; public class OpenAPSAMAFragment extends SubscriberFragment implements View.OnClickListener { @@ -68,7 +66,6 @@ public class OpenAPSAMAFragment extends SubscriberFragment implements View.OnCli switch (view.getId()) { case R.id.openapsma_run: OpenAPSAMAPlugin.getPlugin().invoke("OpenAPSAMA button", false); - FabricPrivacy.getInstance().logCustom(new CustomEvent("OpenAPS_AMA_Run")); break; } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/aps/openAPSMA/OpenAPSMAFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/aps/openAPSMA/OpenAPSMAFragment.java index 257a4abcb2..5d632a44fc 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/aps/openAPSMA/OpenAPSMAFragment.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/aps/openAPSMA/OpenAPSMAFragment.java @@ -8,13 +8,12 @@ import android.view.ViewGroup; import android.widget.Button; import android.widget.TextView; -import com.crashlytics.android.answers.CustomEvent; import com.squareup.otto.Subscribe; import info.nightscout.androidaps.R; -import info.nightscout.androidaps.plugins.common.SubscriberFragment; import info.nightscout.androidaps.plugins.aps.openAPSMA.events.EventOpenAPSUpdateGui; import info.nightscout.androidaps.plugins.aps.openAPSMA.events.EventOpenAPSUpdateResultGui; +import info.nightscout.androidaps.plugins.common.SubscriberFragment; import info.nightscout.androidaps.utils.DateUtil; import info.nightscout.androidaps.utils.FabricPrivacy; import info.nightscout.androidaps.utils.JSONFormatter; @@ -61,7 +60,6 @@ public class OpenAPSMAFragment extends SubscriberFragment implements View.OnClic switch (view.getId()) { case R.id.openapsma_run: OpenAPSMAPlugin.getPlugin().invoke("OpenAPSMA button", false); - FabricPrivacy.getInstance().logCustom(new CustomEvent("OpenAPS_MA_Run")); break; } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/aps/openAPSSMB/DetermineBasalAdapterSMBJS.java b/app/src/main/java/info/nightscout/androidaps/plugins/aps/openAPSSMB/DetermineBasalAdapterSMBJS.java index bfff43f9d1..edaddd62c9 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/aps/openAPSSMB/DetermineBasalAdapterSMBJS.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/aps/openAPSSMB/DetermineBasalAdapterSMBJS.java @@ -232,8 +232,13 @@ public class DetermineBasalAdapterSMBJS { mProfile.put("max_daily_safety_multiplier", SP.getInt(R.string.key_openapsama_max_daily_safety_multiplier, 3)); mProfile.put("current_basal_safety_multiplier", SP.getDouble(R.string.key_openapsama_current_basal_safety_multiplier, 4d)); - mProfile.put("high_temptarget_raises_sensitivity", SP.getBoolean(R.string.key_high_temptarget_raises_sensitivity, SMBDefaults.high_temptarget_raises_sensitivity)); - mProfile.put("low_temptarget_lowers_sensitivity", SP.getBoolean(R.string.key_low_temptarget_lowers_sensitivity, SMBDefaults.low_temptarget_lowers_sensitivity)); + // TODO AS-FIX + // mProfile.put("high_temptarget_raises_sensitivity", SP.getBoolean(R.string.key_high_temptarget_raises_sensitivity, SMBDefaults.high_temptarget_raises_sensitivity)); + mProfile.put("high_temptarget_raises_sensitivity", false); + //mProfile.put("low_temptarget_lowers_sensitivity", SP.getBoolean(R.string.key_low_temptarget_lowers_sensitivity, SMBDefaults.low_temptarget_lowers_sensitivity)); + mProfile.put("low_temptarget_lowers_sensitivity", false); + + mProfile.put("sensitivity_raises_target", SMBDefaults.sensitivity_raises_target); mProfile.put("resistance_lowers_target", SMBDefaults.resistance_lowers_target); mProfile.put("adv_target_adjustments", SMBDefaults.adv_target_adjustments); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/aps/openAPSSMB/OpenAPSSMBFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/aps/openAPSSMB/OpenAPSSMBFragment.java index 87572e2ad6..18828e840e 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/aps/openAPSSMB/OpenAPSSMBFragment.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/aps/openAPSSMB/OpenAPSSMBFragment.java @@ -8,7 +8,6 @@ import android.view.ViewGroup; import android.widget.Button; import android.widget.TextView; -import com.crashlytics.android.answers.CustomEvent; import com.squareup.otto.Subscribe; import org.json.JSONArray; @@ -22,11 +21,10 @@ import butterknife.OnClick; import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.R; import info.nightscout.androidaps.logging.L; -import info.nightscout.androidaps.plugins.common.SubscriberFragment; import info.nightscout.androidaps.plugins.aps.openAPSMA.events.EventOpenAPSUpdateGui; import info.nightscout.androidaps.plugins.aps.openAPSMA.events.EventOpenAPSUpdateResultGui; +import info.nightscout.androidaps.plugins.common.SubscriberFragment; import info.nightscout.androidaps.utils.DateUtil; -import info.nightscout.androidaps.utils.FabricPrivacy; import info.nightscout.androidaps.utils.JSONFormatter; public class OpenAPSSMBFragment extends SubscriberFragment { @@ -69,7 +67,6 @@ public class OpenAPSSMBFragment extends SubscriberFragment { @OnClick(R.id.openapsma_run) public void onRunClick() { OpenAPSSMBPlugin.getPlugin().invoke("OpenAPSSMB button", false); - FabricPrivacy.getInstance().logCustom(new CustomEvent("OpenAPS_SMB_Run")); } @Subscribe diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/configBuilder/ConfigBuilderFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/configBuilder/ConfigBuilderFragment.java index b374c78413..47b5d49357 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/configBuilder/ConfigBuilderFragment.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/configBuilder/ConfigBuilderFragment.java @@ -16,8 +16,6 @@ import android.widget.RadioButton; import android.widget.ScrollView; import android.widget.TextView; -import com.crashlytics.android.answers.CustomEvent; - import java.util.ArrayList; import java.util.List; @@ -26,8 +24,8 @@ import butterknife.ButterKnife; import butterknife.OnClick; import butterknife.Unbinder; import info.nightscout.androidaps.MainApp; -import info.nightscout.androidaps.activities.PreferencesActivity; import info.nightscout.androidaps.R; +import info.nightscout.androidaps.activities.PreferencesActivity; import info.nightscout.androidaps.events.EventConfigBuilderChange; import info.nightscout.androidaps.events.EventRefreshGui; import info.nightscout.androidaps.interfaces.APSInterface; @@ -42,7 +40,6 @@ import info.nightscout.androidaps.interfaces.SensitivityInterface; import info.nightscout.androidaps.plugins.common.SubscriberFragment; import info.nightscout.androidaps.plugins.insulin.InsulinOrefRapidActingPlugin; import info.nightscout.androidaps.plugins.profile.ns.NSProfilePlugin; - import info.nightscout.androidaps.plugins.pump.virtual.VirtualPumpPlugin; import info.nightscout.androidaps.plugins.sensitivity.SensitivityOref0Plugin; import info.nightscout.androidaps.utils.FabricPrivacy; @@ -276,7 +273,6 @@ public class ConfigBuilderFragment extends SubscriberFragment { MainApp.bus().post(new EventRefreshGui()); MainApp.bus().post(new EventConfigBuilderChange()); ConfigBuilderPlugin.getPlugin().logPluginStatus(); - FabricPrivacy.getInstance().logCustom(new CustomEvent("ConfigurationChange")); } public void cancel(){ 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 6b9b353979..0360ba4a68 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 @@ -1,9 +1,10 @@ package info.nightscout.androidaps.plugins.configBuilder; import android.content.Intent; +import android.os.Bundle; import android.support.annotation.Nullable; -import com.crashlytics.android.answers.CustomEvent; +import com.google.firebase.analytics.FirebaseAnalytics; import com.squareup.otto.Subscribe; import org.slf4j.Logger; @@ -18,11 +19,11 @@ import info.nightscout.androidaps.data.ProfileStore; import info.nightscout.androidaps.db.ProfileSwitch; import info.nightscout.androidaps.db.Source; import info.nightscout.androidaps.events.EventNewBasalProfile; -import info.nightscout.androidaps.events.EventProfileSwitchChange; +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.general.overview.Dialogs.ErrorHelperActivity; +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; @@ -47,7 +48,7 @@ public class ProfileFunctions { } @Subscribe - public void onProfileSwitch(EventProfileSwitchChange ignored) { + public void onProfileSwitch(EventProfileNeedsUpdate ignored) { if (L.isEnabled(L.PROFILE)) log.debug("onProfileSwitch"); ConfigBuilderPlugin.getPlugin().getCommandQueue().setProfile(getProfile(), new Callback() { @@ -61,7 +62,8 @@ public class ProfileFunctions { i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); MainApp.instance().startActivity(i); } - MainApp.bus().post(new EventNewBasalProfile()); + if (result.enacted) + MainApp.bus().post(new EventNewBasalProfile()); } }); } @@ -129,12 +131,12 @@ public class ProfileFunctions { } } if (activeTreatments.getProfileSwitchesFromHistory().size() > 0) { - FabricPrivacy.getInstance().logCustom(new CustomEvent("CatchedError") - .putCustomAttribute("buildversion", BuildConfig.BUILDVERSION) - .putCustomAttribute("version", BuildConfig.VERSION) - .putCustomAttribute("time", time) - .putCustomAttribute("getProfileSwitchesFromHistory", activeTreatments.getProfileSwitchesFromHistory().toString()) - ); + Bundle bundle = new Bundle(); + bundle.putString(FirebaseAnalytics.Param.ITEM_ID, "CatchedError"); + bundle.putString(FirebaseAnalytics.Param.ITEM_CATEGORY, BuildConfig.BUILDVERSION); + bundle.putString(FirebaseAnalytics.Param.START_DATE, String.valueOf(time)); + bundle.putString(FirebaseAnalytics.Param.VALUE, activeTreatments.getProfileSwitchesFromHistory().toString()); + FabricPrivacy.getInstance().logCustom(bundle); } log.error("getProfile at the end: returning null"); return null; @@ -157,7 +159,6 @@ public class ProfileFunctions { public static void doProfileSwitch(final ProfileStore profileStore, final String profileName, final int duration, final int percentage, final int timeshift) { ProfileSwitch profileSwitch = prepareProfileSwitch(profileStore, profileName, duration, percentage, timeshift, System.currentTimeMillis()); TreatmentsPlugin.getPlugin().addToHistoryProfileSwitch(profileSwitch); - FabricPrivacy.getInstance().logCustom(new CustomEvent("ProfileSwitch")); } public static void doProfileSwitch(final int duration, final int percentage, final int timeshift) { @@ -174,7 +175,6 @@ public class ProfileFunctions { profileSwitch.timeshift = timeshift; profileSwitch.percentage = percentage; TreatmentsPlugin.getPlugin().addToHistoryProfileSwitch(profileSwitch); - FabricPrivacy.getInstance().logCustom(new CustomEvent("ProfileSwitch")); } else { log.error("No profile switch existing"); } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/general/actions/ActionsFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/general/actions/ActionsFragment.java index 02ff6e6b5c..ff99978fed 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/general/actions/ActionsFragment.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/general/actions/ActionsFragment.java @@ -12,7 +12,6 @@ import android.view.View; import android.view.ViewGroup; import android.widget.LinearLayout; -import com.crashlytics.android.answers.CustomEvent; import com.squareup.otto.Subscribe; import java.util.ArrayList; @@ -21,9 +20,9 @@ import java.util.List; import java.util.Map; import info.nightscout.androidaps.Config; -import info.nightscout.androidaps.activities.HistoryBrowseActivity; import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.R; +import info.nightscout.androidaps.activities.HistoryBrowseActivity; import info.nightscout.androidaps.activities.TDDStatsActivity; import info.nightscout.androidaps.db.ExtendedBolus; import info.nightscout.androidaps.db.TemporaryBasal; @@ -35,7 +34,6 @@ import info.nightscout.androidaps.interfaces.PumpInterface; import info.nightscout.androidaps.plugins.common.SubscriberFragment; import info.nightscout.androidaps.plugins.configBuilder.ConfigBuilderPlugin; import info.nightscout.androidaps.plugins.configBuilder.ProfileFunctions; -import info.nightscout.androidaps.plugins.general.actions.ActionsPlugin; import info.nightscout.androidaps.plugins.general.actions.defs.CustomAction; import info.nightscout.androidaps.plugins.general.actions.dialogs.FillDialog; import info.nightscout.androidaps.plugins.general.actions.dialogs.NewExtendedBolusDialog; @@ -70,7 +68,7 @@ public class ActionsFragment extends SubscriberFragment implements View.OnClickL SingleClickButton tddStats; SingleClickButton history; - private Map pumpCustomActions = new HashMap<>(); + private Map pumpCustomActions = new HashMap<>(); private List pumpCustomButtons = new ArrayList<>(); public ActionsFragment() { @@ -222,7 +220,7 @@ public class ActionsFragment extends SubscriberFragment implements View.OnClickL View.OnClickListener pumpCustomActionsListener = v -> { - SingleClickButton btn = (SingleClickButton)v; + SingleClickButton btn = (SingleClickButton) v; CustomAction customAction = this.pumpCustomActions.get(btn.getText().toString()); @@ -243,7 +241,7 @@ public class ActionsFragment extends SubscriberFragment implements View.OnClickL List customActions = activePump.getCustomActions(); - if (customActions != null && customActions.size()>0) { + if (customActions != null && customActions.size() > 0) { LinearLayout ll = actionsFragmentView.findViewById(R.id.action_buttons_layout); @@ -275,7 +273,7 @@ public class ActionsFragment extends SubscriberFragment implements View.OnClickL private void removePumpCustomActions() { - if (pumpCustomActions.size()==0) + if (pumpCustomActions.size() == 0) return; LinearLayout ll = actionsFragmentView.findViewById(R.id.action_buttons_layout); @@ -314,13 +312,11 @@ public class ActionsFragment extends SubscriberFragment implements View.OnClickL case R.id.actions_extendedbolus_cancel: if (TreatmentsPlugin.getPlugin().isInHistoryExtendedBoluslInProgress()) { ConfigBuilderPlugin.getPlugin().getCommandQueue().cancelExtended(null); - FabricPrivacy.getInstance().logCustom(new CustomEvent("CancelExtended")); } break; case R.id.actions_canceltempbasal: if (TreatmentsPlugin.getPlugin().isTempBasalInProgress()) { ConfigBuilderPlugin.getPlugin().getCommandQueue().cancelTempBasal(true, null); - FabricPrivacy.getInstance().logCustom(new CustomEvent("CancelTemp")); } break; case R.id.actions_settempbasal: diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/general/actions/dialogs/FillDialog.java b/app/src/main/java/info/nightscout/androidaps/plugins/general/actions/dialogs/FillDialog.java index 45333040e1..94d548a444 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/general/actions/dialogs/FillDialog.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/general/actions/dialogs/FillDialog.java @@ -19,7 +19,6 @@ import android.widget.CheckBox; import android.widget.EditText; import android.widget.LinearLayout; -import com.crashlytics.android.answers.CustomEvent; import com.google.common.base.Joiner; import org.slf4j.Logger; @@ -35,11 +34,10 @@ import info.nightscout.androidaps.db.CareportalEvent; import info.nightscout.androidaps.db.Source; import info.nightscout.androidaps.interfaces.Constraint; import info.nightscout.androidaps.plugins.configBuilder.ConfigBuilderPlugin; -import info.nightscout.androidaps.plugins.general.overview.Dialogs.ErrorHelperActivity; +import info.nightscout.androidaps.plugins.general.nsclient.NSUpload; +import info.nightscout.androidaps.plugins.general.overview.dialogs.ErrorHelperActivity; import info.nightscout.androidaps.queue.Callback; import info.nightscout.androidaps.utils.DecimalFormatter; -import info.nightscout.androidaps.utils.FabricPrivacy; -import info.nightscout.androidaps.plugins.general.nsclient.NSUpload; import info.nightscout.androidaps.utils.NumberPicker; import info.nightscout.androidaps.utils.SP; import info.nightscout.androidaps.utils.SafeParse; @@ -190,7 +188,7 @@ public class FillDialog extends DialogFragment implements OnClickListener { } if (pumpSiteChangeCheckbox.isChecked()) - confirmMessage.add("" + "" + MainApp.gs(R.string.record_pump_site_change) + ""); + confirmMessage.add("" + "" + MainApp.gs(R.string.record_pump_site_change) + ""); if (insulinCartridgeChangeCheckbox.isChecked()) confirmMessage.add("" + "" + MainApp.gs(R.string.record_insulin_cartridge_change) + ""); @@ -236,7 +234,6 @@ public class FillDialog extends DialogFragment implements OnClickListener { } } }); - FabricPrivacy.getInstance().logCustom(new CustomEvent("Fill")); } if (pumpSiteChangeCheckbox.isChecked()) NSUpload.uploadEvent(CareportalEvent.SITECHANGE, now(), notes); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/general/actions/dialogs/NewExtendedBolusDialog.java b/app/src/main/java/info/nightscout/androidaps/plugins/general/actions/dialogs/NewExtendedBolusDialog.java index 3ba1ff3177..579e9e2f06 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/general/actions/dialogs/NewExtendedBolusDialog.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/general/actions/dialogs/NewExtendedBolusDialog.java @@ -10,8 +10,6 @@ import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; -import com.crashlytics.android.answers.CustomEvent; - import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -21,9 +19,8 @@ import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.R; import info.nightscout.androidaps.interfaces.Constraint; import info.nightscout.androidaps.plugins.configBuilder.ConfigBuilderPlugin; -import info.nightscout.androidaps.plugins.general.overview.Dialogs.ErrorHelperActivity; +import info.nightscout.androidaps.plugins.general.overview.dialogs.ErrorHelperActivity; import info.nightscout.androidaps.queue.Callback; -import info.nightscout.androidaps.utils.FabricPrivacy; import info.nightscout.androidaps.utils.NumberPicker; import info.nightscout.androidaps.utils.SafeParse; @@ -99,7 +96,6 @@ public class NewExtendedBolusDialog extends DialogFragment implements View.OnCli } } }); - FabricPrivacy.getInstance().logCustom(new CustomEvent("ExtendedBolus")); } }); builder.setNegativeButton(MainApp.gs(R.string.cancel), null); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/general/actions/dialogs/NewTempBasalDialog.java b/app/src/main/java/info/nightscout/androidaps/plugins/general/actions/dialogs/NewTempBasalDialog.java index ae8ca782d1..80969b51b0 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/general/actions/dialogs/NewTempBasalDialog.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/general/actions/dialogs/NewTempBasalDialog.java @@ -12,8 +12,6 @@ import android.widget.LinearLayout; import android.widget.RadioButton; import android.widget.RadioGroup; -import com.crashlytics.android.answers.CustomEvent; - import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -26,9 +24,8 @@ import info.nightscout.androidaps.interfaces.Constraint; import info.nightscout.androidaps.interfaces.PumpDescription; import info.nightscout.androidaps.plugins.configBuilder.ConfigBuilderPlugin; import info.nightscout.androidaps.plugins.configBuilder.ProfileFunctions; -import info.nightscout.androidaps.plugins.general.overview.Dialogs.ErrorHelperActivity; +import info.nightscout.androidaps.plugins.general.overview.dialogs.ErrorHelperActivity; import info.nightscout.androidaps.queue.Callback; -import info.nightscout.androidaps.utils.FabricPrivacy; import info.nightscout.androidaps.utils.NumberPicker; import info.nightscout.androidaps.utils.SafeParse; @@ -167,7 +164,6 @@ public class NewTempBasalDialog extends DialogFragment implements View.OnClickLi } else { ConfigBuilderPlugin.getPlugin().getCommandQueue().tempBasalAbsolute(finalBasal, finalDurationInMinutes, true, profile, callback); } - FabricPrivacy.getInstance().logCustom(new CustomEvent("TempBasal")); } }); builder.setNegativeButton(MainApp.gs(R.string.cancel), null); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/general/careportal/Dialogs/NewNSTreatmentDialog.java b/app/src/main/java/info/nightscout/androidaps/plugins/general/careportal/Dialogs/NewNSTreatmentDialog.java index e4eccd18d9..e94cc658ca 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/general/careportal/Dialogs/NewNSTreatmentDialog.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/general/careportal/Dialogs/NewNSTreatmentDialog.java @@ -20,7 +20,6 @@ import android.widget.RadioButton; import android.widget.Spinner; import android.widget.TextView; -import com.crashlytics.android.answers.CustomEvent; import com.google.common.collect.Lists; import com.wdullaer.materialdatetimepicker.date.DatePickerDialog; import com.wdullaer.materialdatetimepicker.time.RadialPickerLayout; @@ -48,14 +47,13 @@ import info.nightscout.androidaps.db.CareportalEvent; import info.nightscout.androidaps.db.ProfileSwitch; import info.nightscout.androidaps.db.Source; import info.nightscout.androidaps.db.TempTarget; -import info.nightscout.androidaps.plugins.general.careportal.OptionsToShow; import info.nightscout.androidaps.plugins.configBuilder.ConfigBuilderPlugin; import info.nightscout.androidaps.plugins.configBuilder.ProfileFunctions; +import info.nightscout.androidaps.plugins.general.careportal.OptionsToShow; import info.nightscout.androidaps.plugins.general.nsclient.NSUpload; import info.nightscout.androidaps.plugins.treatments.TreatmentsPlugin; import info.nightscout.androidaps.utils.DateUtil; import info.nightscout.androidaps.utils.DefaultValueHelper; -import info.nightscout.androidaps.utils.FabricPrivacy; import info.nightscout.androidaps.utils.HardLimits; import info.nightscout.androidaps.utils.JsonHelper; import info.nightscout.androidaps.utils.NumberPicker; @@ -742,7 +740,6 @@ public class NewNSTreatmentDialog extends DialogFragment implements View.OnClick tempTarget.low(0).high(0); } TreatmentsPlugin.getPlugin().addToHistoryTempTarget(tempTarget); - FabricPrivacy.getInstance().logCustom(new CustomEvent("TempTarget")); } } else { if (JsonHelper.safeGetString(data, "eventType").equals(CareportalEvent.PROFILESWITCH)) { @@ -758,7 +755,6 @@ public class NewNSTreatmentDialog extends DialogFragment implements View.OnClick } else { NSUpload.uploadCareportalEntryToNS(data); } - FabricPrivacy.getInstance().logCustom(new CustomEvent("NSTreatment")); } } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/general/maintenance/MaintenancePlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/general/maintenance/MaintenancePlugin.java index bd5e67345d..35bd9f9d06 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/general/maintenance/MaintenancePlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/general/maintenance/MaintenancePlugin.java @@ -222,6 +222,7 @@ public class MaintenancePlugin extends PluginBase { builder.append("NSCLIENT" + System.lineSeparator()); builder.append("Build: " + BuildConfig.BUILDVERSION + System.lineSeparator()); + builder.append("Remote: " + BuildConfig.REMOTE + System.lineSeparator()); builder.append("Flavor: " + BuildConfig.FLAVOR + BuildConfig.BUILD_TYPE + System.lineSeparator()); builder.append(MainApp.gs(R.string.configbuilder_nightscoutversion_label) + " " + NSSettingsStatus.getInstance().nightscoutVersionName + System.lineSeparator()); if (MainApp.engineeringMode) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/general/nsclient/NSClientFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/general/nsclient/NSClientFragment.java index dc384a7378..50674c5a94 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/general/nsclient/NSClientFragment.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/general/nsclient/NSClientFragment.java @@ -17,7 +17,6 @@ import android.widget.CompoundButton; import android.widget.ScrollView; import android.widget.TextView; -import com.crashlytics.android.answers.CustomEvent; import com.squareup.otto.Subscribe; import info.nightscout.androidaps.MainApp; @@ -91,11 +90,11 @@ public class NSClientFragment extends SubscriberFragment implements View.OnClick switch (view.getId()) { case R.id.nsclientinternal_restart: MainApp.bus().post(new EventNSClientRestart()); - FabricPrivacy.getInstance().logCustom(new CustomEvent("NSClientRestart")); + FabricPrivacy.getInstance().logCustom("NSClientRestart"); break; case R.id.nsclientinternal_delivernow: NSClientPlugin.getPlugin().resend("GUI"); - FabricPrivacy.getInstance().logCustom(new CustomEvent("NSClientDeliverNow")); + FabricPrivacy.getInstance().logCustom("NSClientDeliverNow"); break; case R.id.nsclientinternal_clearlog: NSClientPlugin.getPlugin().clearLog(); @@ -110,7 +109,7 @@ public class NSClientFragment extends SubscriberFragment implements View.OnClick public void onClick(DialogInterface dialog, int id) { UploadQueue.clearQueue(); updateGUI(); - FabricPrivacy.getInstance().logCustom(new CustomEvent("NSClientClearQueue")); + FabricPrivacy.getInstance().logCustom("NSClientClearQueue"); } }); builder.setNegativeButton(MainApp.gs(R.string.cancel), null); @@ -118,7 +117,6 @@ public class NSClientFragment extends SubscriberFragment implements View.OnClick break; case R.id.nsclientinternal_showqueue: MainApp.bus().post(new EventNSClientNewLog("QUEUE", NSClientPlugin.getPlugin().queue().textList())); - FabricPrivacy.getInstance().logCustom(new CustomEvent("NSClientShowQueue")); break; } } @@ -129,7 +127,7 @@ public class NSClientFragment extends SubscriberFragment implements View.OnClick case R.id.nsclientinternal_paused: NSClientPlugin.getPlugin().pause(isChecked); updateGUI(); - FabricPrivacy.getInstance().logCustom(new CustomEvent("NSClientPause")); + FabricPrivacy.getInstance().logCustom("NSClientPause"); break; case R.id.nsclientinternal_autoscroll: SP.putBoolean(R.string.key_nsclientinternal_autoscroll, isChecked); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/general/nsclient/services/NSClientService.java b/app/src/main/java/info/nightscout/androidaps/plugins/general/nsclient/services/NSClientService.java index 359c224158..c14a3382b3 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/general/nsclient/services/NSClientService.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/general/nsclient/services/NSClientService.java @@ -120,7 +120,7 @@ public class NSClientService extends Service { } PowerManager powerManager = (PowerManager) MainApp.instance().getApplicationContext().getSystemService(Context.POWER_SERVICE); - mWakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "NSClientService"); + mWakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "AndroidAPS:NSClientService"); initialize(); } @@ -499,7 +499,7 @@ public class NSClientService extends Service { public void run() { PowerManager powerManager = (PowerManager) MainApp.instance().getApplicationContext().getSystemService(Context.POWER_SERVICE); PowerManager.WakeLock wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, - "onDataUpdate"); + "AndroidAPS:NSClientService_onDataUpdate"); wakeLock.acquire(); try { diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/OverviewFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/OverviewFragment.java index 59d3e50728..c4d8655ca8 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/OverviewFragment.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/OverviewFragment.java @@ -34,7 +34,6 @@ import android.widget.ImageButton; import android.widget.LinearLayout; import android.widget.TextView; -import com.crashlytics.android.answers.CustomEvent; import com.jjoe64.graphview.GraphView; import com.squareup.otto.Subscribe; @@ -46,6 +45,7 @@ import org.slf4j.LoggerFactory; import java.text.DecimalFormat; import java.util.Calendar; import java.util.Date; +import java.util.Locale; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.ScheduledFuture; @@ -72,7 +72,7 @@ import info.nightscout.androidaps.events.EventCareportalEventChange; import info.nightscout.androidaps.events.EventExtendedBolusChange; import info.nightscout.androidaps.events.EventInitializationChanged; import info.nightscout.androidaps.events.EventPreferenceChange; -import info.nightscout.androidaps.events.EventProfileSwitchChange; +import info.nightscout.androidaps.events.EventProfileNeedsUpdate; import info.nightscout.androidaps.events.EventPumpStatusChanged; import info.nightscout.androidaps.events.EventRefreshOverview; import info.nightscout.androidaps.events.EventTempBasalChange; @@ -83,44 +83,43 @@ import info.nightscout.androidaps.interfaces.PluginType; import info.nightscout.androidaps.interfaces.PumpDescription; import info.nightscout.androidaps.interfaces.PumpInterface; import info.nightscout.androidaps.logging.L; +import info.nightscout.androidaps.plugins.aps.loop.APSResult; +import info.nightscout.androidaps.plugins.aps.loop.LoopPlugin; +import info.nightscout.androidaps.plugins.aps.loop.events.EventNewOpenLoopNotification; +import info.nightscout.androidaps.plugins.configBuilder.ConfigBuilderPlugin; +import info.nightscout.androidaps.plugins.configBuilder.ProfileFunctions; import info.nightscout.androidaps.plugins.general.careportal.CareportalFragment; import info.nightscout.androidaps.plugins.general.careportal.Dialogs.NewNSTreatmentDialog; import info.nightscout.androidaps.plugins.general.careportal.OptionsToShow; -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.nsclient.data.NSDeviceStatus; +import info.nightscout.androidaps.plugins.general.nsclient.data.NSSettingsStatus; +import info.nightscout.androidaps.plugins.general.overview.dialogs.CalibrationDialog; +import info.nightscout.androidaps.plugins.general.overview.dialogs.ErrorHelperActivity; +import info.nightscout.androidaps.plugins.general.overview.dialogs.NewCarbsDialog; +import info.nightscout.androidaps.plugins.general.overview.dialogs.NewInsulinDialog; +import info.nightscout.androidaps.plugins.general.overview.dialogs.NewTreatmentDialog; +import info.nightscout.androidaps.plugins.general.overview.dialogs.WizardDialog; +import info.nightscout.androidaps.plugins.general.overview.activities.QuickWizardListActivity; +import info.nightscout.androidaps.plugins.general.overview.graphData.GraphData; +import info.nightscout.androidaps.plugins.general.overview.notifications.NotificationRecyclerViewAdapter; +import info.nightscout.androidaps.plugins.general.overview.notifications.NotificationStore; +import info.nightscout.androidaps.plugins.general.wear.ActionStringHandler; import info.nightscout.androidaps.plugins.iob.iobCobCalculator.AutosensData; import info.nightscout.androidaps.plugins.iob.iobCobCalculator.CobInfo; import info.nightscout.androidaps.plugins.iob.iobCobCalculator.IobCobCalculatorPlugin; import info.nightscout.androidaps.plugins.iob.iobCobCalculator.events.EventAutosensCalculationFinished; import info.nightscout.androidaps.plugins.iob.iobCobCalculator.events.EventIobCalculationProgress; -import info.nightscout.androidaps.plugins.aps.loop.APSResult; -import info.nightscout.androidaps.plugins.aps.loop.LoopPlugin; -import info.nightscout.androidaps.plugins.aps.loop.events.EventNewOpenLoopNotification; -import info.nightscout.androidaps.plugins.general.nsclient.NSUpload; -import info.nightscout.androidaps.plugins.general.nsclient.data.NSDeviceStatus; -import info.nightscout.androidaps.plugins.general.nsclient.data.NSSettingsStatus; -import info.nightscout.androidaps.plugins.general.overview.Dialogs.CalibrationDialog; -import info.nightscout.androidaps.plugins.general.overview.Dialogs.ErrorHelperActivity; -import info.nightscout.androidaps.plugins.general.overview.Dialogs.NewCarbsDialog; -import info.nightscout.androidaps.plugins.general.overview.Dialogs.NewInsulinDialog; -import info.nightscout.androidaps.plugins.general.overview.Dialogs.NewTreatmentDialog; -import info.nightscout.androidaps.plugins.general.overview.Dialogs.WizardDialog; -import info.nightscout.androidaps.plugins.general.overview.activities.QuickWizardListActivity; -import info.nightscout.androidaps.plugins.general.overview.graphData.GraphData; -import info.nightscout.androidaps.plugins.general.overview.notifications.NotificationRecyclerViewAdapter; -import info.nightscout.androidaps.plugins.general.overview.notifications.NotificationStore; import info.nightscout.androidaps.plugins.source.SourceDexcomG5Plugin; import info.nightscout.androidaps.plugins.source.SourceDexcomG6Plugin; import info.nightscout.androidaps.plugins.source.SourceXdripPlugin; import info.nightscout.androidaps.plugins.treatments.TreatmentsPlugin; import info.nightscout.androidaps.plugins.treatments.fragments.ProfileViewerDialog; -import info.nightscout.androidaps.plugins.general.wear.ActionStringHandler; import info.nightscout.androidaps.queue.Callback; import info.nightscout.androidaps.utils.BolusWizard; import info.nightscout.androidaps.utils.DateUtil; import info.nightscout.androidaps.utils.DecimalFormatter; import info.nightscout.androidaps.utils.DefaultValueHelper; -import info.nightscout.androidaps.utils.FabricPrivacy; import info.nightscout.androidaps.utils.OKDialog; import info.nightscout.androidaps.utils.Profiler; import info.nightscout.androidaps.utils.SP; @@ -268,15 +267,15 @@ public class OverviewFragment extends Fragment implements View.OnClickListener, sage = (TextView) view.findViewById(R.id.careportal_sensorage); pbage = (TextView) view.findViewById(R.id.careportal_pbage); - iageView = (TextView) view.findViewById(R.id.overview_insulinage); - cageView = (TextView) view.findViewById(R.id.overview_canulaage); - reservoirView = (TextView) view.findViewById(R.id.overview_reservoirlevel); - sageView = (TextView) view.findViewById(R.id.overview_sensorage); - batteryView = (TextView) view.findViewById(R.id.overview_batterylevel); - statuslightsLayout = (LinearLayout) view.findViewById(R.id.overview_statuslights); + iageView = (TextView) view.findViewById(R.id.overview_insulinage); + cageView = (TextView) view.findViewById(R.id.overview_canulaage); + reservoirView = (TextView) view.findViewById(R.id.overview_reservoirlevel); + sageView = (TextView) view.findViewById(R.id.overview_sensorage); + batteryView = (TextView) view.findViewById(R.id.overview_batterylevel); + statuslightsLayout = (LinearLayout) view.findViewById(R.id.overview_statuslights); - bgGraph = (GraphView) view.findViewById(R.id.overview_bggraph); - iobGraph = (GraphView) view.findViewById(R.id.overview_iobgraph); + bgGraph = (GraphView) view.findViewById(R.id.overview_bggraph); + iobGraph = (GraphView) view.findViewById(R.id.overview_iobgraph); treatmentButton = (SingleClickButton) view.findViewById(R.id.overview_treatmentbutton); treatmentButton.setOnClickListener(this); @@ -475,7 +474,7 @@ public class OverviewFragment extends Fragment implements View.OnClickListener, menu.add(MainApp.gs(R.string.suspendloopfor2h)); menu.add(MainApp.gs(R.string.suspendloopfor3h)); menu.add(MainApp.gs(R.string.suspendloopfor10h)); - } else { + } else { if (!loopPlugin.isDisconnected()) { menu.add(MainApp.gs(R.string.resume)); } @@ -488,7 +487,7 @@ public class OverviewFragment extends Fragment implements View.OnClickListener, if (!loopPlugin.isDisconnected()) { showSuspendtPump(menu, pumpDescription); - } else { + } else { menu.add(MainApp.gs(R.string.reconnect)); } @@ -892,7 +891,6 @@ public class OverviewFragment extends Fragment implements View.OnClickListener, } else { TreatmentsPlugin.getPlugin().addToHistoryTreatment(detailedBolusInfo, false); } - FabricPrivacy.getInstance().logCustom(new CustomEvent("QuickWizard")); } } }); @@ -984,8 +982,8 @@ public class OverviewFragment extends Fragment implements View.OnClickListener, } @Subscribe - public void onStatusEvent(final EventProfileSwitchChange ev) { - scheduleUpdateGUI("EventProfileSwitchChange"); + public void onStatusEvent(final EventProfileNeedsUpdate ev) { + scheduleUpdateGUI("EventProfileNeedsUpdate"); } @Subscribe @@ -1461,7 +1459,7 @@ public class OverviewFragment extends Fragment implements View.OnClickListener, if (sensitivityView != null) { AutosensData autosensData = IobCobCalculatorPlugin.getPlugin().getLastAutosensData("Overview"); if (autosensData != null) - sensitivityView.setText(String.format("%.0f%%", autosensData.autosensResult.ratio * 100)); + sensitivityView.setText(String.format(Locale.ENGLISH, "%.0f%%", autosensData.autosensResult.ratio * 100)); else sensitivityView.setText(""); } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/activities/QuickWizardListActivity.java b/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/activities/QuickWizardListActivity.java index 0bea854c19..d7eb9c86dd 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/activities/QuickWizardListActivity.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/activities/QuickWizardListActivity.java @@ -18,7 +18,7 @@ import com.squareup.otto.Subscribe; import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.R; import info.nightscout.androidaps.data.QuickWizard; -import info.nightscout.androidaps.plugins.general.overview.Dialogs.EditQuickWizardDialog; +import info.nightscout.androidaps.plugins.general.overview.dialogs.EditQuickWizardDialog; import info.nightscout.androidaps.plugins.general.overview.OverviewPlugin; import info.nightscout.androidaps.plugins.general.overview.events.EventQuickWizardChange; import info.nightscout.androidaps.utils.DateUtil; diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/Dialogs/BolusProgressDialog.java b/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/dialogs/BolusProgressDialog.java similarity index 99% rename from app/src/main/java/info/nightscout/androidaps/plugins/general/overview/Dialogs/BolusProgressDialog.java rename to app/src/main/java/info/nightscout/androidaps/plugins/general/overview/dialogs/BolusProgressDialog.java index 6cb5a1bc82..4189fcdcdb 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/Dialogs/BolusProgressDialog.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/dialogs/BolusProgressDialog.java @@ -1,4 +1,4 @@ -package info.nightscout.androidaps.plugins.general.overview.Dialogs; +package info.nightscout.androidaps.plugins.general.overview.dialogs; import android.app.Activity; diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/Dialogs/BolusProgressHelperActivity.java b/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/dialogs/BolusProgressHelperActivity.java similarity index 92% rename from app/src/main/java/info/nightscout/androidaps/plugins/general/overview/Dialogs/BolusProgressHelperActivity.java rename to app/src/main/java/info/nightscout/androidaps/plugins/general/overview/dialogs/BolusProgressHelperActivity.java index b0bc7e96f5..fd1de6ce8c 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/Dialogs/BolusProgressHelperActivity.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/dialogs/BolusProgressHelperActivity.java @@ -1,4 +1,4 @@ -package info.nightscout.androidaps.plugins.general.overview.Dialogs; +package info.nightscout.androidaps.plugins.general.overview.dialogs; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/Dialogs/CalibrationDialog.java b/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/dialogs/CalibrationDialog.java similarity index 92% rename from app/src/main/java/info/nightscout/androidaps/plugins/general/overview/Dialogs/CalibrationDialog.java rename to app/src/main/java/info/nightscout/androidaps/plugins/general/overview/dialogs/CalibrationDialog.java index b950414237..53c571aad7 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/Dialogs/CalibrationDialog.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/dialogs/CalibrationDialog.java @@ -1,4 +1,4 @@ -package info.nightscout.androidaps.plugins.general.overview.Dialogs; +package info.nightscout.androidaps.plugins.general.overview.dialogs; import android.content.Context; @@ -11,8 +11,6 @@ import android.view.Window; import android.view.WindowManager; import android.widget.TextView; -import com.crashlytics.android.answers.CustomEvent; - import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -23,7 +21,6 @@ import info.nightscout.androidaps.R; import info.nightscout.androidaps.data.GlucoseStatus; import info.nightscout.androidaps.data.Profile; import info.nightscout.androidaps.plugins.configBuilder.ProfileFunctions; -import info.nightscout.androidaps.utils.FabricPrivacy; import info.nightscout.androidaps.utils.NumberPicker; import info.nightscout.androidaps.utils.SafeParse; import info.nightscout.androidaps.utils.XdripCalibrations; @@ -88,7 +85,6 @@ public class CalibrationDialog extends DialogFragment implements View.OnClickLis final Double bg = SafeParse.stringToDouble(bgNumber.getText()); XdripCalibrations.confirmAndSendCalibration(bg, context); dismiss(); - FabricPrivacy.getInstance().logCustom(new CustomEvent("Calibration")); break; case R.id.cancel: dismiss(); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/Dialogs/EditQuickWizardDialog.java b/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/dialogs/EditQuickWizardDialog.java similarity index 99% rename from app/src/main/java/info/nightscout/androidaps/plugins/general/overview/Dialogs/EditQuickWizardDialog.java rename to app/src/main/java/info/nightscout/androidaps/plugins/general/overview/dialogs/EditQuickWizardDialog.java index 053337e356..9cd1277961 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/Dialogs/EditQuickWizardDialog.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/dialogs/EditQuickWizardDialog.java @@ -1,4 +1,4 @@ -package info.nightscout.androidaps.plugins.general.overview.Dialogs; +package info.nightscout.androidaps.plugins.general.overview.dialogs; import android.os.Bundle; diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/Dialogs/ErrorDialog.java b/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/dialogs/ErrorDialog.java similarity index 98% rename from app/src/main/java/info/nightscout/androidaps/plugins/general/overview/Dialogs/ErrorDialog.java rename to app/src/main/java/info/nightscout/androidaps/plugins/general/overview/dialogs/ErrorDialog.java index 549653f400..209a585384 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/Dialogs/ErrorDialog.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/dialogs/ErrorDialog.java @@ -1,4 +1,4 @@ -package info.nightscout.androidaps.plugins.general.overview.Dialogs; +package info.nightscout.androidaps.plugins.general.overview.dialogs; import android.content.Intent; diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/Dialogs/ErrorHelperActivity.java b/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/dialogs/ErrorHelperActivity.java similarity index 94% rename from app/src/main/java/info/nightscout/androidaps/plugins/general/overview/Dialogs/ErrorHelperActivity.java rename to app/src/main/java/info/nightscout/androidaps/plugins/general/overview/dialogs/ErrorHelperActivity.java index 1107cf1a9f..667cadf2b1 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/Dialogs/ErrorHelperActivity.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/dialogs/ErrorHelperActivity.java @@ -1,4 +1,4 @@ -package info.nightscout.androidaps.plugins.general.overview.Dialogs; +package info.nightscout.androidaps.plugins.general.overview.dialogs; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/Dialogs/NewCarbsDialog.java b/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/dialogs/NewCarbsDialog.java similarity index 99% rename from app/src/main/java/info/nightscout/androidaps/plugins/general/overview/Dialogs/NewCarbsDialog.java rename to app/src/main/java/info/nightscout/androidaps/plugins/general/overview/dialogs/NewCarbsDialog.java index 44d13fa570..789ced1df3 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/Dialogs/NewCarbsDialog.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/dialogs/NewCarbsDialog.java @@ -1,4 +1,4 @@ -package info.nightscout.androidaps.plugins.general.overview.Dialogs; +package info.nightscout.androidaps.plugins.general.overview.dialogs; import android.os.Bundle; import android.os.HandlerThread; diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/Dialogs/NewInsulinDialog.java b/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/dialogs/NewInsulinDialog.java similarity index 96% rename from app/src/main/java/info/nightscout/androidaps/plugins/general/overview/Dialogs/NewInsulinDialog.java rename to app/src/main/java/info/nightscout/androidaps/plugins/general/overview/dialogs/NewInsulinDialog.java index f326805ba2..27e2e33ba7 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/Dialogs/NewInsulinDialog.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/dialogs/NewInsulinDialog.java @@ -1,4 +1,4 @@ -package info.nightscout.androidaps.plugins.general.overview.Dialogs; +package info.nightscout.androidaps.plugins.general.overview.dialogs; import android.content.Context; import android.content.Intent; @@ -20,7 +20,6 @@ import android.widget.CheckBox; import android.widget.EditText; import android.widget.LinearLayout; -import com.crashlytics.android.answers.CustomEvent; import com.google.common.base.Joiner; import org.slf4j.Logger; @@ -46,7 +45,6 @@ import info.nightscout.androidaps.plugins.treatments.TreatmentsPlugin; import info.nightscout.androidaps.queue.Callback; import info.nightscout.androidaps.utils.DateUtil; import info.nightscout.androidaps.utils.DecimalFormatter; -import info.nightscout.androidaps.utils.FabricPrivacy; import info.nightscout.androidaps.utils.NumberPicker; import info.nightscout.androidaps.utils.SP; import info.nightscout.androidaps.utils.SafeParse; @@ -170,8 +168,8 @@ public class NewInsulinDialog extends DialogFragment implements OnClickListener insulinDialogState.putBoolean("recordOnlyCheckbox", recordOnlyCheckbox.isChecked()); insulinDialogState.putDouble("editTime", editTime.getValue()); insulinDialogState.putDouble("editInsulin", editInsulin.getValue()); - insulinDialogState.putString("notesEdit",notesEdit.getText().toString()); - log.debug("Instance state saved:"+insulinDialogState.toString()); + insulinDialogState.putString("notesEdit", notesEdit.getText().toString()); + log.debug("Instance state saved:" + insulinDialogState.toString()); super.onSaveInstanceState(insulinDialogState); } @@ -227,7 +225,7 @@ public class NewInsulinDialog extends DialogFragment implements OnClickListener } } - if (Math.abs(insulinAfterConstraints - insulin) > pump.getPumpDescription().pumpType.determineCorrectBolusSize(insulinAfterConstraints)) + if (Math.abs(insulinAfterConstraints - insulin) > pump.getPumpDescription().pumpType.determineCorrectBolusSize(insulinAfterConstraints)) actions.add("" + MainApp.gs(R.string.bolusconstraintapplied) + ""); int eatingSoonTTDuration = SP.getInt(R.string.key_eatingsoon_duration, Constants.defaultEatingSoonTTDuration); @@ -306,7 +304,6 @@ public class NewInsulinDialog extends DialogFragment implements OnClickListener } } }); - FabricPrivacy.getInstance().logCustom(new CustomEvent("Bolus")); } } } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/Dialogs/NewTreatmentDialog.java b/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/dialogs/NewTreatmentDialog.java similarity index 97% rename from app/src/main/java/info/nightscout/androidaps/plugins/general/overview/Dialogs/NewTreatmentDialog.java rename to app/src/main/java/info/nightscout/androidaps/plugins/general/overview/dialogs/NewTreatmentDialog.java index b5e7b1dd74..837d206fb3 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/Dialogs/NewTreatmentDialog.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/dialogs/NewTreatmentDialog.java @@ -1,4 +1,4 @@ -package info.nightscout.androidaps.plugins.general.overview.Dialogs; +package info.nightscout.androidaps.plugins.general.overview.dialogs; import android.content.Context; import android.content.DialogInterface; @@ -17,8 +17,6 @@ import android.view.Window; import android.view.WindowManager; import android.widget.CheckBox; -import com.crashlytics.android.answers.CustomEvent; - import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -36,7 +34,6 @@ import info.nightscout.androidaps.plugins.configBuilder.ConfigBuilderPlugin; import info.nightscout.androidaps.plugins.treatments.TreatmentsPlugin; import info.nightscout.androidaps.queue.Callback; import info.nightscout.androidaps.utils.DecimalFormatter; -import info.nightscout.androidaps.utils.FabricPrivacy; import info.nightscout.androidaps.utils.NumberPicker; import info.nightscout.androidaps.utils.SafeParse; import info.nightscout.androidaps.utils.ToastUtils; @@ -194,7 +191,6 @@ public class NewTreatmentDialog extends DialogFragment implements OnClickListene } else { TreatmentsPlugin.getPlugin().addToHistoryTreatment(detailedBolusInfo, false); } - FabricPrivacy.getInstance().logCustom(new CustomEvent("Bolus")); } } } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/Dialogs/WizardDialog.java b/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/dialogs/WizardDialog.java similarity index 99% rename from app/src/main/java/info/nightscout/androidaps/plugins/general/overview/Dialogs/WizardDialog.java rename to app/src/main/java/info/nightscout/androidaps/plugins/general/overview/dialogs/WizardDialog.java index 33b3019668..b4a3de4271 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/Dialogs/WizardDialog.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/dialogs/WizardDialog.java @@ -1,4 +1,4 @@ -package info.nightscout.androidaps.plugins.general.overview.Dialogs; +package info.nightscout.androidaps.plugins.general.overview.dialogs; import android.app.Activity; import android.content.Context; @@ -26,7 +26,6 @@ import android.widget.LinearLayout; import android.widget.Spinner; import android.widget.TextView; -import com.crashlytics.android.answers.CustomEvent; import com.squareup.otto.Subscribe; import org.json.JSONException; @@ -66,7 +65,6 @@ import info.nightscout.androidaps.queue.Callback; import info.nightscout.androidaps.utils.BolusWizard; import info.nightscout.androidaps.utils.DateUtil; import info.nightscout.androidaps.utils.DecimalFormatter; -import info.nightscout.androidaps.utils.FabricPrivacy; import info.nightscout.androidaps.utils.NumberPicker; import info.nightscout.androidaps.utils.SP; import info.nightscout.androidaps.utils.SafeParse; @@ -398,7 +396,6 @@ public class WizardDialog extends DialogFragment implements OnClickListener, Com } else { TreatmentsPlugin.getPlugin().addToHistoryTreatment(detailedBolusInfo, false); } - FabricPrivacy.getInstance().logCustom(new CustomEvent("Wizard")); } } } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/general/smsCommunicator/SmsCommunicatorPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/general/smsCommunicator/SmsCommunicatorPlugin.java index e4ec65df11..7703561aa9 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/general/smsCommunicator/SmsCommunicatorPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/general/smsCommunicator/SmsCommunicatorPlugin.java @@ -118,7 +118,7 @@ public class SmsCommunicatorPlugin extends PluginBase { } boolean isCommand(String command, String number) { - switch(command.toUpperCase()) { + switch (command.toUpperCase()) { case "BG": case "LOOP": case "TREATMENTS": @@ -729,7 +729,7 @@ public class SmsCommunicatorPlugin extends PluginBase { String passCode = generatePasscode(); String reply = String.format(MainApp.gs(R.string.smscommunicator_calibrationreplywithcode), cal, passCode); receivedSms.processed = true; - messageToConfirm = new AuthRequest(this, receivedSms, reply, passCode, new SmsAction() { + messageToConfirm = new AuthRequest(this, receivedSms, reply, passCode, new SmsAction(cal) { @Override public void run() { boolean result = XdripCalibrations.sendIntent(aDouble); @@ -760,11 +760,18 @@ public class SmsCommunicatorPlugin extends PluginBase { void sendSMS(Sms sms) { SmsManager smsManager = SmsManager.getDefault(); sms.text = stripAccents(sms.text); - if (sms.text.length() > 140) sms.text = sms.text.substring(0, 139); + try { if (L.isEnabled(L.SMS)) log.debug("Sending SMS to " + sms.phoneNumber + ": " + sms.text); - smsManager.sendTextMessage(sms.phoneNumber, null, sms.text, null, null); + if (sms.text.getBytes().length <= 140) + smsManager.sendTextMessage(sms.phoneNumber, null, sms.text, null, null); + else { + ArrayList parts = smsManager.divideMessage(sms.text); + smsManager.sendMultipartTextMessage(sms.phoneNumber, null, parts, + null, null); + } + messages.add(sms); } catch (IllegalArgumentException e) { Notification notification = new Notification(Notification.INVALID_PHONE_NUMBER, MainApp.gs(R.string.smscommunicator_invalidphonennumber), Notification.NORMAL); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/general/wear/ActionStringHandler.java b/app/src/main/java/info/nightscout/androidaps/plugins/general/wear/ActionStringHandler.java index b92410d67f..1a01a783cd 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/general/wear/ActionStringHandler.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/general/wear/ActionStringHandler.java @@ -625,10 +625,12 @@ public class ActionStringHandler { } generateTempTarget(duration, low, high); } else if ("wizard2".equals(act[0])) { - //use last calculation as confirmed string matches + if (lastBolusWizard != null) { + //use last calculation as confirmed string matches - doBolus(lastBolusWizard.calculatedTotalInsulin, lastBolusWizard.carbs); - lastBolusWizard = null; + doBolus(lastBolusWizard.calculatedTotalInsulin, lastBolusWizard.carbs); + lastBolusWizard = null; + } } else if ("bolus".equals(act[0])) { double insulin = SafeParse.stringToDouble(act[1]); int carbs = SafeParse.stringToInt(act[2]); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/general/wear/wearintegration/WatchUpdaterService.java b/app/src/main/java/info/nightscout/androidaps/plugins/general/wear/wearintegration/WatchUpdaterService.java index 52dbeed75c..86b56ba130 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/general/wear/wearintegration/WatchUpdaterService.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/general/wear/wearintegration/WatchUpdaterService.java @@ -482,6 +482,8 @@ public class WatchUpdaterService extends WearableListenerService implements Goog for (; runningTime < now; runningTime += 5 * 60 * 1000) { Profile profileTB = ProfileFunctions.getInstance().getProfile(runningTime); + if (profileTB == null) + return; //basal rate endBasalValue = profile.getBasal(runningTime); if (endBasalValue != beginBasalValue) { diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/iob/iobCobCalculator/AutosensData.java b/app/src/main/java/info/nightscout/androidaps/plugins/iob/iobCobCalculator/AutosensData.java index 6a32c1084b..4b47602f33 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/iob/iobCobCalculator/AutosensData.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/iob/iobCobCalculator/AutosensData.java @@ -6,6 +6,7 @@ import org.slf4j.LoggerFactory; import java.util.ArrayList; import java.util.Date; import java.util.List; +import java.util.Locale; import info.nightscout.androidaps.Constants; import info.nightscout.androidaps.MainApp; @@ -66,7 +67,7 @@ public class AutosensData implements DataPointWithLabelInterface { @Override public String toString() { - return String.format("CarbsInPast: time: %s carbs: %.02f min5minCI: %.02f remaining: %.2f", new Date(time).toLocaleString(), carbs, min5minCarbImpact, remaining); + return String.format(Locale.ENGLISH, "CarbsInPast: time: %s carbs: %.02f min5minCI: %.02f remaining: %.2f", new Date(time).toLocaleString(), carbs, min5minCarbImpact, remaining); } } @@ -101,7 +102,7 @@ public class AutosensData implements DataPointWithLabelInterface { @Override public String toString() { - return String.format("AutosensData: %s pastSensitivity=%s delta=%.02f avgDelta=%.02f bgi=%.02f deviation=%.02f avgDeviation=%.02f absorbed=%.02f carbsFromBolus=%.02f cob=%.02f autosensRatio=%.02f slopeFromMaxDeviation=%.02f slopeFromMinDeviation=%.02f activeCarbsList=%s", + return String.format(Locale.ENGLISH, "AutosensData: %s pastSensitivity=%s delta=%.02f avgDelta=%.02f bgi=%.02f deviation=%.02f avgDeviation=%.02f absorbed=%.02f carbsFromBolus=%.02f cob=%.02f autosensRatio=%.02f slopeFromMaxDeviation=%.02f slopeFromMinDeviation=%.02f activeCarbsList=%s", new Date(time).toLocaleString(), pastSensitivity, delta, avgDelta, bgi, deviation, avgDeviation, absorbed, carbsFromBolus, cob, autosensResult.ratio, slopeFromMaxDeviation, slopeFromMinDeviation, activeCarbsList.toString()); } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/iob/iobCobCalculator/IobCobCalculatorPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/iob/iobCobCalculator/IobCobCalculatorPlugin.java index aac0985fba..4897ff55ac 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/iob/iobCobCalculator/IobCobCalculatorPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/iob/iobCobCalculator/IobCobCalculatorPlugin.java @@ -496,6 +496,10 @@ public class IobCobCalculatorPlugin extends PluginBase { log.debug("AUTOSENSDATA null: Exception catched (" + reason + ")"); return null; } + if (data == null) { + log.debug("AUTOSENSDATA null: data==null"); + return null; + } if (data.time < System.currentTimeMillis() - 11 * 60 * 1000) { if (L.isEnabled(L.AUTOSENS)) log.debug("AUTOSENSDATA null: data is old (" + reason + ") size()=" + autosensDataTable.size() + " lastdata=" + DateUtil.dateAndTimeString(data.time)); @@ -626,6 +630,7 @@ public class IobCobCalculatorPlugin extends PluginBase { log.debug("Invalidating cached data because of new profile. IOB: " + iobTable.size() + " Autosens: " + autosensDataTable.size() + " records"); iobTable = new LongSparseArray<>(); autosensDataTable = new LongSparseArray<>(); + basalDataTable = new LongSparseArray<>(); } runCalculation("onNewProfile", System.currentTimeMillis(), false, true, ev); } @@ -648,9 +653,10 @@ public class IobCobCalculatorPlugin extends PluginBase { stopCalculation("onEventPreferenceChange"); synchronized (dataLock) { if (L.isEnabled(L.AUTOSENS)) - log.debug("Invalidating cached data because of preference change. IOB: " + iobTable.size() + " Autosens: " + autosensDataTable.size() + " records"); + log.debug("Invalidating cached data because of preference change. IOB: " + iobTable.size() + " Autosens: " + autosensDataTable.size() + " records" + " BasalData: " + basalDataTable.size() + " records"); iobTable = new LongSparseArray<>(); autosensDataTable = new LongSparseArray<>(); + basalDataTable = new LongSparseArray<>(); } runCalculation("onEventPreferenceChange", System.currentTimeMillis(), false, true, ev); } @@ -726,6 +732,7 @@ public class IobCobCalculatorPlugin extends PluginBase { log.debug("Clearing cached data."); iobTable = new LongSparseArray<>(); autosensDataTable = new LongSparseArray<>(); + basalDataTable = new LongSparseArray<>(); } } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/iob/iobCobCalculator/IobCobOref1Thread.java b/app/src/main/java/info/nightscout/androidaps/plugins/iob/iobCobCalculator/IobCobOref1Thread.java index e27f27c26f..492f3c0ff1 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/iob/iobCobCalculator/IobCobOref1Thread.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/iob/iobCobCalculator/IobCobOref1Thread.java @@ -5,8 +5,6 @@ import android.os.PowerManager; import android.os.SystemClock; import android.support.v4.util.LongSparseArray; -import com.crashlytics.android.answers.CustomEvent; - import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -16,7 +14,6 @@ import java.util.Date; import java.util.GregorianCalendar; import java.util.List; -import info.nightscout.androidaps.BuildConfig; import info.nightscout.androidaps.Constants; import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.R; @@ -26,13 +23,13 @@ import info.nightscout.androidaps.db.BgReading; import info.nightscout.androidaps.db.TempTarget; import info.nightscout.androidaps.events.Event; import info.nightscout.androidaps.logging.L; +import info.nightscout.androidaps.plugins.aps.openAPSSMB.SMBDefaults; import info.nightscout.androidaps.plugins.configBuilder.ConfigBuilderPlugin; import info.nightscout.androidaps.plugins.configBuilder.ProfileFunctions; -import info.nightscout.androidaps.plugins.iob.iobCobCalculator.events.EventAutosensCalculationFinished; -import info.nightscout.androidaps.plugins.iob.iobCobCalculator.events.EventIobCalculationProgress; -import info.nightscout.androidaps.plugins.aps.openAPSSMB.SMBDefaults; import info.nightscout.androidaps.plugins.general.overview.events.EventNewNotification; import info.nightscout.androidaps.plugins.general.overview.notifications.Notification; +import info.nightscout.androidaps.plugins.iob.iobCobCalculator.events.EventAutosensCalculationFinished; +import info.nightscout.androidaps.plugins.iob.iobCobCalculator.events.EventIobCalculationProgress; import info.nightscout.androidaps.plugins.treatments.Treatment; import info.nightscout.androidaps.plugins.treatments.TreatmentsPlugin; import info.nightscout.androidaps.utils.DateUtil; @@ -224,13 +221,6 @@ public class IobCobOref1Thread extends Thread { } catch (Exception e) { log.error("Unhandled exception", e); FabricPrivacy.logException(e); - FabricPrivacy.getInstance().logCustom(new CustomEvent("CatchedError") - .putCustomAttribute("buildversion", BuildConfig.BUILDVERSION) - .putCustomAttribute("version", BuildConfig.VERSION) - .putCustomAttribute("autosensDataTable", iobCobCalculatorPlugin.getAutosensDataTable().toString()) - .putCustomAttribute("for_data", ">>>>> bucketed_data.size()=" + bucketed_data.size() + " i=" + i + "hourAgoData=" + hourAgoData.toString()) - .putCustomAttribute("past", past) - ); log.debug(autosensDataTable.toString()); log.debug(bucketed_data.toString()); log.debug(IobCobCalculatorPlugin.getPlugin().getBgReadings().toString()); @@ -364,7 +354,8 @@ public class IobCobOref1Thread extends Thread { //log.debug("TIME: " + new Date(bgTime).toString() + " BG: " + bg + " SENS: " + sens + " DELTA: " + delta + " AVGDELTA: " + avgDelta + " IOB: " + iob.iob + " ACTIVITY: " + iob.activity + " BGI: " + bgi + " DEVIATION: " + deviation); // add an extra negative deviation if a high temptarget is running and exercise mode is set - if (SP.getBoolean(R.string.key_high_temptarget_raises_sensitivity, SMBDefaults.high_temptarget_raises_sensitivity)) { + // TODO AS-FIX + if (false && SP.getBoolean(R.string.key_high_temptarget_raises_sensitivity, SMBDefaults.high_temptarget_raises_sensitivity)) { TempTarget tempTarget = TreatmentsPlugin.getPlugin().getTempTargetFromHistory(bgTime); if (tempTarget != null && tempTarget.target() >= 100) { autosensData.extraDeviation.add(-(tempTarget.target() - 100) / 20); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/iob/iobCobCalculator/IobCobThread.java b/app/src/main/java/info/nightscout/androidaps/plugins/iob/iobCobCalculator/IobCobThread.java index 2970f07aca..2aacb4f453 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/iob/iobCobCalculator/IobCobThread.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/iob/iobCobCalculator/IobCobThread.java @@ -5,8 +5,6 @@ import android.os.PowerManager; import android.os.SystemClock; import android.support.v4.util.LongSparseArray; -import com.crashlytics.android.answers.CustomEvent; - import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -14,7 +12,6 @@ import java.util.ArrayList; import java.util.Date; import java.util.List; -import info.nightscout.androidaps.BuildConfig; import info.nightscout.androidaps.Constants; import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.R; @@ -24,13 +21,13 @@ import info.nightscout.androidaps.db.BgReading; import info.nightscout.androidaps.events.Event; import info.nightscout.androidaps.interfaces.PluginType; import info.nightscout.androidaps.logging.L; +import info.nightscout.androidaps.plugins.aps.openAPSSMB.SMBDefaults; import info.nightscout.androidaps.plugins.configBuilder.ConfigBuilderPlugin; import info.nightscout.androidaps.plugins.configBuilder.ProfileFunctions; -import info.nightscout.androidaps.plugins.iob.iobCobCalculator.events.EventAutosensCalculationFinished; -import info.nightscout.androidaps.plugins.iob.iobCobCalculator.events.EventIobCalculationProgress; -import info.nightscout.androidaps.plugins.aps.openAPSSMB.SMBDefaults; import info.nightscout.androidaps.plugins.general.overview.events.EventNewNotification; import info.nightscout.androidaps.plugins.general.overview.notifications.Notification; +import info.nightscout.androidaps.plugins.iob.iobCobCalculator.events.EventAutosensCalculationFinished; +import info.nightscout.androidaps.plugins.iob.iobCobCalculator.events.EventIobCalculationProgress; import info.nightscout.androidaps.plugins.sensitivity.SensitivityAAPSPlugin; import info.nightscout.androidaps.plugins.sensitivity.SensitivityWeightedAveragePlugin; import info.nightscout.androidaps.plugins.treatments.Treatment; @@ -223,13 +220,6 @@ public class IobCobThread extends Thread { } catch (Exception e) { log.error("Unhandled exception", e); FabricPrivacy.logException(e); - FabricPrivacy.getInstance().logCustom(new CustomEvent("CatchedError") - .putCustomAttribute("buildversion", BuildConfig.BUILDVERSION) - .putCustomAttribute("version", BuildConfig.VERSION) - .putCustomAttribute("autosensDataTable", iobCobCalculatorPlugin.getAutosensDataTable().toString()) - .putCustomAttribute("for_data", ">>>>> bucketed_data.size()=" + bucketed_data.size() + " i=" + i + "hourAgoData=" + hourAgoData.toString()) - .putCustomAttribute("past", past) - ); log.debug(autosensDataTable.toString()); log.debug(bucketed_data.toString()); log.debug(IobCobCalculatorPlugin.getPlugin().getBgReadings().toString()); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/pump/common/defs/DoseStepSize.java b/app/src/main/java/info/nightscout/androidaps/plugins/pump/common/defs/DoseStepSize.java index 7e4bd7762e..b2ce475072 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/pump/common/defs/DoseStepSize.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/pump/common/defs/DoseStepSize.java @@ -18,6 +18,10 @@ public enum DoseStepSize new DoseStepSizeEntry(5f, 10f, 0.2f), // new DoseStepSizeEntry(10f, Double.MAX_VALUE, 0.5f)), + InsightBasal( + new DoseStepSizeEntry(0f, 5f, 0.01f), + new DoseStepSizeEntry(5f, Double.MAX_VALUE, 0.1f)), + MedtronicVeoBasal( // new DoseStepSizeEntry(0f, 1f, 0.025f), // new DoseStepSizeEntry(1f, 10f, 0.05f), // diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/pump/common/defs/PumpType.java b/app/src/main/java/info/nightscout/androidaps/plugins/pump/common/defs/PumpType.java index e1e7f2bf2b..9a7e351bf1 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/pump/common/defs/PumpType.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/pump/common/defs/PumpType.java @@ -49,9 +49,15 @@ public enum PumpType { AccuChekInsight("Accu-Chek Insight", 0.05d, DoseStepSize.InsightBolus, // new DoseSettings(0.05d, 15, 24*60, 0.05d), // PumpTempBasalType.Percent, - new DoseSettings(10, 15, 12*60,0d, 250d), PumpCapability.BasalRate_Duration15and30minAllowed, // + new DoseSettings(10, 15, 24*60,0d, 250d), PumpCapability.BasalRate_Duration15and30minAllowed, // 0.02d, 0.01d, null, PumpCapability.InsightCapabilities), // + AccuChekInsightBluetooth("Accu-Chek Insight", 0.01d, null, // + new DoseSettings(0.01d, 15, 24*60, 0.05d), // + PumpTempBasalType.Percent, + new DoseSettings(10, 15, 24*60,0d, 250d), PumpCapability.BasalRate_Duration15and30minAllowed, // + 0.02d, 0.01d, DoseStepSize.InsightBolus, PumpCapability.InsightCapabilities), // + // Animas AnimasVibe("Animas Vibe", 0.05d, null, // AnimasBolus? new DoseSettings(0.05d, 30, 12*60, 0.05d), // diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/pump/danaR/comm/MsgSettingBasal.java b/app/src/main/java/info/nightscout/androidaps/plugins/pump/danaR/comm/MsgSettingBasal.java index dc05848b34..68dcf089c0 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/pump/danaR/comm/MsgSettingBasal.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/pump/danaR/comm/MsgSettingBasal.java @@ -3,6 +3,8 @@ package info.nightscout.androidaps.plugins.pump.danaR.comm; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.util.Locale; + import info.nightscout.androidaps.logging.L; import info.nightscout.androidaps.plugins.pump.danaR.DanaRPlugin; import info.nightscout.androidaps.plugins.pump.danaR.DanaRPump; @@ -31,7 +33,7 @@ public class MsgSettingBasal extends MessageBase { if (L.isEnabled(L.PUMPCOMM)) for (int index = 0; index < 24; index++) { - log.debug("Basal " + String.format("%02d", index) + "h: " + pump.pumpProfiles[pump.activeProfile][index]); + log.debug("Basal " + String.format(Locale.ENGLISH, "%02d", index) + "h: " + pump.pumpProfiles[pump.activeProfile][index]); } } } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/pump/danaR/comm/MsgSettingBasalProfileAll.java b/app/src/main/java/info/nightscout/androidaps/plugins/pump/danaR/comm/MsgSettingBasalProfileAll.java index 89a4228ab7..9c471a3a00 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/pump/danaR/comm/MsgSettingBasalProfileAll.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/pump/danaR/comm/MsgSettingBasalProfileAll.java @@ -3,6 +3,8 @@ package info.nightscout.androidaps.plugins.pump.danaR.comm; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.util.Locale; + import info.nightscout.androidaps.logging.L; import info.nightscout.androidaps.plugins.pump.danaR.DanaRPump; @@ -55,7 +57,7 @@ public class MsgSettingBasalProfileAll extends MessageBase { for (int profile = 0; profile < 4; profile++) { for (int index = 0; index < 48; index++) { try { - log.debug("Basal profile " + profile + ": " + String.format("%02d", index) + "h: " + pump.pumpProfiles[profile][index]); + log.debug("Basal profile " + profile + ": " + String.format(Locale.ENGLISH, "%02d", index) + "h: " + pump.pumpProfiles[profile][index]); } catch (Exception e){ log.error("Unhandled exception" , e); } @@ -67,8 +69,8 @@ public class MsgSettingBasalProfileAll extends MessageBase { //this is absurd pump.pumpProfiles[profile][index] returns nullPointerException try { log.debug("Basal profile " + profile + ": " + - String.format("%02d", (index / 2)) + - ":" + String.format("%02d", (index % 2) * 30) + " : " + + String.format(Locale.ENGLISH, "%02d", (index / 2)) + + ":" + String.format(Locale.ENGLISH, "%02d", (index % 2) * 30) + " : " + pump.pumpProfiles[profile][index]); } catch (Exception e){ log.error("Unhandled exception" , e); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/pump/danaR/services/DanaRExecutionService.java b/app/src/main/java/info/nightscout/androidaps/plugins/pump/danaR/services/DanaRExecutionService.java index 4c61c92a4f..22d98368a6 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/pump/danaR/services/DanaRExecutionService.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/pump/danaR/services/DanaRExecutionService.java @@ -18,14 +18,14 @@ import info.nightscout.androidaps.data.PumpEnactResult; import info.nightscout.androidaps.events.EventAppExit; import info.nightscout.androidaps.events.EventInitializationChanged; import info.nightscout.androidaps.events.EventPreferenceChange; -import info.nightscout.androidaps.events.EventProfileSwitchChange; +import info.nightscout.androidaps.events.EventProfileNeedsUpdate; import info.nightscout.androidaps.events.EventPumpStatusChanged; import info.nightscout.androidaps.interfaces.PumpInterface; import info.nightscout.androidaps.logging.L; 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.BolusProgressDialog; +import info.nightscout.androidaps.plugins.general.overview.dialogs.BolusProgressDialog; import info.nightscout.androidaps.plugins.general.overview.events.EventNewNotification; import info.nightscout.androidaps.plugins.general.overview.events.EventOverviewBolusProgress; import info.nightscout.androidaps.plugins.general.overview.notifications.Notification; @@ -166,7 +166,7 @@ public class DanaRExecutionService extends AbstractDanaRExecutionService { MainApp.bus().post(new EventPumpStatusChanged(MainApp.gs(R.string.gettingpumpsettings))); mSerialIOThread.sendMessage(new MsgSettingBasal()); if (!pump.isThisProfileSet(profile) && !ConfigBuilderPlugin.getPlugin().getCommandQueue().isRunning(Command.CommandType.BASALPROFILE)) { - MainApp.bus().post(new EventProfileSwitchChange()); + MainApp.bus().post(new EventProfileNeedsUpdate()); } } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/pump/danaRKorean/comm/MsgSettingBasalProfileAll_k.java b/app/src/main/java/info/nightscout/androidaps/plugins/pump/danaRKorean/comm/MsgSettingBasalProfileAll_k.java index cb131634ec..85591d4655 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/pump/danaRKorean/comm/MsgSettingBasalProfileAll_k.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/pump/danaRKorean/comm/MsgSettingBasalProfileAll_k.java @@ -3,6 +3,8 @@ package info.nightscout.androidaps.plugins.pump.danaRKorean.comm; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.util.Locale; + import info.nightscout.androidaps.logging.L; import info.nightscout.androidaps.plugins.pump.danaR.DanaRPump; import info.nightscout.androidaps.plugins.pump.danaR.comm.MessageBase; @@ -55,15 +57,15 @@ public class MsgSettingBasalProfileAll_k extends MessageBase { if (pump.basal48Enable) { for (int profile = 0; profile < 4; profile++) { for (int index = 0; index < 24; index++) { - log.debug("Basal profile " + profile + ": " + String.format("%02d", index) + "h: " + pump.pumpProfiles[profile][index]); + log.debug("Basal profile " + profile + ": " + String.format(Locale.ENGLISH, "%02d", index) + "h: " + pump.pumpProfiles[profile][index]); } } } else { for (int profile = 0; profile < 4; profile++) { for (int index = 0; index < 48; index++) { log.debug("Basal profile " + profile + ": " + - String.format("%02d", (index / 2)) + - ":" + String.format("%02d", (index % 2) * 30) + " : " + + String.format(Locale.ENGLISH, "%02d", (index / 2)) + + ":" + String.format(Locale.ENGLISH, "%02d", (index % 2) * 30) + " : " + pump.pumpProfiles[profile][index]); } } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/pump/danaRKorean/comm/MsgSettingBasal_k.java b/app/src/main/java/info/nightscout/androidaps/plugins/pump/danaRKorean/comm/MsgSettingBasal_k.java index 99ad848289..b3ba918a4a 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/pump/danaRKorean/comm/MsgSettingBasal_k.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/pump/danaRKorean/comm/MsgSettingBasal_k.java @@ -3,6 +3,8 @@ package info.nightscout.androidaps.plugins.pump.danaRKorean.comm; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.util.Locale; + import info.nightscout.androidaps.logging.L; import info.nightscout.androidaps.plugins.pump.danaR.DanaRPump; import info.nightscout.androidaps.plugins.pump.danaR.comm.MessageBase; @@ -32,7 +34,7 @@ public class MsgSettingBasal_k extends MessageBase { if (L.isEnabled(L.PUMPCOMM)) for (int index = 0; index < 24; index++) { - log.debug("Basal " + String.format("%02d", index) + "h: " + pump.pumpProfiles[pump.activeProfile][index]); + log.debug("Basal " + String.format(Locale.ENGLISH, "%02d", index) + "h: " + pump.pumpProfiles[pump.activeProfile][index]); } } } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/pump/danaRKorean/services/DanaRKoreanExecutionService.java b/app/src/main/java/info/nightscout/androidaps/plugins/pump/danaRKorean/services/DanaRKoreanExecutionService.java index 056d336805..749b977c2c 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/pump/danaRKorean/services/DanaRKoreanExecutionService.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/pump/danaRKorean/services/DanaRKoreanExecutionService.java @@ -18,14 +18,14 @@ import info.nightscout.androidaps.data.PumpEnactResult; import info.nightscout.androidaps.events.EventAppExit; import info.nightscout.androidaps.events.EventInitializationChanged; import info.nightscout.androidaps.events.EventPreferenceChange; -import info.nightscout.androidaps.events.EventProfileSwitchChange; +import info.nightscout.androidaps.events.EventProfileNeedsUpdate; import info.nightscout.androidaps.events.EventPumpStatusChanged; import info.nightscout.androidaps.interfaces.PumpInterface; import info.nightscout.androidaps.logging.L; 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.BolusProgressDialog; +import info.nightscout.androidaps.plugins.general.overview.dialogs.BolusProgressDialog; import info.nightscout.androidaps.plugins.general.overview.events.EventNewNotification; import info.nightscout.androidaps.plugins.general.overview.notifications.Notification; import info.nightscout.androidaps.plugins.pump.danaR.DanaRPump; @@ -171,7 +171,7 @@ public class DanaRKoreanExecutionService extends AbstractDanaRExecutionService { MainApp.bus().post(new EventPumpStatusChanged(MainApp.gs(R.string.gettingpumpsettings))); mSerialIOThread.sendMessage(new MsgSettingBasal()); if (!pump.isThisProfileSet(profile) && !ConfigBuilderPlugin.getPlugin().getCommandQueue().isRunning(Command.CommandType.BASALPROFILE)) { - MainApp.bus().post(new EventProfileSwitchChange()); + MainApp.bus().post(new EventProfileNeedsUpdate()); } } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/pump/danaRS/comm/DanaRS_Packet_Basal_Get_Basal_Rate.java b/app/src/main/java/info/nightscout/androidaps/plugins/pump/danaRS/comm/DanaRS_Packet_Basal_Get_Basal_Rate.java index 5cbda121ce..eb89cd5d10 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/pump/danaRS/comm/DanaRS_Packet_Basal_Get_Basal_Rate.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/pump/danaRS/comm/DanaRS_Packet_Basal_Get_Basal_Rate.java @@ -6,6 +6,8 @@ import com.cozmo.danar.util.BleCommandUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.util.Locale; + import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.R; import info.nightscout.androidaps.logging.L; @@ -49,7 +51,7 @@ public class DanaRS_Packet_Basal_Get_Basal_Rate extends DanaRS_Packet { log.debug("Max basal: " + pump.maxBasal + " U"); log.debug("Basal step: " + pump.basalStep + " U"); for (int index = 0; index < 24; index++) - log.debug("Basal " + String.format("%02d", index) + "h: " + pump.pumpProfiles[pump.activeProfile][index]); + log.debug("Basal " + String.format(Locale.ENGLISH, "%02d", index) + "h: " + pump.pumpProfiles[pump.activeProfile][index]); } if (pump.basalStep != 0.01d) { diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/pump/danaRS/comm/DanaRS_Packet_Basal_Get_Profile_Basal_Rate.java b/app/src/main/java/info/nightscout/androidaps/plugins/pump/danaRS/comm/DanaRS_Packet_Basal_Get_Profile_Basal_Rate.java index 04aa4cefb3..778b794b2a 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/pump/danaRS/comm/DanaRS_Packet_Basal_Get_Profile_Basal_Rate.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/pump/danaRS/comm/DanaRS_Packet_Basal_Get_Profile_Basal_Rate.java @@ -5,6 +5,8 @@ import com.cozmo.danar.util.BleCommandUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.util.Locale; + import info.nightscout.androidaps.logging.L; import info.nightscout.androidaps.plugins.pump.danaR.DanaRPump; @@ -51,7 +53,7 @@ public class DanaRS_Packet_Basal_Get_Profile_Basal_Rate extends DanaRS_Packet { } if (L.isEnabled(L.PUMPCOMM)) { for (int index = 0; index < 24; index++) - log.debug("Basal " + String.format("%02d", index) + "h: " + pump.pumpProfiles[profileNumber][index]); + log.debug("Basal " + String.format(Locale.ENGLISH, "%02d", index) + "h: " + pump.pumpProfiles[profileNumber][index]); } } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/pump/danaRS/services/DanaRSService.java b/app/src/main/java/info/nightscout/androidaps/plugins/pump/danaRS/services/DanaRSService.java index 47b1fbfe2a..06a3a651ca 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/pump/danaRS/services/DanaRSService.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/pump/danaRS/services/DanaRSService.java @@ -20,14 +20,14 @@ import info.nightscout.androidaps.data.Profile; import info.nightscout.androidaps.data.PumpEnactResult; import info.nightscout.androidaps.events.EventAppExit; import info.nightscout.androidaps.events.EventInitializationChanged; -import info.nightscout.androidaps.events.EventProfileSwitchChange; +import info.nightscout.androidaps.events.EventProfileNeedsUpdate; import info.nightscout.androidaps.events.EventPumpStatusChanged; import info.nightscout.androidaps.interfaces.PumpInterface; import info.nightscout.androidaps.logging.L; import info.nightscout.androidaps.plugins.configBuilder.ConfigBuilderPlugin; import info.nightscout.androidaps.plugins.configBuilder.ProfileFunctions; -import info.nightscout.androidaps.plugins.general.overview.Dialogs.BolusProgressDialog; -import info.nightscout.androidaps.plugins.general.overview.Dialogs.ErrorHelperActivity; +import info.nightscout.androidaps.plugins.general.overview.dialogs.BolusProgressDialog; +import info.nightscout.androidaps.plugins.general.overview.dialogs.ErrorHelperActivity; import info.nightscout.androidaps.plugins.general.overview.events.EventNewNotification; import info.nightscout.androidaps.plugins.general.overview.events.EventOverviewBolusProgress; import info.nightscout.androidaps.plugins.general.overview.notifications.Notification; @@ -149,7 +149,7 @@ public class DanaRSService extends Service { MainApp.bus().post(new EventPumpStatusChanged(MainApp.gs(R.string.gettingpumpsettings))); bleComm.sendMessage(new DanaRS_Packet_Basal_Get_Basal_Rate()); // basal profile, basalStep, maxBasal if (!pump.isThisProfileSet(profile) && !ConfigBuilderPlugin.getPlugin().getCommandQueue().isRunning(Command.CommandType.BASALPROFILE)) { - MainApp.bus().post(new EventProfileSwitchChange()); + MainApp.bus().post(new EventProfileNeedsUpdate()); } } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/pump/danaRv2/services/DanaRv2ExecutionService.java b/app/src/main/java/info/nightscout/androidaps/plugins/pump/danaRv2/services/DanaRv2ExecutionService.java index 8cabb8959d..2d2d2526dd 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/pump/danaRv2/services/DanaRv2ExecutionService.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/pump/danaRv2/services/DanaRv2ExecutionService.java @@ -19,15 +19,15 @@ import info.nightscout.androidaps.data.PumpEnactResult; import info.nightscout.androidaps.events.EventAppExit; import info.nightscout.androidaps.events.EventInitializationChanged; import info.nightscout.androidaps.events.EventPreferenceChange; -import info.nightscout.androidaps.events.EventProfileSwitchChange; +import info.nightscout.androidaps.events.EventProfileNeedsUpdate; import info.nightscout.androidaps.events.EventPumpStatusChanged; import info.nightscout.androidaps.interfaces.PumpInterface; import info.nightscout.androidaps.logging.L; 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.BolusProgressDialog; -import info.nightscout.androidaps.plugins.general.overview.Dialogs.ErrorHelperActivity; +import info.nightscout.androidaps.plugins.general.overview.dialogs.BolusProgressDialog; +import info.nightscout.androidaps.plugins.general.overview.dialogs.ErrorHelperActivity; import info.nightscout.androidaps.plugins.general.overview.events.EventNewNotification; import info.nightscout.androidaps.plugins.general.overview.events.EventOverviewBolusProgress; import info.nightscout.androidaps.plugins.general.overview.notifications.Notification; @@ -188,7 +188,7 @@ public class DanaRv2ExecutionService extends AbstractDanaRExecutionService { MainApp.bus().post(new EventPumpStatusChanged(MainApp.gs(R.string.gettingpumpsettings))); mSerialIOThread.sendMessage(new MsgSettingBasal()); if (!pump.isThisProfileSet(profile) && !ConfigBuilderPlugin.getPlugin().getCommandQueue().isRunning(Command.CommandType.BASALPROFILE)) { - MainApp.bus().post(new EventProfileSwitchChange()); + MainApp.bus().post(new EventProfileNeedsUpdate()); } } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/pump/insight/LocalInsightPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/pump/insight/LocalInsightPlugin.java index ccc38c1b9b..c5b505a3d3 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/pump/insight/LocalInsightPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/pump/insight/LocalInsightPlugin.java @@ -171,7 +171,7 @@ public class LocalInsightPlugin extends PluginBase implements PumpInterface, Con .preferencesId(R.xml.pref_insight_local)); pumpDescription = new PumpDescription(); - pumpDescription.setPumpDescription(PumpType.AccuChekInsight); + pumpDescription.setPumpDescription(PumpType.AccuChekInsightBluetooth); } public TBROverNotificationBlock getTBROverNotificationBlock() { @@ -315,7 +315,7 @@ public class LocalInsightPlugin extends PluginBase implements PumpInterface, Con calendar.set(Calendar.HOUR_OF_DAY, pumpTime.getHour()); calendar.set(Calendar.MINUTE, pumpTime.getMinute()); calendar.set(Calendar.SECOND, pumpTime.getSecond()); - if (Math.abs(calendar.getTimeInMillis() - System.currentTimeMillis()) > 10000) { + if (calendar.get(Calendar.HOUR_OF_DAY) != pumpTime.getHour() || Math.abs(calendar.getTimeInMillis() - System.currentTimeMillis()) > 10000) { calendar.setTime(new Date()); pumpTime.setYear(calendar.get(Calendar.YEAR)); pumpTime.setMonth(calendar.get(Calendar.MONTH) + 1); @@ -421,7 +421,7 @@ public class LocalInsightPlugin extends PluginBase implements PumpInterface, Con if (profile.getBasalValues().length > i + 1) nextValue = profile.getBasalValues()[i + 1]; BasalProfileBlock profileBlock = new BasalProfileBlock(); - profileBlock.setBasalAmount(basalValue.value); + profileBlock.setBasalAmount(basalValue.value > 5 ? Math.round(basalValue.value / 0.1) * 0.1 : Math.round(basalValue.value / 0.01) * 0.01); profileBlock.setDuration((((nextValue != null ? nextValue.timeAsSeconds : 24 * 60 * 60) - basalValue.timeAsSeconds) / 60)); profileBlocks.add(profileBlock); } @@ -476,7 +476,7 @@ public class LocalInsightPlugin extends PluginBase implements PumpInterface, Con nextValue = profile.getBasalValues()[i + 1]; if (profileBlock.getDuration() * 60 != (nextValue != null ? nextValue.timeAsSeconds : 24 * 60 * 60) - basalValue.timeAsSeconds) return false; - if (Math.abs(profileBlock.getBasalAmount() - basalValue.value) > 0.01D) + if (Math.abs(profileBlock.getBasalAmount() - basalValue.value) > (basalValue.value > 5 ? 0.05 : 0.005)) return false; } return true; @@ -510,14 +510,15 @@ public class LocalInsightPlugin extends PluginBase implements PumpInterface, Con @Override public PumpEnactResult deliverTreatment(DetailedBolusInfo detailedBolusInfo) { PumpEnactResult result = new PumpEnactResult(); - if (detailedBolusInfo.insulin > 0) { + double insulin = Math.round(detailedBolusInfo.insulin / 0.01) * 0.01; + if (insulin > 0) { try { synchronized ($bolusLock) { DeliverBolusMessage bolusMessage = new DeliverBolusMessage(); bolusMessage.setBolusType(BolusType.STANDARD); bolusMessage.setDuration(0); bolusMessage.setExtendedAmount(0); - bolusMessage.setImmediateAmount(detailedBolusInfo.insulin); + bolusMessage.setImmediateAmount(insulin); bolusID = connectionService.requestMessage(bolusMessage).await().getBolusId(); bolusCancelled = false; } @@ -527,7 +528,7 @@ public class LocalInsightPlugin extends PluginBase implements PumpInterface, Con t.isSMB = detailedBolusInfo.isSMB; final EventOverviewBolusProgress bolusingEvent = EventOverviewBolusProgress.getInstance(); bolusingEvent.t = t; - bolusingEvent.status = MainApp.gs(R.string.insight_delivered, 0d, detailedBolusInfo.insulin); + bolusingEvent.status = MainApp.gs(R.string.insight_delivered, 0d, insulin); bolusingEvent.percent = 0; MainApp.bus().post(bolusingEvent); int trials = 0; @@ -565,7 +566,7 @@ public class LocalInsightPlugin extends PluginBase implements PumpInterface, Con synchronized ($bolusLock) { if (bolusCancelled || trials == -1 || trials++ >= 5) { if (!bolusCancelled) { - bolusingEvent.status = MainApp.gs(R.string.insight_delivered, detailedBolusInfo.insulin, detailedBolusInfo.insulin); + bolusingEvent.status = MainApp.gs(R.string.insight_delivered, insulin, insulin); bolusingEvent.percent = 100; MainApp.bus().post(bolusingEvent); } @@ -592,6 +593,7 @@ public class LocalInsightPlugin extends PluginBase implements PumpInterface, Con result.enacted = true; } result.carbsDelivered = detailedBolusInfo.carbs; + result.bolusDelivered = insulin; return result; } @@ -1187,6 +1189,7 @@ public class LocalInsightPlugin extends PluginBase implements PumpInterface, Con } private void processCannulaFilledEvent(CannulaFilledEvent event) { + if (!SP.getBoolean("insight_log_site_changes", false)) return; long timestamp = parseDate(event.getEventYear(), event.getEventMonth(), event.getEventDay(), event.getEventHour(), event.getEventMinute(), event.getEventSecond()) + timeOffset; uploadCareportalEvent(timestamp, CareportalEvent.SITECHANGE); @@ -1214,7 +1217,7 @@ public class LocalInsightPlugin extends PluginBase implements PumpInterface, Con } private void processSniffingDoneEvent(SniffingDoneEvent event) { - if (!SP.getBoolean("insight_log_site_changes", false)) return; + if (!SP.getBoolean("insight_log_reservoir_changes", false)) return; long timestamp = parseDate(event.getEventYear(), event.getEventMonth(), event.getEventDay(), event.getEventHour(), event.getEventMinute(), event.getEventSecond()) + timeOffset; uploadCareportalEvent(timestamp, CareportalEvent.INSULINCHANGE); @@ -1537,6 +1540,11 @@ public class LocalInsightPlugin extends PluginBase implements PumpInterface, Con return insulin; } + @Override + public Constraint applyExtendedBolusConstraints(Constraint insulin) { + return applyBolusConstraints(insulin); + } + @Override public void onStateChanged(InsightState state) { if (state == InsightState.CONNECTED) { diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/treatments/CarbsGenerator.java b/app/src/main/java/info/nightscout/androidaps/plugins/treatments/CarbsGenerator.java index 33b58e46cf..ac9be50a23 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/treatments/CarbsGenerator.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/treatments/CarbsGenerator.java @@ -9,7 +9,7 @@ import info.nightscout.androidaps.data.DetailedBolusInfo; import info.nightscout.androidaps.db.CareportalEvent; import info.nightscout.androidaps.db.Source; import info.nightscout.androidaps.plugins.configBuilder.ConfigBuilderPlugin; -import info.nightscout.androidaps.plugins.general.overview.Dialogs.ErrorHelperActivity; +import info.nightscout.androidaps.plugins.general.overview.dialogs.ErrorHelperActivity; import info.nightscout.androidaps.queue.Callback; import info.nightscout.androidaps.utils.T; diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/treatments/TreatmentsPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/treatments/TreatmentsPlugin.java index e176553a6a..2c94d6713d 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/treatments/TreatmentsPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/treatments/TreatmentsPlugin.java @@ -1,9 +1,10 @@ package info.nightscout.androidaps.plugins.treatments; import android.content.Intent; +import android.os.Bundle; import android.support.annotation.Nullable; -import com.crashlytics.android.answers.CustomEvent; +import com.google.firebase.analytics.FirebaseAnalytics; import com.squareup.otto.Subscribe; import org.slf4j.Logger; @@ -37,20 +38,21 @@ import info.nightscout.androidaps.interfaces.InsulinInterface; import info.nightscout.androidaps.interfaces.PluginBase; import info.nightscout.androidaps.interfaces.PluginDescription; import info.nightscout.androidaps.interfaces.PluginType; +import info.nightscout.androidaps.interfaces.PumpInterface; import info.nightscout.androidaps.interfaces.TreatmentsInterface; import info.nightscout.androidaps.logging.L; import info.nightscout.androidaps.plugins.configBuilder.ConfigBuilderPlugin; import info.nightscout.androidaps.plugins.configBuilder.ProfileFunctions; -import info.nightscout.androidaps.plugins.iob.iobCobCalculator.AutosensData; -import info.nightscout.androidaps.plugins.iob.iobCobCalculator.IobCobCalculatorPlugin; -import info.nightscout.androidaps.plugins.general.overview.Dialogs.ErrorHelperActivity; +import info.nightscout.androidaps.plugins.general.nsclient.NSUpload; +import info.nightscout.androidaps.plugins.general.overview.dialogs.ErrorHelperActivity; import info.nightscout.androidaps.plugins.general.overview.events.EventDismissNotification; import info.nightscout.androidaps.plugins.general.overview.notifications.Notification; +import info.nightscout.androidaps.plugins.iob.iobCobCalculator.AutosensData; +import info.nightscout.androidaps.plugins.iob.iobCobCalculator.IobCobCalculatorPlugin; import info.nightscout.androidaps.plugins.sensitivity.SensitivityAAPSPlugin; import info.nightscout.androidaps.plugins.sensitivity.SensitivityWeightedAveragePlugin; import info.nightscout.androidaps.utils.DateUtil; import info.nightscout.androidaps.utils.FabricPrivacy; -import info.nightscout.androidaps.plugins.general.nsclient.NSUpload; import info.nightscout.androidaps.utils.SP; import info.nightscout.androidaps.utils.T; @@ -184,7 +186,11 @@ public class TreatmentsPlugin extends PluginBase implements TreatmentsInterface InsulinInterface insulinInterface = ConfigBuilderPlugin.getPlugin().getActiveInsulin(); if (insulinInterface == null) - return total; + return total; + + PumpInterface pumpInterface = ConfigBuilderPlugin.getPlugin().getActivePump(); + if (pumpInterface == null) + return total; double dia = profile.getDia(); @@ -209,7 +215,7 @@ public class TreatmentsPlugin extends PluginBase implements TreatmentsInterface } } - if (!ConfigBuilderPlugin.getPlugin().getActivePump().isFakingTempsByExtendedBoluses()) + if (!pumpInterface.isFakingTempsByExtendedBoluses()) synchronized (extendedBoluses) { for (Integer pos = 0; pos < extendedBoluses.size(); pos++) { ExtendedBolus e = extendedBoluses.get(pos); @@ -259,7 +265,7 @@ public class TreatmentsPlugin extends PluginBase implements TreatmentsInterface if (t > absorptionTime_ago && t <= now) { if (treatment.carbs >= 1) { result.carbs += treatment.carbs; - if(t > result.lastCarbTime) + if (t > result.lastCarbTime) result.lastCarbTime = t; } } @@ -312,7 +318,7 @@ public class TreatmentsPlugin extends PluginBase implements TreatmentsInterface } } if (L.isEnabled(L.DATATREATMENTS)) - log.debug("Last bolus time: " + new Date(last).toLocaleString()); + log.debug("Last bolus time: " + new Date(last).toLocaleString()); return last; } @@ -341,7 +347,7 @@ public class TreatmentsPlugin extends PluginBase implements TreatmentsInterface @Subscribe public void onStatusEvent(final EventReloadTreatmentData ev) { if (L.isEnabled(L.DATATREATMENTS)) - log.debug("EventReloadTreatmentData"); + log.debug("EventReloadTreatmentData"); initializeTreatmentData(); initializeExtendedBolusData(); updateTotalIOBTreatments(); @@ -352,7 +358,7 @@ public class TreatmentsPlugin extends PluginBase implements TreatmentsInterface @SuppressWarnings("unused") public void onStatusEvent(final EventReloadTempBasalData ev) { if (L.isEnabled(L.DATATREATMENTS)) - log.debug("EventReloadTempBasalData"); + log.debug("EventReloadTempBasalData"); initializeTempBasalData(); updateTotalIOBTempBasals(); } @@ -372,14 +378,14 @@ public class TreatmentsPlugin extends PluginBase implements TreatmentsInterface InsulinInterface insulinInterface = ConfigBuilderPlugin.getPlugin().getActiveInsulin(); if (insulinInterface == null) - return total; + return total; synchronized (tempBasals) { for (Integer pos = 0; pos < tempBasals.size(); pos++) { TemporaryBasal t = tempBasals.get(pos); if (t.date > time) continue; IobTotal calc; - if(truncate && t.end() > truncateTime){ + if (truncate && t.end() > truncateTime) { TemporaryBasal dummyTemp = new TemporaryBasal(); dummyTemp.copyFrom(t); dummyTemp.cutEndTo(truncateTime); @@ -398,7 +404,7 @@ public class TreatmentsPlugin extends PluginBase implements TreatmentsInterface ExtendedBolus e = extendedBoluses.get(pos); if (e.date > time) continue; IobTotal calc; - if(truncate && e.end() > truncateTime){ + if (truncate && e.end() > truncateTime) { ExtendedBolus dummyExt = new ExtendedBolus(); dummyExt.copyFrom(e); dummyExt.cutEndTo(truncateTime); @@ -535,9 +541,10 @@ public class TreatmentsPlugin extends PluginBase implements TreatmentsInterface i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); MainApp.instance().startActivity(i); - CustomEvent customEvent = new CustomEvent("TreatmentClash"); - customEvent.putCustomAttribute("status", status); - FabricPrivacy.getInstance().logCustom(customEvent); + Bundle bundle = new Bundle(); + bundle.putString(FirebaseAnalytics.Param.ITEM_ID, "TreatmentClash"); + bundle.putString(FirebaseAnalytics.Param.VALUE, status); + FabricPrivacy.getInstance().logCustom(bundle); } return newRecordCreated; diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/treatments/fragments/TreatmentsBolusFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/treatments/fragments/TreatmentsBolusFragment.java index 64e93f3f95..26a8494dd7 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/treatments/fragments/TreatmentsBolusFragment.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/treatments/fragments/TreatmentsBolusFragment.java @@ -18,7 +18,6 @@ import android.view.ViewGroup; import android.widget.Button; import android.widget.TextView; -import com.crashlytics.android.answers.CustomEvent; import com.squareup.otto.Subscribe; import java.util.List; @@ -40,7 +39,6 @@ import info.nightscout.androidaps.plugins.treatments.dialogs.WizardInfoDialog; import info.nightscout.androidaps.services.Intents; import info.nightscout.androidaps.utils.DateUtil; import info.nightscout.androidaps.utils.DecimalFormatter; -import info.nightscout.androidaps.utils.FabricPrivacy; import info.nightscout.androidaps.utils.SP; import static info.nightscout.androidaps.utils.DateUtil.now; @@ -165,7 +163,6 @@ public class TreatmentsBolusFragment extends SubscriberFragment implements View. TreatmentsPlugin.getPlugin().getService().delete(treatment); } updateGUI(); - FabricPrivacy.getInstance().logCustom(new CustomEvent("RemoveTreatment")); } }); builder.setNegativeButton(MainApp.gs(R.string.cancel), null); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/treatments/fragments/TreatmentsExtendedBolusesFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/treatments/fragments/TreatmentsExtendedBolusesFragment.java index 93f2a64006..766190e378 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/treatments/fragments/TreatmentsExtendedBolusesFragment.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/treatments/fragments/TreatmentsExtendedBolusesFragment.java @@ -15,7 +15,6 @@ import android.view.View; import android.view.ViewGroup; import android.widget.TextView; -import com.crashlytics.android.answers.CustomEvent; import com.squareup.otto.Subscribe; import info.nightscout.androidaps.MainApp; @@ -32,7 +31,6 @@ import info.nightscout.androidaps.plugins.iob.iobCobCalculator.events.EventAutos import info.nightscout.androidaps.plugins.treatments.TreatmentsPlugin; import info.nightscout.androidaps.utils.DateUtil; import info.nightscout.androidaps.utils.DecimalFormatter; -import info.nightscout.androidaps.utils.FabricPrivacy; public class TreatmentsExtendedBolusesFragment extends SubscriberFragment { @@ -150,7 +148,6 @@ public class TreatmentsExtendedBolusesFragment extends SubscriberFragment { UploadQueue.removeID("dbAdd", _id); } MainApp.getDbHelper().delete(extendedBolus); - FabricPrivacy.getInstance().logCustom(new CustomEvent("RemoveExtendedBolus")); } }); builder.setNegativeButton(MainApp.gs(R.string.cancel), null); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/treatments/fragments/TreatmentsProfileSwitchFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/treatments/fragments/TreatmentsProfileSwitchFragment.java index 5da86217f0..c59d5e1836 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/treatments/fragments/TreatmentsProfileSwitchFragment.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/treatments/fragments/TreatmentsProfileSwitchFragment.java @@ -27,13 +27,13 @@ import java.util.List; import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.R; +import info.nightscout.androidaps.events.EventProfileNeedsUpdate; import info.nightscout.androidaps.logging.L; import info.nightscout.androidaps.plugins.configBuilder.ProfileFunctions; import info.nightscout.androidaps.services.Intents; import info.nightscout.androidaps.data.Profile; import info.nightscout.androidaps.db.ProfileSwitch; import info.nightscout.androidaps.db.Source; -import info.nightscout.androidaps.events.EventProfileSwitchChange; import info.nightscout.androidaps.plugins.common.SubscriberFragment; import info.nightscout.androidaps.plugins.general.nsclient.UploadQueue; import info.nightscout.androidaps.utils.DateUtil; @@ -216,7 +216,7 @@ public class TreatmentsProfileSwitchFragment extends SubscriberFragment implemen } @Subscribe - public void onStatusEvent(final EventProfileSwitchChange ev) { + public void onStatusEvent(final EventProfileNeedsUpdate ev) { updateGUI(); } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/treatments/fragments/TreatmentsTemporaryBasalsFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/treatments/fragments/TreatmentsTemporaryBasalsFragment.java index b928263ed5..7b935d354e 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/treatments/fragments/TreatmentsTemporaryBasalsFragment.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/treatments/fragments/TreatmentsTemporaryBasalsFragment.java @@ -15,7 +15,6 @@ import android.view.View; import android.view.ViewGroup; import android.widget.TextView; -import com.crashlytics.android.answers.CustomEvent; import com.squareup.otto.Subscribe; import info.nightscout.androidaps.MainApp; @@ -34,7 +33,6 @@ import info.nightscout.androidaps.plugins.iob.iobCobCalculator.events.EventAutos import info.nightscout.androidaps.plugins.treatments.TreatmentsPlugin; import info.nightscout.androidaps.utils.DateUtil; import info.nightscout.androidaps.utils.DecimalFormatter; -import info.nightscout.androidaps.utils.FabricPrivacy; public class TreatmentsTemporaryBasalsFragment extends SubscriberFragment { @@ -175,7 +173,6 @@ public class TreatmentsTemporaryBasalsFragment extends SubscriberFragment { UploadQueue.removeID("dbAdd", _id); } MainApp.getDbHelper().delete(tempBasal); - FabricPrivacy.getInstance().logCustom(new CustomEvent("RemoveTempBasal")); }); builder.setNegativeButton(MainApp.gs(R.string.cancel), null); builder.show(); diff --git a/app/src/main/java/info/nightscout/androidaps/queue/CommandQueue.java b/app/src/main/java/info/nightscout/androidaps/queue/CommandQueue.java index eee92177ab..e4fbacc43c 100644 --- a/app/src/main/java/info/nightscout/androidaps/queue/CommandQueue.java +++ b/app/src/main/java/info/nightscout/androidaps/queue/CommandQueue.java @@ -23,8 +23,8 @@ import info.nightscout.androidaps.interfaces.PumpInterface; import info.nightscout.androidaps.logging.L; import info.nightscout.androidaps.plugins.configBuilder.ConfigBuilderPlugin; import info.nightscout.androidaps.plugins.configBuilder.ProfileFunctions; -import info.nightscout.androidaps.plugins.general.overview.Dialogs.BolusProgressDialog; -import info.nightscout.androidaps.plugins.general.overview.Dialogs.BolusProgressHelperActivity; +import info.nightscout.androidaps.plugins.general.overview.dialogs.BolusProgressDialog; +import info.nightscout.androidaps.plugins.general.overview.dialogs.BolusProgressHelperActivity; import info.nightscout.androidaps.plugins.general.overview.events.EventDismissBolusprogressIfRunning; import info.nightscout.androidaps.plugins.general.overview.events.EventDismissNotification; import info.nightscout.androidaps.plugins.general.overview.events.EventNewNotification; @@ -381,7 +381,7 @@ public class CommandQueue { Notification notification = new Notification(Notification.NOT_ENG_MODE_OR_RELEASE, MainApp.gs(R.string.not_eng_mode_or_release), Notification.URGENT); MainApp.bus().post(new EventNewNotification(notification)); if (callback != null) - callback.result(new PumpEnactResult().success(false).comment(MainApp.gs(R.string.not_eng_mode_or_release))).run(); + callback.result(new PumpEnactResult().success(false).enacted(false).comment(MainApp.gs(R.string.not_eng_mode_or_release))).run(); return false; } @@ -394,7 +394,7 @@ public class CommandQueue { Notification notification = new Notification(Notification.BASAL_VALUE_BELOW_MINIMUM, MainApp.gs(R.string.basalvaluebelowminimum), Notification.URGENT); MainApp.bus().post(new EventNewNotification(notification)); if (callback != null) - callback.result(new PumpEnactResult().success(false).comment(MainApp.gs(R.string.basalvaluebelowminimum))).run(); + callback.result(new PumpEnactResult().success(false).enacted(false).comment(MainApp.gs(R.string.basalvaluebelowminimum))).run(); return false; } } diff --git a/app/src/main/java/info/nightscout/androidaps/queue/QueueThread.java b/app/src/main/java/info/nightscout/androidaps/queue/QueueThread.java index c6aaab43b7..0962952221 100644 --- a/app/src/main/java/info/nightscout/androidaps/queue/QueueThread.java +++ b/app/src/main/java/info/nightscout/androidaps/queue/QueueThread.java @@ -18,6 +18,7 @@ import info.nightscout.androidaps.plugins.configBuilder.ConfigBuilderPlugin; import info.nightscout.androidaps.plugins.general.overview.events.EventDismissBolusprogressIfRunning; import info.nightscout.androidaps.queue.events.EventQueueChanged; import info.nightscout.androidaps.utils.SP; +import info.nightscout.androidaps.utils.T; /** * Created by mike on 09.11.2017. @@ -28,9 +29,8 @@ public class QueueThread extends Thread { private CommandQueue queue; - private long lastCommandTime = 0; private boolean connectLogged = false; - public boolean waitingForDisconnect = false; + boolean waitingForDisconnect = false; private PowerManager.WakeLock mWakeLock; @@ -41,14 +41,17 @@ public class QueueThread extends Thread { Context context = MainApp.instance().getApplicationContext(); if (context != null) { PowerManager powerManager = (PowerManager) context.getSystemService(Context.POWER_SERVICE); - mWakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "QueueThread"); + if (powerManager != null) + mWakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "AndroidAPS:QueueThread"); } } @Override public final void run() { - mWakeLock.acquire(); + if (mWakeLock != null) + mWakeLock.acquire(T.mins(10).msecs()); MainApp.bus().post(new EventQueueChanged()); + long lastCommandTime; long connectionStartTime = lastCommandTime = System.currentTimeMillis(); try { @@ -72,7 +75,7 @@ public class QueueThread extends Thread { //BLUETOOTH-WATCHDOG boolean watchdog = SP.getBoolean(R.string.key_btwatchdog, false); - long last_watchdog = SP.getLong(R.string.key_btwatchdog_lastbark, 0l); + long last_watchdog = SP.getLong(R.string.key_btwatchdog_lastbark, 0L); watchdog = watchdog && System.currentTimeMillis() - last_watchdog > (Constants.MIN_WATCHDOG_INTERVAL_IN_SECONDS * 1000); if (watchdog) { if (L.isEnabled(L.PUMPQUEUE)) @@ -170,7 +173,8 @@ public class QueueThread extends Thread { } } } finally { - mWakeLock.release(); + if (mWakeLock != null) + mWakeLock.release(); if (L.isEnabled(L.PUMPQUEUE)) log.debug("thread end"); } diff --git a/app/src/main/java/info/nightscout/androidaps/queue/commands/CommandBolus.java b/app/src/main/java/info/nightscout/androidaps/queue/commands/CommandBolus.java index 1ce11dd359..4dc132e128 100644 --- a/app/src/main/java/info/nightscout/androidaps/queue/commands/CommandBolus.java +++ b/app/src/main/java/info/nightscout/androidaps/queue/commands/CommandBolus.java @@ -8,7 +8,7 @@ import info.nightscout.androidaps.data.DetailedBolusInfo; import info.nightscout.androidaps.data.PumpEnactResult; import info.nightscout.androidaps.logging.L; import info.nightscout.androidaps.plugins.configBuilder.ConfigBuilderPlugin; -import info.nightscout.androidaps.plugins.general.overview.Dialogs.BolusProgressDialog; +import info.nightscout.androidaps.plugins.general.overview.dialogs.BolusProgressDialog; import info.nightscout.androidaps.plugins.general.overview.events.EventDismissBolusprogressIfRunning; import info.nightscout.androidaps.queue.Callback; import info.nightscout.androidaps.utils.DecimalFormatter; diff --git a/app/src/main/java/info/nightscout/androidaps/receivers/KeepAliveReceiver.java b/app/src/main/java/info/nightscout/androidaps/receivers/KeepAliveReceiver.java index d6d9bb5fcb..7a9aa31c46 100644 --- a/app/src/main/java/info/nightscout/androidaps/receivers/KeepAliveReceiver.java +++ b/app/src/main/java/info/nightscout/androidaps/receivers/KeepAliveReceiver.java @@ -7,15 +7,13 @@ import android.content.Context; import android.content.Intent; import android.os.PowerManager; -import com.crashlytics.android.answers.CustomEvent; - import org.slf4j.Logger; import org.slf4j.LoggerFactory; import info.nightscout.androidaps.Constants; import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.data.Profile; -import info.nightscout.androidaps.events.EventProfileSwitchChange; +import info.nightscout.androidaps.events.EventProfileNeedsUpdate; import info.nightscout.androidaps.interfaces.PumpInterface; import info.nightscout.androidaps.logging.L; import info.nightscout.androidaps.plugins.configBuilder.ConfigBuilderPlugin; @@ -46,13 +44,12 @@ public class KeepAliveReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent rIntent) { PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE); - PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, ""); + PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "AndroidAPS:KeepAliveReciever"); wl.acquire(); LocalAlertUtils.shortenSnoozeInterval(); LocalAlertUtils.checkStaleBGAlert(); checkPump(); - FabricPrivacy.uploadDailyStats(); if (L.isEnabled(L.CORE)) log.debug("KeepAlive received"); @@ -76,7 +73,7 @@ public class KeepAliveReceiver extends BroadcastReceiver { } if (!pump.isThisProfileSet(profile) && !ConfigBuilderPlugin.getPlugin().getCommandQueue().isRunning(Command.CommandType.BASALPROFILE)) { - MainApp.bus().post(new EventProfileSwitchChange()); + MainApp.bus().post(new EventProfileNeedsUpdate()); } else if (isStatusOutdated && !pump.isBusy()) { lastReadStatus = System.currentTimeMillis(); ConfigBuilderPlugin.getPlugin().getCommandQueue().readStatus("KeepAlive. Status outdated.", null); @@ -87,7 +84,7 @@ public class KeepAliveReceiver extends BroadcastReceiver { } if (lastRun != 0 && System.currentTimeMillis() - lastRun > T.mins(10).msecs()) { log.error("KeepAlive fail"); - FabricPrivacy.getInstance().logCustom(new CustomEvent("KeepAliveFail")); + FabricPrivacy.getInstance().logCustom("KeepAliveFail"); } lastRun = System.currentTimeMillis(); } diff --git a/app/src/main/java/info/nightscout/androidaps/receivers/SmsReceiver.java b/app/src/main/java/info/nightscout/androidaps/receivers/SmsReceiver.java new file mode 100644 index 0000000000..f527375349 --- /dev/null +++ b/app/src/main/java/info/nightscout/androidaps/receivers/SmsReceiver.java @@ -0,0 +1,7 @@ +package info.nightscout.androidaps.receivers; + +/** + * Forward received SMS intents. This is a separate class, because unlike local broadcasts handled by DataReceiver, + * receiving SMS requires a special permission in the manifest, which necessitates a separate receiver. + */ +public class SmsReceiver extends DataReceiver {} diff --git a/app/src/main/java/info/nightscout/androidaps/services/AlarmSoundService.java b/app/src/main/java/info/nightscout/androidaps/services/AlarmSoundService.java index e95cd7c479..4917789db1 100644 --- a/app/src/main/java/info/nightscout/androidaps/services/AlarmSoundService.java +++ b/app/src/main/java/info/nightscout/androidaps/services/AlarmSoundService.java @@ -75,8 +75,11 @@ public class AlarmSoundService extends Service { @Override public void onDestroy() { - player.stop(); - player.release(); + if (player != null) { + player.stop(); + player.release(); + } + if (L.isEnabled(L.CORE)) log.debug("onDestroy"); } diff --git a/app/src/main/java/info/nightscout/androidaps/setupwizard/SetupWizardActivity.java b/app/src/main/java/info/nightscout/androidaps/setupwizard/SetupWizardActivity.java index 3dad4535ac..9049ad7463 100644 --- a/app/src/main/java/info/nightscout/androidaps/setupwizard/SetupWizardActivity.java +++ b/app/src/main/java/info/nightscout/androidaps/setupwizard/SetupWizardActivity.java @@ -22,7 +22,7 @@ import info.nightscout.androidaps.MainActivity; import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.R; import info.nightscout.androidaps.events.EventProfileStoreChanged; -import info.nightscout.androidaps.events.EventProfileSwitchChange; +import info.nightscout.androidaps.events.EventProfileNeedsUpdate; import info.nightscout.androidaps.events.EventPumpStatusChanged; import info.nightscout.androidaps.plugins.constraints.objectives.events.EventObjectivesSaved; import info.nightscout.androidaps.plugins.general.nsclient.events.EventNSClientStatus; @@ -115,7 +115,7 @@ public class SetupWizardActivity extends AppCompatActivity { } @Subscribe - public void onEventProfileSwitchChange(EventProfileSwitchChange ignored) { + public void onEventProfileSwitchChange(EventProfileNeedsUpdate ignored) { updateButtons(); } diff --git a/app/src/main/java/info/nightscout/androidaps/utils/FabricPrivacy.java b/app/src/main/java/info/nightscout/androidaps/utils/FabricPrivacy.java index 0a0d559c55..54f06bfaf0 100644 --- a/app/src/main/java/info/nightscout/androidaps/utils/FabricPrivacy.java +++ b/app/src/main/java/info/nightscout/androidaps/utils/FabricPrivacy.java @@ -1,16 +1,17 @@ package info.nightscout.androidaps.utils; +import android.os.Bundle; + import com.crashlytics.android.Crashlytics; -import com.crashlytics.android.answers.Answers; -import com.crashlytics.android.answers.CustomEvent; +import com.google.firebase.analytics.FirebaseAnalytics; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import info.nightscout.androidaps.BuildConfig; -import info.nightscout.androidaps.Config; import info.nightscout.androidaps.MainApp; -import info.nightscout.androidaps.R; -import info.nightscout.androidaps.interfaces.PluginBase; - -import java.util.Date; +import info.nightscout.androidaps.logging.L; +import info.nightscout.androidaps.plugins.configBuilder.ConfigBuilderPlugin; /** * Created by jamorham on 21/02/2018. @@ -21,8 +22,8 @@ import java.util.Date; */ public class FabricPrivacy { + private static Logger log = LoggerFactory.getLogger(L.CORE); - private static final String TAG = "FabricPrivacy"; private static volatile FabricPrivacy instance; @@ -45,7 +46,8 @@ public class FabricPrivacy { final Crashlytics crashlytics = Crashlytics.getInstance(); crashlytics.core.logException(throwable); } catch (NullPointerException | IllegalStateException e) { - android.util.Log.d(TAG, "Ignoring opted out non-initialized log: " + throwable); + if (L.isEnabled(L.CORE)) + log.debug("Ignoring opted out non-initialized log: " + throwable); } } @@ -55,7 +57,8 @@ public class FabricPrivacy { final Crashlytics crashlytics = Crashlytics.getInstance(); crashlytics.core.log(msg); } catch (NullPointerException | IllegalStateException e) { - android.util.Log.d(TAG, "Ignoring opted out non-initialized log: " + msg); + if (L.isEnabled(L.CORE)) + log.debug("Ignoring opted out non-initialized log: " + msg); } } @@ -65,7 +68,8 @@ public class FabricPrivacy { final Crashlytics crashlytics = Crashlytics.getInstance(); crashlytics.core.log(priority, tag, msg); } catch (NullPointerException | IllegalStateException e) { - android.util.Log.d(TAG, "Ignoring opted out non-initialized log: " + msg); + if (L.isEnabled(L.CORE)) + log.debug("Ignoring opted out non-initialized log: " + msg); } } @@ -73,68 +77,67 @@ public class FabricPrivacy { return SP.getBoolean("enable_fabric", true); } - // Answers logCustom - public void logCustom(CustomEvent event) { + // Analytics logCustom + public void logCustom(Bundle event) { try { - final Answers answers = Answers.getInstance(); if (fabricEnabled()) { - answers.logCustom(event); + MainApp.getFirebaseAnalytics().logEvent(FirebaseAnalytics.Event.SELECT_CONTENT, event); } else { - android.util.Log.d(TAG, "Ignoring recently opted-out event: " + event.toString()); + if (L.isEnabled(L.CORE)) + log.debug("Ignoring recently opted-out event: " + event.toString()); } } catch (NullPointerException | IllegalStateException e) { - android.util.Log.d(TAG, "Ignoring opted-out non-initialized event: " + event.toString()); + if (L.isEnabled(L.CORE)) + log.debug("Ignoring opted-out non-initialized event: " + event.toString()); } } - public static void uploadDailyStats() { + // Analytics logCustom + public void logCustom(String event) { + try { + if (fabricEnabled()) { + MainApp.getFirebaseAnalytics().logEvent(event, new Bundle()); + } else { + if (L.isEnabled(L.CORE)) + log.debug("Ignoring recently opted-out event: " + event); + } + } catch (NullPointerException | IllegalStateException e) { + if (L.isEnabled(L.CORE)) + log.debug("Ignoring opted-out non-initialized event: " + event); + } + } + + public static void setUserStats() { if (!fabricEnabled()) return; - long lastUploadDay = SP.getLong(MainApp.gs(R.string.key_plugin_stats_report_timestamp), 0L); + String closedLoopEnabled = MainApp.getConstraintChecker().isClosedLoopAllowed().value() ? "CLOSED_LOOP_ENABLED" : "CLOSED_LOOP_DISABLED"; + // Size is limited to 36 chars + String remote = BuildConfig.REMOTE + .replace("https://","") + .replace("http://","") + .replace(".git", "") + .replace(".com/", ":") + .replace(".org/", ":") + .replace(".net/", ":"); - Date date = new Date(); - date.setHours(0); - date.setMinutes(0); - date.setSeconds(0); - long today = date.getTime() - date.getTime() % 1000; + MainApp.getFirebaseAnalytics().setUserProperty("Mode", BuildConfig.APPLICATION_ID + "-" + closedLoopEnabled); + MainApp.getFirebaseAnalytics().setUserProperty("Language", LocaleHelper.getLanguage(MainApp.instance())); + MainApp.getFirebaseAnalytics().setUserProperty("Version", BuildConfig.VERSION); + MainApp.getFirebaseAnalytics().setUserProperty("HEAD", BuildConfig.HEAD); + MainApp.getFirebaseAnalytics().setUserProperty("Remote", remote); + if (ConfigBuilderPlugin.getPlugin().getActivePump() != null) + MainApp.getFirebaseAnalytics().setUserProperty("Pump", ConfigBuilderPlugin.getPlugin().getActivePump().getClass().getSimpleName()); + if (ConfigBuilderPlugin.getPlugin().getActiveAPS() != null) + MainApp.getFirebaseAnalytics().setUserProperty("Aps", ConfigBuilderPlugin.getPlugin().getActiveAPS().getClass().getSimpleName()); + if (ConfigBuilderPlugin.getPlugin().getActiveBgSource() != null) + MainApp.getFirebaseAnalytics().setUserProperty("BgSource", ConfigBuilderPlugin.getPlugin().getActiveBgSource().getClass().getSimpleName()); + if (ConfigBuilderPlugin.getPlugin().getActiveProfileInterface() != null) + MainApp.getFirebaseAnalytics().setUserProperty("Profile", ConfigBuilderPlugin.getPlugin().getActiveProfileInterface().getClass().getSimpleName()); + if (ConfigBuilderPlugin.getPlugin().getActiveSensitivity() != null) + MainApp.getFirebaseAnalytics().setUserProperty("Sensitivity", ConfigBuilderPlugin.getPlugin().getActiveSensitivity().getClass().getSimpleName()); + if (ConfigBuilderPlugin.getPlugin().getActiveInsulin() != null) + MainApp.getFirebaseAnalytics().setUserProperty("Insulin", ConfigBuilderPlugin.getPlugin().getActiveInsulin().getClass().getSimpleName()); - if (today > lastUploadDay) { - uploadAppUsageType(); - uploadPluginStats(); - - SP.putLong(MainApp.gs(R.string.key_plugin_stats_report_timestamp), today); - } - } - - private static void uploadPluginStats() { - CustomEvent pluginStats = new CustomEvent("PluginStats"); - pluginStats.putCustomAttribute("version", BuildConfig.VERSION); - pluginStats.putCustomAttribute("HEAD", BuildConfig.HEAD); - pluginStats.putCustomAttribute("language", SP.getString(R.string.key_language,"default")); - for (PluginBase plugin : MainApp.getPluginsList()) { - if (plugin.isEnabled(plugin.getType()) && !plugin.pluginDescription.alwaysEnabled) { - // Fabric allows no more than 20 attributes attached to an event. By reporting disabled plugins as - // well, we would exceed that threshold, so only report what is enabled - // TODO >2.0: consider reworking this to upload an event per enabled plugin instead. - pluginStats.putCustomAttribute(plugin.getClass().getSimpleName(), "enabled"); - } - } - - getInstance().logCustom(pluginStats); - } - - private static void uploadAppUsageType() { - CustomEvent type = new CustomEvent("AppUsageType"); - if (Config.NSCLIENT) - type.putCustomAttribute("type", "NSClient"); - else if (Config.PUMPCONTROL) - type.putCustomAttribute("type", "PumpControl"); - else if (MainApp.getConstraintChecker().isClosedLoopAllowed().value()) - type.putCustomAttribute("type", "ClosedLoop"); - else - type.putCustomAttribute("type", "OpenLoop"); - - getInstance().logCustom(type); } } diff --git a/app/src/main/java/info/nightscout/androidaps/utils/MidnightTime.java b/app/src/main/java/info/nightscout/androidaps/utils/MidnightTime.java index 668ca02e96..235bb9c6e9 100644 --- a/app/src/main/java/info/nightscout/androidaps/utils/MidnightTime.java +++ b/app/src/main/java/info/nightscout/androidaps/utils/MidnightTime.java @@ -5,11 +5,13 @@ import android.util.LongSparseArray; import java.util.Calendar; public class MidnightTime { - private static final LongSparseArray times = new LongSparseArray<>(); + static final LongSparseArray times = new LongSparseArray<>(); private static long hits = 0; private static long misses = 0; + private static final int THRESHOLD = 100000; + public static long calc() { Calendar c = Calendar.getInstance(); c.set(Calendar.HOUR_OF_DAY, 0); @@ -36,10 +38,17 @@ public class MidnightTime { m = c.getTimeInMillis(); times.append(time, m); ++misses; + if (times.size() > THRESHOLD) resetCache(); } return m; } + static void resetCache() { + hits = 0; + misses = 0; + times.clear(); + } + public static String log() { return "Hits: " + hits + " misses: " + misses + " stored: " + times.size(); } diff --git a/app/src/main/java/org/monkey/d/ruffy/ruffy/driver/display/menu/MenuDate.java b/app/src/main/java/org/monkey/d/ruffy/ruffy/driver/display/menu/MenuDate.java index 05cc741413..6e3d54f3bb 100644 --- a/app/src/main/java/org/monkey/d/ruffy/ruffy/driver/display/menu/MenuDate.java +++ b/app/src/main/java/org/monkey/d/ruffy/ruffy/driver/display/menu/MenuDate.java @@ -1,5 +1,7 @@ package org.monkey.d.ruffy.ruffy.driver.display.menu; +import java.util.Locale; + /** * Created by fishermen21 on 24.05.17. */ @@ -30,6 +32,6 @@ public class MenuDate { @Override public String toString() { - return day+"."+String.format("%02d",month)+"."; + return day+"."+String.format(Locale.ENGLISH, "%02d",month)+"."; } } diff --git a/app/src/main/java/org/monkey/d/ruffy/ruffy/driver/display/menu/MenuTime.java b/app/src/main/java/org/monkey/d/ruffy/ruffy/driver/display/menu/MenuTime.java index 147aafc8eb..356f9e5ddf 100644 --- a/app/src/main/java/org/monkey/d/ruffy/ruffy/driver/display/menu/MenuTime.java +++ b/app/src/main/java/org/monkey/d/ruffy/ruffy/driver/display/menu/MenuTime.java @@ -1,5 +1,7 @@ package org.monkey.d.ruffy.ruffy.driver.display.menu; +import java.util.Locale; + /** * Created by fishermen21 on 22.05.17. */ @@ -31,6 +33,6 @@ public class MenuTime { @Override public String toString() { - return hour+":"+String.format("%02d",minute); + return hour+":"+String.format(Locale.ENGLISH, "%02d",minute); } } diff --git a/app/src/main/res/layout/activity_insight_alert.xml b/app/src/main/res/layout/activity_insight_alert.xml index 043fbaebe3..6bc3dc1565 100644 --- a/app/src/main/res/layout/activity_insight_alert.xml +++ b/app/src/main/res/layout/activity_insight_alert.xml @@ -1,6 +1,5 @@ diff --git a/app/src/main/res/layout/activity_logsetting.xml b/app/src/main/res/layout/activity_logsetting.xml index 41ca05f95f..feee7bd38a 100644 --- a/app/src/main/res/layout/activity_logsetting.xml +++ b/app/src/main/res/layout/activity_logsetting.xml @@ -21,7 +21,7 @@ android:id="@+id/logsettings_placeholder" android:layout_width="match_parent" android:layout_height="wrap_content" - android:orientation="vertical"> + android:orientation="vertical" /> diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index c0f382fbb8..94d7917e06 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -1,7 +1,6 @@ + android:width="180dp" + android:inputType="text" /> diff --git a/app/src/main/res/layout/careportal_stats_fragment.xml b/app/src/main/res/layout/careportal_stats_fragment.xml index 2162a2d502..2532a6f198 100644 --- a/app/src/main/res/layout/careportal_stats_fragment.xml +++ b/app/src/main/res/layout/careportal_stats_fragment.xml @@ -1,5 +1,4 @@ + tools:context="info.nightscout.androidaps.plugins.pump.insight.LocalInsightFragment"> diff --git a/app/src/main/res/layout/overview_calibration_dialog.xml b/app/src/main/res/layout/overview_calibration_dialog.xml index 66661a3b83..2b50ad88fb 100644 --- a/app/src/main/res/layout/overview_calibration_dialog.xml +++ b/app/src/main/res/layout/overview_calibration_dialog.xml @@ -1,10 +1,9 @@ + tools:context=".plugins.general.overview.dialogs.CalibrationDialog"> + tools:context=".plugins.general.overview.dialogs.EditQuickWizardDialog"> diff --git a/app/src/main/res/layout/overview_newcarbs_dialog.xml b/app/src/main/res/layout/overview_newcarbs_dialog.xml index 65013b80df..67ae96354a 100644 --- a/app/src/main/res/layout/overview_newcarbs_dialog.xml +++ b/app/src/main/res/layout/overview_newcarbs_dialog.xml @@ -1,11 +1,10 @@ + tools:context=".plugins.general.overview.dialogs.NewCarbsDialog"> + tools:context=".plugins.general.overview.dialogs.NewInsulinDialog"> diff --git a/app/src/main/res/layout/overview_newtreatment_dialog.xml b/app/src/main/res/layout/overview_newtreatment_dialog.xml index efb9c41aa5..4a899fbd9b 100644 --- a/app/src/main/res/layout/overview_newtreatment_dialog.xml +++ b/app/src/main/res/layout/overview_newtreatment_dialog.xml @@ -1,11 +1,10 @@ + tools:context=".plugins.general.overview.dialogs.NewTreatmentDialog"> \ No newline at end of file + android:textColor="#FFFFFF" /> \ No newline at end of file diff --git a/app/src/main/res/layout/timelistedit_element.xml b/app/src/main/res/layout/timelistedit_element.xml index c65fc0855b..b9e473d34e 100644 --- a/app/src/main/res/layout/timelistedit_element.xml +++ b/app/src/main/res/layout/timelistedit_element.xml @@ -1,5 +1,4 @@ Herstel databasis Wil jy regtig die databasis herstel? Gaan uit - Gebruik verlengde boluses vir >200% + Gebruik verlengde boluses vir >200%% DanaR Bluetooth-toestel Gebruik altyd absolute basale aardes Herlaai jou foon of herlaai AndroidAPS met die stelsel instellings \nanders sal AndroidAPS nie geskiedenis hê nie! (Belangrik om te spoor en te verifieer dat die algoritmes korrek werk)! @@ -54,6 +54,7 @@ Monitor en beheer AndroidAPS met jou WearOS horlosie. Wys informasie van jou loop op jou xDrip+ horlosie-gesig. Afstandbeheer AndroidAPS met SMS kodes. + Terug Begin Verifieer Eenhede @@ -265,6 +266,10 @@ Om %1$.2fU bolus te lewer antwoord met kode %2$s Om kalibrasie %1$.2f te stuur antwoord met kode %2$s Bolus het misluk + Bolus %1$.2fU suksesvol afgelewer + Gaan %1$.2fU lewer + Bolus %1$.2fU suksesvol afgelewer + Lewering van %1$.2fU Laat afstandbeheerde bevele toe via SMS Vinger Sensor @@ -309,7 +314,7 @@ Staak STAAK GEDRUK Wag vir pomp - Gaan %.2fU lewer + Gaan %1$.2fU lewer Opstel van visualisering en monitering, en ontleed basale en verhoudings Verifieer dat BG beskikbaar is in Nightscout, en dat pomp insulien data opgelaai word Begin op \'n oop lus @@ -332,13 +337,26 @@ Loop is gedeaktiveer Lus geaktiveer %1$.2f beperk tot %2$.2f - Waarde %s is uit harde perke + Waarde %1$s is uit harde perke Afstandbeheerde bevel word nie toegelaat nie + Afstandbeheerde bolus nie beskikbaar nie. Probeer later weer. + Om %1$.2fU basale vir %2$d min te aktiveer antwoord met kode %3$s + Om profiel te verander na %1$s %2$d%% antwoord met %3$s + Om bolus %1$.2fU vir %2$d min te verleng kies %3$s + Om basal e %1$d%% vir %2$d min te begin kies %3$s Om lus op te skort vir %1$d minute antwoord met kode %2$s Temp basale %1$.2fU/h vir %2$d min suksesvol geaktiveerd + Verlengde bolus %1$.2fU vir %2$d min is begin + Tydelike basale %1$d%% vir %2$d min hardloop Tydelike basale aktivering het gefaal + Verlengde bolus het misluk + Stop tydelike basale antwoord met kode %1$s + Stop tydelike basale antwoord met kode %1$s Tydelike basale gekanselleer + Verlengde bolus gekanselleer Kansellassie van tydelike basale het gefaal + Kansellasie van verlengde bolus het misluk + Onbekende opdrag of verkeerde opsie SlimNutsman SlimNutsman instellings Knoppie teks: @@ -446,7 +464,7 @@ Profiel Verstek waarde: 3 dit is \'n sleutel OpenAPS veiligheidsdrumpels. Wat dit doen is om jou basale te berk tot 3 x (in hierdie mense) jou grootste basale koers. Jy sal waarskynlik nooit dit hoef te verander, maar jy moet bewus wees wat bespreek is oor \"3 x max daaglikse; 4 x huidige\"vir veiligheidsdrumpels. Verstek waarde: 4 dit is die helfte van die sleutel OpenAPS veiligheid limiete, en die ander helfte van \"3 x maks daaglikse; 4 x huidige\"van die veiligheid limiet. Dit beteken jou basale, ongeag max basale stel op jou pomp, kan enige hoër wees as hierdie nommer tye die huidige vlak van jou basale. Dit is om te verhoed dat mense in gevaarlike gebied deur instelling buitensporig hoë max basals voor om te verstaan hoe die algoritme werk. Weer, die verstek is 4 x; die meeste mense sal nooit moet dit aanpas en is eerder meer geneig om te moet aanpas ander instellings as hulle voel hulle \"loop in\" hierdie veiligheid limiet. - Verstek waarde: 1.2\nThis is \'n vermenigvuldiger cap vir autosens (en gou autotune) stel \'n 20% max limiet op hoe hoog die autosens verhouding kan wees, wat op sy beurt bepaal hoe hoog autosens basale kan aanpas, hoe laag dit ISF kan aanpas, en hoe laag dit die BG teiken kan stel. + Verstek waarde: 1.2\nThis is \'n vermenigvuldiger plafon vir autosens (en gou autotune) stel \'n 20%% max limiet op hoe hoog die autosens verhouding kan wees, wat op sy beurt bepaal hoe hoog autosens basale kan aanpas, hoe laag dit ISF kan aanpas, en hoe laag dit die BG teiken kan stel. Verstek waarde: 0.7\nDie ander kant van die autosens veiligheidsperke, sit \'n limiet op hoe laag autosens basals kan aanpas, en hoe hoog dit ISF en BG teikens kan verstel. Autosens Verstel doelwitte ook Verstek waarde: waar\nDit word gebruik om autosens toe te laat om BG teikens aan te pas, benewens ISF en basale. @@ -459,7 +477,7 @@ Telefoonnommer ongeldig Ongeldige SMS selfoon nommer Kalibrasie - Stuur kalibrasie %.1f to xDrip? + Stuur kalibrasie %1$.1f na xDrip? xDrip + nie geïnstalleerd nie Kalibrasie gestuur na xDrip Kalibrasie gestuur. Ontvang moet geaktiveer word in xDrip. @@ -600,7 +618,7 @@ Absorpsie instellings Maaltyd max\ks absorpsie tyd [h] Tyd in ure waarna verwag word dat alle koolhidrate uit maaltyd geabsorbeer sal wees - Visualiseer verlengde bolus as % + Visualiseer verlengde bolus as %% SAGE IAGE CAGE @@ -713,8 +731,8 @@ Stuur BG data na xDrip+ Xdrip+ kies 640g/Eversense data bron NSClient BG - Basale waarde vervang deur minimum ondersteunde waarde: %s - Basale waarde vervang deur maksimum ondersteunde waarde: %s + Basale waarde vervang deur minimum ondersteunde waarde: %1$s + Basale waarde vervang deur maksimum ondersteunde waarde: %1$s BG berekening Bolus IAB berekening Basale IAB berekening @@ -732,8 +750,8 @@ Geslote modus geaktiveer Maksimum IAB behoorlik gestel BG beskikbaar vanaf geselekteerde bron - Basale waardes nie in lyn met ure: %s - Ongeldige profiel: %s + Basale waardes nie in lyn met ure: %1$s + Ongeldige profiel: %1$s Programmeer pomp vir bolusing Verfris Staat @@ -1069,12 +1087,13 @@ Demp Pomp alarm Log ligging veranderings + Log stoor veranderinge Log voerpyp verandering Log battery verandering Log bedryf modus veranderinge Log alarms Skakel TBR emulasie aan - Gebruik uitgebreide boluses in plaas van TBRs om die 250% perk te omseil + Gebruik verlengde boluses in plaas van TBRs om die 250%% perk te omseil Ontkoppel vertraging [s] Reeksnommer Vrygestelde sagteware weergawe @@ -1130,8 +1149,13 @@ Tomato (MiaoMiao) Tomato Daglig spaar tyd verandering in 24 h of minder + Daglig spaar tyd het verander minder as 3 ure terug - Geslote lus afgeskakel interne berging beperking Bevry ten minste %1$d MB van intene stoorspasie! Lus gedeaktiveer! + Verkeerde formaat + Verkeerde kode. Opdrag gekanselleer. + Nie gekonfigureer nie + Profiel skakelaar geskep %1$d dae %1$d dae diff --git a/app/src/main/res/values-bg/strings.xml b/app/src/main/res/values-bg/strings.xml index 7e381a49fb..61b87d0f13 100644 --- a/app/src/main/res/values-bg/strings.xml +++ b/app/src/main/res/values-bg/strings.xml @@ -9,7 +9,7 @@ Нулирай базата данни Сигурни ли сте че искате да изтриете всички данни? Изход - Използвай удължен болус за над 200% + Използвай удължени болуси при над >200%% DanaR Bluetooth устройство Използване на абсолютни стойности за базал Рестартирайте телефона или AndroidAPS от системните настройки или Android APS няма да записва проблемите (което е важно за работата на алгоритъма)! @@ -266,6 +266,10 @@ За да доставите болус от %1$.2fЕ отговорете с код %2$s За да изпратите калибрация %1$.2f отговорете с код %2$s Болус отказан + Болус от %1$.2fЕ доставен успешно + Ще стартира %1$.2fЕ болус + Болус от %1$.2fЕ доставен успешно + Стартирам %1$.2fЕ Позволи отдалечени команди чрез SMS Пръст Сензор @@ -310,7 +314,7 @@ Спри Натиснат е СТОП! Очаква помпата - Ще достави %.2fЕ + Ще стартира %1$.2fЕ болус Настройка на визуализацията и наблюдението, а също и анализиране на базалните нужди и коефициенти Потвърждаване, че КЗ е достъпна в Найтскаут и данните за помпата се качват там Стартиране в режим Отворен кръг (Open loop) @@ -333,13 +337,26 @@ APS е изключен APS е включен %1$.2f ограничен до %2$.2f - Стойността %s е извън границите + Стойността %1$s е извън ограниченията Отдалеченото управление е забранено + Отдалечено стартиране на болус не е възможно. Опитайте отново по-късно. + За да стартирате базал от %1$.2fЕ/ч за %2$d мин отговорете с код %3$s + За да превключите профила към %1$s %2$d%% отговорете с код %3$s + За да започнете удължен болус %1$.2fЕ за %2$d мин отговорете с код %3$s + За да стартирате базал от %1$d%Е/ч за %2$d мин отговорете с код %3$s За да спрете APS за %1$d минути отговорете с код %2$s Временен базал от %1$.2fЕ/ч за %2$d мин стартиран успешно + Удължен болус %1$.2fU за %2$d мин стартиран успешно + Временен базал от %1$d%Е/ч за %2$d мин стартиран успешно Неуспешно стартиране на временен базал + Неуспешно стартиране на удължен болус + За да спрете времен базал отговорете с код %1$s + За да спрете удължения болус отговорете с код %1$s Временният базал е отменен + Удължен болус спрян Спирането на временния базал е неуспешно + Неуспешно спиране на удължен болус + Непозната команда или грешен отговор Бърз болус Настройки за бърз болус Текст на бутона: @@ -447,7 +464,7 @@ Профил По подразбиране: 3 Това е основен параметър в сигурността на OpenAPS. Той ограничава максималният базал да бъде 3 пъти най-голямата стойност от дневните базали. Не би трябвало да има нужа от промяна, защото от опит сме проверили, че максимумите са “3x от най-високия дневен; 4x от текущия”. По подразбиране: 4\nТова е другият основен параметър в сигурността на OpenAPS, и другата половина от \"3x от най-високия дневен; 4x от текущия\". Това означава, че независимо от макс базал настроен в помпата, стойността на базала не може да е по-висока от тази стойност умножена по стойността на базала за текущият час от денонощието. Това е с цел да предпази от прекалено високи стойности на максималния базал преди да разбират как работи алгоритъма. Повечето от Вас няма да имат нужда от смяна на тази стойност и могат да се справят с настойки на другите параметри. - По подразбиране: 1.2\nТова е максималният множител на autosens (а скоро autotune) за да позволи 20% максимален лимит на autosens коефициента, който от своя страна настройва базалите, колко може да намали ISF, и колко ниско може да свали целевата КЗ. + По подразбиране: 1.2\nТова е максималният множител на autosens (а скоро autotune), за да позволи 20%% максимален лимит на autosens коефициента, който от своя страна настройва базалите, колко може да намали инсулиновата чувствителност, и колко ниско може да свали целевата КЗ. По подразбиране: 0.7\nДругата част от сигурността на autosens, слагайки ограничение на колко ниско може да ограничи базалите, колко да повиши чувствителността (ISF) и целевите КЗ. Да променя ли autosens и целевата КЗ По подразбиране: разрешено\nТова позволява на autosens да променя и целевите КЗ(освен чувствителност и базал). @@ -460,7 +477,7 @@ Телефонният номер не е валиден Грешен тел номер за SMS Калибрация - Изпрати калибрация %.1f към xDrip? + Изпрати калибрация %1$.1f към xDrip? xDrip+ не е инсталиран Калибрацията е изпратена към xDrip Неуспешно. Получаването трябва да е разрешено в xDrip. @@ -601,7 +618,7 @@ Настройки за абсорбция Максимално време за усвояване на храненето [ч] Брой часове, за които се очаква храненето да бъде напълно усвоено в организма - Показвай удължените болуси като % + Показвай удължените болуси като %% ВСенз ВИнс ВКан @@ -714,8 +731,8 @@ Изпращай данни за КЗ към xDrip+ В xDrip+ изберете 640g/Eversense за източник на данни КЗ от NS - Базалната стойност е заместена от минимално поддържаната стойност %s - Базалната стойност е заместена от максимално поддържаната стойност %s + Базалната стойност е заместена от минимално поддържаната стойност %1$s + Базалната стойност е заместена от максимално поддържаната стойност %1$s Калкулиране на КЗ Калкулиране на Болус IOB Калкулиране на базален IOB @@ -733,8 +750,8 @@ APS - Затворен кръг е позволен Максимален IOB е зададен правилно Има данни за КЗ от избрания източник - Няма базални стойности за някои часове: %s - Невалиден профил: %s + Базалните стойности не са за кръгли часове: %1$s + Грешен профил: %1$s Програмиране на помпа за болус Обнови Състояние @@ -1070,12 +1087,13 @@ Без звук Аларма на помпата Записвай смяната на местата + Записвай смените на резервоар Записвай смените на резервоар Записвай смяната на батерия Записвай промените в режима Записвай аларми Разреши емулация на временни базали - Използвайте разширената болуси вместо временни базали да се заобиколи ограничението от 250 % + Използвайте удължени болуси вместо временни базали да се заобиколи ограничението от 250%% Забавяне при прекъсване на връзката [сек] Сериен номер Софтуер версия @@ -1131,8 +1149,13 @@ Tomato(MяоМяо) Tomato Смяна на времето след по-малко от 24ч + Смяна на времето след по-малко от 3 часа - минавам в отворен режим Ограничение поради липса на памет Освободете поне %1$d Мб в паметта на телефона! Loop изключен! + Грешен формат + Грешен код. Командата не е изпълнена. + Не е конфигуриран + Създаден запис - Промяна на профил %1$d дeн %1$d дни diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index b22c883f5b..61864568d3 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -9,7 +9,7 @@ Inicializovat databáze Opravdu resetovat všechny databáze? Konec - Použít prodloužené bolusy pro >200% + Použít prodloužené bolusy pro >200%% DanaR Bluetooth zařízení Vždy použít absolutní hodnoty bazálu Prosím restartujte Váš telefon nebo restartujte AndroidAPS z nastavení systému\njinak nebudou zaznamenány ladící informace (důležité pro sledování a kontrolu, zda algoritmus pracuje správně)! @@ -314,7 +314,7 @@ Stop STISKNUTO STOP Čekání na pumpu - Podávání %.2fU inzulínu + Podávání %1$.2fU inzulínu Nastavit vizualizaci a monitoring, analyzovat bazály a koeficienty Zkontrolovat, zda jsou glykémie a údaje z pumpy viditelné v Nightscoutu Začít s otevřenou smyčkou @@ -337,7 +337,7 @@ Smyčka je zakázána Smyčka je povolena %1$.2f omezeno na %2$.2f - Hodnota %s je mimo přednastavený rozsah + Hodnota %1$s je mimo přednastavený rozsah Vzdálený příkaz není povolen Vzdálený bolus není momentálně povolen. Zkuste to později. Pro spuštění bazálu %1$.2fU/h na %2$d min odpovězte SMS s kódem %3$s @@ -464,8 +464,8 @@ Profil Výchozí hodnota: 3 Toto je klíčová hodnota zabezpečení. Říká, že maximální nastavitelný bazál je trojnásobkem maximálního denního bazálu. Patrně to nebudete muset měnit, případně si přečtete o tématu \"3x max denní; 4x aktuální\". Výchozí hodnota: 4 Toto je druhá klíčová hodnota. Říká, že maximální hodnota dočasného bazálu nikdy nebude větší, než čtyřnásobek aktuálního bazálu. Je to proto, aby se lidé nedostali do nebezpečných hodnot dříve, než pochopí jak OpenAPS pracuje. Znovu, výchozí hodnota je 4 a většina lidí ji nikdy nebude muset změnit. Pokud nestačí, obvykle je problém někde jinde. - Výchozí hodnota: 1.2 Toto je bezpečnostní nastavení pro detekci sensitivity. Říká, že autosens může zvýšit bazály, snížit ISF a snížit cílovou hodnotu glykémie o 20% - Výchozí hodnota: 0.7 Toto je bezpečnostní nastavení pro detekci sensitivity. Říká, že autosens může snížit bazály, zvýšit ISF a zvýšit cílovou hodnotu glykémie na 70% + Výchozí hodnota: 1.2\nToto je bezpečnostní nastavení pro detekci sensitivity (a brzy autotune). Říká, že autosens může zvýšit bazály, snížit ISF a snížit cílovou hodnotu glykémie o 20%%. + Výchozí hodnota: 0.7\nToto je bezpečnostní nastavení pro detekci sensitivity. Říká, že autosens může snížit bazály, zvýšit ISF a zvýšit cílovou hodnotu glykémie na 70%%. Úprava cílové glykémie pomocí Autosens Výchozí hodnota: zapnuto\nToto nastavení říká, že autosens může měnit také cílové hodnoty glykémií. Výchozí hodnota: 2\nToto nastavení říká, po jakou část z hodnoty DIA smyčka po bolusu čeká a nereaguje na změny glykémií (zde 3DIA/2 = 1,5h). @@ -477,7 +477,7 @@ Neplatné telefonní číslo Špatné telefonní číslo Kalibrace - Poslat do xDripu kalibraci %.1f ? + Poslat do xDripu kalibraci %1$.1f? xDrip+ není nainstalován Kalibrace odeslána do xDripu Kalibrace odeslána. Příjem musí být v xDripu povolený. @@ -618,7 +618,7 @@ Nastavení absorpce sacharidů Max. doba absorpce sacharidů [h] Čas v hodinách, ve kterém předpokládáme, že všechny sacharidy budou strávené - Zobrazovat prodloužený bolus v % + Zobrazovat prodloužený bolus v %% SEN INZ KAN @@ -731,8 +731,8 @@ Odesílat data do xDrip+ V xDrip+ vyberte zdroj dat 640g/Eversense Glykémie z NS - Hodnota bazálu nahrazena minimální možnou: %s - Hodnota bazálu nahrazena maximální možnou: %s + Hodnota bazálu nahrazena minimální možnou: %1$s + Hodnota bazálu nahrazena maximální možnou: %1$s Kalkulace glykémie Kalkulace bolusového IOB Kalkulace bazálního IOB @@ -750,8 +750,8 @@ Uzavřená smyčka povolena Maximální IOB nastaveno správně Glykémie dostupné z vybraného zdroje - Bazální hodnoty nejsou zarovnané na celé hodiny: %s - Chybný profil: %s + Bazální hodnoty nejsou zarovnané na celé hodiny: %1$s + Chybný profil: %1$s Programování pumpy pro bolus Obnovit Stav @@ -1087,12 +1087,13 @@ Ztlumit Výstraha pumpy Zaznamenat výměnu kanyly + Zaznamenat výměnu zásobníku Zaznamenat výměnu hadičky Zaznamenat výměnu baterie Zaznamenat změnu režimu provozu Zaznamenat výstrahy Povolit emulaci dočasných bazálů - Používat prodloužené bolusy na obejití limitu dočasných bázalů 250% + Používat prodloužené bolusy na obejití limitu dočasných bazálů 250%% Limit pro odpojení [s] Sériové číslo Verze softwaru @@ -1148,6 +1149,7 @@ Tomato (MiaoMiao) Tomato Změna letního času za méně než 24 hodin + Změna letního času za méně než 3 hodiny - Uzavřená smyčka zastavena omezení vnitřního úložiště Uvolněte alespoň %1$d MB z vnitřního úložiště! Smyčka zakázána! Chybný formát diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 36c24aeed9..ed46e6a8ea 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -9,7 +9,7 @@ Datenbanken zurücksetzen Möchtest du die Datenbank wirklich zurücksetzen? Schließen - Benutze verzögerten Bolus für hohe TBR (>200%). + Benutze verzögerten Bolus für hohe TBR >200%% DanaR Blueetooth--Gerät Verwende absolute statt prozentuale Basalwerte beim Upload zu NightScout. Bitte starte dein Telefon neu oder starte AndroidAPS in den System-Einstellungen neu.\nAndernfalls wird AndroidAPS nichts protokollieren (wichtig zum Nachverfolgen und Verifizieren, dass der Algorithmus korrekt funktioniert)! @@ -266,6 +266,10 @@ Um einen Bolus von %1$.2f IE abzugeben, antworte mit dem Code %2$s. Um die Kalibrierung %1$.2f zu senden, antworte mit dem Code %2$s. Bolus fehlgeschlagen + Bolus %1$.2fU erfolgreich abgegeben + Werde %1$.2fU abgeben + Bolus %1$.2fU erfolgreich abgegeben + Gebe %1$.2fU ab Erlaube externe Befehle per SMS Finger Sensor @@ -310,7 +314,7 @@ Stopp STOPP GEDRÜCKT Warte auf Pumpe - %1$.2f IE werden abgegeben. + Werde %1$.2fU abgeben Konfiguriere die Anzeige und das Monitoring (Nightscout) und analysiere Basal-Raten und Faktoren Verifiziere, dass BZ- und Pumpen-Insulin-Daten erfolgreich zu Nightscout hochgeladen werden. Starte den Open Loop Modus @@ -334,13 +338,26 @@ maxIOB = durchschnittlicher Essensbolus + 3 x maximale Basalrate Loop ist deaktiviert. Loop ist aktiviert. %1$.2f limitiert auf %2$.2f - Wert %1$s ist außerhalb des festen Limits. + Wert %1$s ist außerhalb des festen Limits. Ferngesteuerte Befehle sind nicht erlaubt. + Bolusabgabe aus der Ferne nicht verfügbar. Versuche es später erneut. + Um eine Basalrate von %1$.2fU/h für %2$d Minuten zu setzen, antworte mit dem Code %3$s + Um das Profil auf %1$s %2$d%% zu setzen, antworte mit dem Code %3$s + Um den erweiterten Bolus %1$.2fU für %2$d Minuten abzugeben, antworte mit dem Code %3$s + Um die Basalrate von %1$d%% für %2$d Minuten zu setzen, antworte mit dem Code %3$s Um das Loopen für %1$d Minuten zu pausieren, antworte mit dem Code %2$s. TBR mit %1$.2f IE/h für %2$d min wurde erfolgreich gestartet. + Der erweiterte Bolus %1$.2fU für %2$d Minuten wurde erfolgreich gestartet + Die temporäre Basalrate wurde erfolgreich für %2$d Minuten auf %1$d%% gesetzt Das Starten der TBR ist fehlgeschlagen. + Die Abgabe des erweiterten Bolus ist fehlgeschlagen + Antworte mit dem Code %1$s, um die temporäre Basalrate zu beenden + Antworte mit dem Code %1$s, um den erweiterten Bolus zu beenden TBR abgebrochen + Die Abgabe des erweiterten Bolus wurde abgebrochen Das Abbrechen der TBR ist fehlgeschlagen. + Der Abbruch des erweiterten Bolus ist fehlgeschlagen + Unbekannter Befehl oder falsche Antwort QuickWizard QuickWizard-Einstellungen Schaltflächen-Text: @@ -448,7 +465,7 @@ maxIOB = durchschnittlicher Essensbolus + 3 x maximale Basalrate Profil Standardwert: 3\nDies ist eine wichtige Sicherheitseinstellung. Sie begrenzt das maximale Basal-IOB auf die dreifache Menge (im Standardfall) deiner größten Basalrate. In der Regel solltest Du diesen Wert nicht ändern. Aber Du solltest wissen, was \"3x max daily, 4x current\" als Sicherheitseinstellung bedeutet. Standardwert: 4\nDies ist die andere wichtige Sicherheitseinstellung, die zweite Hälfte von \"3x max daily, 4x current\". Diese Grenze beschränkt das Basal-IOB auf die (im Standardfall) vierfache Menge der aktuellen Basalrate. Dies ist wichtig, um Nutzer davor zu bewahren, zuviel Basal-Insulin zu verabreichen. Nochmals, der Standardwert ist 4x. Die meisten Nutzer werden niemals diese Einstellung verändern, sondern andere Einstellungen anpassen, um sich nicht dieser Sicherheitsgrenze zu nähern. - Standardwert: 1.2\nDies ist eine Sicherheitsgrenze für Autosens (und bald auch Autotune), die besagt, wie hoch Autosens Basalraten anpassen darf und wie niedrig der ISF (Insulin-Sensitivitäts-Faktor) und der BZ-Zielwert eingestellt werden können. 1.2 ist dabei der Multiplikationsfaktor und erlaubt eine Anpassung um 20%. + Standardwert: 1.2\nDies ist eine Sicherheitsgrenze für Autosens (und bald auch Autotune), die besagt, wie hoch Autosens Basalraten anpassen darf und wie niedrig der ISF (Insulin-Sensitivitäts-Faktor) und der BZ-Zielwert eingestellt werden können. 1.2 ist dabei der Multiplikationsfaktor und erlaubt eine Anpassung um 20%%. Standardwert: 0.7\nDies ist die andere Sicherheitsgrenze für autosens. Sie beschränkt, wie weit Basalraten abgesenkt und wie sehr ISF und BZ-Zielwerte erhöht werden können. Autosens passt Zielwerte ebenfalls an Vorgabe: erlaubt.\nErlaubt Autosens den Ziel-BZ-Bereich in Verbindung mit ISF und Basal anzupassen. @@ -461,7 +478,7 @@ maxIOB = durchschnittlicher Essensbolus + 3 x maximale Basalrate Telefonnummer ist nicht gültig Falsche/ungültige Telefonnummer Kalibrierung - Kalibrierung %1$.1f an xDrip+ senden? + Kalibrierung %1$.1f an xDrip+ senden? xDrip+ nicht installiert Kalibrierung an xDrip+ gesendet Kalibrierung gesendet. Das Empfangen von Kalbrierungen muss in xDrip+ aktiviert sein. @@ -602,7 +619,7 @@ maxIOB = durchschnittlicher Essensbolus + 3 x maximale Basalrate Resorptions-Einstellungen Maximale Essens-Resorptionszeit [h] Zeit in Stunden, in der zu erwarten ist, dass alle Kohlenhydrate resorbiert sein werden. - Zeige verzögerten Bolus als % an. + Zeige verzögerten Bolus als %% an. SAGE IAGE CAGE @@ -715,8 +732,8 @@ maxIOB = durchschnittlicher Essensbolus + 3 x maximale Basalrate Sende BZ-Werte zu xDrip+ Wähle in xDrip+ 640g/Eversense als Daten-Quelle. Nightscout-Client BZ - Basal-Wert wurde durch den kleinst möglichen Wert ersetzt: %s - Basal-Wert wurde durch größt möglichen Wert ersetzt: %s + Basal-Wert wurde durch den kleinst möglichen Wert ersetzt: %1$s + Basal-Wert wurde durch größt möglichen Wert ersetzt: %1$s BZ Berechnung Bolus-IOB Berechnung Basal-IOB Berechnung @@ -734,8 +751,8 @@ maxIOB = durchschnittlicher Essensbolus + 3 x maximale Basalrate Closed mode aktiviert Maximales IOB richtig gesetzt BZ verfügbar von gewählter Quelle - Basalraten beginnen nicht zur vollen Stunde: %s - Ungültiges Profil: %s + Basalraten beginnen nicht zur vollen Stunde: %1$s + Ungültiges Profil: %1$s Bolusabgabe wird vorbereitet Aktualisieren Status @@ -1072,12 +1089,13 @@ Unerwartetes Verhalten. Stumm Pumpenalarm Katheterwechsel protokollieren + Reservoirwechsel aufzeichnen Schlauchwechsel protokollieren Batteriewechsel protokollieren Wechsel des Betriebsmodus protokollieren Alarme protokollieren TBR-Emulation aktivieren - Verzögerte Boli an Stelle von TBRs verwenden, um die Beschränkung auf 250% zu umgehen + Verzögerte Boli an Stelle von TBRs verwenden, um die Beschränkung auf 250%% zu umgehen Verbindungsabbau-Verzögerung [s] Seriennummer Release-Softwareversion @@ -1133,8 +1151,13 @@ Unerwartetes Verhalten. Tomato (MiaoMiao) Tomato Zeitumstellung in weniger als 24 Stunden + Zeitumstellung vor weniger als 3 Stunden - Closed Loop deaktiviert interne Speicherbegrenzung Mindestens %1$d MB freier interer Speicher benötigt! Loop abgeschaltet! + Falsches Format + Falscher Code. Befehl wurde abgebrochen. + Nicht konfiguriert + Profilwechsel wurde erstellt %1$d Tag %1$d Tage diff --git a/app/src/main/res/values-el/insight_alert_codes.xml b/app/src/main/res/values-el/insight_alert_codes.xml index 70489fbc5e..7ee9fdc8f9 100644 --- a/app/src/main/res/values-el/insight_alert_codes.xml +++ b/app/src/main/res/values-el/insight_alert_codes.xml @@ -1,3 +1,30 @@ - + + Υπενθύμιση R1 + Υπενθύμιση R2 + Υπενθύμιση R3 + Υπενθύμιση R4 + Υπενθύμιση R7 + Προειδοποίηση W31 + Προειδοποίηση W32 + Προειδοποίηση W33 + Προειδοποίηση W34 + Προειδοποίηση W36 + Προειδοποίηση W38 + Προειδοποίηση W39 + Συντήρηση M20 + Συντήρηση M21 + Συντήρηση M22 + Συντήρηση M23 + Συντήρηση M24 + Συντήρηση M25 + Συντήρηση M26 + Συντήρηση M27 + Συντήρηση M28 + Συντήρηση M29 + Συντήρηση M30 + Σφάλμα E6 + Σφάλμα E10 + Σφάλμα E13 + diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml index 07bbadfa95..155afd10d0 100644 --- a/app/src/main/res/values-el/strings.xml +++ b/app/src/main/res/values-el/strings.xml @@ -9,7 +9,7 @@ Επαναφορά Βάσεων Δεδομένων Θέλετε πραγματικά να επαναφέρετε την βάση δεδομένων; Έξοδος - Χρήση Εκτεταμένου Bolus για >200% + Χρησιμοποιήστε Εκτεταμένο bolus για >200%% DanaR συσκευή Bluetooth Χρησιμοποιείτε πάντα απόλυτες τιμές βασικού Παρακαλώ κάντε επανεκίνηση στο τηλέφώνο ή restart στο AndroidAPS από τις Ρυθμίσεις Συστήματος, \nαλλιώς το AndroidAPS δεν θα έχει καταγραφή (επαληθεύστε ότι οι αλγόριθμοι δουλεύουν σωστά)! @@ -44,6 +44,8 @@ Η ευαισθησία υπολογίζεται από 8h δεδομένα στο παρελθόν και οι υδατάνθρακες (αν δεν έχουν απορροφηθεί) κόβονται μετά από χρονικό διάστημα που καθορίζεται στις επιλογές. Η προσθήκη υπολογίζει ακόμα το UAM. Η ευαισθησία υπολογίζεται ως ο σταθμισμένος μέσος όρος των αποκλίσεων. Νεότερες αποκλίσεις έχουν μεγαλύτερο βάρος. Η ελάχιστη απορρόφηση υδατανθράκων υπολογίζεται από τον χρόνο της μέγιστης απορρόφησης υδατανθράκων από τις επιλογές. Αυτός ο αλγόριθμος είναι ο πιο γρήγορος για να ακολουθεί τις αλλαγές της ευαισθησίας. Λάβετε τις τιμές BG από την εφαρμογή του Dexcom G5. + Λάβετε τις τιμές BG από την εφαρμογή του Dexcom G6. + Λάβετε τις τιμές BG από την εφαρμογή του Eversense. Λάβετε τις τιμές BG από το Glimp. Λάβετε τις τιμές BG από το 600SeriesAndroidUploader. Λήψη δεδομένων BG από Nightscout @@ -52,6 +54,7 @@ Παρακολουθεί και ελέγχει το AndroidAPS χρησιμοποιώντας το ρολόι σας WearOS. Δείτε πληροφορίες σχετικά με το κύκλωμά σας στην πρόσοψη xDrip +. Ελεγξτε απομακρυσμένα το AndroidAPS χρησιμοποιώντας τις εντολές SMS. + Πίσω Έναρξη Επικύρωση Μονάδες @@ -263,6 +266,10 @@ Για έγχυση bolus %1$.2fU στείλτε με κωδικό %2$s Για αποστολή καλιμπραρίσματος %1$.2f στείλτε με κωδικό %2$s Αποτυχία Bolus + Bolus %1$.2fU δόθηκε επιτυχώς + Προς έγχυση %1$.2fU + Bolus %1$.2fU δόθηκε επιτυχώς + Εγχύεται %1$.2fU Άδεια για απομακρυσμένες εντολές μέσω SMS Δάκτυλο Αισθητήρας @@ -307,7 +314,7 @@ Stop Πιέστε STOP Αναμονή για αντλία - Προς έγχυση %.2fU + Προς έγχυση %1$.2fU Δημιουργία παρακολούθησης και ανάλυση βασικού ρυθμού και αναλογιών Επιβεβαιώστε ότι η BG φαίνεται στο Nightscout και τα δεδομένα της αντλίας φορτώθηκαν Ξεκινήστε σε ανοιχτό κύκλωμα @@ -330,13 +337,26 @@ Κύκλωμα απενεργοποιημένο Κύκλωμα ενεργοποιημένο Το %1$.2f περιορίζεται σε %2$.2f - Η τιμή %s είναι έξω από τα όρια + Η τιμή %1$s είναι έξω από τα όρια Δεν επιτρέπεται απομακρυσμένη εντολή + Απομακρυσμένο bolus μη διαθέσιμο. Δοκιμάστε ξανά αργότερα. + Για έναρξη βασικού %1$.2fU/h για %2$d λεπτά στείλτε κωδικό %3$s + Για αλλαγή προφίλ σε %1$s %2$d% στείλτε κωδικό %3$s + Για έναρξη εκτεταμένου bolus %1$.2fU για %2$d λεπτά στείλτε κωδικό %3$s + Για έναρξη βασικού %1$d%% για %2$d λεπτά στείλτε κωδικό %3$s Για αναστολή κυκλκώματος για %1$d λεπτών στείλτε με κωδικό %2$s Προσωρινός Ρυθμός %1$.2fU/h για %2$d λεπτά ξεκίνησε επιτυχώς + Εκτεταμένο bolus %1$.2fU για %2$d λεπτά ξεκίνησε επιτυχώς + Προσωρινός Ρυθμός %1$d%% για %2$d λεπτά ξεκίνησε επιτυχώς Εκκίνηση Προσωρινού Ρυθμού απέτυχε + Έναρξη εκτεταμένου bolus απέτυχε + Για κλείσιμο Προσωρινού Ρυθμού στείλτε κωδικό %1$s + Για κλείσιμο Εκτεταμένου bolus στείλτε κωδικό %1$s Ο Προσωρινός Ρυθμός ακυρώθηκε + Εκτεταμένο bolus ακυρώθηκε Ακύρωση Προσωρινού Ρυθμού απέτυχε + Η ακύρωση του Εκτεταμένου bolus απέτυχε + Άγνωστη εντολή ή λάθος απάντηση Γρήγορος Οδηγός Ρυθμίσεις Γρήγορου Οδηγού Κείμενο στο πλήκτρο: @@ -399,6 +419,7 @@ Πεδίο %1$d Στοιχεία.\nΤρέχουσα τιμή: Δεδομένα Autosens Εντοπισμός σφαλμάτων δέσμης ενεργειών + Χρήση του Autosens Ανανέωσε συμβάντα από NS Διαγραφή συμβάντων στο μέλλον Γεύμα Σύντομα @@ -443,7 +464,7 @@ Προφίλ Προεπιλεγμένη τιμή: 3 Αυτό είναι ένα κλειδί ασφαλείας του OpenAPS. Αυτό περιορίζει την αύξηση του βασικού x3 (σε αυτούς τους ανθρώους) από την μεγαλύτερη τιμή του. Συνήθως δεν χρειάζεται να το αλλάξετε, αλλά πρέπει να ξέρετε τι σημαίνει “3x μέγιστο ημερήσιο; 4x τρέχων” για λόγους ασφαλείας. Προεπιλεγμένη τιμή: 4 Αυτό είναι το μισό του θέματος ασφαλείας του OpenAPS, και το άλλο μισό του «3 x μέγιστο ημέρας: 4 x τρέχων» των θεμάτων ασφαλείας. Αυτό σημαίνει ότι ο βασικός ρυθμός, ανεξάρτητα από την μέγιστη τιμή βασικού ρυθμού στην αντλία σας, δεν μπορεί να είναι υψηλότερος από το πολλαπλάσιο αυτού του αριθμού. Αυτό γίνεται για να αποτρέψει τους ανθρώπους από το να μπουν σε επικίνδυνες καταστάσεις θέτωντας υψηλό βασικό πριν κατανοήσουν πλήρως πώς λειτουργεί ο αλγόριθμος. Και πάλι, η προεπιλεγμένη τιμή είναι 4x: οι περισσότεροι άνθρωποι ποτέ δεν θα χρειαστεί να το προσαρμόσουν και αντίθετα είναι πιο πιθανό να χρειαστεί να προσαρμόσουν άλλες ρυθμίσεις αν αισθάνονται ότι κινούνται με ασφάλεια. - Προεπιλεγμένη τιμή: 1.2\nΑυτός είναι ένας πολλαπλασιαστής για το autosens (και σύντομα autotune) για να ορίσετε ένα 20% ανώτατο όριο στο πόσο ψηλά μπορεί να είναι ο λόγος autosens, που με τη σειρά του καθορίζει πόσο ψηλά το autosens μπορεί να ρυθμίσει τον βασικό ρυθμό, πόσο χαμηλά μπορεί να ρυθμίσει την ISF, και πόσο χαμηλά μπορεί να ορίσει το στόχο της BG. + Προεπιλεγμένη τιμή: 1.2\nΑυτός είναι ένας πολλαπλασιαστής για το autosens (και σύντομα autotune) για να ορίσετε ένα 20%% ανώτατο όριο στο πόσο ψηλά μπορεί να είναι ο λόγος autosens, που με τη σειρά του καθορίζει πόσο ψηλά το autosens μπορεί να ρυθμίσει τον βασικό ρυθμό, πόσο χαμηλά μπορεί να ρυθμίσει την ISF, και πόσο χαμηλά μπορεί να ορίσει το στόχο της BG. Προεπιλεγμένη τιμή: 0.7\n H άλλη πλευρά από τα όρια ασφαλείας του autosens, θέτοντας ένα ανώτατο όριο στο πόσο χαμηλά to autosens μπορεί να προσαρμόσει τον βασικό ρυθμό και πόσο ψηλά μπορεί να ρυθμίσει τη ISF και τον στόχο του BG. Το autosens ρυθμίζει στόχους Προεπιλεγμένη τιμή: true\nΑυτό χρησιμοποιείται για να επιτρέψει στο autosens να προσαρμόσει τον στόχο BG, επιπρόσθετα από το ISF και βασικό ρυθμό. @@ -456,7 +477,7 @@ Μη έγκυρος αριθμός τηλεφώνου Μη έγκυρος αριθμός τηλεφώνου για SMS Καλιμπράρισμα - Να στείλω το καλιμπράρισμα %.1f στο xDrip; + Να σταλεί η βαθμονόμηση %1$.1f στο xDrip; xDrip+ μη εγκατεστημένο Το καλιμπράρισμα εστάλει στο xDrip Το καλιμπράρισμα στάλθηκε. Η λήψη πρέπει να είναι ενεργοποιημένη στο xDrip. @@ -539,6 +560,12 @@ INS Ενεργοποίηση superbolus στον σύντομο οδηγό Ενεργοποιήστε την λειτουργία superbolus στον σύντομο οδηγό. Μην το κάνετε μέχρι να μάθετε τι ακριβώς κάνει. ΜΠΟΡΕΙ ΝΑ ΕΓΧΥΣΕΙ ΠΑΡΑΠΑΝΩ ΔΟΣΕΙΣ ΙΝΣΟΥΛΙΝΗΣ ΑΝ ΧΡΗΣΙΜΟΠΟΙΗΘΕΙ ΛΑΝΘΑΣΜΕΝΑ! + Εμφάνιση του φωτισμού κατάστασης στην αρχική οθόνη + Ενεργοποίηση του φωτισμού κατάστασης για cage, iage, sage, reservoir και επίπεδο μπεταρίας στην αρχική οθόνη. + Όριο προειδοποίησης χαμηλής αμπούλας [U] + Όριο προειδοποίησης πολύ χαμηλής αμπούλας [U] + Όριο προειδοποίησης χαμηλής μπαταρίας [%] + Όριο προειδοποίησης πολύ χαμηλής μπαταρίας [%] IOB COB Έκδοση @@ -546,6 +573,7 @@ Κατάσταση Bluetooth Σχετικά με Απουσία δικαιωμάτων SMS + Λείπει η άδεια κατάστασης τηλεφώνου Κατάσταση xDrip (ρολόι) Γραμμή Κατάστασης xDrip (ρολόι) xds @@ -590,7 +618,7 @@ Ρύθμιση απορρόφησης Μέγιστος χρόνος απορρόφησης γεύματος [h] Χρόνος σε ώρες που περιμένουμε να απορροφηθούν όλοι οι υδατάνθρακες ενός γεύματος - Εμφάνιση εκτεταμένου bolus σε % + Εμφάνιση εκτεταμένου bolus σε %% SAGE IAGE CAGE @@ -692,7 +720,10 @@ BT Watchdog Απενεργοποιεί το bluetooth του τηλεφώνου για ένα δευτερόλεπτο αν δεν είναι δυνατή η σύνδεση με την αντλία. Αυτό μπορεί να βοηθήσει σε ορισμένα τηλέφωνα όπου το bluetooth παγώνει. Εφαρμογή DexcomG5 (τροποποιημένη) + DexcomG6 App (τροποποιημένη) + Eversense App (τροποποιημένη) Ανέβασμα δεδομένων BG στο NS + Ανέβασμα ρυθμίσεων BG Εμφάνιση λεπτομερών στατιστικών Δείξτε τη διαφορά με ένα επιπλέον δεκαδικό ψηφίο Τα μέγιστα λεπτά του βασικού ρυθμού που περιορίζουν το SMB να @@ -700,8 +731,8 @@ Αποστολή δεδομένων BG στο xDrip+ Στο xDrip+, επιλέξτε την πηγή δεδομένων 640g / Eversense NSClient BG - Η τιμή του βασικού αντικαταστάθηκε από την ελάχιστη υποστηριζόμενη τιμή: %s - Η τιμή του βασικού αντικαταστάθηκε από την μέγιστη υποστηριζόμενη τιμή: %s + Η τιμή του βασικού αντικαταστάθηκε από την ελάχιστη υποστηριζόμενη τιμή: %1$s + Η τιμή του βασικού αντικαταστάθηκε από την μέγιστη υποστηριζόμενη τιμή: %1$s Υπολογισμός BG Υπολογισμός του IOB bolus Υπολογισμός βασικού IOB @@ -719,8 +750,8 @@ Ενεργοποιήθηκε η κλειστή λειτουργία Το μέγιστο IOB έχει ρυθμιστεί σωστά BG διαθέσιμη από επιλεγμένη πηγή - Οι τιμές του βασικού ρυθμού δεν αντιστοιχούν σε ώρες: %s - Μη έγκυρο προφίλ: %s + Οι τιμές του βασικού ρυθμού δεν αντιστοιχούν σε ώρες: %1$s + Μη έγκυρο προφίλ: %1$s Προγραμματισμός της αντλίας για bolus Ανανέωση Κατάσταση @@ -758,6 +789,7 @@ Η έγχυση του bolus και η επαλήθευση του ιστορικού αντλίας απέτυχε, ελέγξτε την αντλία. Εάν έχει γίνει έγχυση bolus, θα προστεθεί στις θεραπείες κατά την επόμενη σύνδεση με την αντλία. Δεν υπάρχει αρκετή ινσουλίνη στην αμπούλα για το bolus Σφάλμα έγχυσης εκτεταμένου bolus + Sight Αντλία Insight Κατάσταση Τροποποίηση @@ -832,6 +864,7 @@ Επιλογές δεδομένων Αποστολή δεδομένων στο εργοστάσιο Να επιτρέπεται η αυτόματη αποστολή αναφορών σφάλματος και χαρακτηριστικά χρήσης δεδομένων στους προγραμματιστές μέσω του fabric.io. service. + Ενημερώστε την εφαρμογή G5 στην υποστηριζόμενη έκδοση Εκκίνηση δραστηριότητας TT Εκκίνηση Τρώω σύντομα ΤΤ TT @@ -874,6 +907,8 @@ Το κλειστό κύκλωμα είναι απενεργοποιημένο στις Επιλογές Το Autosens είναι απενεργοποιημένο στις Επιλογές Το SMB απενεργοποιήθηκε στις Επιλογές + Το UAM απενεργοποιήθηκε στις Επιλογές + Το UAM απενεργοποιήθηκε επειδή είναι ενεργοποιημένο στην προσθήκη ευαισθησία στο Oref1 Ο μέγιστος βασικός ρυθμός περιορίζεται σε %1$.2f U/h λόγω ότι %2$s όριο αντλίας πρέπει να είναι θετική τιμή @@ -995,6 +1030,7 @@ %1$d. Στόχος Poctech Λάβετε τις τιμές BG από την εφαρμογή Poctech + Λάβετε τιμές BG από Tomato app (MiaoMiao) Ο υψηλός προσωρινός στόχος ανεβάζει την ευαισθησία = 100]]> Ο χαμηλός προσωρινός στόχος μειώνει την ευαισθησία @@ -1036,6 +1072,90 @@ Υπέρβαση του ορίου ινσουλίνης Ελάχιστο αίτημα για αλλαγή [%] Το κύκλωμα δημιουργεί μια νέα αίτηση αλλαγής μόνο αν η αλλαγή είναι μεγαλύτερη από αυτήν την τιμή. Η προεπιλεγμένη τιμή είναι 20% + Παρακαλώ συνδέστε την αντλία στο τηλέφωνο! + Αναζήτηση συσκευών… + Περιμένετε… + Σύζευξη ολοκληρώθηκε + Ταιριάζουν οι εμφανιζόμενοι κωδικοί με αυτούς της αντλίας; + Σύζευξη Insight + Accu-Chek Insight + %1$.2fU / %2$.2fU παραδόθηκε + %1$s: %2$s + Σωληνάκι αλλάχθηκε + Η ώρα στην αντλία άλλαξε + Επιβεβαίωση + Σίγαση + Συναγερμός αντλίας + Αλλαγές αρχείου καταγραφής + Αλλαγές αρχείου αμπούλας + Αλλαγές αρχείου σωλήνα + Αλλαγές αρχείου μπαταρίας + Αλλαγές αρχείου κατάστασης λειτουργίας + Τοπικές Ειδοποιήσεις + Ενεργοποίηση εξομοίωσης TBR + Χρησιμοποιείστε εκτεταμένα bolus αντί για TBR για παράκαμψη του ορίου 250%% + Αποσυνδέστε καθυστέρηση [s] + Serial number + Απελευθέρωση έκδοση λογισμικού + Έκδοση λογισμικού επεξεργαστή UI + Έκδοση λογισμικού επεξεργαστή PC + Έκδοση λογισμικού επεξεργαστή MD tel + Έκδοση λογισμικού ασφαλείας επεξεργαστή + Έκδοση σελίδας πληροφοριών BT + Διεύθυνση Bluetooth + Σύστημα ID προσάρτημα + Ημερομηνία κατασκευής + Διαγραφή σύζευξης + Πληροφορίεςσύζευξης + Ανανέωση κατάστασης + Έναρξη αντλίας + Διακοπή αντλίας + Κατάσταση λειτουργίας + Κατάσταση + TDD Bolus + TDD βασικός + TDD σύνολο + Ανάκτηση + Μη σύζευξη + Τελευταία σύνδεση + Ξεκίνησε + Σταμάτησε + %1$d%% για %2$d / %3$d λεπτά + Εκτεταμένο bolus + Συνδυαστικό bolus + %1$.2f / %2$.2f U για %3$d λεπτά + Ενεργοποίηση ειδοποίησης TBR τέλος\n (ρύθμιση αντλίας) + Απενεργοποίηση ειδοποίησης TBR τέλος\n (ρύθμιση αντλίας) + Ανανέωση + Ενσωμάτωση αντλίας για αντλίες Accu-Chek Insight + Δεν έχει εισαχθεί + Τελευταία σύνδεση: %1$d λεπτά πριν + TBR: %1$d%% για %2$d / %3$d λεπτά + Εκτεταμένο: %1$.2f / %2$.2f U για %3$d λεπτά + Συνδυαστικό: %1$.2f / %2$.2f U για %3$d λεπτά + TDD: %1$.2f + Αμπούλα:%1$.2fU + Μπατ.:%1$d%% + Μέγ. διάρκεια αποκατάστασης [s] + Ελάχ. διάρκεια αποκατάστασης [s] + Διάρκεια αποκατάστασης + Τέλος χρόνου κατά τη διάρκεια handshake - επαναφορά bluetooth + == ∑ %1$s U + U/h + g/U + /U + Αλλαγή αρχείου αισθητήρα σε NS + Δημιουργία συμβάντος «Αλλαγή αισθητήρα» στο NS αυτόματα με έναρξη αισθητήρα + Tomato (MiaoMiao) + Tomato + Αλλαγή σε Θερινή ώρα σε 24h ή λιγότερο + Η Θερινή ώρα αλλάζει σε λιγότερο από 3 ώρες - Απενεργοποιήθηκε το κλειστό κύκλωμα + περιορισμός εσωτερικής μνήμης + Ελευθερώστε τουλάχιστον %1$d MB από εσωτερική μνήμη! Κύκλωμα απενεργοποιήθηκε! + Λάθος μορφή αρχείου + Λάθος κωδικός. Η εντολή ακυρώθηκε. + Δεν έχει ρυθμιστεί + Δημιουργήθηκε αλλαγή προφίλ %1$d ημέρα %1$d ημέρες diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 2068dcaff0..9d800ccc59 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -1,15 +1,12 @@ - Seguridad de tratamientos - Máximo Bolo permitido [U] Máximos carbohidratos permitidos [g] Preferencias Actualizar los tratamientos desde NS Restablecer las bases de datos ¿Realmente quiere restablecer las bases de datos? Salir - Usar bolos extendidos para >200% Dispositivo Bluetooth DanaR Usar siempre valores basales absolutos Por favor reinicia el teléfono o AndroidAPS desde ajustes de sistema, sino AndroidAPS no guardará registros (importante para trazar y verificar que el algoritmo funcione correctamente) @@ -309,7 +306,6 @@ Detener DETENER PULSADO Esperando bomba - Se entregará %.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 Empezar con lazo abierto @@ -332,7 +328,6 @@ Lazo inactivo Lazo activo %1$.2f limitado a %2$.2f - Valor %s fuera de limites Comando remoto no permitido Para cancelar lazo por %1$d minutos responde con código %2$s Basal temporal %1$.2fU/h para %2$d min iniciada correctamente @@ -446,7 +441,6 @@ Perfiles Valor predeterminado: 3 Esta es una protección de seguridad en OpenAPS. Lo que esto hace es limitar tus basales a 3x (en este caso) tu mayor índice basal. Probablemente no necesites cambiar esto, pero debes tener en cuenta las discusiones sobre \"3x max diaria; 4x actual\" para protecciones de seguridad. Ajuste pro defecto: 4 Esto es la otra mitad de los ajustes de seguridad de OpenAPS y la otra mitad de la protección de seguridad de \"3x max diaria, 4x actual\". Esto significa, que tu basal, independientemente de tu máxima basal ajustada en la bomba, no puede ser mas alta que este número de veces el actual nivel de basal. Esto es para evitar que las personas se encuentren en situaciones peligrosas por aumentar mucho la basal sin entender como trabaja el algoritmo. El ajuste por defecto es 4x; la mayoría de las personas nunca tendrá que cambiar estos ajustes, sino que debe modificar otros ajustes en la terapia si se encuentran cerca de este límite de seguridad. - Ajuste por defecto: 1.2\nEste es un límite multiplicador para autosens (y pronto autotune) para establecer un límite máximo del 20% sobre lo alto que puede ser el ratio autosens, que a su vez determina como de altos puede ajustar autosens los ratios basales, como de bajos puede ajustar el ISF y como de bajo establecer el objetivo de glusosa en sangre (BG). Ajuste por defecto: 0.7\nEl otro lado de los límites de seguridad de autosens, limitando a cuanto puede autosens bajar la basal y a cuanto puede subir ISF y objetivo de glucosa en sangre (BG). Autosens también ajusta los objetivos Ajuste por defecto: true\nEsto se usa para permitir a autosens el ajuste de objetivos BG además de ISF y bases. @@ -459,7 +453,6 @@ Número de teléfono inválido Número de teléfono incorrecto para SMS Calibración - ¿Mandar calibración %.1f a xDrip? xDrip+ no instalado Calibración mandada a xDrip Calibración enviada. La recepción debe estar habilitada en xDrip. @@ -600,7 +593,6 @@ Ajustes absorción Tiempo max absorción comida [h] Tiempo en horas en el que se espera que todos los carbohidratos hayan sido absorbidos - Mostrar bolo extendido en % SAGE IAGE CAGE @@ -713,8 +705,6 @@ Mandar datos BG a xDrip+ En xDrip+ elige 640g/Eversense como fuente de datos NSClient BG - Valor basal reemplazado por el valor mínimo soportado: %s - Valor basal reemplazado por valor máximo soportado: %s Cálculo BG Cálculo bolo IOB Cálculo basal IOB @@ -732,8 +722,6 @@ Lazo cerrado activado Máximo IOB ajustado correctamente BG disponible desde la fuente seleccionada - Valores basales no alineados a las horas: %s - Perfil inválido: %s Programando bomba para emitir bolo Actualizar Estado @@ -1074,7 +1062,6 @@ Registro de cambio de modo de funcionamiento Registro de alarmas Activar emulación de dosis basal temporal - Usar bolos extendidos en lugar de tasas basales temporales para eludir el limite de 250% Desconectar el retraso [s] Número de serie Versión de software @@ -1129,6 +1116,7 @@ Crear evento \"Cambio sensor\" en la automatización NS al iniciar el sensor Tomato (MiaoMiao) Tomato + restricción de almacenamiento interno %1$d día %1$d días diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index ddc5a3bc49..0b5ef3c187 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -9,7 +9,7 @@ Réinitialiser les Bases de Données Voulez-vous vraiment réinitialiser les bases de données ? Quitter - Utiliser les bolus étendus pour > 200% + Utiliser les bolus étendus pour > 200%% Dispositif Bluetooth DanaR Utiliser toujours les valeurs absolues du basal Redémarrez votre smartphone ou redémarrez AndroidAPS depuis les paramètres système \nsinon AndroidAPS ne sera pas connecté aux journaux (il est important de suivre et vérifier que les algorithmes fonctionnent correctement)! @@ -315,7 +315,7 @@ L\'ENSEMBLE DES RISQUES LIÉS À LA QUALITÉ ET À LA PERFORMANCE DU PROGRAMME S Arrêt BOUTON ARRÊT ACTIVÉ Attente connection pompe - %.2fU va être injecté + %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 pompe Commencez par la configuration Boucle Ouverte @@ -338,7 +338,7 @@ L\'ENSEMBLE DES RISQUES LIÉS À LA QUALITÉ ET À LA PERFORMANCE DU PROGRAMME S La Boucle est désactivée La Boucle est activée %1$.2f limité à %2$.2f - La valeur %s est hors des limites strictes + La valeur %1$s est en dehors des limites La commande à distance n\'est pas autorisée Bolus à distance non disponible. Réessayez plus tard. Pour démarrer Basal %1$.2fU/h pendant %2$d min, renvoyer le code %3$s @@ -465,7 +465,7 @@ L\'ENSEMBLE DES RISQUES LIÉS À LA QUALITÉ ET À LA PERFORMANCE DU PROGRAMME S Profil Valeur par défaut : 3 Ceci est un paramètre important de sécurité de l’OpenAPS. Ceci va limiter vos débits basal à 3 fois votre débit Basal maximum. Il est probable que vous n’aurez pas besoin de changer cela, mais vous devez être conscient de ce qui est discuté pour les limites de sécurité dans “3x max daily; 4x current”. Valeur par défaut : 4 Ceci est l’autre moitié des paramètres de sécurité limitant l’OpenAPS, et l’autre moitié de “3x max daily, 4x current” des paramètres de sécurité. Quel que soit le basal maximum prédéfini dans votre pompe, il ne pourra pas être plus haut que ce nombre multiplié par le Basal actuel. Ceci est fait pour ne pas mettre l’utilisateur en danger en programmant des débits Basal maximum trop élevés avant de comprendre comment l’algorithme fonctionne. Encore une fois, la valeur par défaut est 4x, la plupart des gens n’auront jamais besoin d’ajuster ce paramètre, plutôt ils auront tendance à ajuster d’autres paramètres s’ils voient qu’ils atteignent ce paramètre de limite de sécurité. - Valeur par défaut: 1.2\nCeci est la limite du multiplicateur utilisé par Autosens (ensuite Autotune) pour definir +20% en limite maximale du ratio Autosens. En consequence, ceci dit va définir pour Autosens, la valeur limite maximale du Basal, la valeur limite minimale de la Sensibilité à l\'insuline (SI, ISF), et la valeur limite minimale de la cible glycémique. + Valeur par défaut: 1.2\nCeci est la limite du multiplicateur utilisé par Autosens (et bientôt Autotune) pour définir +20%% en limite maximale du ratio Autosens. En consequence, ceci dit va définir la valeur maximale du Basal pour Autosens, la valeur minimale de la Sensibilité à l\'Insuline (SI, ISF), et la valeur minimale de la cible glycémique. Valeur par défaut: 0.7\nL’autre aspect pour les limites de sécurité pour Autosens. Cette valeur va créer une limite qui définit jusqu\'à quelle valeur minimale Autosens va pouvoir ajuster le basal , et jusqu\'à quelles valeurs maximales Autosens pourra ajuster la Sensibilité à l\'Insuline (SI, ISF) et les cibles glycémiques. Autosens ajuste aussi les cibles Valeur par défaut : true\nCeci est utilisé pour autoriser Autosens à ajuster les cibles de glycémie en plus de SI et les basals. @@ -478,7 +478,7 @@ L\'ENSEMBLE DES RISQUES LIÉS À LA QUALITÉ ET À LA PERFORMANCE DU PROGRAMME S Le numéro de tél est invalide Num tél du SMS est invalide Étalonnage - Transmettre l\'étalonnage %.1f à xDrip ? + Envoyer la calibration %1$.1f à xDrip ? xDrip+ n\'est pas installé Étalonnage envoyé à xDrip Étalonnage envoyé. La réception doit être activée dans xDrip. @@ -619,7 +619,7 @@ L\'ENSEMBLE DES RISQUES LIÉS À LA QUALITÉ ET À LA PERFORMANCE DU PROGRAMME S Paramètres d’absorption Durée maximale d’absorption pour un repas Le temps estimé en heures pour une absorbption totale des glucides d’un repas - Afficher le bolus étendu en % + Afficher le bolus étendu en %% AgeC AgeI AgeC @@ -732,8 +732,8 @@ L\'ENSEMBLE DES RISQUES LIÉS À LA QUALITÉ ET À LA PERFORMANCE DU PROGRAMME S Transmettre les données G vers xDrip+ Dans xDrip+ veuillez séléctionner 640g/Eversense comme source de données Glycémie NSClient - Valeur de basal remplacée par la valeur minimale autorisée : %s - Valeur de basal remplacée par la valeur maximale autorisée : %s + Valeur de basal remplacée par la valeur minimale autorisée : %1$s + Valeur de basal remplacée par la valeur maximale autorisée : %1$s Calcul de Glycémie Calcul IA du Bolus Calcul IA du Basal @@ -751,8 +751,8 @@ L\'ENSEMBLE DES RISQUES LIÉS À LA QUALITÉ ET À LA PERFORMANCE DU PROGRAMME S Mode boucle fermée activé Maximum IA réglé correctement Glycémie disponible depuis la source sélectionnée - Les changements de Basal doivent être aux heures entières : %s - Profile incorrect: %s + Les changements de Basal doivent être aux heures entières : %1$s + Profile incorrect : %1$s Programmer la pompe pour injecter un bolus Actualiser État @@ -1088,12 +1088,13 @@ L\'ENSEMBLE DES RISQUES LIÉS À LA QUALITÉ ET À LA PERFORMANCE DU PROGRAMME S Coupure son Alerte de la pompe Enreg. changement de site + Enregistrer changements de réservoir Enreg. changement de tubulure Enreg. changement batterie Enreg. changement mode de fonctionnement Enreg. alertes Activer l’émulation de DBT - Utilisez des Bolus étendus au lieu de DBTs pour contourner la limite de 250% + Utilisez des Bolus étendus au lieu de DBTs pour contourner la limite de 250%% Délai de déconnexion [s] Numéro de série Version du logiciel @@ -1149,6 +1150,7 @@ L\'ENSEMBLE DES RISQUES LIÉS À LA QUALITÉ ET À LA PERFORMANCE DU PROGRAMME S Tomato (MiaoMiao) Tomato Changement d\'heure d\'été dans moins de 24 heures + Changement d\'heure d\'été dans moins de 3 heures - Boucle fermée désactivée stockage interne limité Boucle désactivée ! Libérez au moins %1$d Mo du stockage interne ! Format incorrect diff --git a/app/src/main/res/values-he/strings.xml b/app/src/main/res/values-he/strings.xml index c4871e31c8..9b6d9033eb 100644 --- a/app/src/main/res/values-he/strings.xml +++ b/app/src/main/res/values-he/strings.xml @@ -2,7 +2,6 @@ רענן טיפול מ-Nightscout - השתמש בבולוס מורחב של 200% בבקשה אתחל את הסמרטפון שלך או תרענן את אפלקצית AndroidAPS בהגדרות המערכת אחרת AndroidAPS לא יוכל לבצע רישום (חשוב לעקוב אחר ולוודא כי האלגוריתמים פועלים כראוי)! מציג את ההגדרות הקבועות מראש עבור מזון המוגדר ב-Nightscout diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 12ead731c5..cbb98e7289 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -9,7 +9,6 @@ Ripristinare i database Vuoi davvero ripristinare le impostazioni? Uscita - Usa esteso sup. 200% Dispositivo Bluetooh DanaR Utilizzare sempre valori assoluti basali per favore riavvia il tuo telefonoo riavvia AndroidAPS dalle Impostazioni di Sistema o Android APS non lo registrera\' @@ -307,7 +306,6 @@ Arresta PREMUTO STOP In attesa del micro - Erogando %.2fU Impostazione di visualizzazione, monitoraggio e analisi basali e rapporti Verifica che Bg sia disponibile in Nightscout, e la data micro e\' ben allineata Partenza con Open loop @@ -330,7 +328,6 @@ Loop e\' disabilitato Loop abilitato %1$.2f limitato a %2$.2f - Valore %s è fuori limiti massimi il comando da remoto non e\' permesso Sospendi il loop per %1$d minuti riprendi %2$s Basale temporanea %1$.2fU/h for %2$d min avviata con successo @@ -443,7 +440,6 @@ Profilo Valore predefinito: 3 Questo è una chiave di sicurezza di OpenAPS. Ciò che fa è limitare le tue basali a essere 3 volte la quantità massima. Probabilmente non avrai bisogno di cambiarlo, ma dovresti essere consapevole di ciò che viene discusso in merito a \"3x max al giorno; Corrente 4x \"per sicurezza. Valore predefinito: 4 questo è l\'altra metà delle chiavi di sicurezza di OpenAPS e l\'altra metà del \"3 volte al giorno max; 4 x corrente\"le chiavi di sicurezza. Ciò significa che il tuo basale, indipendentemente dal basale di max impostato sulla pompa, non può essere più in alto di questo numero di volte il livello attuale del tuo basale. Si tratta di impedire alle persone di entrare in regime pericoloso da basals max eccessivamente alta prima di capire come funziona l\'algoritmo. Ancora una volta, il valore predefinito è 4x; maggior parte delle persone non sarà necessario modificare questo e invece sono più probabili avere bisogno di regolare le altre impostazioni se si sentono come sono \"in esecuzione in\" questo chiave di sicurezza. - Valore predefinito: 1.2\n Questo è un valore di moltiplicatore per autosens (e presto autotune) per impostare un limite massimo del 20% su quanto in alto può essere il rapporto di autosens, che a sua volta determina quanto in alto autosens possibile regolare basals, quanto in basso può regolare ISF e quanto in basso è possibile impostare la destinazione di BG. Valore predefinito: 0,7\n L\'altro lato dei limiti di sicurezza di autosens, mettendo un limite su quanto in basso gli autosens possono regolare le basili e quanto alto può regolare i target CF e BG. Autosens regolare obiettivi Valore predefinito: true\n viene utilizzato per consentire autosens regolare gli obiettivi di BG, oltre a Cf e basale. @@ -456,7 +452,6 @@ Numero di telefono non corretto Numero non valido per SMS Calibrazione - Invia calibrazione %.1f a xDrip? xDrip non installato Invio calibrazione xDrip La calibrazione è stata inviata. La ricezione deve essere abilitata in xDrip. @@ -589,7 +584,6 @@ Impostazioni di assorbimento Assorbimento max pasto tempo [h] Tempo in ore in cui è previsto che tutti i carboidrati del pasto vengano assorbiti - Visualizza bolo esteso come SAGE IAGE CAGE @@ -699,8 +693,6 @@ Inviare i dati di BG xDrip + In xDrip + selezionare origine dati 640g/Eversense NSClient BG - Valore basale sostituito dal valore massimo: %s - Valore basale sostituito dal valore massimo: %s Calcolo di BG Calcolo di bolo Bolo Calcolo di bolo @@ -718,8 +710,6 @@ Chiusa modalità attivata IOB massima impostata correttamente BG disponibile da sorgente selezionata - Valori basali non allineati alle ore: %s - Profilo non valido: %s Programmazione micro per bolusing Aggiorna Stato @@ -1035,6 +1025,7 @@ Violazione del limite di insulina Cambiare richiesta minima [%] Loop sarà nuova richiesta di modifica popup solo se il cambiamento è più grande di questo valore. Valore predefinito è 20% + Batt: %1$d%% %1$d giorni %1$d giorni diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml index 05cb3f62f7..80b2994a0e 100644 --- a/app/src/main/res/values-ko/strings.xml +++ b/app/src/main/res/values-ko/strings.xml @@ -9,7 +9,6 @@ 데이터베이스 초기화 데이터 베이스를 정말 초기화하시겠습니까? 종료 - >200% 주입위한 확장Bolus 사용 다나R 블루투스 Basal 절대값 사용하기 폰을 재부팅하거나 AndroidAPS를 재시작하세요 \n그렇지 않으면 로그 기록이 되지 않습니다.(알고리즘이 정상적인 작동하는지 확인하기 위해 로그가 필요합니다.)! @@ -307,7 +306,6 @@ 정지 정지 누름 펌프를 기다리는 중 - %.2fU을 주입합니다 표시설정과 모니터설정을 완료하고, Basal과 비율을 분석한다. 나이트스카우트에서 혈당 데이터가 잘 들어오는지, 펌프데이터가 업로드 되는지 확인한다. Open Loop를 시작한다. @@ -330,7 +328,6 @@ Loop가 중지중입니다. Loop가 실행중입니다. %1$.2f, %2$.2f으로 제한됨 - %s값이 하드한계(Hard Limit)를 벗어났습니다 원격 명령이 허가되지 않았습니다 %1$d분동안 Loop 일시중지하려면 %2$s 를 입력하고 답장하세요 Temp Basal %1$.2fU/h for %2$d min started successfully @@ -443,7 +440,6 @@ 프로파일 기본값: 3\n이 값은 중요한 OpenAPS 안전장치입니다. 이 값의 역할은 펌프에 설정되어 있는 최대Basal보다 3배를 초과할 수 없게 제한하는 것입니다. 이 값을 변경할 필요는 없을 것이지만, 안전을 위해 \"3x max daily; 4x current\"이 의미하는 바를 알고 있어야 합니다. 기본값: 4\n이 값은 \"3x max daily; 4x current\"의 나머지 절반에 해당하는 또 다른 중요한 OpenAPS 안전장치입니다. 이것은, 펌프에 설정된 최대 Basal과는 관계없이, Basal이 설정된 현재시간의 Basal에 이 값을 곱한 양을 초과할 수 없다는 것을 의미합니다. 이는 알고리즘의 작동 방식을 이해하기 전에 과도하게 높은 최대 기본을 설정하여 위험한 상황에 빠지지 않도록 보호하기 위한 것입니다. 다시한번, 기본 값은 4배인 것을 알아두세요; 일반적으로 이것을 조정할 필요는 전혀 없으며, 대신 이 안전장치를 변경해야할것처럼 생각이 된다면, 다른 설정을 변경해야 할 가능성이 더 큽니다. - 기본값: 1.2\n이 값은 autosens가 autosens 비율을 얼마나 높게 할 수 있는지에 대한 최대 한계를 20%로 설정하는 승수장치입니다. 이는 autosens가 얼마나 높게 Basal을 조절할수 있는지, ISF를 얼마나 낮게 조절할수 있는지, 혈당 목표범위를 얼마나 낮게 설정할수 있는지를 결정합니다. 기본값: 0.7\nautosens 안전 제한의 나머지 부분입니다. 이는 Basal을 얼마나 낮게 조절할 수 있는지, ISF와 혈당 목표범위를 얼마나 높게 설정할 수 있는지를 결정합니다. Autosens가 목표도 조절합니다. 기본값: 활성\n이것은 autosens가 ISF와 Basal뿐만 아니라, 혈당 목표범위를 조절할 수 있게 합니다. @@ -456,7 +452,6 @@ 폰번호가 유효하지 않습니다 SMS폰번호가 유효하지 않습니다 보정 - 보정값 %.1f을 xDrip에 전송하시겠습니까? xDrip+가 설치되지 않았습니다 보정이 xDrip으로 전송되었습니다 보정 전송됨. xDrip에서 수신이 되도록 설정되어 있어야 합니다. @@ -589,7 +584,6 @@ 흡수 설정 식사 최대 흡수 시간 [h] 식사로 섭취한 탄수화물이 모두 흡수될기까지 예상되는 시간 - 확장Bolus를 %로 표시하기 SAGE IAGE CAGE @@ -699,8 +693,6 @@ 혈당 데이터를 xDrip+에 전송하기 xDrip+ 데이터 소스에서 640g/Eversense을 선택하세요 NSClient 혈당 - 지원되는 최소값으로 Basal값이 대체되었습니다:%s - 지원되는 최대값으로 Basal값이 대체되었습니다:%s 혈당 계산 Bolus IOB 계산 Basal IOB 계산 @@ -718,8 +710,6 @@ Closed 모드가 활성화됨 최대 IOB가 바르게 설정됨 선택한 소스에서 혈당이 들어옵니다. - Basal값이 시간단위로 설정되지 않았습니다: %s - 유효하지 않은 프로파일: %s Bolus 주입을 위한 펌프 프로그래밍 새로고침 상태 diff --git a/app/src/main/res/values-lt/insight_alert_codes.xml b/app/src/main/res/values-lt/insight_alert_codes.xml index 70489fbc5e..3466daa6fc 100644 --- a/app/src/main/res/values-lt/insight_alert_codes.xml +++ b/app/src/main/res/values-lt/insight_alert_codes.xml @@ -1,3 +1,30 @@ - + + Priminimas R1 + Priminimas R2 + Priminimas R3 + Priminimas R4 + Priminimas R7 + Įspėjimas W31 + Įspėjimas W32 + Įspėjimas W33 + Įspėjimas W34 + Įspėjimas W36 + Įspėjimas W38 + Įspėjimas W39 + Servisas M20 + Servisas M21 + Servisas M22 + Servisas M23 + Servisas M24 + Servisas M25 + Servisas M26 + Servisas M27 + Servisas M28 + Servisas M29 + Servisas M30 + Klaida E6 + Klaida E10 + Klaida E13 + diff --git a/app/src/main/res/values-lt/insight_alert_descriptions.xml b/app/src/main/res/values-lt/insight_alert_descriptions.xml index 70489fbc5e..f28b6cdbc4 100644 --- a/app/src/main/res/values-lt/insight_alert_descriptions.xml +++ b/app/src/main/res/values-lt/insight_alert_descriptions.xml @@ -1,3 +1,25 @@ - + + %1$d%%\nTrukmė: %2$s h]]> + %1$s U]]> + Pakeiskite bateriją. + Nustatykite laiką/datą. + Kreipkitės į Accu-Chek palaikymo tarnybą. + %1$d%%
Trukmė: %2$s h]]>
+ %1$s U
Suleista: %2$s U]]>
+ Įdėkite rezervuarą. + Pakeiskite rezervuarą. + Pakeiskite bateriją. + Patikrinkite pompos būseną. + Pakeiskite infuzijos rinkinį. + Kreipkitės į Accu-Chek palaikymo tarnybą. + Pakeiskite rezervuarą. + Iš naujo paleiskite duomenų atsisiuntimą. + Patikrinkite pompos būseną. + Nustatykite baterijos tipą. + Nustatykite rezervuaro tipą. + Pakeiskite bateriją ir rezervuarą. + Pakeiskite rezervuarą. + Pakeiskite kalbą. +
diff --git a/app/src/main/res/values-lt/insight_alert_titles.xml b/app/src/main/res/values-lt/insight_alert_titles.xml index 70489fbc5e..9281b6adad 100644 --- a/app/src/main/res/values-lt/insight_alert_titles.xml +++ b/app/src/main/res/values-lt/insight_alert_titles.xml @@ -1,3 +1,30 @@ - + + Suleisti bolusą + Praleistas bolusas + Žadintuvas + Keisti infuzijos rinkinį + LBD baigtas + Mažai insulino rezervuare + Baterija senka + Netinkamas laikas/data + Garantija pasibaigė + LBD atšauktas + Bolusas atšauktas + Eksploatacijos laikas artėja prie pabaigos + Rezervuaras neįdėtas + Rezervuaras tuščias + Baterija tuščia + Automatinis išjungimas - pompa sustabdyta + Užsikimšimas + Eksploatacijos laikas pasibaigė + Rezervuaro keitimas neužbaigtas + Atsisiųsti nepavyko + Pristabdymo laikas baigėsi + Baterijos tipas nenustatytas + Rezervuaro tipas nenustatytas + Mechaninė klaida + Stūmoklio grąžinimo klaida + Kalbos klaida + diff --git a/app/src/main/res/values-lt/insight_exceptions.xml b/app/src/main/res/values-lt/insight_exceptions.xml index 70489fbc5e..82bbbab6fb 100644 --- a/app/src/main/res/values-lt/insight_exceptions.xml +++ b/app/src/main/res/values-lt/insight_exceptions.xml @@ -1,3 +1,15 @@ - + + Prisijungti nepavyko + Nutrūko ryšys + Susiejimas atmestas + Jungtis nesukurta + Laukimo laikas viršytas + Maksimalus bolusų tipų skaičius aktyvus + Nėra aktyvaus LBD, kurį būtų galima atšaukti + Nėra aktyvaus LBD, kurį būtų galima pakeisti + Nėra atšaukiamo boliuso + Pompa jau šiame režime + Veikimo režimas neleidžiamas + diff --git a/app/src/main/res/values-lt/strings.xml b/app/src/main/res/values-lt/strings.xml index 70489fbc5e..11d4733c9b 100644 --- a/app/src/main/res/values-lt/strings.xml +++ b/app/src/main/res/values-lt/strings.xml @@ -1,3 +1,1177 @@ - + + Terapijos saugumas + Maksimalus leistinas bolusas [U] + Maks. leistini angliavandeniai [g] + Nustatymai + Atnaujinti terapiją iš NS + Iš naujo nustatyti duomenų bazę + Ar tikrai norite iš naujo nustatyti duomenų bazę? + Išeiti + Naudoti ištęstinį bolusą >200%% + DanaR Bluetooth įrenginys + Visada naudoti bazės absoliučias vertes + Prašome iš naujo paleisti telefoną arba sistemos nustatymuose iš naujo paleisti AndroidAPS \nkitaip AndroidAPS negalės registruoti prisijungimų (svarbu stebint ir tikrinant, ar algoritmai veikia tinkamai)! + Mygtukai greitesniam pagrindinių funkcijų paleidimui + Papildomų įrašų žurnalas. + Naudojama aktyvių įskiepių konfigūravimui + Mokymosi programa + Rodyti maisto ruošinius iš Nightscout + Nustatymai Humalog ir NovoRapid / NovoLog insulinams + Nustatymai Fiasp insulinui + Leidžia pasirinkti insulino veikimo piką ir turėtų būti naudojama tik patyrusių vartotojų + Aktyvuoja arba deaktyvuoja Ciklo paleidimą. + Sinchronizuoja duomenis su Nightscout + 2016 m. algoritmas + 2017 m. algoritmas + Naujausias algoritmas patyrusiems vartotojams + Rodo dabartinę Ciklo būseną ir pagrindinių veiksmų mygtukus + Rodo atsinaujinančius pranešimus su trumpa Ciklo veiklos apžvalga + Nustato profilį, kuris veikia neprisijungus prie interneto. + Nustato profilį, kuris įvestas Nightscout puslapyje + Nustato profilį su vieninteliu laiko bloku. + Accu-Chek Combo pompos integracija, reikalinga Ruffy programėlė + DANA Diabecare R pompos integracija + DANA Diabecare R pompos, skirtos vietinei P. Korėjos rinkai, integracija + DANA Diabecare R pompos su atnaujinta programine-aparatine įranga integracija + DANA Diabecare RS pompos integracija + Accu-Chek Insight pompos integracija, kuriai reikalinga SightRemote programėlė + Integracija žmonėms, naudojantiems insulino injektorius + Integracija pompoms, kurios dar neturi reikalingo valdiklio (Atviras Ciklas) + Jautrumas insulinui apskaičiuojamas taip pat kaip ir Oref0, tačiau jūs galite nustatyti, koks praeities laikotarpis bus naudojamas. Minimalus angliavandenių įsisavinimo greitis apskaičiuojamas remiantis maksimaliu angliavandenių įsisavinimo greičiu, kuris įvestas Nustatymuose. + Jautrumas insulinui apskaičiuojamas remiantis praėjusių 24 val. duomenimis, o (neįsisavinti) angliavandeniai neįtraukiami į skaičiavimus praėjus Nustatymuose nurodytam laikui. + Jautrumas insulinui apskaičiuojamas remiantis praėjusių 8 val. duomenimis, o (neįsisavinti) angliavandeniai neįtraukiami į skaičiavimus praėjus Nustatymuose nurodytam laikui. Įskiepis taip pat įskaičiuoja NM (neįrašytą maistą). + Jautrumas insulinui apskaičiuojamas kaip nuokrypių svertinis vidurkis. Naujausių nuokrypių svoris yra didesnis. Minimalus angliavandenių įsisavinimo greitis apskaičiuojamas iš maksimalaus angliavandenių įsisavinimo greičio, kuris nurodytas Nustatymuose. Šis algoritmas greičiausiai aptinka pasikeitusį jautrumą insulinui. + Gauti kraujo gliukozės reikšmes iš modifikuotos Dexcom G5 programėlės. + Gauti kraujo gliukozės reikšmes iš modifikuotos Dexcom G6 programėlės. + Gauti kraujo gliukozės vertes iš modifikuotos Eversense programėlės. + Gauti kraujo gliukozės vertes iš Glimp. + Gauti kraujo gliukozės vertes iš 600SeriesAndroidUploader. + Gauti kraujo gliukozės vertes iš Nightscout + Gauti kraujo gliukozės vertes iš xDrip. + Išsaugoti visus terapijos pakeitimus + 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 + Patikrinti + Vienetai + IVT (Insulino Veikimo Trukmė) + IA (insulino/angliavandenių santykis) + JIF (jautrumo insulinui faktorius) + Valandinė bazė + Tikslinė gliukozės vertė + Nenustatytas profilis + Insulinas: + Angliavandeniai: + AIO: + AIO: + Aktyvumas: + Visas AIO: + Bendro AIO aktyvumas: + Trukmė: + Santykis: + Ins: + AIO: + Visas AIO: + Insulinas + Angliavandeniai + KG + LT + Angliavandeniai + Korekcija + vv + Bolusų AIO + Paleisti dabar + Virtuali pompa + Pagrindinis bazės dydis + Laikina bazė + Ištęstas bolusas + Baterija + Rezervuaras + Gerai + Paskutinis veiksmas + Įvesties parametrai + Gliukozės statusas + Dabartinė laikina bazė + AIO duomenys + Profilis + Maisto duomenys + Rezultatas + Nėra gliukozės duomenų + Pakeitimai nereikalingi + Užklausa + Vertė + Trukmė + Priežastis + Gliukozė + Pokytis + Pokytis: + Konfigūracija + Tikslai + OpenAPS MA + Apžvalga + NS profilis + Paprastas profilis + Laikina bazė + Terapija + Virtuali pompa + Priežiūra + Pompa + Kokią pompą naudosite su AndroidAPS? + Terapija + Kuris įskiepis bus naudojamas terapijos tvarkymui? + Profilis + Kurį profilį naudos AndroidAPS? + DKS + Kuris DKS algoritmas turėtų koreguoti terapiją? + Bendrieji + Bendrieji įskiepiai, kurie gali praversti. + Kokie apribojimai taikomi? + dienos(-ų) + Apribojimai + Ciklas + Ciklas + Naudokite, norėdami aktyvuoti AndroidAPS Ciklą. + DKS + Pritaikius apribojimus + Laikina bazė nustatyta pompoje + Paskutinis veiksmas + Gerai + Atšaukti + NEPASIRINKTA DKS ARBA NĖRA REZULTATO + Saugumas + Įskiepis išjungtas + Apribojimų pažeidimas + Boluso suleidimo klaida + Laikinos bazės suleidimo klaida + Valandinė bazė [%] + % (100 % = dabartinis) + Patvirtinti naują laikiną bazę: + Terapija + Skaičiuotuvas + Taikomas ribojimas! + Patvirtinimas + Įvesti naują paskyrimą: + Bolusas + Bolusas: + Valandinė bazė + Valandinė bazė: + Angliavandeniai + Pakeiskite įvestus duomenis! + Nustatyti naują ištęstą bolusą: + KG šaltinis + Iš kur AndroidAPS gaus duomenis? + xDrip + DKS režimas + Uždaras Ciklas + Atviras Ciklas + Ciklas išjungtas + Išjungti Ciklą + Įjungti Ciklą + Gautas naujas pasiūlymas + Nepalaikoma NSClient versija + Nepalaikoma Nightscout versija + Neįdiegtas NSClient. Įrašai prarasti! + KG matoma NS + Pompos statusas matomas NS + Įvesti rankiniu būdu + CIKLAS NEAKTYVUS DĖL APRIBOJIMŲ + Bazės AIO + Pritaikytas boluso apribojimas + Pritaikytas angliavandenių apribojimas + KG testas + Pranešimas + Pastaba + Klausimas + FA-fizinis aktyvumas + Kateterio keitimas + CGM sensoriaus įvedimas + CGM sensoriaus paleidimas + Insulino rezervuaro keitimas + Profilio keitimas + Užkandžio bolusas + Bolusas valgiui + Bolusas korekcijai + Kombinuotas bolusas + Pradėti laikiną bazę + Užbaigti laikiną bazę + Angliavandeniai korekcijai + OpenAPS neprisijungus + Įvykio tipas + Kiti + Matuoklis + Sensorius + Angliavandeniai + Insulinas + Angliavandenių veikimo laikas + Išskaidyti + Trukmė + Procentai + Absoliutus + Pastabos + Įvykio laikas + Profilis + Įvedė + Gliukozės tipas + Dar negautas joks profilis iš NS + Laikina bazė + Ištęstas bolusas + Nightscout versija: + Trūksta + Nustatymai eksportuoti + Eksportuoti nustatymus + Importuoti nustatymus iš + Nustatymai importuoti + Failas nerastas + Eksportuoti nustatymus + Importuoti nustatymus + Maks vv/val skaičius, kuris gali būti nustatytas kaip laikina bazė + Šis skaičius OpenAPS kontekste vadinamas maks. valandine baze + Didžiausias valandinės bazės insulino kiekis, kurį gali suleisti OpenAPS [U] + Ši vertė OpenAPS kontekste vadinama Maks AIO\nTai maksimalus insulino vienetų [U] skaičius, kurį DKS gali suleisti vienu metu. + ATMESTI + DanaR + Jungiamasi + Prisijungta + Atsijungta + DanaR pompos nustatymai + Licencinė sutartis su vartotoju + PROGRAMA NEGALI BŪTI NAUDOJAMA GYDYMO SPRENDIMAMS PRIIMTI. PAGAL GALIOJANČIUS ĮSTATYMUS PROGRAMA NESUTEIKIA JOKIŲ GARANTIJŲ VARTOTOJUI. JEI RAŠTU NENURODYTA KITAIP, PROGRAMOS AUTORINIŲ TEISIŲ TURĖTOJAS IR/AR KITOS ŠALYS PATEIKIA PROGRAMĄ \"KAIP YRA\" BE JOKIŲ GARANTIJŲ, TIEK AKIVAIZDŽIŲ, TIEK NUMANOMŲ, ĮSKAITANT, BET NEAPSIRIBOJANT GALIMYBĘ NAUDOTI PROGRAMĄ KOMERCINIAMS AR KITOKIEMS DALINIAMS TIKSLAMS. RIZIKĄ, KYLANČIĄ NAUDOJANT PROGRAMĄ PRISIIMA PATS VARTOTOJAS. JEI PROGRAMA VEIKIA NETINKAMAI, IŠLAIDOS, SUSIJUSIOS SU PROGRAMOS SERVISU, TAISYMU AR KOREGAVIMU, TENKA VARTOTOJUI. + SUPRATAU IR SUTINKU + Išsaugoti + Bluetooth adapteris nerastas + Pasirinktas įrenginys nerastas + Pompos prisijungimo klaida + Pompos AIO + Paros insulinas + Paskutinis bolusas + prieš %.1fval + Neteisingai įvesti duomenys + Vertė nėra tinkamai nustatyta + Atnaujinti profilį + Peržiūrėti profilį + Vykdoma + Komentaras + Atlikta + Procentai + Absoliutus + Atšaukti laikiną bazę + SMS komunikatorius + Laukiama rezultato + Leidžiami telefono numeriai + +370XXXXXXXX; +370YYYYYYYY + Norėdami suleisti %1$.2fvv bolusą, atsakykite kodu %2$s + Norėdami nusiųsti kalibraciją %1$.2f, atsakykite kodu %2$s + Bolusas nesuleistas + %1$.2fvv bolusas sėkmingai suleistas + Bus suleista %1$.2fvv + %1$.2fvv bolusas sėkmingai suleistas + Leidžiama %1$.2fvv + Leisti nuotolines komandas SMS žinutėmis + Iš piršto + Iš sensoriaus + Rankiniu būdu + Laikinas tikslas + Atšaukti laikiną tikslą + DanaR profilio nustatymai + IVT [h] + Insulino veikimo trukmė + Nepavyko atnaujinti bazės profilio + Atnaujinti + Siunčiama + Ištęstas bolusas + Paprastas bolusas dvibangiame + Ištęstas bolusas dvibangiame + klaida + užpildymas + valandinė bazė + gliukozė + angliavandeniai + aliarmas + Įkelta %1$d įrašų + Paprastas bolusas + Aliarmai + Valandinė bazė + Bolusai + Angliavandeniai + Paros insulinas + Klaidos + Gliukozė + Užpildymas + Sustabdyta + Jungiamasi %1$d s + Pompos slaptažodis + Neteisingas pompos slaptažodis! + Pompa šiuo metu veikia + Suleista + Sustabdyta + Bolusas sustabdytas + Bolusas stabdomas + Užsikimšimas + Stop + Paspausta STOP + Laukiama ryšio su pompa + Bus 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 į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 IK = 0 + Koreguokite savo uždarąjį ciklą po truputį didindami maks IK ir mažindami tikslinę gliukozės vertę + 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 IK! Pradžiai patartina skaičiuoti taip: maxIK=(didžiausia valandinė bazė x 3) + vidutinis bolusas. + Pasiekėte leistiną ribą + Nepasirinktas profilis + Ciklas buvo išjungtas + Ciklas buvo įjungtas + Ciklas išjungtas + Ciklas įjungtas + %1$.2f apribotas iki %2$.2f + Vertė %1$s viršija griežtą limitą + Nuotolinis valdymas negalimas + Nuotolinis bolusas negalimas. Bandykite vėliau. + Norėdami aktyvuoti %1$.2fvv/val bazę, kurios trukmė %2$d min, atsakykite kodu %3$s + Norėdami perjungti profilį %1$s %2$d%%, atsakykite kodu %3$s + Norint pradėti ištęstinį bolusą %1$.2fvv %2$d min., atsakykite kodu %3$s + Norėdami aktyvuoti %1$d%% bazę %2$d min., atsakykite kodu %3$s + Norėdami sustabdyti Ciklą %1$d min., atsakykite kodu %2$s + %1$.2f vv/val laikina bazė, kurios trukmė %2$d min., aktyvuota sėkmingai + %1$.2f vv ištęstas bolusas, kurio trukmė %2$d min., aktyvuotas sėkmingai + %1$d%% laikina bazė, kurios trukmė %2$d min., aktyvuota sėkmingai + Laikina bazė neaktyvuota + Ištęstinis bolusas nepradėtas + Norėdami sustabdyti laikiną bazę, atsakykite kodu %1$s + Norėdami sustabdyti ištęstinį bolusą, atsakykite kodu %1$s + Laikina bazė atšaukta + Ištęstinis bolusas atšauktas + Laikinos bazės atšaukti nepavyko + Nepavyko atšaukti ištęstinio boluso + Nežinoma komanda arba neteisingas atsakymas + Greitasis patarėjas + Greitojo patarėjo nustatymai + Mygtuko tekstas: + Angliavandeniai: + Galioja: + Pridėti + Redaguoti + Pašalinti + Maistas + Korekcija + Veiksmai + AndroidAPS paleista + Tik įkelti duomenis į NS (ne sinchronizuoti) + Duomenys tik perkeliami į Nightscout. Gliukozės duomenys perkeliami tik tada, kai naudojama lokali programa, pvz.: xDrip. Naudojant NS-profilį, kiti profiliai neaktyvūs. + Pompa neprijungta! + Pompa neprijungta, profilis nepasirinktas! + Užpildyti kateterį/adatą + Įsitikinkite, kad nurodytas kiekis atitinka Jūsų infuzijos rinkinio specifikaciją! + Kita + Standartiniai insulino kiekiai kateterio/kaniulės užpildymui. + Mygtukas 1 + Mygtukas 2 + Mygtukas 3 + Vienetai: + mg/dl + mmol/l + IVT: + Tikslinis diapazonas: + Vizualizacijos diapazonas + Aukštoji ir žemoji riba Apžvalgos grafikuose bei išmaniuosiuose laikrodžiuose + Žemoji riba + Aukštoji riba + Išmanieji laikrodžiai + Pakartotinai siųsti visus duomenis + Atidaryti išmaniojo laikrodžio nustatymus + Pompos klaida + Senka akumuliatorius + Pompa išsijungė + Pompos baterija išsikrovusi + DanaR Korean + Valandinė bazė: + Nepavyko nustatyti bazės profilio + Bazės profilis pompoje atnaujintas + Išjungti pompos EasyUI režimą + Aktyvuoti ištęstinius bolusus pompoje + Pakeisti pompoje vv/d režimą į vv/val + Valandinės bazės vertė mažesnė už minimalią. Profilis nenustatytas! + KG: + Paskutinė KG: + Daugkartinės injekcijos + MM640g + Nuolatinis pranešimas + SENI DUOMENYS + Prieš %1$d min + prieš %1$dmin + Vietinis profilis + OpenAPS AMA + Trumpo laikotarpio vidutinis pokytis + Ilgo laikotarpio vidutinis pokytis + %1$d elementų masyvas. \naktuali vertė: + Autosens duomenys + Scenarijų derinimas + Naudoti Autosens funkciją + Atnaujinti įvykius iš NS + Ištrinti ateities įrašus + Netrukus valgysiu + Hipo + Aktyvumas + Ištrinti įrašą: + DanaR statistika + BPD viso + Eksponentiškai svertinė BPD + Valandinė bazė + Bolusas + BPD bendroji paros dozė + Data + Koeficientas + # dienų + Svoris + Duomenys netikslūs, jei bolusai naudojami sistemos ar adatų užpildymui! + Duomenys seni, spauskite \"ATNAUJINTI\" + Pagrindinė bazė (PB) + PB * 2 + Inicijuojama ... + VEIKS + KONF + CIKLAS + PP + AtvCiklas + VP + DANA + PRADŽIA + VPompa + NSprofilis + ĮRAŠ + PRIEŽ + TIKSL + WEAR + SMS + Naudoti sutrumpintus skirtukų pavadinimus + Visada naudoti trumpo laikotarpio vidutinį pokyti vietoj paprasto pokyčio + Naudinga, kai duomenys, gaunami iš nefiltruoto šaltinio, tokio kaip xDrip, tampa nestabilūs. + Papildomi nustatymai + Modelis: %1$02X Protokolas: %2$02X Kodas: %3$02X + Profilis + Numatytoji reikšmė: 3 tai pagrindinis OpenAPS saugiklis. Jis apriboja Jūsų valandinę bazę iki trigubos maksimalios valandinės bazės (standartiniu atveju). Jums greičiausiai neprireiks šios reikšmės keisti, tačiau turėtumėte žinoti, kad ji naudojama kaip saugiklis apskaičiuojant \"3x maksimali dienos bazė; 4x dabartinė valandinė bazė\". + Numatytoji reikšmė: 4 tai antras pagrindinis OpenAPS saugiklis, apskaičiuojant \"3x maksimali dienos bazė; 4x dabartinė valandinė bazė\". Jis reiškia, kad jūsų valandinė bazė, nepriklausomai nuo to, kokia maksimali valandinė bazė suprogramuota pompoje, negali būti didesnė, nei keturguba dabartinė valandinė bazė. Tai apsaugo Jus nuo pavojingų situacijų, kai nustatoma pernelyg didelė valandinė bazė, pilnai nesuprantant, kaip veikia algoritmas. Numatytoji reikšmė yra 4x; daugumai vartotojų niekada neprireikia šio skaičiaus keisti, o pajutus, kad \"atsitrenkiama\" į saugiklį, rekomenduojama peržiūrėti kitus nustatymus. + Numatytoji reikšmė: 1.2\nTai daugiklis Autosens (ir netrukus Autotune) funkcijoje, kuris nustato 20%% maksimalią ribą iki kurios Autosens gali padidinti valandinę bazę, sumažinti JIF ir tikslinę gliukozės vertę. + Numatytoji reikšmė: 0.7\nTai antras daugiklis Autosens funkcijoje, kuris nustato, kad Autosens gali iki minimalios 70 % ribos sumažinti valandinę bazę bei padidinti JIF ir tikslinę gliukozės vertę. + Autosens nustatomi tikslai + Numatytoji reikšmė: true\nTai suteikia Autosens funkcijai leidimą keisti tikslinės gliukozės vertes, JIF ir valandinę bazę. + Numatytoji reikšmė: 2\nBoluso snaudimas aktyvuojamas iškart po to, kai susileidžiate bolusą maistui. Ši funkcija neleidžia sistemai nustatyti mažų LBD iškart po valgio. Pvz.: jei IVT yra 3 val, tai boluso snaudimas pamažu deaktyvuojamas per 1,5 val (3 val. / 2). + Numatytoji reikšmė: 3.0 (AMA) arba 8.0 (SMB). Tai parametras, nurodantis angliavandenių poveikį kraujo gliukozei kas 5 minutes nuo jų suvartojimo. Numatytoji reikšmė yra 3 mg/dl per 5min. Šis skaičius turi įtakos apskaičiavimams, kaip greitai mažės AAO, kokia bus kraujo gliukozės kitimo prognozė, ypač kai ji krenta daugiau nei tikėtasi, arba nedidėja tiek, kiek tikėtasi. + Dėmesio!\nPaprastai neturėtumėte keisti šių, žemiau esančių, reikšmių. Prašome PASPAUSTI ČIA ir PERSKAITYKITE tekstą ir įsitikinkite, kad SUPRANTATE prieš keisdami bet kurią iš šių verčių. + Galimi tik skaičiai. + Galimi tik skaičiai intervale %1$s - %2$s. + Laukas negali būti tuščias + Telefono numeris negalioja + Neteisingas SMS telefono numeris + Kalibravimas + Siųsti kalibraciją %1$.1f į xDrip? + xDrip+ neįdiegta + Kalibracija nusiųsta į xDrip + Kalibracija išsiųsta. xDrip programoje turi būti įgalintas gavimas. + xDrip negauna kalibracijų + Pompa sustabdyta + Gaunamas pompos statusas + Laikinos bazės nustatymas + Laikinos bazės sustabdymas + Ištęsto boluso nustatymas + Ištęsto boluso sustabdymas + Bazė naujinama + Atsijungiama + Vykdoma + Virtualios pompos nustatymai + Perduoti būsenos duomenis į NS + Neteisingas slaptažodis + Nustatymų slaptažodis + Atrakinti nustatymus + Artėja paros insulino limitas + NSClient + NSCI + URL: + Automatinis slinkimas + Paleisti iš naujo + NSClient + Nightscout URL + Įveskite savo Nightscout URL + NS API secret + NS API secret + Įveskite NS API secret (min. 12 simbolių) + Suleisti dabar + Išvalyti eilę + Rodyti eilę + Eilė: + Statusas: + Pristabdyta + Ištrinti įrašą + NSCLIENT neturi įrašymo teisių. Ar teisingai įvedėte API secret? + Išmaniojo laikrodžio nustatymai + Rodyti AIO detaliai + Rodyti laikrodyje bazės ir bolusų AIO + Bandymas nesėkmingas - pasitikrinkite telefoną + Negalimas + Paciento amžius + Vaikas + Paauglys + Suaugęs + Insulinui rezistentiškas suaugęs + Pasirinkite paciento amžių saugumo riboms nustatyti + Glimp + %s įtraukite baterijos optimizavimą į baltąjį sąrašą, tinkamam veikimui užtikrinti + Ciklas sustabdytas + Sustabdyta (%1$d m) + Superbolusas (%1$d m) + Sustabdyti ciklą 1 val + Sustabdyti ciklą 2 val + Sustabdyti ciklą 3 val + Sustabdyti ciklą 10 val + Atjungti pompą 15 min + Atjungti pompą 30 min + Atjungti pompą 1 val + Atjungti pompą 2 val + Atjungti pompą 3 val + Atnaujinti + Prijungti pompą + Neteisinga trukmė + Ciklas sustabdytas + Ciklas atnaujintas + 15 min tendencija + AAO + Superbolus + Siųsti programos paleidimo žymę į NS + Uždarant aplikaciją, taikyti nustatymus. + DanaRv2 + Insulinas + Kokio tipo insuliną naudojate? + Greito veikimo insulinas + Novorapid, Novolog, Humalog + Fiasp + INS + Į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 spalvotus 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 [%] + AIO + AAO + Programinė įranga + Paskutinis prisijungimas + Bluetooth statusas + Apie + Trūksta leidimo SMS + Trūksta telefono būsenos leidimo + xDrip statusas (laikrodžio) + xDrip linija (laikrodžio) + xds + Rodyti KG + Pridėti KG prie statuso linijos + Nėra įkėlimų į NS + Visi duomenys, kurie gali būti siunčiami į NS, paliekami. AAPS yra susieta su NS, bet jokie pokyčiai NS nedaromi + Bazės žingsnis + Boluso žingsnis + Ištęstas bolusas + Laik.tikslas + Atšaukti ištęstą bolusą + Sensoriaus naudojimo laikas + Adatos naudojimo laikas + Insulino naudojimo laikas + valandos + Valandinės bazės tipas + Netinkamas profilis!!! + Profilio keitimas + Pompos baterijos naudojimo laikas + Pompos baterijos pakeitimas + Aliarmų nustatymai + Kritiškai aukštas + Aukštas + Žemas + Kritiškai žemas + Seni duomenys + Kritiškai seni duomenys + Seni duomenys, riba [min] + Kritiškai seni duomenys, riba [min] + Autosens intervalas [h] + Valandų skaičius praeityje jautrumo nustatymui (angliavandenių įsisavinimo laikas neįtrauktas) + Pompa + AtviraDKS + Siuntėjas + Jautrumo nustatymas + Kurį jautrumo nustatymo algoritmą naudoti? + JAUTR + Jautrumo nustatymo algoritmas Oref0 + Jautrumo nustatymo algoritmas Oref1 + Jautrumo nustatymo algoritmas AAPS + Angliavandenių įsisavinimo parametrai + Maksimalus angliavandenių įsisavinimo laikas [h] + Laikas, per kurį visi maisto angliavandeniai, tikėtina, bus įsisavinti + Rodyti ištęstinį boliusą kaip %% + SAMŽ + IAMŽ + KAMŽ + PBAMŽ + OAPS + Siunt + VB + IštBol + Laikyti ekraną įjungtą + Neleidžia Android sistemai išjungti ekrano. Naudojama daug energijos, jei telefonas neprijungtas prie maitinimo šaltinio. + Įjungę Autosens funkciją nepamirškite įvedinėti visus valgomus angliavandenius. To nedarant, angliavandenių sukeliami gliukozės svyravimai bus klaidingai identifikuojami kaip jautrumo pasikeitimai! + Jautrumas pagal svertinį vidurkį + OK + Atšaukti + Ne visi profiliai įkelti! + Reikšmės neišsaugotos! + Įgalinti duomenų perdavimą kitoms programėlėms (kaip xDrip). + Įgalinti lokalų duomenų perdavimą. + AKTYVUMAS & ATGALINIS RYŠYS + ANGLIAVANDENIAI & BOLUSAS + CGM & OPENAPS + POMPA + Valandinė bazė [vv/val] + Trukmė [min] + OpenAPS SMB + SMB + Įjungti NDM + Įjungti SMB + Naudoti Super Mikro Bolusus vietoj laikinos bazės greitesniam veikimui + Nedeklaruoto maisto (NDM) aptikimas + AIO kreivės pikas + Piko laikas [min] + Oref be piko + Greito veikimo Oref + Staigaus veikimo Oref + IVT %1$f per trumpa - bus naudojama %2$f! + Aktyvuoti profilį + Data + KLAIDA + Laukiama ryšio su pompa + Sujungta + Sujungimui skirtas laikas baigėsi + SUJUNGIMAS + Nerasta jokio prietaiso + Rezervuaras tuščias + Gliukozės kiekio kraujyje matavimo perspėjimas + Likusio insulino kiekis + DanaRS + Dana + Pasirinkta pompa + Susieti naują pompą + Boluso greitis + Nustatyti bazės žingsnį 0.01 vv/val + Serijos numeris + Procentais + Laiko perstūmimas + Numatyti Laikini Tikslai + \"Netrukus valgysiu\" trukmė + \"Netrukus valgysiu\" tikslas + \"Aktyvumas\" trukmė + \"Aktyvumas\" tikslas + \"Hipo\" trukmė + \"Hipo\" tikslas + Užpildyti sistemą + Gaunamas ištęstinio boluso statusas + Gaunamas boluso statusas + Gaunamas laikinos bazės statusas + Gaunami pompos nustatymai + Gaunamas pompos laikas + naudoti pakartotinai + Laikrodžio valdikliai + Nustatyti Laikinus Tikslus ir įvesti terapinius įrašus iš laikrodžio. + Prijungimo laikas baigėsi + Maistas + g + min + val + ]]> + kJ + Energ. vertė + Balt. + Rieb + ]]> + Laukiama boluso pabaigos. Liko %1$d s. + Apdorojama + Pradedamas bolusas + Komanda vykdoma + Pompos valdiklis pakoreguotas + Pompa nepasiekiama + Negauti KG duomenys + Naudoti sistemos perspėjimus aliarmams ir įspėjimams + Lokalūs perspėjimai + Perspėjimas apie negautus KG duomenis + Perspėjimas apie nepasiekiamą pompą + Perspėjimo apie nepasiekiamą pompą riba [min] + Kritiniai perspėjimai + INFO + Bluetooth + BT Watchdog + Vienai sekundei išjungia telefono bluetooth, jei ryšys su pompa nutrūksta. Gali būti veiksminga kai kuriems telefonų modeliams, turintiems BT problemų. + Dexcom G5 programėlė (modifikuota) + Dexcom G6 programėlė (modifikuota) + Eversense programėlė (modifikuota) + Perduoti KG duomenis į NS + KG duomenų perdavimo nustatymai + Rodyti gliukozės pokyčio detales + Rodyti pokytį su reikšme po kablelio + SMB atitinka valandinės bazės insulino kiekį, kuris gaunamas ne daugiau, kaip per + Pompos programinės įrangos versija nepalaikoma + Siųsti KG duomenis į xDrip+ + Xdrip+ pasirinkite 640g/Eversense duomenų šaltinį + NSClient KG + Valandinė bazė pakeista mažiausia palaikoma verte: %1$s + Valandinė bazė pakeista didžiausia palaikoma verte: %1$s + KG apskaičiavimas + Bolusų AIO apskaičiavimas + Bazės AIO apskaičiavimas + Tendencijos apskaičiavimas + Superboluso apskaičiavimas + Taip + Ne + Tik teigiamas + Tik neigiamas + AAO apskaičiavimas + Laikino tikslo apskaičiavimas + Ciklas aktyvuotas + DKS pasirinkta + NSClient turi leidimą įrašyti + Uždaras ciklas aktyvus + Maksimalus AIO nustatytas tinkamai + KG šaltinis pasirinktas teisingai + Bazės reikšmės nesuderintos su valandomis: %1$s + Netinkamas profilis: %1$s + Programuojamas bolusas + Atnaujinti + Būsena + Aktyvumas + Nėra ryšio su pompa %1$d min + %1$d%% (liko%2$d min) + Inicijuojama + Sustabdyta dėl klaidos + Sustabdyta vartotojo + Vykdoma + Laikina bazė atšaukiama + Nustatyti laikiną bazę (%1$d%% / %2$d min) + Bolusas (%.1f vv) + Atnaujinama + Pompa negali įvykdyti prašomos operacijos + Nesaugu: aktyvus ištęstinis arba dvibangis bolusas. Ciklas nustatytas stabdymui prie žemo tik 6 valandoms. Aktyvūs tik paprasti bolusai. + Nesaugu: pompoje nustatytas ne pirmasis bazės profilis. Ciklo režimas išjungtas. Pasirinkite pirmąjį bazės profilį pompoje ir spauskite atnaujinti. + Tokio paties dydžio bolusas buvo nustatytas per paskutines dvi minutes. Siekiant išvengti atsitiktinio perdozavimo ir programos klaidų, veiksmas neleidžiamas. + Dabar + Skaitoma pompos istorija + Pompos istorija + Nustatyti bazės profilį + Pompos rezervuaras beveik tuščias + Pompos baterija baigia išsikrauti + Pompa rodo klaidą E%1$d: %2$s + Žemas + Tuščias + Normalus + Būtina atnaujinti pompos laikrodį + Perspėjimas + Laikinos bazės atšaukimo perspėjimas patvirtintas + Nepavyko prijungti pompos. Bolusas nesuleistas + Boluso suleisti nepavyko. Panašu, kad nė kiek insulino nesuleista. Patikrinkite pompos įstoriją, kad įsitikintumėte tuo, ir bandykite vėl. Bolusai nekartojami automatiškai, siekiant apsisaugoti nuo programos klaidų. + Dėl įvykusios klaidos tik %1$.2f vv iš užprogramuotų %2$.2f vv suleista. Patikrinkite pompos istoriją ir imkitės reikalingų veiksmų. + Suleidžiant bolusą ir tikrinant pompos istoriją įvyko klaida, todėl patikrinkite pompą. Jei bolusas buvo suleistas, įrašas apie tai atsiras žurnale, kai ryšys su pompa atsinaujins. + Rezervuare nepakanka insulino bolusui + Ištęstinio boluso suleidimo klaida + Sight + Insight pompa + Būsena + Pakeista + POMPA SUSTABDYTA + Būsena atnaujinta + prieš + su + Aktyvi laikina bazė + liko minučių + Žurnalas + Paskutinis užbaigtas veiksmas + min. + liko virš + iš viso + iš anksto + Likti prisijungus visada + NEVEIKLUMAS + SINCHRONIZAVIMAS + UŽIMTA + SINCHRONIZUOTA + PALEISTIS + būtina + Nesate prisijungę prie lydinčios programėlės! + Lydinčioji programėlė neinstaliuota! + Nesuderinama lydinčioji programėlė, reikalinga versija + Nežinoma + Laukiama kodo patvirtinimo + Kodas atmestas + Sujungiama su programa + Neautorizuota + Nesuderinama + sek. + min. + val. + diena + savaitė + sek. + %1$ds baigiasi %2$s + Aktyvumo statusas + Statistika + Išankstinis sujungimas + Siekiant išvengti vėlavimo, automatiškai susijungti su pompa, kai AndroidAPS atidaroma, nelaukiant komandos pompai. + Nerekomenduojama dėl greito akumuliatoriaus iškrovimo + Leisti SMB visada + Leisti SMB visada, nepriklausomai nuo bolusų. Įmanoma tik naudojant patikimų, filtruotų KG duomenų šaltinį, pvz.: Dexcom G5 + Leisti SMB po angliavandenių įvedimo + Leisti SMB iki 6 val po angliavandenių įvedimo, net jei AK yra 0. Įmanoma tik naudojant patikimų, filtruotų KG duomenų šaltinį, pvz.: Dexcom G5 + Leisti SMB su AAO + Įjungti SMB, kai yra AAO. + Įjungti SMB su laikinais tikslais + Įjungti SMB, kai laikinas tikslas aktyvuotas (Netrukus valgysiu, Aktyvumas) + Įjungti SMB su intensyviais laikinais tikslais + Įjungti SMB, kai intensyvūs laikini tikslai yra aktyvūs (sportuosite) + Paleisti laikinąją bazę + Nutildyti + Insulinas + Angliavandeniai + Mygtukai + Siunčia kalibravimą į xDrip+ arba atidaro G5 kalibravimo dialogą + Atidaro xDrip+, o mygtukas ATGAL gražina į AAPS + Paspaudus mygtuką įvedamas nustatytas angliavandenių kiekis + Paspaudus mygtuką įvedamas nustatytas insulino kiekis + Nepavyko paleisti CGM programos. Įsitikinkite, kad ji įdiegta. + CGM + Istorija + Pranešti apie SMB + Rodyti SMB laikrodyje kaip standartinį bolusą. + Kurti klaidų pranešimus + Sukurti Nightscout pranešimus apie klaidas ir vietinius įspėjimus (taip pat matomi Priežiūroje prie Terapijos) + Rodyti prognozes laikrodyje. + Prognozė + Duomenų pasirinkimas + Duomenų perdavimas kūrėjams + Leisti 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ą + Pradėti Aktyvumo LT + Pradėti Netrukus valgysiu LT + LT + Boluso nesuleisti, tik įrašyti + Kategorija + Subkategorija + Bolusas bus tik įrašytas + Automatiškai atstatyti trūkstamus KG duomenis iš NS + SMB nustatyta iš pompos + Jautrumas insulinui + Nuokrypiai + Aktyvūs angliavandeniai + Aktyvus insulinas organizme + Valandinės bazės + Veiksmas nepasirinktas, nieko neįvyks + Pradėti \"Hipo\" LT + Naudojama neužbaigta versija. Uždaras ciklas neaktyvus. + Inžinerinis režimas įjungtas + Inžinerinis režimas negalimas vartotojo atšakoje + %.2f vv/val + Nuskaitomas bazės profilis + Skaič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. + Laikinas tikslo padidinimas atšauktas, nes skaičiavimuose neatsižvelgta į neseniai pakeistą pompos istoriją + Atnaujinama pompos būklė + Valandinė bazė pompoje pasikeitė ir netrukus bus atnaujinta + Valandinė bazė pompoje pasikeitė, bet nuskaityti nepavyko + Tikrinami istorijos pokyčiai + Keletas bolusų su tuo pačiu kiekiu buvo importuoti per tą pačią minutę. Tik vienas įrašas gali būti pridėtas. Prašome patikrinti pompą ir rankiniu būdu įveskite bolusą, naudojant Priežiūra skiltį. Įsitikinkite, kad boluso įrašo laikas nesutampa su kitais įrašais. + \n\nhttp://www.androidaps.org\nhttp://www.androidaps.de (de)\n\nfacebook:\nhttp://facebook.androidaps.org\nhttp://facebook.androidaps.de (de) + Paskutinis bolusas įrašytas anksčiau nei prieš 24 val. arba yra ateityje. Prašome patikrinti, ar data pompoje nustatyta teisingai. + Suleisto boluso laikas/data pompoje yra neteisingas, AIO panašu yra nekorektiškas. Prašome patikrinti pompos laiką/datą. + Neatliktas profilio keitimas. Prašome atlikti profilio keitimą arba paspausti \"Aktyvuoti profilį\" Vietinio profilio (VP) skiltyje. + Bolusų skaičius + LBD skaičius + %1$d tikslas nepradėtas + %1$d tikslas nepasiektas + Pompa negali nustatyti laikinos bazės + Jokio tinkamo bazės kiekio nenuskaityta iš pompos + Uždaro ciklo būsena išjungta nustatymuose + Autosens funkcija išjungta nustatymuose + SMB išjungti nustatymuose + NDM nustatymas išjungtas nustatymuose + NDM neveikia, nes priklauso nuo Oref1 jautrumo įskiepio + Ribojamas maksimalus bazės greitis %1$.2f vv/val dėl %2$s + pompos limitas + reikšmė turi būti teigiama + maksimalus bazės daugiklis + maksimalus paros bazės daugiklis + Bolusas buvo suleistas per paskutines 3 minutes, praleidžiant SMB + Bazė nustatyta teisingai + Ribojamas maks procentų kiekis %1$d%%, nes %2$s + Bolusas ribojamas iki %1$.1f vv dėl %2$s + Ištęstinis bolusas ribojamas iki %1$.1f vv dėl %2$s + Ribojamas maks AIO iki %1$.1f vv dėl %2$s + Ribojami angliavandeniai iki %1$d g dėl %2$s + Ribojamas AIO iki %1$.1f V dėl %2$s + Maksimali reikšmė nustatymuose + Nekeičiama riba + Nesaugus naudojimas + Būsenos nuskaityti nepavyko + Įrašas apie infuzijos rinkinio keitimą + Įrašas apie rezervuaro keitimą + Funkcijos \"SMB visada\" ir \"SMB po angliavandenių\" išjungtos, nes kraujo gliukozės duomenų šaltinis neturi reikalingo filtravimo + SMB neleidžiami atviro ciklo režime + Maistas + atstatyti + Laukiama laiko sinchronizavimo (%1$d sek.) + Nesujungta (%1$d min.) + Automatiniai priežiūros įvykiai + Automatiškai įkelti insulino, kanulės ir baterijos pakeitimus ir pompos aliarmus į Nightscout + Maksimalus bendras AIO, kurio negali viršyti OpenAPS [U] + Ši vertė yra vadinama Maks AIO OpenAPS kontekste\nOpenAPS nepridės daugiau insulino, jei dabartinis AIO yra didesnis už šią vertę + Pompa sustabdyta + Pompa paleista + Pompa pristabdyta + Maksimalus maisto įsisavinimo laikas [h] + Laikas, per kurį bet koks maistas laikomas įsisavintu. Likę angliavandeniai bus atmesti. + Laikas + Rodyti pastabų laukelį terapijos dialoguose + Kitas + Ankstesnis + Sąrankos vedlys + UŽBAIGTI + Pasirinkite kalbą + Įvesta: %1$.2fvv Suleista: %2$.2fvv Klaidos kodas: %3$s + Pirmas insulino dozės žingsnis + Antras insulino dozės žingsnis + Trečias insulino dozės žingsnis + Pirmas angliavandenių kiekio žingsnis + Antras angliavandenių kiekio žingsnis + Trečias angliavandenių kiekio žingsnis + CGM + Naudoti tik WiFi + WiFi pavadinimas + Tik įkraunant + Ryšio nustatymai + Leidžiami tinklai (atskirti kabliataškiais) + Leisti sujungimą tarptinkliniu ryšiu + Maksimali Autosens reikšmė + Minimali Autosens reikšmė + Boluso snaudimo daliklis + Maksimalus dienos bazės saugos daugiklis + Dabartinės bazės saugos daugiklis + n/a + Virtualios pompos tipas + Pompos nustatymas + Bolusas: Žingsnis=%1$s\nIštęstinis bolusas: [Žingsnis=%2$s, Trukmė=%3$smin-%4$sh]\nBazė: Žingsnis=%5$s\nLDB: %6$s (iš %7$s), Trukmė=%8$smin -%9$sh\n%10$s + * Virtualioje pompoje palaikomos tik atskiros vertės, o ne diapazonas detalumui užtikrinti. + Automatiškai užpildyti trūkstamus KG duomenis + Išmaniojo laikrodžio nustatymai + Skaičiavimai, įtraukti į Patarėjo rezultatą: + Ekrano nustatymai + Bendrieji nustatymai + Įjungti NSClient + Sveiki atvykę į sąrankos vedlį. Jis lydės jus per visą nustatymų procesą\n + Pompos nustatymai + Statuso nuskaitymas + Pakeitimai turi būti daromi NS + Praleisti sąrankos vedlį + Paspauskite mygtuką žemiau, norėdami leisti AndroidAPS patarti/atlikti bazės pakeitimus + Paspauskite mygtuką žemiau, norėdami aktyvuoti Tikslus. Užbaigę sąranką apsilankykite Tikslų skiltyje, kad AndroidAPS būtų visiškai funkcionali.\n + Aktyvuoti Tikslus + Konfigūruoti DKS įskiepį + 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 pradėti 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ą + Pasirinkite vieną iš esamų algoritmų. Jie yra išdėstyti nuo seniausio iki naujausio. Naujesni algoritmai yra galingesni ir agresyvesni. Taigi jei esate naujas vartotojas, geriau pradėti nuo AMA, o ne naujesnio. Nepamirškite perskaityti dokumentaciją ir sukonfigūruoti jį prieš naudojant. + Pradėti jūsų pirmąjį tikslą + Leidimas + Prašyti leidimo + Aplikacijai reikia vietos nustatymo leidimo BT skenavimui atlikti + Aplikacijai reikia leidimo prieigai prie saugyklos, kad galėtų išsaugoti žurnalo įrašus + Užklausa + Konfigūruoti insulino įskiepį + Išeiti + Vartotojo parinktys + Rodyti laiko formatą + Mygtukų slinkties funkcija + Pypsėjimas spaudžiant mygtukus + Aliarmas + Garsas + Vibravimas + Abu + Ekrano aktyvumo laikas [s] + Ekrano apšvietimo laikas [s] + KG vienetai + Išjungimas (val.) + Žemas rezervuaro lygis (vv) + Išsaugoti nustatymus pompoje + Įjungti + Išjungti + Atidaryti meniu + Uždaryti meniu + Įskiepių nustatymai + Užbaigta, puiku! + Dar nebaigta + Praėjo laiko + %1$d. tikslas + Poctech + Gauti KG vertes iš Poctech programėlės + Gauti KG vertes iš Tomato programėlės (MiaoMiao) + Intensyvus laikinas tikslas didina jautrumą + = 100]]> + Pasyvus laikinas tikslas mažina jautrumą + + Netinkami pompos nustatymai, patikrinkite dokumentaciją ir įsitikinkite, kad Quick info meniu yra pavadintas QUICK INFO, naudojant 360 configuration software. + Pasirinktinis + Didelis laiko neatitikimas + Didelis laiko skirtumas:\nLaikas pompoje skiriasi daugiau nei 1,5 val.\nNustatykite laiką pompoje rankiniu būdu ir įsitikinkite, kad įrašai iš pompos istorijos nesukelia netikėtų sistemos veiksmų.\nJei įmanoma, ištrinkite istoriją pompoje prieš keisdami laiką arba atjunkite uždarąjį ciklą vienai IVT po paskutinio neteisingo istorijos įrašo ar mažiausiai vienai IVT nuo dabar. + Ištrinti \"AndroidAPS paleista\" įrašus + Rasti išsaugoti nustatymai + Dėmesio: jei aktyvuosite ir prijungsite prie aparatinės pompos, AndroidAPS nukopijuos bazės nustatymus iš profilio į pompą, pakeisdamas esančius nustatymus pompoje. Įsitikinkite, kad turimi bazės nustatymai AndroidAPS yra teisingi. Jei nesate tikri arba nenorite iš naujo keisti bazės nustatymų jūsų pompoje, paspauskite atšaukti ir pakartokite prijungimą prie pompos kitą kartą. + Terapijos duomenys nepilni + Serviso nustatymai + El. paštas + Neteisingas el. pašto adresas + Siunčiamų įrašų skaičius + Servisas + Serv + Pateikia keletą serviso funkcijų (pvz., žurnalo įrašų siuntimas ar ištrynimas). + Siųsti įrašus el. paštu + Ištrinti įrašus + Įrašas (insulinas: %1$.2f, angl.: %2$d, ties: %3$s) negali būti pridėtas. Prašome patikrinti ir rankiniu būdu atitinkamai įtraukti įrašą. + eAngl.: %1$d g (%2$d h), atidėjimas: %3$d m + Nėra autosens duomenų + Įrašų nustatymai + Atkurti numatytuosius + NSClient sutrikimas. Reikėtų paleisti iš naujo NS ir NSClient. + AS + Versiją %1$s jau galima naudoti + Laiko poslinkis + Pageidaujamas DKS režimas + Viso + Skaič. + Ryšio užmezgimas + Siųsti šios dienos žurnalo įrašus kūrėjams dabar. Netikėta situacija. + Pažeistas maks boluso limitas + Komandos klaida + Greičio klaida + Pažeistas insulino dozės limitas + Minimalaus pokyčio užklausa [%] + 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… + Sujungimas sėkmingas + Ar kodas, kurį matote įrenginyje, sutampa su pompos kodu? + Insight sujungimas + Accu-Chek Insight + %1$.2fvv iš %2$.2fvv suleista + %1$s: %2$s + Kateteris pakeistas + Pompos laikas pakeistas + Patvirtinti + Nutildyti + Pompos aliarmas + Įrašyti adatos pakeitimą + Įrašyti rezervuaro keitimus + Įrašyti infuzijos vamzdelio pakeitimą + Įrašyti baterijos pakeitimą + Įrašyti darbo režimo pakeitimus + Įrašyti įspėjimus + Aktyvuoti LBD emuliaciją + Naudoti ištęstinius bolusus vietoj laikinos bazės, kai viršijama 250%% riba + Atjungimo vėlavimas [s] + Serijos numeris + Išleistos programinės įrangos versija + UI procesoriaus programinės įrangos versija + PC procesoriaus programinės įrangos versija + MD tel procesoriaus programinės įrangos versija + Saugos procesoriaus programinės įrangos versija + BT info puslapio versija + Bluetooth adresas + Sistemos ID priedėlis + Pagaminimo data + Panaikinti sąsają + Sąsajos informacija + Atnaujinti būseną + Paleisti pompą + Sustabdyti pompą + Darbinis režimas + Būsena + BPD bolusai + BPD bazė + BPD viso + Atstatoma + Nesusieta + Paskutinis prisijungimas + Pradžia + Sustabdyta + %1$d%% - %2$d / %3$d min + Ištęstas bolusas + Daugiabangis bolusas + %1$.2f / %2$.2f vv per %3$d min + Įjungti pranešimus apie LBD pabaigą\n(pompos nustatymai) + Išjungti pranešimus apie LBD pabaigą\n(pompos nustatymai) + Atnaujinti + Accu-Chek Insight pompos integracija + Neįvestas + Paskutinis prisijungimas: prieš %1$d min + LBD: %1$d%% - %2$d / %3$d min + Ištęstas: %1$.2f / %2$.2f V %3$d min + Daugiabangis: %1$.2f / %2$.2f vv %3$d min + BPD: %1$.2f + Rez.: %1$.2fvv + Bat.: %1$d%% + Didž. atkūrimo trukmė [s] + Min. atkūrimo trukmė [s] + Atkūrimo trukmė + Ryšio užmezgimui skirtas laikas baigėsi - iš naujo nustatykite bluetooth + == ∑ %1$s vv + vv/val + g/vv + /vv + Registruoti sensoriaus keitimą NS + Sukurti įvykį \"Sensoriaus keitimas\" NS automatiškai, startavus sensorių + Tomato (MiaoMiao) + Tomato + Laiko persukimas įvyks po 24 val ar mažiau + Laikas persuktas prieš mažiau nei 3 val - Uždaras ciklas deaktyvuotas + vidinės saugyklos apribojimas + Atlaisvinkite ne mažiau kaip %1$d MB iš vidinės atminties! Ciklas išjungtas! + Neteisingas formatas + Neteisingas kodas. Komanda atšaukta. + Nesukonfigūruota + Profilio perjungimas sukurtas + + %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ų) + + diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index 42c567f870..405918431f 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -9,7 +9,6 @@ Reset database Wil je echt de database wissen? Afsluiten - Gebruik vertraagde bolussen voor >200% DanaR Bluetooth apparaat Gebruik altijd absolute basale waarden Herstart je telefoon of herstart AndroidAPS vanuit de systeem instellingen a. u. b. \nanders zal AndroidAPS geen logboek hebben (Belangrijk om te controleren of de algoritmes correct werken)! @@ -309,7 +308,6 @@ Stop STOP INGEDRUKT Wacht op pomp - Er worden %.2fE toegediend Opzetten van visualisatie en monitoring en analyzeren van basaal en ratio\'s Controleren van beschikbaarheid BG en insuline pomp data op Nightscout Starten met de Open Loop modus @@ -333,7 +331,6 @@ Stel in en gebruik tijdelijk en standaard tijdelijke streefdoelen (bv. bij sport Loop is uitgeschakeld Loop is ingeschakeld %1$.2f gelimiteerd tot %2$.2f - Waarde %s is buiten de toegestane limieten Commando\'s op afstand zijn niet toegestaan Om de loop te onderbreken voor %1$d minuten antwoord met de code %2$s Tijdelijk basaal %1$.2fE/u voor %2$d minuten succesvol gestart @@ -447,7 +444,6 @@ Stel in en gebruik tijdelijk en standaard tijdelijke streefdoelen (bv. bij sport Profiel Standaard waarde: 3.0 Dit is een belangrijke veiligheid parameter van OpenAPS. Dit limiteert je basaal met een max van 3 maal je hoogste basale dosis. Normaal hoef je deze niet te veranderen. Het is echter belangrijk dat je de ingebouwde limieten kent. Standaard waarde: 4 Dit is een combinatie van enerzijds het OpenAPS veiligheid limieten en anderzijds van “3 x max dagelijks basaal; 4x actueel”. Dit betekent dat het basaal niet hoger kan ingesteld worden dan het ingestelde nummer keer het actueel basaal waarbij de limiet in de pomp geen invloed heeft. Dit is een veiligheidsmaatregel om te voorkomen dat patiënten in gevaarlijke laag bereik komen zonder te snappen hoe het algoritme werkt. Nogmaals de standaard waarde is 4x; de meeste zullen deze waarde nooit moeten aanpassen maar zullen eerder andere waardes moeten aanpassen als ze tegen een limiet aanstoten. - Standaard waarde: 1.2\nDit betekent dat de verhoging voor autosense ratio (en autotune ratio) is ingesteld op max 20%. Maw. een limiet in hoeverre je basaal kan worden verhoogd en hoeveel je ISF en BG doel verlaagd kan worden. Standaard waarde: 0.7\nDit is de andere kan van de autosens veiligheid limiet. Dit zet een limiet op hoe laag het basaal kan aangepast worden, en hoe hoog het ISF en het streef BG. Autosens past de streefwaardes ook aan Standaardwaarde: waar Dit wordt gebruikt om autosens de bevoegdheid te geven BG doelen aan te passen alsook ISF en basalen @@ -460,7 +456,6 @@ Stel in en gebruik tijdelijk en standaard tijdelijke streefdoelen (bv. bij sport Telefoon nummer niet conform Foutief SMS telefoon nummer Kalibratie - Verzend calibratie %.1f naar xDrip? xDrip+ niet geïnstalleerd Kalibratie naar xDrip verzonden Kalibratie verzonden. Het ontvangen van kalibraties moet actief zijn in xDrip. @@ -601,7 +596,6 @@ Stel in en gebruik tijdelijk en standaard tijdelijke streefdoelen (bv. bij sport Opname instellingen Max absorptietijd maaltijd [uur] Verwachte tijd in uren totdat alle koolhydraten opgenomen zijn - Toon vertraagde bolussen in % aan SAGE IAGE CAGE @@ -714,8 +708,6 @@ Stel in en gebruik tijdelijk en standaard tijdelijke streefdoelen (bv. bij sport Stuur BG data naar xDrip+ In xDrip+ kies 640g/Eversense data bron NSClient BG - Basale waarde vervangen door minimaal ondersteunde waarde; %s - Basale waarde vervangen door maximale ondersteunde waarde: %s BG berekening Bolus IOB berekening Basaal IOB berekening @@ -733,8 +725,6 @@ Stel in en gebruik tijdelijk en standaard tijdelijke streefdoelen (bv. bij sport Closed modus actief Maximum IOB juist ingesteld BG beschikbaar op gekozen bron - Basale patroon niet geschikt op complete uren: %s - Ongeldig profiel: %s Bolus in pomp programmeren Vernieuw Status @@ -1075,7 +1065,6 @@ Stel in en gebruik tijdelijk en standaard tijdelijke streefdoelen (bv. bij sport Werkingsmodus-wissel noteren Alarm noteren TBR-emulatie inschakelen - Gebruik Vertraagde Bolus ipv TBRs om de limiet van 250% te omzeilen Verbindingsvertraging [s] Serienummer Release softwareversie diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index 303a53d678..18f711530c 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -9,7 +9,6 @@ Zresetuj bazy danych Na pewno chcesz zresetować bazy danych? Wyjście - Używaj przedłużonych bolusów >200% Urządzenie Bluetooth DanaR Zawsze używaj wartości bezwzględnych bazy Proszę uruchomić ponownie telefon lub zrestartować AndroidAPS w ustawieniach systemu telefonu \ninaczej AndroidAPS nie będzie otrzymywał logowań (ważne ze względu na śledzenie i sprawdzanie poprawności działania algorytmów)! @@ -54,6 +53,7 @@ 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ź Jednostki @@ -265,6 +265,10 @@ Aby dostarczyć bolus %1$.2fU wprowadź kod %2$s Aby wysłać kalibrację %1$.2f wprowadź kod %2$s Bolus nieudany + Bolus %1$.2fU dostarczony prawidłowo + Zamierzam podać %1$.2fU + Bolus %1$.2fU dostarczony prawidłowo + Dostarczam %1$.2fU Zezwalaj na komendy zdalne via SMS Palec Sensor @@ -309,7 +313,6 @@ Stop NACIŚNIĘTY STOP Czekam na pompę - Zamierzam podać %.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 Uruchamiam otwartą pętle (OpenLoop) @@ -332,7 +335,6 @@ Pętla (Loop) jest wyłączona Pętla (Loop) jest włączona %1$.2f ograniczone do %2$.2f - Wartość %s jest poza dopuszczalną granicą Zdalne komendy nie są dozwolone Aby wstrzymać pętle na %1$d minut odpowiedz kodem %2$s Tymczasowa baza %1$.2fU/h przez %2$d min rozpoczęta @@ -446,7 +448,6 @@ Profil Wartość domyślna: 3 To jest kluczowy współczynnik bezpieczeństwa OpenAPS. Ogranicza dawki bazowe do 3x twojej największej dawki bazowej. Prawdopodobnie nie będziesz musiał tego zmieniać, ale powinieneś być świadomy tego, co się rozumie przez “3x max dzienna; 4x aktualna” dla współczynników bezpieczeństwa. Wartość domyślna: 4 To jest drugi kluczowy współczynnik bezpieczeństwa OpenAPS, i druga wartość z “3x max dzienna; 4x aktualna”. To oznacza, że Twoja dawka bazowa niezależnie od maksymalnej bazy ustawionej na pompie nie może być większa niż ta ustawiona wartość razy twoja aktualna dawka bazowa. To ma na celu przestrzec ludzi przed ustawieniem zbyt wysokiej dawki maksymalnej przed zrozumieniem jak działa algorytm. Ponownie, wartość domyślna to 4x; większość ludzi nie będzie potrzebowała tego zmienić i raczej będą potrzebować dostosować inne ustawienia, jeśli czują, że zbliżają się do współczynnika bezpieczeństwa. - Wartość domyślna: 1.2\nTo jest mnożnik dla autosens (wkrótce autotune), ustawia 20% maks. limit dla najwyższej wartości jaką autosens może przyjąć, co z kolei określa jak wysoko autosens może zwiększyć bazę, jak nisko może ustawić współczynnik wrażliwości insuliny ISF, i jak nisko może ustawić docelową wartość glikemii. Wartość domyślna: 0.7\nDruga strona limitu bezpieczeństwa dla autosens, ustawia mnożnik minimalny dla wartości, do jakiej autosens może obniżyć bazę, i jak wysoko może ustawić ISF i wartość docelową BG. Autosens wpływa na wartości docelowe Domyślnie włączone\nTa funkcja pozwala wpływać na zmianę wartości docelowe BG, wartości bazy i oraz współczynnika wrażliwości na insulinę ISF. @@ -459,7 +460,6 @@ Nieprawidłowy numer telefonu Nieprawidłowy numer telefonu SMS Kalibracja - Wysłać kalibrację %.1f do xDrip? xDrip+ nie zainstalowany Kalibracja przesłana do xDrip Kalibracja wysłana. Odbiór musi być dozwolony w xDrip. @@ -601,7 +601,6 @@ Ustawienia wchłaniania Maks. czas wchłaniania posiłku [h] Oczekiwany czas w godzinach, w którym wszystkie węglowodany zostają wchłonięte - Pokazuj bolus przedłużony w % SAGE IAGE CAGE @@ -714,8 +713,6 @@ Prześlij dane BG do xDrip+ W xDrip+ wybierz źródło danych 640g/Eversense NSClient BG - Wartość bazy zastąpiona minimalną obsługiwaną wartością: %s - Wartość bazy zastąpiona maksymalną obsługiwaną wartością: %s Obliczenia BG Obliczenia Bolus IOB Obliczenia IOB @@ -733,8 +730,6 @@ Tryb zamknięty włączony Maks. IOB ustawione poprawnie BG dostępne z wybranego źródła - Wartości bazy nie są ustawione w pełnych godzinach: %s - Nieprawidłowy profil: %s Programowanie pompy do podawania bolusa Odśwież Stan @@ -1075,7 +1070,6 @@ Melduj zmiany trybu pracy Melduj ostrzeżenia Włącz emulację TBR - Użyj rozszerzonych bolusów zamiast TBR by ominąć limit 250% bazy Opóźnienie rozłączenie [s] Numer seryjny Wersja oprogramowania diff --git a/app/src/main/res/values-pt/insight_alert_titles.xml b/app/src/main/res/values-pt/insight_alert_titles.xml index 547fcd1101..ce662edb55 100644 --- a/app/src/main/res/values-pt/insight_alert_titles.xml +++ b/app/src/main/res/values-pt/insight_alert_titles.xml @@ -12,14 +12,19 @@ Fora da Garantia Basal temporária cancelada Bolus cancelado + Aviso de periodo de empréstimo + Cartucho não inserido Cartucho vazio Bateria vazia + Desligar automático - bomba parada Oclusão + Fim de período de empréstimo - Fim de operação Mudança de Cartucho não concluída Falha no download de dados Tempo limite de modo de pausa Tipo de bateria não definido Tipo de Cartucho não definido Erro mecânico + Erro Rebobinar Erro de idioma
diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml index c76c389920..6499f63e59 100644 --- a/app/src/main/res/values-pt/strings.xml +++ b/app/src/main/res/values-pt/strings.xml @@ -9,7 +9,6 @@ Reinicializar base de dados Quer realmente reiniciar a base de dados? Sair - Usar bolus prolongado de >200% Dispositivo Bluetooth DanaR Usar sempre valores absolutos de basal Por favor, reinicie o seu telefone ou reinicie o AndroidAPS a partir das Configurações do Sistema \ncaso contrário, o AndroidAPS não terá registro (importante para controlar e verificar se os algoritmos estão a funcionar corretamente)! @@ -266,6 +265,10 @@ Para dar bolus %1$.2fU responder com código %2$s Para enviar calibração %1$.2f responder com código %2$s Bólus falhado + Bólus %1$.2fU enviado com êxito + Vai ser enviado %1$.2fU + Bólus %1$.2fU enviado com êxito + A enviar %1$.2fU Permitir comandos remotos via SMS Dedo Sensor @@ -310,7 +313,6 @@ Parar STOP PRESSIONADO À espera da bomba - Vai ser enviado %.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 um open loop @@ -333,13 +335,14 @@ Loop desactivado Loop activado %1$.2f limitado a %2$.2f - O valor %s está fora dos limites permitidos O comando remoto não é permitido Para suspender o loop por %1$d minutos resposta com código %2$s Basal temporária %1$.2fU/h para %2$d min iniciada com êxito Início basal temp falhou Basal temp cancelada Não foi possivel cancelar a basal temp + Falhou o cancelamento do bolus extendido + Comando desconhecido ou resposta errada Assistente Rápido Definições do Assistente Rápido Texto do botão: @@ -447,7 +450,6 @@ Perfil Valor padrão: 3 Por segurança é o valor limite estabelecido por OpenAPS. O que faz é limitar a basal a x3 a basal mázima. Se necessário modificar este valor, por favor ter em conta que os dados apontam para que os limites de segurança sejam - 3 x max diario ou 4x valor actual (qual seja menor) como valores máximos. Valor padrão: 4 Esta é a outra parte dos valores limites de segurança - 3 x max diário ou 4x valor actual - do OpenAPS. Isto define que não importa o valor da basal máxima definido na bomba, o valor máximo da basal temporária não pode ser maior que 4 x o valor da basal definida na bomba. O objectivo é evitar que sejam determinadas basais temporárias demasiado elevadas antes que se perceba como o algoritmo funciona. 4x é um valor que a maior parte das pessoas nunca necessitará de alterar pois o mais provável é necessitar de alterar outras definições para não necessitar de \"ultrapassar\" este limite de segurança. - Valor predefinido: 1.2\n Este é um multiplicador para autosens (e em breve autotune) que coloca um limite máximo de 20% aos rácios superiores e inferiores de autosens, o que por sua vez calcula o quão alto autosens pode ajustar a basal, quão pode baixar o Factor de Sensibilidade (ISF) e baixar o valor alvo de glucose no sangue (BG). Valor padrão: 0.7\nO outro lado dos limites de segurança do autosens. Coloca um tecto no quão baixo autosens pode ajustar as basais, e quão alto pode ajustar os valores de ISF e valor alvo de glucose no sangue (BG). Autosens também ajusta os alvos Valor padrão: true\nÉ usado para permitir que autosens possa ajustar os valores alvo de glucose no sangue (BG), além de ISF e basais. @@ -460,7 +462,6 @@ Número de telefone não é válido SMS número de telefone inválido Calibração - Enviar calibração %.1f para o xDrip? xDrip+ não está instalado Calibração enviada para o xDrip Calibração enviada. Recepção têm de estar activada no xDrip. @@ -601,7 +602,6 @@ Configurações de absorção Tempo máx. absorção refeição [h] Tempo em horas, espectável para que todos os hidratos de carbono da refeição sejam absorvidos - Visualizar bólus estendido com % SAGE IAGE CAGE @@ -714,8 +714,6 @@ Enviar dados Glic. para xDrip+ Seleccionar 640g/Eversense como fonte no xDrip+ Glic NSCliente - Valor da basal alterado para o valor mínimo suportado: %s - Valor da basal alterado para o valor máximo suportado: %s Cálculos Glic Cálculo de Bólus IOB Cálculo de Basal IOB @@ -733,8 +731,6 @@ Modo fechado ativado IOB máxima definida correctamente Glicemia disponivel desde a fonte selecionada - Valores das basais não definidos por horas: %s - Perfil inválido: %s A programar a bomba para injectar o bolus Actualizar Estado @@ -1070,19 +1066,22 @@ Silêncio Alerta da Bomba Registar alterações de local + Número de unidades do reservatório alteradas Registar alterações de tubo Registar mudanças de bateria Alterações do modo de funcionamento de registo Alertas de registo Ativar a emulação TBR - Usar bolus estendidos em vez de TBRs para contornar o limite de 250% + Atraso de desconexão [s] Número de série Lançar versão de software Versão de software do processador de interface do utilizador Versão do software do processador de PC Versão do software do processador MD tel Versão de software do processador de segurança + Página de informação da versão do BT Endereço Bluetooth + Apêndice do ID de sistema Data de fabrico Eliminar emparelhamento Informações de emparelhamento @@ -1103,6 +1102,7 @@ Bólus estendido Bólus Multi-Onda %1$.2f / %2$.2f U por %3$d min + Desativar notificação do fim da basal temporária\n(configuração da bomba) Desativar notificação do fim da basal temporária\n(configuração da bomba) Actualizar Integração de bomba para bombas Accu-Chek Insight @@ -1126,6 +1126,8 @@ Tomato restrição de armazenamento interno Liberte pelo menos %1$d MB do armazenamento interno! Loop desativado! + Formato incorrecto + Código errado. Comando cancelado. Não configurado Troca de perfil criada diff --git a/app/src/main/res/values-ro/strings.xml b/app/src/main/res/values-ro/strings.xml index bca606bc90..67868f930a 100644 --- a/app/src/main/res/values-ro/strings.xml +++ b/app/src/main/res/values-ro/strings.xml @@ -9,7 +9,6 @@ Resetează bazele de date Sigur resetați bazele de date? Ieșire - Folosiți bolusuri extinse pentru >200% Dispozitive bluetooth DanaR Folosește întotdeauna valori absolute ale bazalei Restartați telefonul sau reporniți aplicația AndroidAPS din System Settings \naltfel AndroidAPS nu va putea face loguri (importante pentru verificarea corectitudinii funcționării algoritmilor)! @@ -309,7 +308,6 @@ Stop STOP APĂSAT Se așteaptă pompa - Se vor livra %.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 în mod buclă deschisă @@ -332,7 +330,6 @@ Bucla este dezactivată Bucla este activată %1$.2f este limitată la %2$.2f - Valoarea %s este mai mare decât limita fizică Comanda de la distanță nu este permisă Pentru suspendarea buclei pentru %1$d minute trimiteți codul %2$s Bazala temporară %1$.2fU/h pentru %2$d minute a fost trimisă cu succes @@ -446,7 +443,6 @@ Profil Valoare implicită: 3\nAceasta este o setare de critică de securitate a OpenAPS. Asta înseamnă că se limitează bazala lade 3x valoarea maximă a bazalelor tale.Cel mai probabil nu veți schimba această valoare, dar trebuie să țineți cont de ce se discută despre “3x max zilnic; 4x curent” ca valori de siguranță. Valoare implicită: 4\nAceasta este cealaltă jumătate a cheii de siguranță a OpenAPS și cealaltă jumătate a \"3x max zilnic; 4x curent\" al setărilor de siguranță.Aceasta înseamnă că bazala dumneavoastră, indiferent de bazala maximă configurată în pompă, nu poate fi mai mare de acest număr înmulțit cu nivelul curent al bazalei active. Această limitare este impusă pentru a evita posibilitatea de a intra pe un teritoriu periculos prin setarea unei bazale maxime excesiv de mari înainte de a înțelege funcționarea algoritmului. Din nou, valoarea implictă este 4x; majoritatea oamenilor nu vor trebui să ajusteze această valoare și vor modifica, mai degrabă, alte valori dacă vor simți că această valoare le stă în cale. - Valoare implicită: 1.2\nAceasta este valoarea limită de multiplicare pentru autosens (și pentru autotune, în curând) pentru a seta o limită maximă de 20% din cât de mare poate fi raportul autosens, care, la rândul ei, determină cât de mult poate autosens să modifice bazalele, cât de jos poate modifica ISF și cât de jos poate pune ținta glicemiei. Valoare implicită: 0.7\nCealaltă parte a limitelor autosens, care limitează cât de jos poate ajusta bazalele și cât de mult poate mări ISF și țintele de glicemie. Autosens ajustează țintele la Valoare implicită: adevărat\nAceasta se folosește pentru a permite autosens să ajusteze țintele de glicemie, pe lângă modificările asupra ISF și bazalelor. @@ -459,7 +455,6 @@ Numărul de telefon este invalid Număr de telefon SMS invalid Calibrare - Trimite calibrarea %.1f către xDrip? xDrip+ nu este instalat. Calibrare trimisă către xDrip Calibrare trimisă. Recepționarea trebuie să fie activată și în xDrip. @@ -600,7 +595,6 @@ Setări absorbție Timp maxim absorbție masă [o] Timp în ore la care se presupune că toți carbohidrații sunt absorbiți - Afișati bolusul extins ca % VS VI VC @@ -713,8 +707,6 @@ Trimite date glicemie la xDrip+ Selectați 640g/Eversense ca sursă de date în xDrip+ Glicemie NSClient - Valoarea bazalei a fost înlocuită cu valoarea minimă posibilă: %s - Valoarea bazalei a fost înlocuită cu valoarea maximă posibilă: %s Calcul glicemie Calcul IOB bolus Calcul IOB bazală @@ -732,8 +724,6 @@ Mod buclă închisă activat IOB maxim configurat corect Glicemie disponibilă din sursa selectată - Valori bazale nealiniate la ore: %s - Profil invalid: %s Se programează pompa pentru livrare bolus Reîncarcă Stare @@ -1074,7 +1064,6 @@ Înregistrează schimbările modului de operare Înregistrează alertele Activează emularea RBT - Folosește bolus extins în locul RBT pentru a trece de limita de 250% Întârziere a deconectării [s] Număr de serie Versiunea de software diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index a8311ca6a7..e970c21d48 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -9,7 +9,7 @@ обнулить базы Вы действительно хотите обнулить базы данных? Выход - Для величин >200% пользуйтесь пролонгированным болюсом + Для величин >200%% пользуйтесь пролонгированным болюсом устройство блутус danaR Всегда пользуйтесь абсолютными величинами для базала Пожалуйста перезагрузите телефон или перезапустите AndroidAPS из системных настроек \иначе AndroidAPS не будет вести лог (важно для отслеживания и проверки алгоритмов)! @@ -314,7 +314,7 @@ стоп нажат стоп ожидание помпы - Будет доставлено %.2fU ед. инс + Начинается подача болюса %1$.2fед. настройка визуализации и мониторинга, анализ базала и коэффициентов убедитесь что СК и данные помпы передаются в NS старт незамкнутого цикла @@ -337,7 +337,7 @@ зцикл не работает зцикл работает %1$.2f ограничено до %2$.2f - величина %s недопустима + Величина %1$s недопустима удаленная команда не разрешена Удаленный болюс недоступен, повторите попытку позже. Чтобы подать базал %1$.2fед./ч в течение %2$d мин. ответьте кодом %3$s @@ -464,7 +464,7 @@ профиль значение по умолчанию:3 Это ключевой ограничитель безопасности OpenAPS. Он ограничивает величину вашего базала максимум до 3x максимума. Вам вероятно не понадобится менять эту величину но вам следует понимать, что она входит в формулу дуэта \"максимум 3x ежедневное; 4x текущее\" значение по умолчанию: 4 . Это вторая половина обеспечения безопасности OpenAPS из дуэта \"максимум 3x ежедневное; 4x текущее\" Означает что ваша база независимо от установок помпы не может быть выше чем это число умноженное на текущее значение базала. Ограничение для того, чтобы предотвратить вторжение в опасную зону из-за высокого уровня установленных значений базы без понимания алгоритма работы приложения. Большинству людей никогда не потребуется изменять это значение, скорее всего нужно поменять другие настройки если вы чувствуете, что вам мешает это ограничение. - знач по умолчанию:1,2. Это множитель для autosens (вскоре autotune) с лимитом 20% который определяет насколько высоко autosens может поднять базал, насколько низко опустиь ISF (чувствительность к инс)и целевые СК + Значение по умолчанию: 1,2\n Это множитель для autosens ( и вскоре autotune) с лимитом 20%% который определяет лимит верхнего значения autosens, который в свою очередь предопределяет верхнюю границу базала, границы изменения чувствительности к инсулину ISF и нижние границы целевой ГК. по умолчанию:0.7 Еще один параметр безопасности autosens, определяющий как низко он может опускать базал и как высоко поднимать ISF (чувств к инс) и целевые СК Autosens тоже подстроит цели значение по умолчанию : верно. используется чтобы разрешить юстировку целевых СК, а также ISF и базала @@ -477,7 +477,7 @@ неверный номер телефона неверный номер телефона для смс калибровка - отправить калибровку %.1f на xdrip? + Отправить калибровку %1$.1f на xDrip? xdrip+ не установлен калибровка передается на xdrip калибровка отправлена. в xdrip должен быть активирован прием @@ -618,7 +618,7 @@ Настройки усваиваемости Максимальное время усваимости пищи [h] (час) Ожидаемое время усваивания всех углеводов пищи в часах - Просмотреть расширенный болюс % + Показать пролонгированный болюс в %% ВОЗРСенс ВозрИнс ВозрКан @@ -731,8 +731,8 @@ Отправить данные СК на xDrip+ В xDrip + выберите источник данных 640g/Eversense СК с клиента Nightscout - Значение базала заменено минимальной поддерживаемой величиной: %s - Значение базала заменено максимальной поддерживаемой величиной: %s + Значение базала заменено минимальной поддерживаемой величиной: %1$s + Значение базала заменено максимальной поддерживаемой величиной: %1$s Вычисление СК Расчет болюсного активного инсулина IOB Расчет базального активного инсулина IOB @@ -750,8 +750,8 @@ Режим замкнутого цикла включен Максимум активного инсулина IOB установлен правильно СК доступны из выбранного источника - Базальные значения не выровнены по часам: %s - Недопустимый профиль: %s + Базальные значения не выровнены по часам: %1$s + Недопустимый профиль: %1$s Помпа программируется для болюса Обновить Состояние @@ -1089,12 +1089,13 @@ Context | Edit Context Отключить звук Оповещение помпы Журнал изменений места установки + Отслеживать замену резервуара Журнал замены трубки катетера Журнал замен батареи Журнал изменений режима работы Журнал оповещений Включить эмуляцию TBR - Использовать пролонгированные болюсы вместо временных базалов TBR чтобы обойти лимит в 250% + Использовать пролонгированные болюсы вместо временных базалов TBR чтобы обойти лимит в 250%% Задержка разъединения [s] Серийный номер Версия ПО @@ -1150,6 +1151,7 @@ Context | Edit Context Томато (MiaoMiao) Томато Переход на летнее/зимнее время через 24 часа или менее + Переход на летнее время меньше 3 часов назад - Замкнутый цикл отключен ограничение по объему карты памяти Освободите по крайней мере %1$d MB из внутренней памяти! Цикл остановлен! Неверный формат diff --git a/app/src/main/res/values-sk/strings.xml b/app/src/main/res/values-sk/strings.xml index 679f07518f..d2cdb050cd 100644 --- a/app/src/main/res/values-sk/strings.xml +++ b/app/src/main/res/values-sk/strings.xml @@ -9,7 +9,7 @@ Vymaž databázu Naozaj chcete vymazať databázu? Ukončiť - Použiť predĺžené bolusy pre >200% + Použiť predĺžené bolusy pre >200%% DanaR Bluetooth zariadenie Vždy používaj absolútne hodnoty bazálov Prosím reštartuj svoj telefón, alebo reštartuj AndroidAPS zo systémových nastavení, v opačnom prípade AndroidAPS nebude mocť zapisovať údaje (dôležité kvôli sledovaniu a overovaniu, že algoritmus pracuje správne)! @@ -43,17 +43,18 @@ Citlivosť je počítaná za posledných 24h a sacharidy (ak sú ešte nevstrebané), sú orezané po čase definovanom v nastaveniach. Citlivosť je počítaná za posledných 8h a sacharidy (pokiaľ nie sú vstrebané), sú orezané po čase definovanom v nastaveniach. Modul tiež počíta s UAM (neoznámené jedlo). Citlivosť je počítaná ako vážený priemer z odchýlok. Novšie majú vyššiu prioritu. Minimálna vstrebateľnosť sacharidov je počítaná dynamicky z maximálnej doby vstrebateľnosti definovanej v nastaveniach. Tento algoritmus je najrýchlejší v sledovaní zmien citlivosti. - Príjmi hodnoty glykémií z upravenej Dexcom G5 aplikácie. - Prijímam glykémie z upravenej Dexcom G6 aplikácie. - Prijímam glykémie z upravenej Eversense aplikácie. - Príjmi hodnoty glykémií z aplikácie Glimp. - Príjmi hodnoty glykémií z 600SeriesAndroidUploader. - Stiahne hodnoty glykémií z Nightscoutu - Príjmi hodnoty glykémií z xDripu. + Získavať hodnoty glykémií z upravenej Dexcom G5 aplikácie. + Získavať glykémie z upravenej Dexcom G6 aplikácie. + Získavať glykémie z upravenej Eversense aplikácie. + Získavať hodnoty glykémií z aplikácie Glimp. + Získavať hodnoty glykémií z 600SeriesAndroidUploader. + Získavať hodnoty glykémií z Nightscoutu + Získavať hodnoty glykémií z xDripu. Ukladá všetky ošetrenia do databázy 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 Overenie Jednotky @@ -265,6 +266,10 @@ Pre podanie bolusu %1$.2fU odpovedz SMS kódom %2$s Pre odoslanie kalibrácie %1$.2f odpovedz SMS kódom %2$s Chyba pri aplikovaní bolusu + Bolus %1$.2fU podaný úspešne + Podávanie %1$.2fU inzulínu + Bolus %1$.2fU podaný úspešne + Podávanie %1$.2fU Povoliť príkazy na diaľku cez SMS Prst Senzor @@ -309,7 +314,7 @@ Stop STLAČENÝ STOP Čakanie na pumpu - %.2fU inzulínu bude podaných + Podávanie %1$.2fU 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 Nightscoute Začať s otvoreným okruhom @@ -332,13 +337,26 @@ Uzavretý okruh je deaktivovaný Uzavretý okruh je aktivovaný %1$.2f obmedzené na %2$.2f - Hodnota %s je mimo prednastavený rozsah + Hodnota %1$s je mimo prednastavený rozsah Príkazy na diaľku nie sú povolené + Diaľkovo ovládaný bolus nie je momentálne povolený. Skúste to neskôr. + Pre spustenie bazálu %1$.2fU/h na %2$d min odpovedzte SMS s kódom %3$s + Pre prepnutie profilu na %1$s %2$d%% odpovedzte SMS s kódom %3$s + Pre spustenie predĺženého bolusu %1$.2fU na %2$d min odpovedzte SMS s kódom %3$s + Pre spustenie bazálu %1$d%% na %2$d min odpovedzte SMS s kódom %3$s Pre pozastavenie uzavretého okruhu na %1$d minút odpovedaj SMS s kódom %2$s Dočasný bazál %1$.2fU/h spustený na %2$d minút + Predĺžený bolus %1$.2fU na %2$d min úspešne spustený + Dočasný bazál %1$d%% na %2$d minút úspešne spustený Spustenie dočasného bazálu zlyhalo + Spustenie predĺženého bolusu zlyhalo + Na zastavenie dočasného bazálu odpovedzte SMS s kódom %1$s + Na zastavenie predĺženého bolusu odpovedzte SMS s kódom %1$s Dočasný bazál zrušený + Predĺžený bolus zastavený Zrušenie dočasného bazálu zlyhalo + Zastavenie predĺženého bolusu zlyhalo + Neznámy príkaz alebo chybná odpoveď Rýchly bolus Nastavenie rýchleho bolusu Text na tlačidle: @@ -446,7 +464,7 @@ Profil Štandardná hodnota: 3 Toto je kľúčová hodnota zabezpečenia. Hovorí, že maximálny nastaviteľný bazál je trojnásobkom maximálneho denného bazálu. Spravidla to zrejme nebudete musieť meniť, prípadne si prečítate o téme \"3x max denný; 4x aktuálny\". Štandardná hodnota: 4 Toto je druhá kľúčová hodnota. Hovorí, že maximálna hodnota dočasného bazálu nikdy nebude väčšia, ako štvornásobok aktuálneho bazálu. Je to preto, aby se ľudia nedostali do nebezpečných hodnôt skôr, ako pochopia ako OpenAPS pracuje. Znovu, štandardná hodnota je 4 a väčšina ľudí ju nikdy nebude musieť meniť. Pokiaľ nestačí, obvykle je problém niekde inde. - Štandardná hodnota: 1.2\nToto je bezpečnostné nastavenie pre automatickú detekciu citlivosti. Hovorí, že automatická detekcia citlivosti (a onedlho Autotune) môže zvýšiť bazály, znížiť ISF a znížiť cieľovú hodnotu glykémie o 20%. + Štandardná hodnota: 1.2\nToto je bezpečnostné nastavenie pre detekciu citlivosti (a čoskoro autotune). Hovorí, že autosens môže zvýšiť bazály, znížiť ISF a znížiť cieľovú hodnotu glykémie o 20%%. Štandardná hodnota: 0.7\nToto je bezpečnostné nastavenie pre automatickú detekciu citlivosti. Hovorí, že automatická detekcia citlivosti môže znížiť bazály, zvýšiť ISF a zvýšiť cieľovú hodnotu glykémie na 70%. Úprava cieľovej glykémie pomocou automatickej detekcie citlivosti Štandardná hodnota: zapnuté\nToto nastavenie hovorí, že automatická detekcia citlivosti môže meniť tiež cieľové hodnoty glykémií. @@ -459,7 +477,7 @@ Neplatné telefónne čislo Chybné telefónne číslo Kalibrácia - Poslať kalibráciu %.1f do xDripu? + Poslať kalibráciu %1$.1f do xDripu? xDrip+ nie je nainštalovaný Kalibrácia odoslaná do xDripu Kalibrácia odoslaná. Príjem kalibrácií musí byť v xDripe povolený. @@ -543,7 +561,7 @@ Povoliť superbolus Povolenie 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 - Povoliť indikátory stavu pre CAGE, IAGE, SAGE, RESERVOIR a BATTERY LEVEL na domovskej obrazovke. + Povoliť indikátory stavu pre CAGE, IAGE, SAGE, Reservoir a Battery Level na domovskej obrazovke. Prah upozornenia na úroveň hladiny zásobníka [U] Prah kritickej úrovne hladiny zásobníka [U] Prah upozornenia na úroveň batérie [%] @@ -600,7 +618,7 @@ Nastavenie vstrebávania sacharidov Max. doba vstrebávania sacharidov [h] Čas v hodinách, počas ktorého predpokladáme, že všetky sacharidy budú vstrebané - Zobrazovať predĺžený bolus v % + Zobrazovať predĺžený bolus v %% SENZ INZ KAN @@ -713,8 +731,8 @@ Odosielať glykémie do xDrip+ V xDrip+ vyberte zdroj dát 640g/Eversense Glykémie z NS - Hodnota bazálu nahradená minimálnou možnou - Hodnota bazálu nahradená maximálnou možnou: %s + Hodnota bazálu nahradená minimálnou možnou: %1$s + Hodnota bazálu nahradená maximálnou možnou: %1$s Výpočet glykémie Výpočet bolusového IOB Výpočet bazálneho IOB @@ -732,8 +750,8 @@ Uzavretý okruh povolený Maximálne IOB nastavené správne Glykémie dostupné z vybraného zdroja - Bazálne hodnoty nie sú zarovnané na celé hodiny: %s - Chybný profil: %s + Bazálne hodnoty nie sú zarovnané na celé hodiny: %1$s + Chybný profil: %1$s Programovanie pumpy pre bolus Obnoviť Stav @@ -1069,12 +1087,13 @@ Stlmiť Výstraha pumpy Zaznamenať výmenu kanyly + Zaznamenať výmenu zásobníka Zaznamenať výmenu hadičky Zaznamenať výmenu batérie Zaznamenať zmenu režimu prevádzky Zaznamenať výstrahy Povoliť emuláciu dočasných bazálov - Používať predĺžené bolusy namiesto dočasných bázalov, aby sme sa vyhli 250% limitu + Používať predĺžené bolusy namiesto dočasných bázalov, aby sme sa vyhli 250%% limitu Oneskorenie odpojenia [s] Sériové číslo Verzia softwaru @@ -1129,6 +1148,14 @@ Vytvoriť udalosť \"Výmena senzora\" v NS automaticky pri spustení senzora Tomato (MiaoMiao) Tomato + Zmena letného času za menej ako 24 hodín + Zmena letného času za menej ako 3 hodiny - Uzavretý okruh pozastavený + obmedzenie interného úložiska + Uvoľnite aspoň %1$d MB z interného úložiska! Uzavretý okruh zakázaný! + Chybný formát + Nesprávný kód. Príkaz zrušený. + Nie je nakonfigurované + Prepnutie profilu vytvorené %1$d deň %1$d dní diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index 8c8a7ead52..74378fb8d9 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -55,6 +55,7 @@ Eversense-appen. Följ och kontrollera din AndroidAPS med din WearOS-klocka Visa AAPS-information på din xDrip-urtavla Fjärrstyr AndroidAPS med SMS-kommandon. + Backa Starta Godkänn Enheter @@ -266,6 +267,10 @@ Eversense-appen. För att ge bolus %1$.2f enheter, svara med kod %2$s För att skicka kalibrering %1$.2f, svara med kod %2$s Bolus misslyckades + Bolus %1$.2f enheter levererat + Kommer att leverera %1$.2f enheter + Bolus %1$.2f enheter levererat + Levererar %1$.2f enheter Tillåt fjärrstyrning via SMS Finger Sensor @@ -310,7 +315,7 @@ Eversense-appen. Stopp Stopp nedtryckt Väntar på pump - Kommer att leverera %.2f enheter + Kommer 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 upp Starta med open loop @@ -333,13 +338,26 @@ Eversense-appen. Loop är avstängd Loop är aktiverad %1$.2f begränsat till %2$.2f - Värdet %s är utanför hård begränsning + Värdet %1$s är utanför hård begränsning Otillåtet fjärrkommando + Fjärrbolus inte tillgängligt. Försök igen senare. + För att starta temp basal %1$.2f enheter/tim i %2$d min, svara med kod %3$s + För att byta till profil %1$s %2$d%% svara med kod %3$s + För att starta förlängd bolus med %1$.2f enheter över %2$d min, svara med kod %3$s + För att starta temp basal %1$d%% i %2$d min, svara med kod %3$s För att pausa loop i %1$d minuter, svara med kod %2$s Temp basal %1$.2f enheter/tim i %2$d min startad + Förlängd bolus %1$.2f enheter över %2$d min har startats + Temp basal %1$d%% enheter/tim i %2$d min startad Fel vid start av temp basal + Lyckades inte starta förlängd bolus + För att stoppa temp basal, svara med kod %1$s + För att stoppa förlängd bolus, svara med kod %1$s Temp basal avbruten + Förlängd bolus avbruten Misslyckades med att avbryta temp basal + Avbryter förlängd bolus + Okänt kommando eller fel svar Kalkylator Kalkylatorinställningar Knapptext: @@ -448,7 +466,7 @@ Eversense-appen. Standardvärde: 3 Detta är en grundsten i OpenAPS säkerhet. Detta begränsar dina temp basaler till maximalt 3x din största basaldos. Du behöver oftast inte ändra detta värde. Läs på och förstå skillnaden mellan 3x nuvarande och 3x daglig max som säkerhetsinställningar. Standardvärde: 4 Detta är en grundsten i OpenAPS säkerhet. Detta begränsar dina tempbasaler till maximalt 4 gånger din nuvarande basaldos, oberoende av din maximala basaldos. Detta för att undvika att man av misstag gör farliga inställningar. Om man når taket i denna inställning så kanske ändringar i andra inställningar behövs. De flesta behöver inte ändra denna inställning. Standardvärde: 1.2\nDetta är en multiplikatorbegränsare för autosens/autotune som gör att automatiken kan justera upp basaler, sänka insulinkänslighet (ISF) och/eller målvärde med upp till 20%. - Standardvärde: 0.7\nDetta är en multiplikatorbegränsare för autosens/autotune som gör att automatiken kan justera ner basaler, höja insulinkänslighet (ISF) och/eller målvärde med upp till 30% för att kompensera för t ex tillfällig hög insulinkänslighet. + Standardvärde: 0.7\nDetta är en multiplikatorbegränsare för autosens/autotune som gör att automatiken kan justera ner basaler, höja insulinkänslighet (ISF) och/eller målvärde med upp till 30%% för att kompensera för t ex tillfällig hög insulinkänslighet. Autosens justerar även mål-BG Standardvärde: sant. Detta för att tillåta autosens justera mål-BG utöver ISF och basaler. Standardvärde: 2 Bolus snooze är aktivt efter att du givit en måltidsbolus, detta för att inte loop ska lågtempa när du just ätit. I detta exempel och grundvärde är 2; innebär att DIA på 3 tim kommer bolus snooze kommer att fasas ut under 1,5 tim (3DIA/2). @@ -460,7 +478,7 @@ Eversense-appen. Ogiltigt telefonnummer Ogiltigt telefonnummer för SMS Kalibrering - Skicka kalibrering %.1f till xDrip? + Skicka kalibrering %1$.1f till xDrip? xDrip+ inte installerat Kalibrering skickad till xDrip Kalibrering skickad. Observera att xDrip måste vara inställd att ta emot kalibreringar. @@ -601,7 +619,7 @@ Eversense-appen. Absorptionsinställningar Max absorptionstid för en måltid [tim] Tid i timmar när alla kolhydrater förväntas vara absorberade - Visa förlängd bolus som % + Visa förlängd bolus som %% SAGE IAGE CAGE @@ -637,7 +655,7 @@ Eversense-appen. Free-Peak Oref Rapid-Acting Oref Ultra-Rapid Oref - %1$s tim DIA är för kort. Använder %2$s istället! + %1$f tim DIA är för kort. Använder %2$f istället! Aktivera profil Datum OGILTIG @@ -714,8 +732,8 @@ Eversense-appen. Skicka BG-data till xDrip+ Välj \"640G/Eversense\" som datakälla i xDrip+ NSClient BG - Basalvärdet ersatt med det lägsta tillåtna: %s - Basalvärdet ersatt med det maximala tillåtna: %s + Basalvärdet ersatt med det lägsta tillåtna: %1$s + Basalvärdet ersatt med det maximala tillåtna: %1$s Använd BG Använd bolus-IOB Använd basal-IOB @@ -733,8 +751,8 @@ Eversense-appen. Closed loop aktiverad Max IOB är korrekt angivet BG tillgängligt från vald källa - Profilens basaler är inte satta på hel timme: %s - Ogiltig profil: %s + Profilens basaler är inte satta på hel timme: %1$s + Ogiltig profil: %1$s Programmerar bolus i pump Uppdatera Läge @@ -1070,12 +1088,13 @@ Eversense-appen. Tysta Pumpvarning Logga kanylbyten + Logga reservoarbyten Logga slangbyten Logga batteribyten Logga när driftsläge ändras Logga varningar Aktivera emulering av temp basal - Använda utökade bolusar istället för temp basaler för att kringgå 250%-begränsningen + Använda förlängda bolusar istället för temp basaler för att kringgå 250%%-begränsningen Fördröjning av frånkoppling [s] Serienummer Mjukvaruversion Release @@ -1130,6 +1149,14 @@ Eversense-appen. Loggar automatiskt ett sensorbyte i NS när en sensor startas Tomato (MiaoMiao) Tomato + Sommar/vintertid inträffar inom 24 timmar + Sommar/vintertid ändrades för mindre än 3 timmar sedan. Closed Loop avstängt + intern lagringsbegränsning + Frigör minst %1$d MB från internminnet. Loop inaktiverad! + Felaktigt format + Fel kod. Kommandot avbrutet. + Inte konfigurerad + Skapade ett profilbyte %1$d dag %1$d dagar diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index e75625a663..dcc3af86e3 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -9,7 +9,6 @@ Veritabanlarını sıfırla Veritabanlarını gerçekten sıfırlamak istiyor musunuz? Çıkış - Yayım bolus >200% için kullanın DanaR Bluetooth aygıtı Her zaman bazal mutlak değerleri kullan Lütfen telefonunu yeniden başlat, yada Android APS sistem ayarları üzerinden yeniden başlat.\nAksi taktirde Android APS hiç bir günlük tutmayacak (takip ve doğrulama, algoritmanın düzenli çalışmasi için önemli)! @@ -307,7 +306,6 @@ Dur DURDUR\'A BASTIĞINIZ Pompa bekleniyor - %.2fU Gönderilecek 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 Açık Döngü modu başlatılıyor @@ -330,7 +328,6 @@ Döngü devre dışı Döngü etkin %1$.2f dan %2$.2f olarak sınırlı - Değer %s sabit sınırları dışında olduğunu Uzaktan komuta izin verilmez %1$d dakika için Döngü\'yü askıya almak için %2$s kodunu yanıtla Geçici bazal %1$.2fÜ/s %2$d dakika için başarıyla başlatıldı @@ -443,7 +440,6 @@ Profil Varsayılan değer: 3 Bu OpenAPS için önemli bir güvenlik ayarıdır. Maksimum bazal Iob\'u, en büyük bazal oranınızın üç katı (varsayılan olarak) ile sınırlar. Genel olarak, bu değeri değiştirmemelisiniz. Ama \"3x max günlük, 4x şuan\" ın bir güvenlik ayarı olarak ne anlama geldiğini bilmelisiniz. Varsayılan ayar: 4 Bu, OpenAPS güvenlik ayarlarının diğer yarısı ve \"3x max günlük, 4x akım\" güvenlik korumasının diğer yarısıdır. Bu, başlangıç değerinizin, pompada ayarlanan taban maksimum değerinizden bağımsız olarak, mevcut bazal seviyenin bu sayısından daha yüksek olamayacağı anlamına gelir. Bu, insanların, algoritmanın nasıl çalıştığını anlamadan temel çizgiyi büyük ölçüde artırarak kendilerini tehlikeli durumlarda bulmalarını engellemektir. Varsayılan ayar 4x\'dir; Çoğu insan bu ayarları asla değiştirmek zorunda kalmayacak, ancak bu güvenlik sınırına yakınsa diğer terapi ayarlarını ayarlamalıdırlar. - Varsayılan değer: 1.2\nBu autosens oranının ne kadar yüksek olabileceği üzerine %20\'lik bir max limit belirlemek için autosens (ve yakında autotune) için bir çarpan faktörüdür. Bu sayede autosens İnsülin Duyarlılık Faktörünün ne kadar düşük tutulacağını ve KŞ hedefini ne kadar düşük tutulabileceğine karar verir. Varsayılan değer: 0.7\nBu autosens için diğer güvenlik önlemidir. Bazal oranların ne kadar düştüğünü ve İnsülin Duyarlılık Faktörü ve KŞ hedeflerini ne kadar yüksek tutabileceğini gösterir. Autosens hedefleri de ayarlar Varsayılan değer: true\nBu autosens in İnsülin Duyarlılık Faktörü ve bazallara ek olarak KŞ hedeflerinin ayarlanmasında kullanılır. @@ -457,7 +453,6 @@ Aktif Karbonhidratın ne kadar hızlı sindirildiğine ve KŞ\'nin beklenenden d Telefon numarası geçerli değil Geçersiz SMS telefon numarası Kalibrasyon - Kalibrasyon %.1f xDrip\'e gönderilsin mi? xDrip+ uygulaması yüklenmemiş Kalibrasyon xDrip+ a gönderildi Kalibrasyon gönderildi. Alma xDrip+\'ta etkinleştirilmelidir. @@ -592,7 +587,6 @@ Aktif Karbonhidratın ne kadar hızlı sindirildiğine ve KŞ\'nin beklenenden d Emilim ayarları Besinin maksimum emilim süresi [h] Tüm karbonhidratların emileceği beklenen saat cinsinden süre - Yayım bolusu% olarak görselleştir SAGE IAGE CAGE @@ -702,8 +696,6 @@ Aktif Karbonhidratın ne kadar hızlı sindirildiğine ve KŞ\'nin beklenenden d XDrip+\'a KŞ verilerini gönder Xdrip+ içerisinde 640g/Eversense veri kaynağı seç Nightscout Client KŞ - Bazal değeri minimum desteklenen değerle değiştirilir: %s - Bazal değeri maksimum desteklenen değerle değiştirilir: %s KŞ Hesaplaması Bolus IOB (Aktif İnsülin) hesaplaması Bazal IOB hesaplaması @@ -721,8 +713,6 @@ Aktif Karbonhidratın ne kadar hızlı sindirildiğine ve KŞ\'nin beklenenden d Kapalı Döngü etkinleştirildi Maksimal IOB doğru şekilde ayarlandı Seçili kaynaktan KŞ kullanılabilir - Bazal değerler saatlerle uyumlu değil: %s - Geçersiz profil: %s Pompa bolus vermek için hazırlanıyor Yenile Durum diff --git a/app/src/main/res/values-zh/strings.xml b/app/src/main/res/values-zh/strings.xml index a230e24174..2e1874e5ef 100644 --- a/app/src/main/res/values-zh/strings.xml +++ b/app/src/main/res/values-zh/strings.xml @@ -9,7 +9,6 @@ 重置数据库 你真的想重置数据库吗? 退出 - 使用>200%的扩展大剂量(extended boluses) DanaR 蓝牙设备 总是使用基础率的绝对值 请重启你的手机或者从系统设置里重启AndroidAPS软件 \n 否则 Android APS将不会记录日志 (这对于跟踪和检查算法是否正确很重要)! @@ -309,7 +308,6 @@ 停止 停止键按下了 正在等待泵 - 将要输注 %.2fU 设置可视化和监视, 并分析基础率和比率 验证 Nightscout 中的血糖是否可用, 并且正在上传泵的胰岛素数据 开始开环 @@ -332,7 +330,6 @@ 闭环被禁用 闭环被启用 %1$.2f 超过 %2$.2f的限制 - 值 %s 超过了硬限制 远程命令没有被允许 要暂停闭环 %1$d 分钟请回复如下代码 %2$s 临时基础率 %1$.2fU/h 持续 %2$d 分钟启用成功了 @@ -446,7 +443,6 @@ 配置文件 默认值: 3 这是一个关键的 OpenAPS 安全阀值。这是限制你的闭环可以最大扩张3倍的日最大基础率。你可能不需要改变这个值 但你应该这个值的含义。日最大基础率的3倍,当前基础率的4倍,这是建议的安全阀值 默认值: 4 这是另一个的关键 OpenAPS 安全阀值, 日最大基础率的3倍,当前基础率的4倍,这是建议的安全阀值。这意味着你的基础率, 无论你的泵上的最大基础率设置的多少,也 不能超过你的当前基础率的4倍。这是为了防止人们在了解该算法的工作原理之前进入危险的领域 。同样, 默认值为 4倍; 大多数人将永远不需要调整, 而是更有可能需要调整其他设置, - 默认值: 1.2 \n 这是 autosens 的安全阀值 对 autosens ( 很快autotune) 比率的高值设置最大增加20% 最大限制, 这反过来决定了 autosens 可以调整的基础率的上限值, 可以调整的胰岛素敏感系数的下限值, 以及它可以设置血糖目标的下限值。 默认值: 0.7 \n  这是autosens 的另一个安全阈值, 。这个值决定了 autosens 可以调整的基础率的下限值, 可以调整的胰岛素敏感系数的上限值, 以及它可以设置血糖目标的上限值。 Autosens 也调整目标血糖 缺省值:是\n 这是用来允许 autosens调整血糖目标,还有 ISF胰岛素敏感系数和基础率这些参数。 @@ -459,7 +455,6 @@ 电话号码无效 无效的SMS手机号码 校准 - 确认将校准值 %.1f 发送到 xDrip 吗? 没有安装xDrip+ 校准发送到 xDrip 校准值发送了,必须在xDrip开启允许通过其他app使用它的校准功能 @@ -599,7 +594,6 @@ 食物吸收设置 膳食最大吸收时间 [h] 预计膳食中所有的碳水化合物被吸收的时间,以小时为单位 - 用百分比的形式显示扩展大剂量 探头AGE 胰岛素AGE 管路AGE @@ -712,8 +706,6 @@ 将血糖数据发送到 xDrip + 在 xDrip + 选择640g/Eversense 数据源 NSClient 血糖 - 基础率值被泵支持的最小值: %s 替换了 - 基础率值被泵支持的最大值:%s 替换了 血糖计算 大剂量IOB (活性胰岛素) 计算 基础率IOB (活性胰岛素) 计算 @@ -731,8 +723,6 @@ 闭环模式启用了 合理地设置最大 IOB 所选的血糖值来源的血糖是可用的 - 基础率值与小时不一致:%s - 无效的配置文件:%s 正在调用泵上的大剂量输注程序 刷新 状态 @@ -1072,7 +1062,6 @@ 记录操作模式更改 记录报警 启用 TBR (临时基础率) 模拟 - 使用扩展大剂量而不是TBRs(临时基础率) 绕过250%的限制 断开连接延迟 [s] 序列号 发行软件版本 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index d877ff9bae..39269aa922 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -8,7 +8,7 @@ Reset Databases Do you really want to reset the databases? Exit - Use extended boluses for >200% + Use extended boluses for >200%% DanaR Bluetooth device Always use basal absolute values Please reboot your phone or restart AndroidAPS from the System Settings \notherwise Android APS will not have logging (important to track and verify that the algorithms are working correctly)! @@ -342,7 +342,7 @@ Stop STOP PRESSED Waiting for pump - Going to deliver %.2fU + Going 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 @@ -365,7 +365,7 @@ Loop is disabled Loop is enabled %1$.2f limited to %2$.2f - Value %s is out of hard limits + Value %1$s is out of hard limits Remote command is not allowed Remote bolus not available. Try again later. To start basal %1$.2fU/h for %2$d min reply with code %3$s @@ -496,7 +496,7 @@ Default value: 3 This is a key OpenAPS safety cap. What this does is limit your basals to be 3x (in this people) your biggest basal rate. You likely will not need to change this, but you should be aware that’s what is discussed about “3x max daily; 4x current” for safety caps. Default value: 4 This is the other half of the key OpenAPS safety caps, and the other half of “3x max daily; 4x current” of the safety caps. This means your basal, regardless of max basal set on your pump, cannot be any higher than this number times the current level of your basal. This is to prevent people from getting into dangerous territory by setting excessively high max basals before understanding how the algorithm works. Again, the default is 4x; most people will never need to adjust this and are instead more likely to need to adjust other settings if they feel like they are “running into” this safety cap. autosens_max - Default value: 1.2\nThis is a multiplier cap for autosens (and soon autotune) to set a 20% max limit on how high the autosens ratio can be, which in turn determines how high autosens can adjust basals, how low it can adjust ISF, and how low it can set the BG target. + Default value: 1.2\nThis is a multiplier cap for autosens (and soon autotune) to set a 20%% max limit on how high the autosens ratio can be, which in turn determines how high autosens can adjust basals, how low it can adjust ISF, and how low it can set the BG target. autosens_min Default value: 0.7\nThe other side of the autosens safety limits, putting a cap on how low autosens can adjust basals, and how high it can adjust ISF and BG targets. autosens_adjust_targets @@ -514,7 +514,7 @@ Phone number not valid Invalid SMS phone number Calibration - Send calibration %.1f to xDrip? + Send calibration %1$.1f to xDrip? xDrip+ not installed Calibration sent to xDrip Calibration sent. Receiving must be enabled in xDrip. @@ -696,7 +696,7 @@ Meal max absorption time [h] Time in hours where is expected all carbs from meal will be absorbed rangetodisplay - Visualize extended bolus as % + Visualize extended bolus as %% SAGE IAGE CAGE @@ -836,8 +836,8 @@ dexcomg5_xdripupload In xDrip+ select 640g/Eversense data source NSClient BG - Basal value replaced by minimal supported value: %s - Basal value replaced by maximum supported value: %s + Basal value replaced by minimal supported value: %1$s + Basal value replaced by maximum supported value: %1$s BG calculation Bolus IOB calculation Basal IOB calculation @@ -855,8 +855,8 @@ Closed mode enabled Maximal IOB set properly BG available from selected source - Basal values not aligned to hours: %s - Invalid profile: %s + Basal values not aligned to hours: %1$s + Invalid profile: %1$s Programming pump for bolusing Refresh State @@ -1217,7 +1217,6 @@ A treatment (insulin: %1$.2f, carbs: %2$d, at: %3$s) could not be added to treatments. Please check and manually add a record as appropriate. eCarbs: %1$d g (%2$d h), delay: %3$d m - key_plugin_stats_report_timestamp No autosens data available Log settings Reset to defaults @@ -1254,12 +1253,13 @@ Mute Pump alert Log site changes + Log reservoir changes Log tube changes Log battery changes Log operating mode changes Log alerts Enable TBR emulation - Use extended boluses instead of TBRs to bypass the 250% limit + Use extended boluses instead of TBRs to bypass the 250%% limit Disconnect delay [s] Serial number Release software version diff --git a/app/src/main/res/xml/filepaths.xml b/app/src/main/res/xml/filepaths.xml index 7490f459d4..c9f65d8f56 100644 --- a/app/src/main/res/xml/filepaths.xml +++ b/app/src/main/res/xml/filepaths.xml @@ -1,4 +1,4 @@ - + \ No newline at end of file diff --git a/app/src/main/res/xml/pref_insight_local.xml b/app/src/main/res/xml/pref_insight_local.xml index 4cb9fa6d18..02c4ce752b 100644 --- a/app/src/main/res/xml/pref_insight_local.xml +++ b/app/src/main/res/xml/pref_insight_local.xml @@ -10,14 +10,19 @@ + android:key="insight_log_reservoir_changes" + android:title="@string/log_reservoir_changes" /> + + + + + android:title="@string/high_temptarget_raises_sensitivity_title" + android:enabled="false" + /> + + android:title="@string/low_temptarget_lowers_sensitivity_title" + android:enabled="false" + /> diff --git a/app/src/main/res/xml/pref_others.xml b/app/src/main/res/xml/pref_others.xml index 5d3b365cb6..cbe2b9c705 100644 --- a/app/src/main/res/xml/pref_others.xml +++ b/app/src/main/res/xml/pref_others.xml @@ -9,49 +9,49 @@ android:defaultValue="0" android:inputType="number" android:key="@string/key_eatingsoon_duration" - android:title="@string/eatingsoon_duration"> + android:title="@string/eatingsoon_duration" /> + android:title="@string/eatingsoon_target" /> + android:title="@string/activity_duration" /> + android:title="@string/activity_target" /> + android:title="@string/hypo_duration" /> + android:title="@string/hypo_target" /> + android:title="@string/button1" /> + android:title="@string/button2" /> + android:title="@string/button3" /> + android:title="@string/low_mark" /> + android:title="@string/high_mark" /> + android:title="@string/nsalarm_staledatavalue_label" /> - + android:summary="@string/smscommunicator_allowednumbers_summary" + android:title="@string/smscommunicator_allowednumbers" /> ()), 0.001d); } + @Test + public void calculateGlucoseStatusForLibreTestBgData() { + when(iobCobCalculatorPlugin.getBgReadings()).thenReturn(generateLibreTestData()); + + GlucoseStatus glucoseStatus = GlucoseStatus.getGlucoseStatusData(); + + Assert.assertEquals(100d, glucoseStatus.glucose, 0.001d); // + Assert.assertEquals(-10d, glucoseStatus.delta, 0.001d); + Assert.assertEquals(-10d, glucoseStatus.short_avgdelta, 0.001d); + Assert.assertEquals(-10d, glucoseStatus.avgdelta, 0.001d); + Assert.assertEquals(-10d, glucoseStatus.long_avgdelta, 0.001d); + Assert.assertEquals(1514766900000L, glucoseStatus.date); // latest date + } + @Before public void initMocking() { AAPSMocker.mockMainApp(); @@ -184,4 +196,25 @@ public class GlucoseStatusTest { } return list; } + List generateLibreTestData() { + List list = new ArrayList<>(); + try { + long end_time = 1514766900000L; + double latest_reading = 100d; + // Now + list.add(new BgReading(new NSSgv(new JSONObject("{\"mgdl\":" + (latest_reading) + ",\"mills\":" + (end_time) + ",\"direction\":\"Flat\"}")))); + // One minute ago + list.add(new BgReading(new NSSgv(new JSONObject("{\"mgdl\":" + (latest_reading) + ",\"mills\":" + (end_time - (1000 * 60 * 1)) + ",\"direction\":\"Flat\"}")))); + // Two minutes ago + list.add(new BgReading(new NSSgv(new JSONObject("{\"mgdl\":" + (latest_reading) + ",\"mills\":" + (end_time - (1000 * 60 * 2)) + ",\"direction\":\"Flat\"}")))); + + // Three minutes and beyond at constant rate + for (int i=3; i < 50; i++) { + list.add(new BgReading(new NSSgv(new JSONObject("{\"mgdl\":" + (latest_reading + (i*2)) + ",\"mills\":" + (end_time - (1000 * 60 * i)) + ",\"direction\":\"Flat\"}")))); + } + } catch (JSONException e) { + e.printStackTrace(); + } + return list; + } } 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 18527e0612..309644d7f0 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 @@ -3,6 +3,7 @@ package info.nightscout.androidaps.plugins.pump.danaRS.comm; import android.content.Context; +import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.powermock.api.mockito.PowerMockito; @@ -20,34 +21,26 @@ import info.nightscout.androidaps.plugins.configBuilder.ConfigBuilderPlugin; import info.nightscout.androidaps.plugins.general.nsclient.NSUpload; import info.nightscout.androidaps.plugins.treatments.TreatmentService; import info.nightscout.androidaps.plugins.treatments.TreatmentsPlugin; +import info.nightscout.androidaps.utils.DateUtil; import info.nightscout.androidaps.utils.SP; import static org.junit.Assert.assertEquals; +import static org.powermock.api.mockito.PowerMockito.when; /** * Created by Rumen on 31.07.2018. */ @RunWith(PowerMockRunner.class) -@PrepareForTest({SP.class, MainApp.class, ConfigBuilderPlugin.class, Context.class, NSUpload.class, TreatmentsPlugin.class, TreatmentService.class, DatabaseHelper.class}) +@PrepareForTest({SP.class, MainApp.class, ConfigBuilderPlugin.class, Context.class, NSUpload.class, TreatmentsPlugin.class, TreatmentService.class, DatabaseHelper.class, DateUtil.class}) public class DanaRS_Packet_APS_History_EventsTest extends DanaRS_Packet_APS_History_Events { @Test public void runTest() { - AAPSMocker.mockMainApp(); - AAPSMocker.mockApplicationContext(); - AAPSMocker.mockSP(); - AAPSMocker.mockBus(); - SPMocker.prepareMock(); - SP.putString("profile", AAPSMocker.getValidProfileStore().getData().toString()); - AAPSMocker.mockConfigBuilder(); - AAPSMocker.mockStrings(); - PowerMockito.mockStatic(NSUpload.class); - AAPSMocker.mockDatabaseHelper(); - DanaRS_Packet_APS_History_Events testPacket = new DanaRS_Packet_APS_History_Events(System.currentTimeMillis()); + DanaRS_Packet_APS_History_Events testPacket = new DanaRS_Packet_APS_History_Events(DateUtil.now()); // test getRequestedParams byte[] returnedValues = testPacket.getRequestParams(); - byte[] expectedValues = getCalender(System.currentTimeMillis()); + byte[] expectedValues = getCalender(DateUtil.now()); //year assertEquals(expectedValues[0], returnedValues[0]); //month @@ -70,15 +63,15 @@ public class DanaRS_Packet_APS_History_EventsTest extends DanaRS_Packet_APS_Hist assertEquals("APS_HISTORY_EVENTS", getFriendlyName()); } - byte[] createArray(int length, byte fillWith){ + byte[] createArray(int length, byte fillWith) { byte[] ret = new byte[length]; - for(int i = 0; i - + -