diff --git a/README.md b/README.md
index 32aef48cd9..b76376b3d2 100644
--- a/README.md
+++ b/README.md
@@ -11,4 +11,6 @@
dev: [![codecov](https://codecov.io/gh/MilosKozak/AndroidAPS/branch/dev/graph/badge.svg)](https://codecov.io/gh/MilosKozak/AndroidAPS)
-[![Donate via PayPal](https://www.paypalobjects.com/en_US/i/btn/btn_donateCC_LG.gif)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=Y4LHGJJESAVB8)
\ No newline at end of file
+[![Donate via PayPal](https://www.paypalobjects.com/en_US/i/btn/btn_donateCC_LG.gif)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=Y4LHGJJESAVB8)
+
+![BTC](https://bitit.io/assets/coins/icon-btc-1e5a37bc0eb730ac83130d7aa859052bd4b53ac3f86f99966627801f7b0410be.svg) 3KawK8aQe48478s6fxJ8Ms6VTWkwjgr9f2
diff --git a/app/build.gradle b/app/build.gradle
index 7bb7e61aec..7a4b63ecff 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -245,9 +245,9 @@ dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'com.google.android.gms:play-services-wearable:17.0.0'
implementation "com.google.android.gms:play-services-location:17.0.0"
- implementation 'com.google.firebase:firebase-core:17.4.2'
+ implementation 'com.google.firebase:firebase-core:17.4.3'
implementation 'com.google.firebase:firebase-auth:19.3.1'
- implementation 'com.google.firebase:firebase-database:19.3.0'
+ implementation 'com.google.firebase:firebase-database:19.3.1'
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'androidx.legacy:legacy-support-v13:1.0.0'
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 3dbee4a29c..ea16c395da 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -68,6 +68,7 @@
+
diff --git a/app/src/main/java/info/nightscout/androidaps/MainActivity.kt b/app/src/main/java/info/nightscout/androidaps/MainActivity.kt
index 7881fea604..83ce050554 100644
--- a/app/src/main/java/info/nightscout/androidaps/MainActivity.kt
+++ b/app/src/main/java/info/nightscout/androidaps/MainActivity.kt
@@ -27,6 +27,7 @@ import androidx.viewpager2.widget.ViewPager2
import com.google.android.material.tabs.TabLayoutMediator
import com.joanzapata.iconify.Iconify
import com.joanzapata.iconify.fonts.FontAwesomeModule
+import info.nightscout.androidaps.activities.ProfileHelperActivity
import info.nightscout.androidaps.activities.NoSplashAppCompatActivity
import info.nightscout.androidaps.activities.PreferencesActivity
import info.nightscout.androidaps.activities.SingleFragmentActivity
@@ -49,10 +50,10 @@ import info.nightscout.androidaps.plugins.general.smsCommunicator.SmsCommunicato
import info.nightscout.androidaps.setupwizard.SetupWizardActivity
import info.nightscout.androidaps.utils.AndroidPermission
import info.nightscout.androidaps.utils.FabricPrivacy
-import info.nightscout.androidaps.utils.locale.LocaleHelper
import info.nightscout.androidaps.utils.alertDialogs.OKDialog
import info.nightscout.androidaps.utils.buildHelper.BuildHelper
import info.nightscout.androidaps.utils.extensions.isRunningRealPumpTest
+import info.nightscout.androidaps.utils.locale.LocaleHelper
import info.nightscout.androidaps.utils.protection.ProtectionCheck
import info.nightscout.androidaps.utils.resources.IconsProvider
import info.nightscout.androidaps.utils.resources.ResourceHelper
@@ -138,15 +139,15 @@ class MainActivity : NoSplashAppCompatActivity() {
}
androidPermission.notifyForStoragePermission(this)
androidPermission.notifyForBatteryOptimizationPermission(this)
+ androidPermission.notifyForLocationPermissions(this)
if (config.PUMPDRIVERS) {
- androidPermission.notifyForLocationPermissions(this)
androidPermission.notifyForSMSPermissions(this, smsCommunicatorPlugin)
androidPermission.notifyForSystemWindowPermissions(this)
}
}
private fun checkPluginPreferences(viewPager: ViewPager2) {
- pluginPreferencesMenuItem?.isEnabled = (viewPager.adapter as TabPageAdapter).getPluginAt(viewPager.currentItem).preferencesId != -1
+ if (viewPager.currentItem > 0) pluginPreferencesMenuItem?.isEnabled = (viewPager.adapter as TabPageAdapter).getPluginAt(viewPager.currentItem).preferencesId != -1
}
override fun onPostCreate(savedInstanceState: Bundle?, persistentState: PersistableBundle?) {
@@ -324,6 +325,11 @@ class MainActivity : NoSplashAppCompatActivity() {
return true
}
*/
+ R.id.nav_defaultprofile -> {
+ startActivity(Intent(this, ProfileHelperActivity::class.java))
+ return true
+ }
+
R.id.nav_stats -> {
startActivity(Intent(this, StatsActivity::class.java))
return true
diff --git a/app/src/main/java/info/nightscout/androidaps/MainApp.java b/app/src/main/java/info/nightscout/androidaps/MainApp.java
index 85bfd24f44..ca60ca93d4 100644
--- a/app/src/main/java/info/nightscout/androidaps/MainApp.java
+++ b/app/src/main/java/info/nightscout/androidaps/MainApp.java
@@ -53,6 +53,7 @@ public class MainApp extends DaggerApplication {
@Inject VersionCheckerUtils versionCheckersUtils;
@Inject SP sp;
@Inject NSUpload nsUpload;
+ @Inject Config config;
@Inject ConfigBuilderPlugin configBuilderPlugin;
@Inject KeepAliveReceiver.KeepAliveManager keepAliveManager;
@@ -103,6 +104,13 @@ public class MainApp extends DaggerApplication {
private void doMigrations() {
+ // set values for different builds
+ if (!sp.contains(R.string.key_ns_alarms))
+ sp.putBoolean(R.string.key_ns_alarms, config.getNSCLIENT());
+ if (!sp.contains(R.string.key_ns_announcements))
+ sp.putBoolean(R.string.key_ns_announcements, config.getNSCLIENT());
+ if (!sp.contains(R.string.key_language))
+ sp.putString(R.string.key_language, "default");
}
@Override
diff --git a/app/src/main/java/info/nightscout/androidaps/activities/MyPreferenceFragment.kt b/app/src/main/java/info/nightscout/androidaps/activities/MyPreferenceFragment.kt
index 706ad90ecb..3b4965c605 100644
--- a/app/src/main/java/info/nightscout/androidaps/activities/MyPreferenceFragment.kt
+++ b/app/src/main/java/info/nightscout/androidaps/activities/MyPreferenceFragment.kt
@@ -13,16 +13,20 @@ import dagger.android.HasAndroidInjector
import dagger.android.support.AndroidSupportInjection
import info.nightscout.androidaps.Config
import info.nightscout.androidaps.R
+import info.nightscout.androidaps.danaRKorean.DanaRKoreanPlugin
+import info.nightscout.androidaps.danaRv2.DanaRv2Plugin
+import info.nightscout.androidaps.danar.DanaRPlugin
+import info.nightscout.androidaps.danars.DanaRSPlugin
import info.nightscout.androidaps.data.Profile
import info.nightscout.androidaps.events.EventPreferenceChange
import info.nightscout.androidaps.events.EventRebuildTabs
import info.nightscout.androidaps.interfaces.PluginBase
+import info.nightscout.androidaps.interfaces.ProfileFunction
import info.nightscout.androidaps.plugins.aps.loop.LoopPlugin
import info.nightscout.androidaps.plugins.aps.openAPSAMA.OpenAPSAMAPlugin
import info.nightscout.androidaps.plugins.aps.openAPSSMB.OpenAPSSMBPlugin
import info.nightscout.androidaps.plugins.bus.RxBusWrapper
import info.nightscout.androidaps.plugins.configBuilder.PluginStore
-import info.nightscout.androidaps.interfaces.ProfileFunction
import info.nightscout.androidaps.plugins.constraints.safety.SafetyPlugin
import info.nightscout.androidaps.plugins.general.automation.AutomationPlugin
import info.nightscout.androidaps.plugins.general.maintenance.MaintenancePlugin
@@ -34,10 +38,6 @@ import info.nightscout.androidaps.plugins.general.wear.WearPlugin
import info.nightscout.androidaps.plugins.general.xdripStatusline.StatusLinePlugin
import info.nightscout.androidaps.plugins.insulin.InsulinOrefFreePeakPlugin
import info.nightscout.androidaps.plugins.pump.combo.ComboPlugin
-import info.nightscout.androidaps.danar.DanaRPlugin
-import info.nightscout.androidaps.danaRKorean.DanaRKoreanPlugin
-import info.nightscout.androidaps.danars.DanaRSPlugin
-import info.nightscout.androidaps.danaRv2.DanaRv2Plugin
import info.nightscout.androidaps.plugins.pump.insight.LocalInsightPlugin
import info.nightscout.androidaps.plugins.pump.medtronic.MedtronicPumpPlugin
import info.nightscout.androidaps.plugins.pump.virtual.VirtualPumpPlugin
@@ -204,14 +204,44 @@ class MyPreferenceFragment : PreferenceFragmentCompat(), OnSharedPreferenceChang
activity?.recreate()
return
}
- if (key == resourceHelper.gs(R.string.key_openapsama_useautosens) && sp.getBoolean(R.string.key_openapsama_useautosens, false))
+ if (key == resourceHelper.gs(R.string.key_openapsama_useautosens) && sp.getBoolean(R.string.key_openapsama_useautosens, false)) {
activity?.let {
show(it, resourceHelper.gs(R.string.configbuilder_sensitivity), resourceHelper.gs(R.string.sensitivity_warning))
}
+ }
+ checkForBiometricFallback(key)
updatePrefSummary(findPreference(key))
}
+ private fun checkForBiometricFallback(key: String) {
+ // Biometric protection activated without set master password
+ if ((resourceHelper.gs(R.string.key_settings_protection) == key ||
+ resourceHelper.gs(R.string.key_application_protection) == key ||
+ resourceHelper.gs(R.string.key_bolus_protection) == key) &&
+ sp.getString(R.string.key_master_password, "") == "" &&
+ sp.getInt(key, ProtectionCheck.ProtectionType.NONE.ordinal) == ProtectionCheck.ProtectionType.BIOMETRIC.ordinal
+ ) {
+ activity?.let {
+ val title = resourceHelper.gs(R.string.unsecure_fallback_biometric)
+ val message = resourceHelper.gs(R.string.master_password_missing, resourceHelper.gs(R.string.configbuilder_general), resourceHelper.gs(R.string.protection))
+ show(it, title = title, message = message)
+ }
+ }
+
+ // Master password erased with activated Biometric protection
+ val isBiometricActivated = sp.getInt(R.string.key_settings_protection, ProtectionCheck.ProtectionType.NONE.ordinal) == ProtectionCheck.ProtectionType.BIOMETRIC.ordinal ||
+ sp.getInt(R.string.key_application_protection, ProtectionCheck.ProtectionType.NONE.ordinal) == ProtectionCheck.ProtectionType.BIOMETRIC.ordinal ||
+ sp.getInt(R.string.key_bolus_protection, ProtectionCheck.ProtectionType.NONE.ordinal) == ProtectionCheck.ProtectionType.BIOMETRIC.ordinal
+ if (resourceHelper.gs(R.string.key_master_password) == key && sp.getString(key, "") == "" && isBiometricActivated) {
+ activity?.let {
+ val title = resourceHelper.gs(R.string.unsecure_fallback_biometric)
+ val message = resourceHelper.gs(R.string.unsecure_fallback_descriotion_biometric)
+ show(it, title = title, message = message)
+ }
+ }
+ }
+
@SuppressLint("RestrictedApi")
private fun addPreferencesFromResource(@XmlRes preferencesResId: Int, key: String?) {
val xmlRoot = preferenceManager.inflateFromResource(context,
@@ -276,7 +306,7 @@ class MyPreferenceFragment : PreferenceFragmentCompat(), OnSharedPreferenceChang
}
for (plugin in pluginStore.plugins) {
- pref?.let { it.key?.let { plugin.updatePreferenceSummary(pref) }}
+ pref?.let { it.key?.let { plugin.updatePreferenceSummary(pref) } }
}
val hmacPasswords = arrayOf(
diff --git a/app/src/main/java/info/nightscout/androidaps/activities/ProfileHelperActivity.kt b/app/src/main/java/info/nightscout/androidaps/activities/ProfileHelperActivity.kt
new file mode 100644
index 0000000000..786b30f959
--- /dev/null
+++ b/app/src/main/java/info/nightscout/androidaps/activities/ProfileHelperActivity.kt
@@ -0,0 +1,66 @@
+package info.nightscout.androidaps.activities
+
+import android.os.Bundle
+import info.nightscout.androidaps.R
+import info.nightscout.androidaps.data.defaultProfile.DefaultProfile
+import info.nightscout.androidaps.dialogs.ProfileViewerDialog
+import info.nightscout.androidaps.interfaces.ProfileFunction
+import info.nightscout.androidaps.logging.AAPSLogger
+import info.nightscout.androidaps.utils.DateUtil
+import info.nightscout.androidaps.utils.ToastUtils
+import info.nightscout.androidaps.utils.resources.ResourceHelper
+import info.nightscout.androidaps.utils.stats.TddCalculator
+import kotlinx.android.synthetic.main.activity_profilehelper.*
+import java.text.DecimalFormat
+import javax.inject.Inject
+
+class ProfileHelperActivity : NoSplashAppCompatActivity() {
+ @Inject lateinit var aapsLogger: AAPSLogger
+ @Inject lateinit var resourceHelper: ResourceHelper
+ @Inject lateinit var tddCalculator: TddCalculator
+ @Inject lateinit var profileFunction: ProfileFunction
+ @Inject lateinit var defaultProfile: DefaultProfile
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ setContentView(R.layout.activity_profilehelper)
+
+ profilehelper_age.setParams(15.0, 1.0, 80.0, 1.0, DecimalFormat("0"), false, null)
+ profilehelper_weight.setParams(50.0, 5.0, 150.0, 1.0, DecimalFormat("0"), false, null)
+ profilehelper_tdd.setParams(50.0, 3.0, 200.0, 1.0, DecimalFormat("0"), false, null)
+
+ profilehelper_tdds.text = tddCalculator.stats()
+
+ profilehelper_profile.setOnClickListener {
+ val age = profilehelper_age.value
+ val weight = profilehelper_weight.value
+ val tdd = profilehelper_tdd.value
+ if (age < 1 || age > 120) {
+ ToastUtils.showToastInUiThread(this, R.string.invalidage)
+ return@setOnClickListener
+ }
+ if ((weight < 5 || weight > 150) && tdd == 0.0) {
+ ToastUtils.showToastInUiThread(this, R.string.invalidweight)
+ return@setOnClickListener
+ }
+ if ((tdd < 5 || tdd > 150) && weight == 0.0) {
+ ToastUtils.showToastInUiThread(this, R.string.invalidweight)
+ return@setOnClickListener
+ }
+ profileFunction.getProfile()?.let { runningProfile ->
+ val profile = defaultProfile.profile(age, tdd, weight, profileFunction.getUnits())
+ ProfileViewerDialog().also { pvd ->
+ pvd.arguments = Bundle().also {
+ it.putLong("time", DateUtil.now())
+ it.putInt("mode", ProfileViewerDialog.Mode.PROFILE_COMPARE.ordinal)
+ it.putString("customProfile", runningProfile.data.toString())
+ it.putString("customProfile2", profile.data.toString())
+ it.putString("customProfileUnits", profile.units)
+ it.putString("customProfileName", "Age: $age TDD: $tdd Weight: $weight")
+ }
+ }.show(supportFragmentManager, "ProfileViewDialog")
+ }
+ }
+
+ }
+}
diff --git a/app/src/main/java/info/nightscout/androidaps/activities/SurveyActivity.kt b/app/src/main/java/info/nightscout/androidaps/activities/SurveyActivity.kt
index ff3e361a9b..2ca326d4a3 100644
--- a/app/src/main/java/info/nightscout/androidaps/activities/SurveyActivity.kt
+++ b/app/src/main/java/info/nightscout/androidaps/activities/SurveyActivity.kt
@@ -8,9 +8,9 @@ import info.nightscout.androidaps.R
import info.nightscout.androidaps.data.defaultProfile.DefaultProfile
import info.nightscout.androidaps.dialogs.ProfileViewerDialog
import info.nightscout.androidaps.interfaces.ActivePluginProvider
+import info.nightscout.androidaps.interfaces.ProfileFunction
import info.nightscout.androidaps.logging.AAPSLogger
import info.nightscout.androidaps.logging.LTag
-import info.nightscout.androidaps.interfaces.ProfileFunction
import info.nightscout.androidaps.utils.ActivityMonitor
import info.nightscout.androidaps.utils.DateUtil
import info.nightscout.androidaps.utils.InstanceId
@@ -19,7 +19,7 @@ import info.nightscout.androidaps.utils.ToastUtils
import info.nightscout.androidaps.utils.resources.ResourceHelper
import info.nightscout.androidaps.utils.stats.TddCalculator
import info.nightscout.androidaps.utils.stats.TirCalculator
-import kotlinx.android.synthetic.main.survey_activity.*
+import kotlinx.android.synthetic.main.activity_survey.*
import javax.inject.Inject
class SurveyActivity : NoSplashAppCompatActivity() {
@@ -34,7 +34,7 @@ class SurveyActivity : NoSplashAppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
- setContentView(R.layout.survey_activity)
+ setContentView(R.layout.activity_survey)
survey_id.text = InstanceId.instanceId()
@@ -62,16 +62,19 @@ class SurveyActivity : NoSplashAppCompatActivity() {
ToastUtils.showToastInUiThread(this, R.string.invalidweight)
return@setOnClickListener
}
- val profile = defaultProfile.profile(age, tdd, weight, profileFunction.getUnits())
- val args = Bundle()
- args.putLong("time", DateUtil.now())
- args.putInt("mode", ProfileViewerDialog.Mode.CUSTOM_PROFILE.ordinal)
- args.putString("customProfile", profile.data.toString())
- args.putString("customProfileUnits", profile.units)
- args.putString("customProfileName", "Age: $age TDD: $tdd Weight: $weight")
- val pvd = ProfileViewerDialog()
- pvd.arguments = args
- pvd.show(supportFragmentManager, "ProfileViewDialog")
+ profileFunction.getProfile()?.let { runningProfile ->
+ val profile = defaultProfile.profile(age, tdd, weight, profileFunction.getUnits())
+ ProfileViewerDialog().also { pvd ->
+ pvd.arguments = Bundle().also {
+ it.putLong("time", DateUtil.now())
+ it.putInt("mode", ProfileViewerDialog.Mode.PROFILE_COMPARE.ordinal)
+ it.putString("customProfile", runningProfile.data.toString())
+ it.putString("customProfile2", profile.data.toString())
+ it.putString("customProfileUnits", profile.units)
+ it.putString("customProfileName", "Age: $age TDD: $tdd Weight: $weight")
+ }
+ }.show(supportFragmentManager, "ProfileViewDialog")
+ }
}
survey_submit.setOnClickListener {
diff --git a/app/src/main/java/info/nightscout/androidaps/db/DatabaseHelperProvider.java b/app/src/main/java/info/nightscout/androidaps/db/DatabaseHelperProvider.java
index e888727984..0e9f9d82b2 100644
--- a/app/src/main/java/info/nightscout/androidaps/db/DatabaseHelperProvider.java
+++ b/app/src/main/java/info/nightscout/androidaps/db/DatabaseHelperProvider.java
@@ -93,4 +93,9 @@ public class DatabaseHelperProvider implements DatabaseHelperInterface {
@NotNull @Override public List getTDDsForLastXDays(int days) {
return MainApp.getDbHelper().getTDDsForLastXDays(days);
}
+
+ @NotNull @Override public List getProfileSwitchData(long from, boolean ascending) {
+ return MainApp.getDbHelper().getProfileSwitchData(from, ascending);
+ }
+
}
diff --git a/app/src/main/java/info/nightscout/androidaps/dependencyInjection/ActivitiesModule.kt b/app/src/main/java/info/nightscout/androidaps/dependencyInjection/ActivitiesModule.kt
index 8608d86269..8b3955ca8b 100644
--- a/app/src/main/java/info/nightscout/androidaps/dependencyInjection/ActivitiesModule.kt
+++ b/app/src/main/java/info/nightscout/androidaps/dependencyInjection/ActivitiesModule.kt
@@ -37,5 +37,6 @@ abstract class ActivitiesModule {
@ContributesAndroidInjector abstract fun contributesSmsCommunicatorOtpActivity(): SmsCommunicatorOtpActivity
@ContributesAndroidInjector abstract fun contributesStatsActivity(): StatsActivity
@ContributesAndroidInjector abstract fun contributesSurveyActivity(): SurveyActivity
+ @ContributesAndroidInjector abstract fun contributesDefaultProfileActivity(): ProfileHelperActivity
@ContributesAndroidInjector abstract fun contributesPrefImportListActivity(): PrefImportListActivity
}
\ No newline at end of file
diff --git a/app/src/main/java/info/nightscout/androidaps/dialogs/CareDialog.kt b/app/src/main/java/info/nightscout/androidaps/dialogs/CareDialog.kt
index ed2b96d1e7..d52e3d26e6 100644
--- a/app/src/main/java/info/nightscout/androidaps/dialogs/CareDialog.kt
+++ b/app/src/main/java/info/nightscout/androidaps/dialogs/CareDialog.kt
@@ -83,13 +83,13 @@ class CareDialog : DialogFragmentWithDate() {
}
actions_care_icon.setImageResource(when (options) {
- EventType.BGCHECK -> R.drawable.icon_cp_bgcheck
- EventType.SENSOR_INSERT -> R.drawable.icon_cp_cgm_insert
- EventType.BATTERY_CHANGE -> R.drawable.icon_cp_pump_battery
- EventType.NOTE -> R.drawable.icon_cp_note
- EventType.EXERCISE -> R.drawable.icon_cp_exercise
- EventType.QUESTION -> R.drawable.icon_cp_question
- EventType.ANNOUNCEMENT -> R.drawable.icon_cp_announcement
+ EventType.BGCHECK -> R.drawable.ic_cp_bgcheck
+ EventType.SENSOR_INSERT -> R.drawable.ic_cp_cgm_insert
+ EventType.BATTERY_CHANGE -> R.drawable.ic_cp_pump_battery
+ EventType.NOTE -> R.drawable.ic_cp_note
+ EventType.EXERCISE -> R.drawable.ic_cp_exercise
+ EventType.QUESTION -> R.drawable.ic_cp_question
+ EventType.ANNOUNCEMENT -> R.drawable.ic_cp_announcement
})
actions_care_title.text = resourceHelper.gs(when (options) {
EventType.BGCHECK -> R.string.careportal_bgcheck
diff --git a/app/src/main/java/info/nightscout/androidaps/dialogs/ProfileSwitchDialog.kt b/app/src/main/java/info/nightscout/androidaps/dialogs/ProfileSwitchDialog.kt
index 72daeb1ad1..5ea091fa28 100644
--- a/app/src/main/java/info/nightscout/androidaps/dialogs/ProfileSwitchDialog.kt
+++ b/app/src/main/java/info/nightscout/androidaps/dialogs/ProfileSwitchDialog.kt
@@ -28,6 +28,8 @@ class ProfileSwitchDialog : DialogFragmentWithDate() {
@Inject lateinit var treatmentsPlugin: TreatmentsPlugin
@Inject lateinit var activePlugin: ActivePluginProvider
+ var profileIndex: Int? = null
+
override fun onSaveInstanceState(savedInstanceState: Bundle) {
super.onSaveInstanceState(savedInstanceState)
savedInstanceState.putDouble("overview_profileswitch_duration", overview_profileswitch_duration.value)
@@ -38,6 +40,9 @@ class ProfileSwitchDialog : DialogFragmentWithDate() {
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?): View? {
onCreateViewGeneral()
+ arguments?.let { bundle ->
+ profileIndex = bundle.getInt("profileIndex", 0)
+ }
return inflater.inflate(R.layout.dialog_profileswitch, container, false)
}
@@ -59,9 +64,12 @@ class ProfileSwitchDialog : DialogFragmentWithDate() {
val adapter = ArrayAdapter(context, R.layout.spinner_centered, profileList)
overview_profileswitch_profile.adapter = adapter
// set selected to actual profile
- for (p in profileList.indices)
- if (profileList[p] == profileFunction.getProfileName(false))
- overview_profileswitch_profile.setSelection(p)
+ if (profileIndex != null)
+ overview_profileswitch_profile.setSelection(profileIndex as Int)
+ else
+ for (p in profileList.indices)
+ if (profileList[p] == profileFunction.getProfileName(false))
+ overview_profileswitch_profile.setSelection(p)
} ?: return
treatmentsPlugin.getProfileSwitchFromHistory(DateUtil.now())?.let { ps ->
diff --git a/app/src/main/java/info/nightscout/androidaps/dialogs/TempTargetDialog.kt b/app/src/main/java/info/nightscout/androidaps/dialogs/TempTargetDialog.kt
index a16c6ac471..e4f5208471 100644
--- a/app/src/main/java/info/nightscout/androidaps/dialogs/TempTargetDialog.kt
+++ b/app/src/main/java/info/nightscout/androidaps/dialogs/TempTargetDialog.kt
@@ -76,7 +76,7 @@ class TempTargetDialog : DialogFragmentWithDate() {
val adapterReason = ArrayAdapter(context, R.layout.spinner_centered, reasonList)
overview_temptarget_reason.adapter = adapterReason
overview_temptarget_reason.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
- override fun onItemSelected(parent: AdapterView<*>?, view: View, position: Int, id: Long) {
+ override fun onItemSelected(parent: AdapterView<*>?, view: View?, position: Int, id: Long) {
val defaultDuration: Double
val defaultTarget: Double
when (reasonList[position]) {
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 b97151702b..dcbb0bb9d3 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
@@ -108,6 +108,7 @@ public class LoopPlugin extends PluginBase implements LoopInterface {
private boolean isDisconnected;
private long carbsSuggestionsSuspendedUntil = 0;
+ private int prevCarbsreq = 0;
@Nullable private LastRun lastRun = null;
@@ -396,7 +397,7 @@ public class LoopPlugin extends PluginBase implements LoopInterface {
}
result.percent = (int) (result.rate / profile.getBasal() * 100);
- // check rate for constrais
+ // check rate for constraints
final APSResult resultAfterConstraints = result.newAndClone(injector);
resultAfterConstraints.rateConstraint = new Constraint<>(resultAfterConstraints.rate);
resultAfterConstraints.rate = constraintChecker.applyBasalConstraints(resultAfterConstraints.rateConstraint, profile).value();
@@ -414,6 +415,10 @@ public class LoopPlugin extends PluginBase implements LoopInterface {
resultAfterConstraints.smb = 0;
}
+ if (lastRun != null) {
+ prevCarbsreq = lastRun.getConstraintsProcessed().carbsReq;
+ }
+
if (lastRun == null) lastRun = new LastRun();
lastRun.setRequest(result);
lastRun.setConstraintsProcessed(resultAfterConstraints);
@@ -494,12 +499,19 @@ public class LoopPlugin extends PluginBase implements LoopInterface {
mNotificationManager.notify(Constants.notificationID, builder.build());
rxBus.send(new EventNewOpenLoopNotification());
- // Send to Wear
- actionStringHandler.get().handleInitiate("changeRequest");
+ //only send to wear if Native notifications are turned off
+ if (!sp.getBoolean(R.string.key_raise_notifications_as_android_notifications, false)) {
+ // Send to Wear
+ actionStringHandler.get().handleInitiate("changeRequest");
+ }
}
} else {
- dismissSuggestion();
+ //If carbs were required previously, but are no longer needed, dismiss notifications
+ if ( prevCarbsreq > 0 ) {
+ dismissSuggestion();
+ rxBus.send(new EventDismissNotification(Notification.CARBS_REQUIRED));
+ }
}
}
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/configBuilder/ConfigBuilderFragment.kt b/app/src/main/java/info/nightscout/androidaps/plugins/configBuilder/ConfigBuilderFragment.kt
index 57781a090a..3badb56824 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/configBuilder/ConfigBuilderFragment.kt
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/configBuilder/ConfigBuilderFragment.kt
@@ -12,6 +12,7 @@ import android.widget.RadioButton
import android.widget.TextView
import androidx.annotation.StringRes
import dagger.android.support.DaggerFragment
+import info.nightscout.androidaps.Config
import info.nightscout.androidaps.R
import info.nightscout.androidaps.activities.PreferencesActivity
import info.nightscout.androidaps.events.EventRebuildTabs
@@ -20,9 +21,9 @@ import info.nightscout.androidaps.plugins.bus.RxBusWrapper
import info.nightscout.androidaps.plugins.configBuilder.events.EventConfigBuilderUpdateGui
import info.nightscout.androidaps.utils.FabricPrivacy
import info.nightscout.androidaps.utils.extensions.plusAssign
+import info.nightscout.androidaps.utils.extensions.toVisibility
import info.nightscout.androidaps.utils.protection.ProtectionCheck
import info.nightscout.androidaps.utils.resources.ResourceHelper
-import info.nightscout.androidaps.utils.extensions.toVisibility
import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.disposables.CompositeDisposable
import kotlinx.android.synthetic.main.configbuilder_fragment.*
@@ -36,6 +37,7 @@ class ConfigBuilderFragment : DaggerFragment() {
@Inject lateinit var fabricPrivacy: FabricPrivacy
@Inject lateinit var activePlugin: ActivePluginProvider
@Inject lateinit var protectionCheck: ProtectionCheck
+ @Inject lateinit var config: Config
private var disposable: CompositeDisposable = CompositeDisposable()
private val pluginViewHolders = ArrayList()
@@ -86,14 +88,20 @@ class ConfigBuilderFragment : DaggerFragment() {
@Synchronized
private fun updateGUI() {
configbuilder_categories.removeAllViews()
- createViewsForPlugins(R.string.configbuilder_profile, R.string.configbuilder_profile_description, PluginType.PROFILE, activePlugin.getSpecificPluginsVisibleInListByInterface(ProfileInterface::class.java, PluginType.PROFILE))
+ if (!config.NSCLIENT) {
+ createViewsForPlugins(R.string.configbuilder_profile, R.string.configbuilder_profile_description, PluginType.PROFILE, activePlugin.getSpecificPluginsVisibleInListByInterface(ProfileInterface::class.java, PluginType.PROFILE))
+ }
createViewsForPlugins(R.string.configbuilder_insulin, R.string.configbuilder_insulin_description, PluginType.INSULIN, activePlugin.getSpecificPluginsVisibleInListByInterface(InsulinInterface::class.java, PluginType.INSULIN))
- createViewsForPlugins(R.string.configbuilder_bgsource, R.string.configbuilder_bgsource_description, PluginType.BGSOURCE, activePlugin.getSpecificPluginsVisibleInListByInterface(BgSourceInterface::class.java, PluginType.BGSOURCE))
- createViewsForPlugins(R.string.configbuilder_pump, R.string.configbuilder_pump_description, PluginType.PUMP, activePlugin.getSpecificPluginsVisibleInList(PluginType.PUMP))
+ if (!config.NSCLIENT) {
+ createViewsForPlugins(R.string.configbuilder_bgsource, R.string.configbuilder_bgsource_description, PluginType.BGSOURCE, activePlugin.getSpecificPluginsVisibleInListByInterface(BgSourceInterface::class.java, PluginType.BGSOURCE))
+ createViewsForPlugins(R.string.configbuilder_pump, R.string.configbuilder_pump_description, PluginType.PUMP, activePlugin.getSpecificPluginsVisibleInList(PluginType.PUMP))
+ }
createViewsForPlugins(R.string.configbuilder_sensitivity, R.string.configbuilder_sensitivity_description, PluginType.SENSITIVITY, activePlugin.getSpecificPluginsVisibleInListByInterface(SensitivityInterface::class.java, PluginType.SENSITIVITY))
- createViewsForPlugins(R.string.configbuilder_aps, R.string.configbuilder_aps_description, PluginType.APS, activePlugin.getSpecificPluginsVisibleInList(PluginType.APS))
- createViewsForPlugins(R.string.configbuilder_loop, R.string.configbuilder_loop_description, PluginType.LOOP, activePlugin.getSpecificPluginsVisibleInList(PluginType.LOOP))
- createViewsForPlugins(R.string.constraints, R.string.configbuilder_constraints_description, PluginType.CONSTRAINTS, activePlugin.getSpecificPluginsVisibleInListByInterface(ConstraintsInterface::class.java, PluginType.CONSTRAINTS))
+ if (config.APS) {
+ createViewsForPlugins(R.string.configbuilder_aps, R.string.configbuilder_aps_description, PluginType.APS, activePlugin.getSpecificPluginsVisibleInList(PluginType.APS))
+ createViewsForPlugins(R.string.configbuilder_loop, R.string.configbuilder_loop_description, PluginType.LOOP, activePlugin.getSpecificPluginsVisibleInList(PluginType.LOOP))
+ createViewsForPlugins(R.string.constraints, R.string.configbuilder_constraints_description, PluginType.CONSTRAINTS, activePlugin.getSpecificPluginsVisibleInListByInterface(ConstraintsInterface::class.java, PluginType.CONSTRAINTS))
+ }
createViewsForPlugins(R.string.configbuilder_treatments, R.string.configbuilder_treatments_description, PluginType.TREATMENT, activePlugin.getSpecificPluginsVisibleInList(PluginType.TREATMENT))
createViewsForPlugins(R.string.configbuilder_general, R.string.configbuilder_general_description, PluginType.GENERAL, activePlugin.getSpecificPluginsVisibleInList(PluginType.GENERAL))
}
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/AutomationPlugin.kt b/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/AutomationPlugin.kt
index bde4182aef..b67d270c8d 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/AutomationPlugin.kt
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/AutomationPlugin.kt
@@ -4,6 +4,7 @@ import android.content.Context
import android.content.Intent
import android.os.Build
import android.os.Handler
+import android.os.HandlerThread
import dagger.android.HasAndroidInjector
import info.nightscout.androidaps.R
import info.nightscout.androidaps.events.EventBTChange
@@ -39,7 +40,6 @@ import org.json.JSONException
import org.json.JSONObject
import javax.inject.Inject
import javax.inject.Singleton
-import kotlin.collections.ArrayList
@Singleton
class AutomationPlugin @Inject constructor(
@@ -71,7 +71,7 @@ class AutomationPlugin @Inject constructor(
var executionLog: MutableList = ArrayList()
var btConnects : MutableList = ArrayList()
- private val loopHandler = Handler()
+ private val loopHandler : Handler = Handler(HandlerThread(AutomationPlugin::class.java.simpleName + "Handler").also { it.start() }.looper)
private lateinit var refreshLoop: Runnable
init {
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/actions/ActionProfileSwitch.kt b/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/actions/ActionProfileSwitch.kt
index a46796b59d..9d4bc5f81d 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/actions/ActionProfileSwitch.kt
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/actions/ActionProfileSwitch.kt
@@ -27,7 +27,7 @@ class ActionProfileSwitch(injector: HasAndroidInjector) : Action(injector) {
override fun friendlyName(): Int = R.string.profilename
override fun shortDescription(): String = resourceHelper.gs(R.string.changengetoprofilename, inputProfileName.value)
- @DrawableRes override fun icon(): Int = R.drawable.icon_actions_profileswitch
+ @DrawableRes override fun icon(): Int = R.drawable.ic_actions_profileswitch
override fun doAction(callback: Callback) {
val activeProfileName = profileFunction.getProfileName()
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/actions/ActionProfileSwitchPercent.kt b/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/actions/ActionProfileSwitchPercent.kt
index f45e8d19e9..b0cb5f555f 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/actions/ActionProfileSwitchPercent.kt
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/actions/ActionProfileSwitchPercent.kt
@@ -30,7 +30,7 @@ class ActionProfileSwitchPercent(injector: HasAndroidInjector) : Action(injector
if (duration.value == 0) resourceHelper.gs(R.string.startprofileforever, pct.value.toInt())
else resourceHelper.gs(R.string.startprofile, pct.value.toInt(), duration.value)
- @DrawableRes override fun icon(): Int = R.drawable.icon_actions_profileswitch
+ @DrawableRes override fun icon(): Int = R.drawable.ic_actions_profileswitch
init {
precondition = TriggerProfilePercent(injector, 100.0, Comparator.Compare.IS_EQUAL)
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/actions/ActionStartTempTarget.kt b/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/actions/ActionStartTempTarget.kt
index d0cb6b09e7..812a572df9 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/actions/ActionStartTempTarget.kt
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/actions/ActionStartTempTarget.kt
@@ -37,7 +37,7 @@ class ActionStartTempTarget(injector: HasAndroidInjector) : Action(injector) {
override fun friendlyName(): Int = R.string.starttemptarget
override fun shortDescription(): String = resourceHelper.gs(R.string.starttemptarget) + ": " + tt().friendlyDescription(value.units, resourceHelper)
- @DrawableRes override fun icon(): Int = R.drawable.icon_cp_cgm_target
+ @DrawableRes override fun icon(): Int = R.drawable.ic_cp_cgm_target
override fun doAction(callback: Callback) {
activePlugin.activeTreatments.addToHistoryTempTarget(tt())
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/elements/Comparator.kt b/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/elements/Comparator.kt
index 86fd8dc73e..11b8d1b952 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/elements/Comparator.kt
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/elements/Comparator.kt
@@ -74,7 +74,7 @@ class Comparator(injector: HasAndroidInjector) : Element(injector) {
spinnerParams.setMargins(0, resourceHelper.dpToPx(4), 0, resourceHelper.dpToPx(4))
spinner.layoutParams = spinnerParams
spinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
- override fun onItemSelected(parent: AdapterView<*>?, view: View, position: Int, id: Long) {
+ override fun onItemSelected(parent: AdapterView<*>?, view: View?, position: Int, id: Long) {
value = Compare.values()[position]
}
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/elements/ComparatorConnect.kt b/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/elements/ComparatorConnect.kt
index 3e293fef5a..5d2d47edf9 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/elements/ComparatorConnect.kt
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/elements/ComparatorConnect.kt
@@ -48,7 +48,7 @@ class ComparatorConnect(injector: HasAndroidInjector) : Element(injector) {
spinnerParams.setMargins(0, resourceHelper.dpToPx(4), 0, resourceHelper.dpToPx(4))
spinner.layoutParams = spinnerParams
spinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
- override fun onItemSelected(parent: AdapterView<*>?, view: View, position: Int, id: Long) {
+ override fun onItemSelected(parent: AdapterView<*>?, view: View?, position: Int, id: Long) {
value = Compare.values()[position]
}
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/elements/ComparatorExists.kt b/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/elements/ComparatorExists.kt
index 2e7e437bd9..cb7eb8a32e 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/elements/ComparatorExists.kt
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/elements/ComparatorExists.kt
@@ -48,7 +48,7 @@ class ComparatorExists(injector: HasAndroidInjector) : Element(injector) {
spinnerParams.setMargins(0, resourceHelper.dpToPx(4), 0, resourceHelper.dpToPx(4))
spinner.layoutParams = spinnerParams
spinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
- override fun onItemSelected(parent: AdapterView<*>?, view: View, position: Int, id: Long) {
+ override fun onItemSelected(parent: AdapterView<*>?, view: View?, position: Int, id: Long) {
value = Compare.values()[position]
}
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/elements/InputDelta.kt b/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/elements/InputDelta.kt
index a667b51099..e7624a98c7 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/elements/InputDelta.kt
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/elements/InputDelta.kt
@@ -76,7 +76,7 @@ class InputDelta(injector: HasAndroidInjector) : Element(injector) {
spinnerParams.setMargins(0, resourceHelper.dpToPx(4), 0, resourceHelper.dpToPx(4))
spinner.layoutParams = spinnerParams
spinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
- override fun onItemSelected(parent: AdapterView<*>?, view: View, position: Int, id: Long) {
+ override fun onItemSelected(parent: AdapterView<*>?, view: View?, position: Int, id: Long) {
deltaType = DeltaType.values()[position]
}
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/elements/InputDropdownMenu.kt b/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/elements/InputDropdownMenu.kt
index 7f894293f9..473d26bb4b 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/elements/InputDropdownMenu.kt
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/elements/InputDropdownMenu.kt
@@ -38,7 +38,7 @@ class InputDropdownMenu(injector: HasAndroidInjector) : Element(injector) {
).also { it.setMargins(0, resourceHelper.dpToPx(4), 0, resourceHelper.dpToPx(4)) }
spinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
- override fun onItemSelected(parent: AdapterView<*>?, view: View, position: Int, id: Long) {
+ override fun onItemSelected(parent: AdapterView<*>?, view: View?, position: Int, id: Long) {
setValue(itemList[position].toString())
}
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/elements/InputLocationMode.kt b/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/elements/InputLocationMode.kt
index 9e3f7280cc..e5e42fa60a 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/elements/InputLocationMode.kt
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/elements/InputLocationMode.kt
@@ -62,7 +62,7 @@ class InputLocationMode(injector: HasAndroidInjector) : Element(injector) {
spinnerParams.setMargins(0, resourceHelper.dpToPx(4), 0, resourceHelper.dpToPx(4))
spinner.layoutParams = spinnerParams
spinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
- override fun onItemSelected(parent: AdapterView<*>?, view: View, position: Int, id: Long) {
+ override fun onItemSelected(parent: AdapterView<*>?, view: View?, position: Int, id: Long) {
value = Mode.values()[position]
}
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/elements/InputProfileName.kt b/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/elements/InputProfileName.kt
index 57e010eabe..57f2b904b7 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/elements/InputProfileName.kt
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/elements/InputProfileName.kt
@@ -36,7 +36,7 @@ class InputProfileName(injector: HasAndroidInjector) : Element(injector) {
spinnerParams.setMargins(0, resourceHelper.dpToPx(4), 0, resourceHelper.dpToPx(4))
spinner.layoutParams = spinnerParams
spinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
- override fun onItemSelected(parent: AdapterView<*>?, view: View, position: Int, id: Long) {
+ override fun onItemSelected(parent: AdapterView<*>?, view: View?, position: Int, id: Long) {
value = profileList[position].toString()
}
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/elements/InputTempTarget.kt b/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/elements/InputTempTarget.kt
index fa1939e951..8208e7e687 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/elements/InputTempTarget.kt
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/elements/InputTempTarget.kt
@@ -4,14 +4,18 @@ import android.widget.LinearLayout
import dagger.android.HasAndroidInjector
import info.nightscout.androidaps.Constants
import info.nightscout.androidaps.R
+import info.nightscout.androidaps.interfaces.ProfileFunction
import info.nightscout.androidaps.utils.NumberPicker
import java.text.DecimalFormat
+import javax.inject.Inject
class InputTempTarget(injector: HasAndroidInjector) : Element(injector) {
var units = Constants.MGDL
var value = 0.0
+ @Inject lateinit var profileFunction: ProfileFunction
init {
+ units = profileFunction.getUnits()
value = if (units == Constants.MMOL) 6.0 else 110.0
}
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/triggers/TriggerBg.kt b/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/triggers/TriggerBg.kt
index 75b30edb3b..558bc9ac4f 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/triggers/TriggerBg.kt
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/triggers/TriggerBg.kt
@@ -91,7 +91,7 @@ class TriggerBg(injector: HasAndroidInjector) : Trigger(injector) {
resourceHelper.gs(if (bg.units == Constants.MGDL) R.string.glucosecomparedmgdl else R.string.glucosecomparedmmol, resourceHelper.gs(comparator.value.stringRes), bg.value, bg.units)
}
- override fun icon(): Optional = Optional.of(R.drawable.icon_cp_bgcheck)
+ override fun icon(): Optional = Optional.of(R.drawable.ic_cp_bgcheck)
override fun duplicate(): Trigger = TriggerBg(injector, this)
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/triggers/TriggerConnector.kt b/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/triggers/TriggerConnector.kt
index 8574bfa05c..6d19c24441 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/triggers/TriggerConnector.kt
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/triggers/TriggerConnector.kt
@@ -160,7 +160,7 @@ class TriggerConnector(injector: HasAndroidInjector) : Trigger(injector) {
params.weight = 1.0f
spinner.layoutParams = params
spinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
- override fun onItemSelected(parent: AdapterView<*>?, view: View, position: Int, id: Long) {
+ override fun onItemSelected(parent: AdapterView<*>?, view: View?, position: Int, id: Long) {
setType(Type.values()[position])
}
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/triggers/TriggerProfilePercent.kt b/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/triggers/TriggerProfilePercent.kt
index 1dea3cd15f..9a13ebedeb 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/triggers/TriggerProfilePercent.kt
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/triggers/TriggerProfilePercent.kt
@@ -77,7 +77,7 @@ class TriggerProfilePercent(injector: HasAndroidInjector) : Trigger(injector) {
override fun friendlyDescription(): String =
resourceHelper.gs(R.string.percentagecompared, resourceHelper.gs(comparator.value.stringRes), pct.value.toInt())
- override fun icon(): Optional = Optional.of(R.drawable.icon_actions_profileswitch)
+ override fun icon(): Optional = Optional.of(R.drawable.ic_actions_profileswitch)
override fun duplicate(): Trigger = TriggerProfilePercent(injector, this)
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/triggers/TriggerWifiSsid.kt b/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/triggers/TriggerWifiSsid.kt
index 49aeec14ed..71839a8fae 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/triggers/TriggerWifiSsid.kt
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/general/automation/triggers/TriggerWifiSsid.kt
@@ -47,7 +47,7 @@ class TriggerWifiSsid(injector: HasAndroidInjector) : Trigger(injector) {
aapsLogger.debug(LTag.AUTOMATION, "Ready for execution: " + friendlyDescription())
return true
}
- if (eventNetworkChange.wifiConnected && comparator.value.check(eventNetworkChange.connectedSsid(), ssid.value)) {
+ if (eventNetworkChange.wifiConnected && comparator.value.check(eventNetworkChange.ssid, ssid.value)) {
aapsLogger.debug(LTag.AUTOMATION, "Ready for execution: " + friendlyDescription())
return true
}
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/general/nsclient/NsClientReceiverDelegate.java b/app/src/main/java/info/nightscout/androidaps/plugins/general/nsclient/NsClientReceiverDelegate.java
index 3bc2bde171..d54f48d511 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/general/nsclient/NsClientReceiverDelegate.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/general/nsclient/NsClientReceiverDelegate.java
@@ -1,5 +1,7 @@
package info.nightscout.androidaps.plugins.general.nsclient;
+import java.util.Arrays;
+
import javax.inject.Inject;
import javax.inject.Singleton;
@@ -48,6 +50,7 @@ class NsClientReceiverDelegate {
ev.isChanged(resourceHelper, R.string.key_ns_allowroaming)
) {
receiverStatusStore.updateNetworkStatus();
+ onStatusEvent(receiverStatusStore.getLastNetworkEvent());
} else if (ev.isChanged(resourceHelper, R.string.key_ns_chargingonly)) {
receiverStatusStore.broadcastChargingState();
}
@@ -92,14 +95,15 @@ class NsClientReceiverDelegate {
boolean calculateStatus(final EventNetworkChange ev) {
boolean wifiOnly = sp.getBoolean(R.string.key_ns_wifionly, false);
- String allowedSSIDs = sp.getString(R.string.key_ns_wifi_ssids, "");
+ String allowedSSIDstring = sp.getString(R.string.key_ns_wifi_ssids, "");
+ String[] allowedSSIDs = allowedSSIDstring.split(";");
+ if (allowedSSIDstring.isEmpty()) allowedSSIDs = new String[0];
boolean allowRoaming = sp.getBoolean(R.string.key_ns_allowroaming, true);
boolean newAllowedState = true;
if (ev.getWifiConnected()) {
- if (!allowedSSIDs.trim().isEmpty() &&
- (!allowedSSIDs.contains(ev.connectedSsid()) && !allowedSSIDs.contains(ev.getSsid()))) {
+ if (allowedSSIDs.length != 0 && !Arrays.asList(allowedSSIDs).contains(ev.getSsid())) {
newAllowedState = false;
}
} else {
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/general/nsclient/data/NSSettingsStatus.kt b/app/src/main/java/info/nightscout/androidaps/plugins/general/nsclient/data/NSSettingsStatus.kt
index d0441cccfa..06c853185a 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/general/nsclient/data/NSSettingsStatus.kt
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/general/nsclient/data/NSSettingsStatus.kt
@@ -139,7 +139,7 @@ class NSSettingsStatus @Inject constructor(
val targetlow = getSettingsThreshold("bgTargetBottom")
if (targetHigh != null) defaultValueHelper.bgTargetHigh = targetHigh
if (targetlow != null) defaultValueHelper.bgTargetLow = targetlow
- copyStatusLightsNsSettings(null)
+ if (config.NSCLIENT) copyStatusLightsNsSettings(null)
}
fun getName(): String? =
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/OverviewFragment.kt b/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/OverviewFragment.kt
index 4afcc52826..40318d0ca0 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/OverviewFragment.kt
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/OverviewFragment.kt
@@ -158,7 +158,7 @@ class OverviewFragment : DaggerFragment(), View.OnClickListener, OnLongClickList
private val secondaryGraphs = ArrayList()
private val secondaryGraphsLabel = ArrayList()
- private lateinit var carbAnimation: AnimationDrawable
+ private var carbAnimation: AnimationDrawable? = null
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?): View? {
@@ -190,9 +190,9 @@ class OverviewFragment : DaggerFragment(), View.OnClickListener, OnLongClickList
overview_bggraph?.gridLabelRenderer?.labelVerticalWidth = axisWidth
overview_bggraph?.layoutParams?.height = resourceHelper.dpToPx(skinProvider.activeSkin().mainGraphHeight)
- carbAnimation = overview_carbs_icon.background as AnimationDrawable
- carbAnimation.setEnterFadeDuration(1200)
- carbAnimation.setExitFadeDuration(1200)
+ carbAnimation = overview_carbs_icon?.background as AnimationDrawable?
+ carbAnimation?.setEnterFadeDuration(1200)
+ carbAnimation?.setExitFadeDuration(1200)
rangeToDisplay = sp.getInt(R.string.key_rangetodisplay, 6)
@@ -572,9 +572,9 @@ class OverviewFragment : DaggerFragment(), View.OnClickListener, OnLongClickList
val glucoseStatus = GlucoseStatus(injector).glucoseStatusData
if (glucoseStatus != null) {
- overview_delta?.text = "Δ ${Profile.toSignedUnitsString(glucoseStatus.delta, glucoseStatus.delta * Constants.MGDL_TO_MMOLL, units)}"
+ overview_delta?.text = "${Profile.toSignedUnitsString(glucoseStatus.delta, glucoseStatus.delta * Constants.MGDL_TO_MMOLL, units)}"
overview_deltashort?.text = Profile.toSignedUnitsString(glucoseStatus.delta, glucoseStatus.delta * Constants.MGDL_TO_MMOLL, units)
- overview_avgdelta?.text = "Δ15m: ${Profile.toUnitsString(glucoseStatus.short_avgdelta, glucoseStatus.short_avgdelta * Constants.MGDL_TO_MMOLL, units)}\nΔ40m: ${Profile.toUnitsString(glucoseStatus.long_avgdelta, glucoseStatus.long_avgdelta * Constants.MGDL_TO_MMOLL, units)}"
+ overview_avgdelta?.text = "${Profile.toSignedUnitsString(glucoseStatus.short_avgdelta, glucoseStatus.short_avgdelta * Constants.MGDL_TO_MMOLL, units)}\n${Profile.toSignedUnitsString(glucoseStatus.long_avgdelta, glucoseStatus.long_avgdelta * Constants.MGDL_TO_MMOLL, units)}"
} else {
overview_delta?.text = "Δ " + resourceHelper.gs(R.string.notavailable)
overview_deltashort?.text = "---"
@@ -600,49 +600,51 @@ class OverviewFragment : DaggerFragment(), View.OnClickListener, OnLongClickList
overview_apsmode?.visibility = View.VISIBLE
when {
loopPlugin.isEnabled() && loopPlugin.isSuperBolus -> {
- overview_apsmode.setImageResource(R.drawable.ic_loop_superbolus)
+ overview_apsmode?.setImageResource(R.drawable.ic_loop_superbolus)
overview_apsmode_text?.text = DateUtil.age(loopPlugin.minutesToEndOfSuspend() * 60000L, true, resourceHelper)
}
loopPlugin.isDisconnected -> {
- overview_apsmode.setImageResource(R.drawable.ic_loop_disconnected)
+ overview_apsmode?.setImageResource(R.drawable.ic_loop_disconnected)
overview_apsmode_text?.text = DateUtil.age(loopPlugin.minutesToEndOfSuspend() * 60000L, true, resourceHelper)
}
loopPlugin.isEnabled() && loopPlugin.isSuspended -> {
- overview_apsmode.setImageResource(R.drawable.ic_loop_paused)
+ overview_apsmode?.setImageResource(R.drawable.ic_loop_paused)
overview_apsmode_text?.text = DateUtil.age(loopPlugin.minutesToEndOfSuspend() * 60000L, true, resourceHelper)
}
pump.isSuspended -> {
- overview_apsmode.setImageResource(R.drawable.ic_loop_paused)
+ overview_apsmode?.setImageResource(R.drawable.ic_loop_paused)
overview_apsmode_text?.text = ""
}
loopPlugin.isEnabled() && closedLoopEnabled.value() && loopPlugin.isLGS -> {
- overview_apsmode.setImageResource(R.drawable.ic_loop_lgs)
+ overview_apsmode?.setImageResource(R.drawable.ic_loop_lgs)
overview_apsmode_text?.text = ""
}
loopPlugin.isEnabled() && closedLoopEnabled.value() -> {
- overview_apsmode.setImageResource(R.drawable.ic_loop_closed)
+ overview_apsmode?.setImageResource(R.drawable.ic_loop_closed)
overview_apsmode_text?.text = ""
}
loopPlugin.isEnabled() && !closedLoopEnabled.value() -> {
- overview_apsmode.setImageResource(R.drawable.ic_loop_open)
+ overview_apsmode?.setImageResource(R.drawable.ic_loop_open)
overview_apsmode_text?.text = ""
}
else -> {
- overview_apsmode.setImageResource(R.drawable.ic_loop_disabled)
+ overview_apsmode?.setImageResource(R.drawable.ic_loop_disabled)
overview_apsmode_text?.text = ""
}
}
} else {
+ overview_apsmode?.visibility = View.GONE
overview_apsmode_text?.visibility = View.GONE
}
val lastRun = loopPlugin.lastRun
+ val predictionsAvailable = if (config.APS) lastRun?.request?.hasPredictions == true else config.NSCLIENT
// temp target
val tempTarget = treatmentsPlugin.tempTargetFromHistory
@@ -654,7 +656,8 @@ class OverviewFragment : DaggerFragment(), View.OnClickListener, OnLongClickList
// If the target is not the same as set in the profile then oref has overridden it
val targetUsed = lastRun?.constraintsProcessed?.targetBG ?: 0.0
- if (targetUsed != 0.0 && profile.targetMgdl != targetUsed) {
+ if (targetUsed != 0.0 && abs(profile.targetMgdl-targetUsed) > 0.01) {
+ aapsLogger.debug("Adjusted target. Profile: ${profile.targetMgdl} APS: $targetUsed")
overview_temptarget?.text = Profile.toTargetRangeString(targetUsed, targetUsed, Constants.MGDL, units)
overview_temptarget?.setTextColor(resourceHelper.gc(R.color.ribbonTextWarning))
overview_temptarget?.setBackgroundColor(resourceHelper.gc(R.color.tempTargetBackground))
@@ -681,9 +684,9 @@ class OverviewFragment : DaggerFragment(), View.OnClickListener, OnLongClickList
?: resourceHelper.gc(R.color.defaulttextcolor))
if (activeTemp != null)
- overview_basebasal_icon.setImageResource(if (activeTemp.tempBasalConvertedToPercent(System.currentTimeMillis(), profile) > 100) R.drawable.ic_cp_basal_tbr_high else R.drawable.ic_cp_basal_tbr_low)
+ overview_basebasal_icon?.setImageResource(if (activeTemp.tempBasalConvertedToPercent(System.currentTimeMillis(), profile) > 100) R.drawable.ic_cp_basal_tbr_high else R.drawable.ic_cp_basal_tbr_low)
else
- overview_basebasal_icon.setImageResource(R.drawable.ic_cp_basal_no_tbr)
+ overview_basebasal_icon?.setImageResource(R.drawable.ic_cp_basal_no_tbr)
// Extended bolus
val extendedBolus = treatmentsPlugin.getExtendedBolusFromHistory(System.currentTimeMillis())
@@ -748,18 +751,19 @@ class OverviewFragment : DaggerFragment(), View.OnClickListener, OnLongClickList
if (config.APS && lastRun?.constraintsProcessed != null) {
if (lastRun.constraintsProcessed!!.carbsReq > 0) {
- overview_cob?.text = cobText + " | " + lastRun.constraintsProcessed!!.carbsReq + " " + resourceHelper.gs(R.string.required)
- if (!carbAnimation.isRunning)
- carbAnimation.start()
+ //only display carbsreq when carbs havnt been entered recently
+ if (treatmentsPlugin.lastCarbTime < lastRun.lastAPSRun) {
+ cobText = cobText + " | " + lastRun.constraintsProcessed!!.carbsReq + " " + resourceHelper.gs(R.string.required)
+ }
+ overview_cob?.text = cobText
+ if (carbAnimation?.isRunning == false)
+ carbAnimation?.start()
} else {
overview_cob?.text = cobText
- if (carbAnimation.isRunning)
- carbAnimation.stop()
- carbAnimation.selectDrawable(0);
+ carbAnimation?.stop()
+ carbAnimation?.selectDrawable(0)
}
- }
-
- val predictionsAvailable = if (config.APS) lastRun?.request?.hasPredictions == true else config.NSCLIENT
+ } else overview_cob?.text = cobText
// pump status from ns
overview_pump?.text = nsDeviceStatus.pumpStatus
@@ -775,9 +779,9 @@ class OverviewFragment : DaggerFragment(), View.OnClickListener, OnLongClickList
// Sensitivity
if (sp.getBoolean(R.string.key_openapsama_useautosens, false) && constraintChecker.isAutosensModeEnabled().value()) {
- overview_sensitivity_icon.setImageResource(R.drawable.ic_swap_vert_black_48dp_green)
+ overview_sensitivity_icon?.setImageResource(R.drawable.ic_swap_vert_black_48dp_green)
} else {
- overview_sensitivity_icon.setImageResource(R.drawable.ic_x_swap_vert)
+ overview_sensitivity_icon?.setImageResource(R.drawable.ic_x_swap_vert)
}
overview_sensitivity?.text =
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/dialogs/EditQuickWizardDialog.kt b/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/dialogs/EditQuickWizardDialog.kt
index 188ce707db..463c7564fa 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/dialogs/EditQuickWizardDialog.kt
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/dialogs/EditQuickWizardDialog.kt
@@ -104,7 +104,7 @@ class EditQuickWizardDialog : DaggerDialogFragment() {
overview_editquickwizard_usetemptarget_spinner.setSelection(entry.useTempTarget())
overview_editquickwizard_usecob_spinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
- override fun onItemSelected(parent: AdapterView<*>, view: View, position: Int, id: Long) = processCob()
+ override fun onItemSelected(parent: AdapterView<*>, view: View?, position: Int, id: Long) = processCob()
override fun onNothingSelected(parent: AdapterView<*>) {}
}
processCob()
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/general/persistentNotification/DummyService.kt b/app/src/main/java/info/nightscout/androidaps/plugins/general/persistentNotification/DummyService.kt
index 8a4524d9e2..5fcf9ee85b 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/general/persistentNotification/DummyService.kt
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/general/persistentNotification/DummyService.kt
@@ -1,5 +1,6 @@
package info.nightscout.androidaps.plugins.general.persistentNotification
+import android.app.Notification
import android.app.Service
import android.content.Intent
import android.os.IBinder
@@ -26,13 +27,17 @@ class DummyService : DaggerService() {
private val disposable = CompositeDisposable()
- override fun onBind(intent: Intent): IBinder? = null
+ override fun onBind(intent: Intent?): IBinder? = null
override fun onCreate() {
super.onCreate()
// TODO: I guess this was moved here in order to adhere to the 5 seconds rule to call "startForeground" after a Service was called as Foreground service?
// As onCreate() is not called every time a service is started, copied to onStartCommand().
- startForeground(notificationHolder.notificationID, notificationHolder.notification)
+ try {
+ startForeground(notificationHolder.notificationID, notificationHolder.notification)
+ } catch (e: Exception) {
+ startForeground(4711, Notification())
+ }
disposable.add(rxBus
.toObservable(EventAppExit::class.java)
.observeOn(Schedulers.io())
@@ -52,7 +57,11 @@ class DummyService : DaggerService() {
override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
super.onStartCommand(intent, flags, startId)
- startForeground(notificationHolder.notificationID, notificationHolder.notification)
+ try {
+ startForeground(notificationHolder.notificationID, notificationHolder.notification)
+ } catch (e: Exception) {
+ startForeground(4711, Notification())
+ }
return Service.START_STICKY
}
}
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 845e862373..88228d1018 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
@@ -152,7 +152,7 @@ public class WatchUpdaterService extends WearableListenerService implements Goog
if (wearIntegration()) {
handler.post(() -> {
- if (googleApiClient.isConnected()) {
+ if (googleApiClient != null && googleApiClient.isConnected()) {
if (ACTION_RESEND.equals(action)) {
resendData();
} else if (ACTION_OPEN_SETTINGS.equals(action)) {
@@ -180,7 +180,7 @@ public class WatchUpdaterService extends WearableListenerService implements Goog
sendData();
}
} else {
- googleApiClient.connect();
+ if (googleApiClient != null) googleApiClient.connect();
}
});
}
@@ -298,9 +298,11 @@ public class WatchUpdaterService extends WearableListenerService implements Goog
private DataMap dataMapSingleBG(BgReading lastBG, GlucoseStatus glucoseStatus) {
String units = profileFunction.getUnits();
-
- double lowLine = defaultValueHelper.determineLowLine();
- double highLine = defaultValueHelper.determineHighLine();
+ double convert2MGDL = 1.0;
+ if (units.equals(Constants.MMOL))
+ convert2MGDL = Constants.MMOLL_TO_MGDL;
+ double lowLine = defaultValueHelper.determineLowLine()*convert2MGDL;
+ double highLine = defaultValueHelper.determineHighLine()*convert2MGDL;
long sgvLevel = 0L;
if (lastBG.value > highLine) {
@@ -323,7 +325,7 @@ public class WatchUpdaterService extends WearableListenerService implements Goog
dataMap.putString("avgDelta", deltastring(glucoseStatus.avgdelta, glucoseStatus.avgdelta * Constants.MGDL_TO_MMOLL, units));
}
dataMap.putLong("sgvLevel", sgvLevel);
- dataMap.putDouble("sgvDouble", lastBG.valueToUnits(units));
+ dataMap.putDouble("sgvDouble", lastBG.value);
dataMap.putDouble("high", highLine);
dataMap.putDouble("low", lowLine);
return dataMap;
@@ -539,7 +541,7 @@ public class WatchUpdaterService extends WearableListenerService implements Goog
final String units = profileFunction.getUnits();
for (BgReading bg : predArray) {
if (bg.value < 40) continue;
- predictions.add(predictionMap(bg.date, bg.valueToUnits(units), bg.getPredectionColor()));
+ predictions.add(predictionMap(bg.date, bg.value, bg.getPredectionColor()));
}
}
}
@@ -592,7 +594,7 @@ public class WatchUpdaterService extends WearableListenerService implements Goog
private void sendNotification() {
- if (googleApiClient.isConnected()) {
+ if (googleApiClient != null && googleApiClient.isConnected()) {
PutDataMapRequest dataMapRequest = PutDataMapRequest.create(OPEN_SETTINGS_PATH);
//unique content
dataMapRequest.getDataMap().putLong("timestamp", System.currentTimeMillis());
@@ -606,7 +608,7 @@ public class WatchUpdaterService extends WearableListenerService implements Goog
}
private void sendBolusProgress(int progresspercent, String status) {
- if (googleApiClient.isConnected()) {
+ if (googleApiClient != null && googleApiClient.isConnected()) {
PutDataMapRequest dataMapRequest = PutDataMapRequest.create(BOLUS_PROGRESS_PATH);
//unique content
dataMapRequest.getDataMap().putLong("timestamp", System.currentTimeMillis());
@@ -622,7 +624,7 @@ public class WatchUpdaterService extends WearableListenerService implements Goog
}
private void sendActionConfirmationRequest(String title, String message, String actionstring) {
- if (googleApiClient.isConnected()) {
+ if (googleApiClient != null && googleApiClient.isConnected()) {
PutDataMapRequest dataMapRequest = PutDataMapRequest.create(ACTION_CONFIRMATION_REQUEST_PATH);
//unique content
dataMapRequest.getDataMap().putLong("timestamp", System.currentTimeMillis());
@@ -642,7 +644,7 @@ public class WatchUpdaterService extends WearableListenerService implements Goog
}
private void sendChangeConfirmationRequest(String title, String message, String actionstring) {
- if (googleApiClient.isConnected()) {
+ if (googleApiClient != null && googleApiClient.isConnected()) {
PutDataMapRequest dataMapRequest = PutDataMapRequest.create(ACTION_CHANGECONFIRMATION_REQUEST_PATH);
//unique content
dataMapRequest.getDataMap().putLong("timestamp", System.currentTimeMillis());
@@ -662,7 +664,7 @@ public class WatchUpdaterService extends WearableListenerService implements Goog
}
private void sendCancelNotificationRequest(String actionstring) {
- if (googleApiClient.isConnected()) {
+ if (googleApiClient != null && googleApiClient.isConnected()) {
PutDataMapRequest dataMapRequest = PutDataMapRequest.create(ACTION_CANCELNOTIFICATION_REQUEST_PATH);
//unique content
dataMapRequest.getDataMap().putLong("timestamp", System.currentTimeMillis());
@@ -681,7 +683,7 @@ public class WatchUpdaterService extends WearableListenerService implements Goog
private void sendStatus() {
- if (googleApiClient.isConnected()) {
+ if (googleApiClient != null && googleApiClient.isConnected()) {
Profile profile = profileFunction.getProfile();
String status = resourceHelper.gs(R.string.noprofile);
String iobSum, iobDetail, cobString, currentBasal, bgiString;
@@ -745,7 +747,7 @@ public class WatchUpdaterService extends WearableListenerService implements Goog
}
private void sendPreferences() {
- if (googleApiClient.isConnected()) {
+ if (googleApiClient != null && googleApiClient.isConnected()) {
boolean wearcontrol = sp.getBoolean("wearcontrol", false);
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/iob/iobCobCalculator/InMemoryGlucoseValue.kt b/app/src/main/java/info/nightscout/androidaps/plugins/iob/iobCobCalculator/InMemoryGlucoseValue.kt
index 55acd27b40..497117764e 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/iob/iobCobCalculator/InMemoryGlucoseValue.kt
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/iob/iobCobCalculator/InMemoryGlucoseValue.kt
@@ -2,7 +2,8 @@ package info.nightscout.androidaps.plugins.iob.iobCobCalculator
import info.nightscout.androidaps.db.BgReading
-class InMemoryGlucoseValue constructor(var timestamp: Long = 0L, var value: Double = 0.0) {
+class InMemoryGlucoseValue @JvmOverloads constructor(var timestamp: Long = 0L, var value: Double = 0.0, var interpolated : Boolean = false) {
constructor(gv: BgReading) : this(gv.date, gv.value)
+ // var generated : value doesn't correspond to real value with timestamp close to real BG
}
\ No newline at end of file
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 138325ef58..50a65dc689 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
@@ -79,6 +79,11 @@ public class IobCobCalculatorPlugin extends PluginBase implements IobCobCalculat
private LongSparseArray autosensDataTable = new LongSparseArray<>(); // oldest at index 0
private LongSparseArray basalDataTable = new LongSparseArray<>(); // oldest at index 0
+ // we need to make sure that bucketed_data will always have the same timestamp for correct use of cached values
+ // once referenceTime != null all bucketed data should be (x * 5min) from referenceTime
+ Long referenceTime = null;
+ private Boolean lastUsed5minCalculation = null; // true if used 5min bucketed data
+
private volatile List bgReadings = null; // newest at index 0
private volatile List bucketed_data = null;
@@ -135,9 +140,8 @@ public class IobCobCalculatorPlugin extends PluginBase implements IobCobCalculat
.subscribe(event -> {
stopCalculation("onEventConfigBuilderChange");
synchronized (dataLock) {
- getAapsLogger().debug(LTag.AUTOSENS, "Invalidating cached data because of configuration change. IOB: " + iobTable.size() + " Autosens: " + autosensDataTable.size() + " records");
- iobTable = new LongSparseArray<>();
- autosensDataTable = new LongSparseArray<>();
+ getAapsLogger().debug(LTag.AUTOSENS, "Invalidating cached data because of configuration change.");
+ resetData();
}
runCalculation("onEventConfigBuilderChange", System.currentTimeMillis(), false, true, event);
}, fabricPrivacy::logException)
@@ -152,10 +156,8 @@ public class IobCobCalculatorPlugin extends PluginBase implements IobCobCalculat
}
stopCalculation("onNewProfile");
synchronized (dataLock) {
- getAapsLogger().debug(LTag.AUTOSENS, "Invalidating cached data because of new profile. IOB: " + iobTable.size() + " Autosens: " + autosensDataTable.size() + " records");
- iobTable = new LongSparseArray<>();
- autosensDataTable = new LongSparseArray<>();
- basalDataTable = new LongSparseArray<>();
+ getAapsLogger().debug(LTag.AUTOSENS, "Invalidating cached data because of new profile.");
+ resetData();
}
runCalculation("onNewProfile", System.currentTimeMillis(), false, true, event);
}, fabricPrivacy::logException)
@@ -185,10 +187,8 @@ public class IobCobCalculatorPlugin extends PluginBase implements IobCobCalculat
) {
stopCalculation("onEventPreferenceChange");
synchronized (dataLock) {
- getAapsLogger().debug(LTag.AUTOSENS, "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<>();
+ getAapsLogger().debug(LTag.AUTOSENS, "Invalidating cached data because of preference change.");
+ resetData();
}
runCalculation("onEventPreferenceChange", System.currentTimeMillis(), false, true, event);
}
@@ -248,6 +248,19 @@ public class IobCobCalculatorPlugin extends PluginBase implements IobCobCalculat
return rounded;
}
+ long adjustToReferenceTime(long someTime) {
+ if (referenceTime == null) {
+ referenceTime = someTime;
+ return someTime;
+ }
+ long diff = Math.abs(someTime - referenceTime);
+ diff %= T.mins(5).msecs();
+ if (diff > T.mins(2).plus(T.secs(30)).msecs())
+ diff = diff - T.mins(5).msecs();
+ long newTime = someTime + diff;
+ return newTime;
+ }
+
void loadBgData(long to) {
Profile profile = profileFunction.getProfile(to);
double dia = Constants.defaultDIA;
@@ -291,7 +304,23 @@ public class IobCobCalculatorPlugin extends PluginBase implements IobCobCalculat
}
}
+ private void resetData() {
+ synchronized (dataLock) {
+ iobTable = new LongSparseArray<>();
+ autosensDataTable = new LongSparseArray<>();
+ basalDataTable = new LongSparseArray<>();
+ absIobTable = new LongSparseArray<>();
+ }
+ }
+
public void createBucketedData() {
+ boolean fiveMinData = isAbout5minData();
+ if (lastUsed5minCalculation != null && lastUsed5minCalculation != fiveMinData) {
+ // changing mode => clear cache
+ getAapsLogger().debug("Invalidating cached data because of changed mode.");
+ resetData();
+ }
+ lastUsed5minCalculation = fiveMinData;
if (isAbout5minData())
createBucketedData5min();
else
@@ -332,6 +361,8 @@ public class IobCobCalculatorPlugin extends PluginBase implements IobCobCalculat
bucketed_data = new ArrayList<>();
long currentTime = bgReadings.get(0).date - bgReadings.get(0).date % T.mins(5).msecs();
+ currentTime = adjustToReferenceTime(currentTime);
+ getAapsLogger().debug("Adjusted time " + dateUtil.dateAndTimeAndSecondsString(currentTime));
//log.debug("First reading: " + new Date(currentTime).toLocaleString());
while (true) {
@@ -348,9 +379,7 @@ public class IobCobCalculatorPlugin extends PluginBase implements IobCobCalculat
long timeDiffToNew = newer.date - currentTime;
double currentBg = newer.value - (double) timeDiffToNew / (newer.date - older.date) * bgDelta;
- InMemoryGlucoseValue newBgreading = new InMemoryGlucoseValue();
- newBgreading.setTimestamp(currentTime);
- newBgreading.setValue(Math.round(currentBg));
+ InMemoryGlucoseValue newBgreading = new InMemoryGlucoseValue(currentTime, Math.round(currentBg), true);
bucketed_data.add(newBgreading);
//log.debug("BG: " + newBgreading.value + " (" + new Date(newBgreading.date).toLocaleString() + ") Prev: " + older.value + " (" + new Date(older.date).toLocaleString() + ") Newer: " + newer.value + " (" + new Date(newer.date).toLocaleString() + ")");
}
@@ -388,12 +417,10 @@ public class IobCobCalculatorPlugin extends PluginBase implements IobCobCalculat
while (elapsed_minutes > 5) {
nextbgTime = lastbgTime - 5 * 60 * 1000;
j++;
- InMemoryGlucoseValue newBgreading = new InMemoryGlucoseValue();
- newBgreading.setTimestamp(nextbgTime);
double gapDelta = bgReadings.get(i).value - lastbg;
//console.error(gapDelta, lastbg, elapsed_minutes);
double nextbg = lastbg + (5d / elapsed_minutes * gapDelta);
- newBgreading.setValue(Math.round(nextbg));
+ InMemoryGlucoseValue newBgreading = new InMemoryGlucoseValue(nextbgTime, Math.round(nextbg), true);
//console.error("Interpolated", bucketed_data[j]);
bucketed_data.add(newBgreading);
getAapsLogger().debug(LTag.AUTOSENS, "Adding. bgTime: " + DateUtil.toISOString(bgTime) + " lastbgTime: " + DateUtil.toISOString(lastbgTime) + " " + newBgreading.toString());
@@ -403,16 +430,12 @@ public class IobCobCalculatorPlugin extends PluginBase implements IobCobCalculat
lastbgTime = nextbgTime;
}
j++;
- InMemoryGlucoseValue newBgreading = new InMemoryGlucoseValue();
- newBgreading.setValue(bgReadings.get(i).value);
- newBgreading.setTimestamp(bgTime);
+ InMemoryGlucoseValue newBgreading = new InMemoryGlucoseValue(bgTime, bgReadings.get(i).value);
bucketed_data.add(newBgreading);
getAapsLogger().debug(LTag.AUTOSENS, "Adding. bgTime: " + DateUtil.toISOString(bgTime) + " lastbgTime: " + DateUtil.toISOString(lastbgTime) + " " + newBgreading.toString());
} else if (Math.abs(elapsed_minutes) > 2) {
j++;
- InMemoryGlucoseValue newBgreading = new InMemoryGlucoseValue();
- newBgreading.setValue(bgReadings.get(i).value);
- newBgreading.setTimestamp(bgTime);
+ InMemoryGlucoseValue newBgreading = new InMemoryGlucoseValue(bgTime, bgReadings.get(i).value);
bucketed_data.add(newBgreading);
getAapsLogger().debug(LTag.AUTOSENS, "Adding. bgTime: " + DateUtil.toISOString(bgTime) + " lastbgTime: " + DateUtil.toISOString(lastbgTime) + " " + newBgreading.toString());
} else {
@@ -422,12 +445,15 @@ public class IobCobCalculatorPlugin extends PluginBase implements IobCobCalculat
}
// Normalize bucketed data
+ InMemoryGlucoseValue oldest = bucketed_data.get(bucketed_data.size() - 1);
+ oldest.setTimestamp(adjustToReferenceTime(oldest.getTimestamp()));
+ getAapsLogger().debug("Adjusted time " + dateUtil.dateAndTimeAndSecondsString(oldest.getTimestamp()));
for (int i = bucketed_data.size() - 2; i >= 0; i--) {
InMemoryGlucoseValue current = bucketed_data.get(i);
InMemoryGlucoseValue previous = bucketed_data.get(i + 1);
long msecDiff = current.getTimestamp() - previous.getTimestamp();
long adjusted = (msecDiff - T.mins(5).msecs()) / 1000;
- getAapsLogger().debug(LTag.AUTOSENS, "Adjusting bucketed data time. Current: " + DateUtil.toISOString(current.getTimestamp()) + " to: " + DateUtil.toISOString(previous.getTimestamp() + T.mins(5).msecs()) + " by " + adjusted + " sec");
+ getAapsLogger().debug(LTag.AUTOSENS, "Adjusting bucketed data time. Current: " + dateUtil.dateAndTimeAndSecondsString(current.getTimestamp()) + " to: " + dateUtil.dateAndTimeAndSecondsString(previous.getTimestamp() + T.mins(5).msecs()) + " by " + adjusted + " sec");
if (Math.abs(adjusted) > 90) {
// too big adjustment, fallback to non 5 min data
getAapsLogger().debug(LTag.AUTOSENS, "Fallback to non 5 min data");
@@ -450,7 +476,7 @@ public class IobCobCalculatorPlugin extends PluginBase implements IobCobCalculat
if (limitDataToOldestAvailable) {
getBGDataFrom = Math.max(oldestDataAvailable, (long) (from - T.hours(1).msecs() * (24 + dia)));
if (getBGDataFrom == oldestDataAvailable)
- getAapsLogger().debug(LTag.AUTOSENS, "Limiting data to oldest available temps: " + dateUtil.dateAndTimeString(oldestDataAvailable));
+ getAapsLogger().debug(LTag.AUTOSENS, "Limiting data to oldest available temps: " + dateUtil.dateAndTimeAndSecondsString(oldestDataAvailable));
} else
getBGDataFrom = (long) (from - T.hours(1).msecs() * (24 + dia));
return getBGDataFrom;
@@ -685,7 +711,7 @@ public class IobCobCalculatorPlugin extends PluginBase implements IobCobCalculat
return null;
}
if (data.time < System.currentTimeMillis() - 11 * 60 * 1000) {
- getAapsLogger().debug(LTag.AUTOSENS, "AUTOSENSDATA null: data is old (" + reason + ") size()=" + autosensDataTable.size() + " lastdata=" + dateUtil.dateAndTimeString(data.time));
+ getAapsLogger().debug(LTag.AUTOSENS, "AUTOSENSDATA null: data is old (" + reason + ") size()=" + autosensDataTable.size() + " lastdata=" + dateUtil.dateAndTimeAndSecondsString(data.time));
return null;
} else {
getAapsLogger().debug(LTag.AUTOSENS, "AUTOSENSDATA (" + reason + ") " + data.toString());
@@ -696,7 +722,7 @@ public class IobCobCalculatorPlugin extends PluginBase implements IobCobCalculat
@Override
public String lastDataTime() {
if (autosensDataTable.size() > 0)
- return dateUtil.dateAndTimeString(autosensDataTable.valueAt(autosensDataTable.size() - 1).time);
+ return dateUtil.dateAndTimeAndSecondsString(autosensDataTable.valueAt(autosensDataTable.size() - 1).time);
else
return "autosensDataTable empty";
}
@@ -817,7 +843,7 @@ public class IobCobCalculatorPlugin extends PluginBase implements IobCobCalculat
}
public void runCalculation(String from, long end, boolean bgDataReload, boolean limitDataToOldestAvailable, Event cause) {
- getAapsLogger().debug(LTag.AUTOSENS, "Starting calculation thread: " + from + " to " + dateUtil.dateAndTimeString(end));
+ getAapsLogger().debug(LTag.AUTOSENS, "Starting calculation thread: " + from + " to " + dateUtil.dateAndTimeAndSecondsString(end));
if (thread == null || thread.getState() == Thread.State.TERMINATED) {
if (sensitivityOref1Plugin.isEnabled())
thread = new IobCobOref1Thread(injector, this, treatmentsPlugin, from, end, bgDataReload, limitDataToOldestAvailable, cause);
@@ -834,10 +860,10 @@ public class IobCobCalculatorPlugin extends PluginBase implements IobCobCalculat
synchronized (dataLock) {
// clear up 5 min back for proper COB calculation
long time = ev.getTime() - 5 * 60 * 1000L;
- getAapsLogger().debug(LTag.AUTOSENS, "Invalidating cached data to: " + dateUtil.dateAndTimeString(time));
+ getAapsLogger().debug(LTag.AUTOSENS, "Invalidating cached data to: " + dateUtil.dateAndTimeAndSecondsString(time));
for (int index = iobTable.size() - 1; index >= 0; index--) {
if (iobTable.keyAt(index) > time) {
- getAapsLogger().debug(LTag.AUTOSENS, "Removing from iobTable: " + dateUtil.dateAndTimeString(iobTable.keyAt(index)));
+ getAapsLogger().debug(LTag.AUTOSENS, "Removing from iobTable: " + dateUtil.dateAndTimeAndSecondsString(iobTable.keyAt(index)));
iobTable.removeAt(index);
} else {
break;
@@ -845,7 +871,7 @@ public class IobCobCalculatorPlugin extends PluginBase implements IobCobCalculat
}
for (int index = absIobTable.size() - 1; index >= 0; index--) {
if (absIobTable.keyAt(index) > time) {
- getAapsLogger().debug(LTag.AUTOSENS, "Removing from absIobTable: " + dateUtil.dateAndTimeString(absIobTable.keyAt(index)));
+ getAapsLogger().debug(LTag.AUTOSENS, "Removing from absIobTable: " + dateUtil.dateAndTimeAndSecondsString(absIobTable.keyAt(index)));
absIobTable.removeAt(index);
} else {
break;
@@ -853,7 +879,7 @@ public class IobCobCalculatorPlugin extends PluginBase implements IobCobCalculat
}
for (int index = autosensDataTable.size() - 1; index >= 0; index--) {
if (autosensDataTable.keyAt(index) > time) {
- getAapsLogger().debug(LTag.AUTOSENS, "Removing from autosensDataTable: " + dateUtil.dateAndTimeString(autosensDataTable.keyAt(index)));
+ getAapsLogger().debug(LTag.AUTOSENS, "Removing from autosensDataTable: " + dateUtil.dateAndTimeAndSecondsString(autosensDataTable.keyAt(index)));
autosensDataTable.removeAt(index);
} else {
break;
@@ -861,7 +887,7 @@ public class IobCobCalculatorPlugin extends PluginBase implements IobCobCalculat
}
for (int index = basalDataTable.size() - 1; index >= 0; index--) {
if (basalDataTable.keyAt(index) > time) {
- getAapsLogger().debug(LTag.AUTOSENS, "Removing from basalDataTable: " + dateUtil.dateAndTimeString(basalDataTable.keyAt(index)));
+ getAapsLogger().debug(LTag.AUTOSENS, "Removing from basalDataTable: " + dateUtil.dateAndTimeAndSecondsString(basalDataTable.keyAt(index)));
basalDataTable.removeAt(index);
} else {
break;
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/profile/local/LocalProfileFragment.kt b/app/src/main/java/info/nightscout/androidaps/plugins/profile/local/LocalProfileFragment.kt
index 057fe53ee0..db134ed413 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/profile/local/LocalProfileFragment.kt
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/profile/local/LocalProfileFragment.kt
@@ -180,8 +180,9 @@ class LocalProfileFragment : DaggerFragment() {
localprofile_units.text = resourceHelper.gs(R.string.units_colon) + " " + (if (localProfilePlugin.currentProfile().mgdl) resourceHelper.gs(R.string.mgdl) else resourceHelper.gs(R.string.mmol))
localprofile_profileswitch.setOnClickListener {
- // TODO: select in dialog localProfilePlugin.currentProfileIndex
- ProfileSwitchDialog().show(childFragmentManager, "NewNSTreatmentDialog")
+ ProfileSwitchDialog()
+ .also { it.arguments = Bundle().also { bundle -> bundle.putInt("profileIndex", localProfilePlugin.currentProfileIndex) }}
+ .show(childFragmentManager, "NewNSTreatmentDialog")
}
localprofile_reset.setOnClickListener {
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/source/DexcomPlugin.kt b/app/src/main/java/info/nightscout/androidaps/plugins/source/DexcomPlugin.kt
index 41d1c07ddc..27ad7fec82 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/source/DexcomPlugin.kt
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/source/DexcomPlugin.kt
@@ -4,6 +4,7 @@ import android.content.Intent
import android.content.pm.PackageManager
import androidx.core.content.ContextCompat
import dagger.android.HasAndroidInjector
+import info.nightscout.androidaps.Config
import info.nightscout.androidaps.Constants
import info.nightscout.androidaps.MainApp
import info.nightscout.androidaps.R
@@ -32,18 +33,24 @@ class DexcomPlugin @Inject constructor(
private val mainApp: MainApp,
resourceHelper: ResourceHelper,
aapsLogger: AAPSLogger,
- private val nsUpload: NSUpload
+ private val nsUpload: NSUpload,
+ config: Config
) : PluginBase(PluginDescription()
.mainType(PluginType.BGSOURCE)
.fragmentClass(BGSourceFragment::class.java.name)
.pluginName(R.string.dexcom_app_patched)
.shortName(R.string.dexcom_short)
.preferencesId(R.xml.pref_bgsourcedexcom)
- .description(R.string.description_source_dexcom)
- .setDefault(),
+ .description(R.string.description_source_dexcom),
aapsLogger, resourceHelper, injector
), BgSourceInterface {
+ init {
+ if (!config.NSCLIENT) {
+ pluginDescription.setDefault()
+ }
+ }
+
override fun advancedFilteringSupported(): Boolean {
return true
}
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/source/NSClientSourcePlugin.kt b/app/src/main/java/info/nightscout/androidaps/plugins/source/NSClientSourcePlugin.kt
index daf570edc2..4e10a9c728 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/source/NSClientSourcePlugin.kt
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/source/NSClientSourcePlugin.kt
@@ -2,6 +2,7 @@ package info.nightscout.androidaps.plugins.source
import android.content.Intent
import dagger.android.HasAndroidInjector
+import info.nightscout.androidaps.Config
import info.nightscout.androidaps.MainApp
import info.nightscout.androidaps.R
import info.nightscout.androidaps.db.BgReading
@@ -26,7 +27,8 @@ class NSClientSourcePlugin @Inject constructor(
injector: HasAndroidInjector,
resourceHelper: ResourceHelper,
aapsLogger: AAPSLogger,
- private val sp: SP
+ private val sp: SP,
+ config: Config
) : PluginBase(PluginDescription()
.mainType(PluginType.BGSOURCE)
.fragmentClass(BGSourceFragment::class.java.name)
@@ -38,6 +40,14 @@ class NSClientSourcePlugin @Inject constructor(
private var lastBGTimeStamp: Long = 0
private var isAdvancedFilteringEnabled = false
+ init {
+ if (config.NSCLIENT) {
+ pluginDescription
+ .alwaysEnabled(true)
+ .setDefault()
+ }
+ }
+
override fun advancedFilteringSupported(): Boolean {
return isAdvancedFilteringEnabled
}
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/source/RandomBgPlugin.kt b/app/src/main/java/info/nightscout/androidaps/plugins/source/RandomBgPlugin.kt
index 12af6cfe04..3678f130a4 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/source/RandomBgPlugin.kt
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/source/RandomBgPlugin.kt
@@ -2,6 +2,7 @@ package info.nightscout.androidaps.plugins.source
import android.content.Intent
import android.os.Handler
+import android.os.HandlerThread
import dagger.android.HasAndroidInjector
import info.nightscout.androidaps.MainApp
import info.nightscout.androidaps.R
@@ -12,6 +13,7 @@ import info.nightscout.androidaps.interfaces.PluginDescription
import info.nightscout.androidaps.interfaces.PluginType
import info.nightscout.androidaps.logging.AAPSLogger
import info.nightscout.androidaps.logging.LTag
+import info.nightscout.androidaps.plugins.general.automation.AutomationPlugin
import info.nightscout.androidaps.plugins.general.nsclient.NSUpload
import info.nightscout.androidaps.plugins.pump.virtual.VirtualPumpPlugin
import info.nightscout.androidaps.utils.DateUtil
@@ -31,6 +33,8 @@ class RandomBgPlugin @Inject constructor(
injector: HasAndroidInjector,
resourceHelper: ResourceHelper,
aapsLogger: AAPSLogger,
+ private val virtualPumpPlugin: VirtualPumpPlugin,
+ private val buildHelper: BuildHelper,
private val sp: SP,
private val nsUpload: NSUpload
) : PluginBase(PluginDescription()
@@ -43,7 +47,7 @@ class RandomBgPlugin @Inject constructor(
aapsLogger, resourceHelper, injector
), BgSourceInterface {
- private val loopHandler = Handler()
+ private val loopHandler : Handler = Handler(HandlerThread(RandomBgPlugin::class.java.simpleName + "Handler").also { it.start() }.looper)
private lateinit var refreshLoop: Runnable
companion object {
@@ -72,7 +76,7 @@ class RandomBgPlugin @Inject constructor(
}
override fun specialEnableCondition(): Boolean {
- return true //isRunningTest() || virtualPumpPlugin.isEnabled(PluginType.PUMP) && buildHelper.isEngineeringMode()
+ return isRunningTest() || virtualPumpPlugin.isEnabled(PluginType.PUMP) && buildHelper.isEngineeringMode()
}
override fun handleNewData(intent: Intent) {
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/treatments/TreatmentService.java b/app/src/main/java/info/nightscout/androidaps/plugins/treatments/TreatmentService.java
index 5dfceda204..34ab6bde72 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/treatments/TreatmentService.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/treatments/TreatmentService.java
@@ -308,6 +308,9 @@ public class TreatmentService extends OrmLiteBaseService {
//preserve carbs
if (existingTreatment.isValid && existingTreatment.carbs > 0 && treatment.carbs == 0) {
treatment.carbs = existingTreatment.carbs;
+ // preserve insulin
+ } else if (existingTreatment.isValid && existingTreatment.insulin > 0 && treatment.insulin == 0) {
+ treatment.insulin = existingTreatment.insulin;
}
getDao().delete(existingTreatment); // need to delete/create because date may change too
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/treatments/fragments/TreatmentsProfileSwitchFragment.kt b/app/src/main/java/info/nightscout/androidaps/plugins/treatments/fragments/TreatmentsProfileSwitchFragment.kt
index 886c0ec34e..9f76f7f79c 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/treatments/fragments/TreatmentsProfileSwitchFragment.kt
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/treatments/fragments/TreatmentsProfileSwitchFragment.kt
@@ -156,7 +156,7 @@ class TreatmentsProfileSwitchFragment : DaggerFragment() {
R.id.profileswitch_date, R.id.profileswitch_name -> {
val args = Bundle()
args.putLong("time", (v.tag as ProfileSwitch).date)
- args.putInt("mode", ProfileViewerDialog.Mode.RUNNING_PROFILE.ordinal)
+ args.putInt("mode", ProfileViewerDialog.Mode.DB_PROFILE.ordinal)
val pvd = ProfileViewerDialog()
pvd.arguments = args
pvd.show(childFragmentManager, "ProfileViewDialog")
diff --git a/app/src/main/java/info/nightscout/androidaps/receivers/TimeDateOrTZChangeReceiver.kt b/app/src/main/java/info/nightscout/androidaps/receivers/TimeDateOrTZChangeReceiver.kt
index 916239ae82..55a186fc9f 100644
--- a/app/src/main/java/info/nightscout/androidaps/receivers/TimeDateOrTZChangeReceiver.kt
+++ b/app/src/main/java/info/nightscout/androidaps/receivers/TimeDateOrTZChangeReceiver.kt
@@ -39,32 +39,37 @@ class TimeDateOrTZChangeReceiver : DaggerBroadcastReceiver() {
val activePump: PumpInterface = activePlugin.activePump
aapsLogger.debug(LTag.PUMP,"TimeDateOrTZChangeReceiver::Date, Time and/or TimeZone changed. [action={}]", action)
- aapsLogger.debug(LTag.PUMP,"TimeDateOrTZChangeReceiver::Intent::{}", gson.toJson(intent))
+ try {
+ aapsLogger.debug(LTag.PUMP, "TimeDateOrTZChangeReceiver::Intent::{}", gson.toJson(intent))
+ } catch (ignored : Exception) {}
- if (action == null) {
- aapsLogger.error(LTag.PUMP,"TimeDateOrTZChangeReceiver::Action is null. Exiting.")
- } else if (Intent.ACTION_TIMEZONE_CHANGED == action) {
- aapsLogger.info(LTag.PUMP,"TimeDateOrTZChangeReceiver::Timezone changed. Notifying pump driver.")
- activePump.timezoneOrDSTChanged(TimeChangeType.TimezoneChange)
- } else if (Intent.ACTION_TIME_CHANGED == action) {
- val currentDst = calculateDST()
- if (currentDst == isDST) {
- aapsLogger.info(LTag.PUMP,"TimeDateOrTZChangeReceiver::Time changed (manual). Notifying pump driver.")
- activePump.timezoneOrDSTChanged(TimeChangeType.ManualTimeChange)
- } else {
- if (currentDst) {
- aapsLogger.info(LTag.PUMP,"TimeDateOrTZChangeReceiver::DST started. Notifying pump driver.")
- activePump.timezoneOrDSTChanged(TimeChangeType.DST_Started)
- } else {
- aapsLogger.info(LTag.PUMP,"TimeDateOrTZChangeReceiver::DST ended. Notifying pump driver.")
- activePump.timezoneOrDSTChanged(TimeChangeType.DST_Ended)
- }
+ when {
+ action == null -> {
+ aapsLogger.error(LTag.PUMP,"TimeDateOrTZChangeReceiver::Action is null. Exiting.")
+ }
+ Intent.ACTION_TIMEZONE_CHANGED == action -> {
+ aapsLogger.info(LTag.PUMP,"TimeDateOrTZChangeReceiver::Timezone changed. Notifying pump driver.")
+ activePump.timezoneOrDSTChanged(TimeChangeType.TimezoneChange)
+ }
+ Intent.ACTION_TIME_CHANGED == action -> {
+ val currentDst = calculateDST()
+ if (currentDst == isDST) {
+ aapsLogger.info(LTag.PUMP,"TimeDateOrTZChangeReceiver::Time changed (manual). Notifying pump driver.")
+ activePump.timezoneOrDSTChanged(TimeChangeType.ManualTimeChange)
+ } else {
+ if (currentDst) {
+ aapsLogger.info(LTag.PUMP,"TimeDateOrTZChangeReceiver::DST started. Notifying pump driver.")
+ activePump.timezoneOrDSTChanged(TimeChangeType.DST_Started)
+ } else {
+ aapsLogger.info(LTag.PUMP,"TimeDateOrTZChangeReceiver::DST ended. Notifying pump driver.")
+ activePump.timezoneOrDSTChanged(TimeChangeType.DST_Ended)
+ }
+ }
+ isDST = currentDst
+ }
+ else -> {
+ aapsLogger.error(LTag.PUMP,"TimeDateOrTZChangeReceiver::Unknown action received [name={}]. Exiting.", action)
}
- isDST = currentDst
- } else {
- aapsLogger.error(LTag.PUMP,"TimeDateOrTZChangeReceiver::Unknown action received [name={}]. Exiting.", action)
}
}
-
-
}
diff --git a/app/src/main/java/info/nightscout/androidaps/services/DataService.java b/app/src/main/java/info/nightscout/androidaps/services/DataService.java
index cf1833e892..26814a7644 100644
--- a/app/src/main/java/info/nightscout/androidaps/services/DataService.java
+++ b/app/src/main/java/info/nightscout/androidaps/services/DataService.java
@@ -11,6 +11,7 @@ import org.json.JSONObject;
import javax.inject.Inject;
import dagger.android.DaggerIntentService;
+import info.nightscout.androidaps.Config;
import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.R;
import info.nightscout.androidaps.db.CareportalEvent;
@@ -55,6 +56,7 @@ public class DataService extends DaggerIntentService {
@Inject XdripPlugin xdripPlugin;
@Inject NSProfilePlugin nsProfilePlugin;
@Inject ActivePluginProvider activePlugin;
+ @Inject Config config;
public DataService() {
super("DataService");
@@ -68,7 +70,6 @@ public class DataService extends DaggerIntentService {
boolean acceptNSData = !sp.getBoolean(R.string.key_ns_upload_only, false);
- Bundle bundles = intent.getExtras();
final String action = intent.getAction();
if (Intents.ACTION_NEW_BG_ESTIMATE.equals(action)) {
@@ -234,8 +235,11 @@ public class DataService extends DaggerIntentService {
String notes = JsonHelper.safeGetString(json, "notes", "");
if (date > now - 15 * 60 * 1000L && !notes.isEmpty()
&& !enteredBy.equals(sp.getString("careportal_enteredby", "AndroidAPS"))) {
- Notification announcement = new Notification(Notification.NSANNOUNCEMENT, notes, Notification.ANNOUNCEMENT, 60);
- rxBus.send(new EventNewNotification(announcement));
+ boolean defaultVal = config.getNSCLIENT();
+ if (sp.getBoolean(R.string.key_ns_announcements, defaultVal)) {
+ Notification announcement = new Notification(Notification.NSANNOUNCEMENT, notes, Notification.ANNOUNCEMENT, 60);
+ rxBus.send(new EventNewNotification(announcement));
+ }
}
}
}
diff --git a/app/src/main/java/info/nightscout/androidaps/services/LocationService.kt b/app/src/main/java/info/nightscout/androidaps/services/LocationService.kt
index 35374b47d7..2357dcebeb 100644
--- a/app/src/main/java/info/nightscout/androidaps/services/LocationService.kt
+++ b/app/src/main/java/info/nightscout/androidaps/services/LocationService.kt
@@ -1,6 +1,7 @@
package info.nightscout.androidaps.services
import android.Manifest
+import android.app.Notification
import android.app.Service
import android.content.Context
import android.content.Intent
@@ -71,19 +72,29 @@ class LocationService : DaggerService() {
}
}
- override fun onStartCommand(intent: Intent, flags: Int, startId: Int): Int {
+ override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
super.onStartCommand(intent, flags, startId)
- startForeground(notificationHolder.notificationID, notificationHolder.notification)
+ try {
+ startForeground(notificationHolder.notificationID, notificationHolder.notification)
+ } catch (e: Exception) {
+ startForeground(4711, Notification())
+ }
return Service.START_STICKY
}
override fun onCreate() {
super.onCreate()
- startForeground(notificationHolder.notificationID, notificationHolder.notification)
+ try {
+ startForeground(notificationHolder.notificationID, notificationHolder.notification)
+ } catch (e: Exception) {
+ startForeground(4711, Notification())
+ }
// Get last location once until we get regular update
- LocationServices.getFusedLocationProviderClient(this).lastLocation.addOnSuccessListener {
- lastLocationDataContainer.lastLocation = it
+ if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED || ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED) {
+ LocationServices.getFusedLocationProviderClient(this).lastLocation.addOnSuccessListener {
+ lastLocationDataContainer.lastLocation = it
+ }
}
initializeLocationManager()
diff --git a/app/src/main/java/info/nightscout/androidaps/setupwizard/SWDefinition.kt b/app/src/main/java/info/nightscout/androidaps/setupwizard/SWDefinition.kt
index d0f8c29138..73cd2d6e37 100644
--- a/app/src/main/java/info/nightscout/androidaps/setupwizard/SWDefinition.kt
+++ b/app/src/main/java/info/nightscout/androidaps/setupwizard/SWDefinition.kt
@@ -461,7 +461,7 @@ class SWDefinition @Inject constructor(
.add(screenUnits)
.add(displaySettings)
.add(screenNsClient)
- .add(screenBgSource)
+ //.add(screenBgSource)
.add(screenPatientName)
.add(screenAge)
.add(screenInsulin)
diff --git a/app/src/main/java/info/nightscout/androidaps/utils/stats/TddCalculator.kt b/app/src/main/java/info/nightscout/androidaps/utils/stats/TddCalculator.kt
index 1e567dd94a..1f8338f7d8 100644
--- a/app/src/main/java/info/nightscout/androidaps/utils/stats/TddCalculator.kt
+++ b/app/src/main/java/info/nightscout/androidaps/utils/stats/TddCalculator.kt
@@ -54,6 +54,7 @@ class TddCalculator @Inject constructor(
val midnight = MidnightTime.calc(t.date)
val tdd = result[midnight] ?: TDD(midnight, 0.0, 0.0, 0.0)
tdd.bolus += t.insulin
+ tdd.carbs += t.carbs
result.put(midnight, tdd)
}
@@ -81,10 +82,12 @@ class TddCalculator @Inject constructor(
totalTdd.basal += tdd.basal
totalTdd.bolus += tdd.bolus
totalTdd.total += tdd.total
+ totalTdd.carbs += tdd.carbs
}
totalTdd.basal /= tdds.size().toDouble()
totalTdd.bolus /= tdds.size().toDouble()
totalTdd.total /= tdds.size().toDouble()
+ totalTdd.carbs /= tdds.size().toDouble()
return totalTdd
}
@@ -93,16 +96,16 @@ class TddCalculator @Inject constructor(
val averageTdd = averageTDD(tdds)
return HtmlHelper.fromHtml(
"" + resourceHelper.gs(R.string.tdd) + ": " +
- toText(tdds) +
+ toText(tdds, true) +
"" + resourceHelper.gs(R.string.average) + ": " +
- averageTdd.toText(resourceHelper, tdds.size())
+ averageTdd.toText(resourceHelper, tdds.size(), true)
)
}
- private fun toText(tdds: LongSparseArray): String {
+ private fun toText(tdds: LongSparseArray, includeCarbs: Boolean): String {
var t = ""
for (i in 0 until tdds.size()) {
- t += "${tdds.valueAt(i).toText(resourceHelper, dateUtil)} "
+ t += "${tdds.valueAt(i).toText(resourceHelper, dateUtil, includeCarbs)} "
}
return t
}
diff --git a/app/src/main/res/drawable-hdpi/ic_visibility.png b/app/src/main/res/drawable-hdpi/ic_visibility.png
deleted file mode 100644
index a014628e30..0000000000
Binary files a/app/src/main/res/drawable-hdpi/ic_visibility.png and /dev/null differ
diff --git a/app/src/main/res/drawable-hdpi/icon_actions_profileswitch.png b/app/src/main/res/drawable-hdpi/icon_actions_profileswitch.png
deleted file mode 100644
index 4b36a0cc23..0000000000
Binary files a/app/src/main/res/drawable-hdpi/icon_actions_profileswitch.png and /dev/null differ
diff --git a/app/src/main/res/drawable-hdpi/icon_actions_temptarget.png b/app/src/main/res/drawable-hdpi/icon_actions_temptarget.png
deleted file mode 100644
index f839a6894b..0000000000
Binary files a/app/src/main/res/drawable-hdpi/icon_actions_temptarget.png and /dev/null differ
diff --git a/app/src/main/res/drawable-hdpi/icon_cp_aaps_offline.png b/app/src/main/res/drawable-hdpi/icon_cp_aaps_offline.png
deleted file mode 100644
index 0fe1cd628b..0000000000
Binary files a/app/src/main/res/drawable-hdpi/icon_cp_aaps_offline.png and /dev/null differ
diff --git a/app/src/main/res/drawable-hdpi/icon_cp_age_battery.png b/app/src/main/res/drawable-hdpi/icon_cp_age_battery.png
deleted file mode 100644
index abc626901a..0000000000
Binary files a/app/src/main/res/drawable-hdpi/icon_cp_age_battery.png and /dev/null differ
diff --git a/app/src/main/res/drawable-hdpi/icon_cp_age_canula.png b/app/src/main/res/drawable-hdpi/icon_cp_age_canula.png
deleted file mode 100644
index ecccc39426..0000000000
Binary files a/app/src/main/res/drawable-hdpi/icon_cp_age_canula.png and /dev/null differ
diff --git a/app/src/main/res/drawable-hdpi/icon_cp_age_insulin.png b/app/src/main/res/drawable-hdpi/icon_cp_age_insulin.png
deleted file mode 100644
index ab4d345881..0000000000
Binary files a/app/src/main/res/drawable-hdpi/icon_cp_age_insulin.png and /dev/null differ
diff --git a/app/src/main/res/drawable-hdpi/icon_cp_age_sensor.png b/app/src/main/res/drawable-hdpi/icon_cp_age_sensor.png
deleted file mode 100644
index 30d5d02de0..0000000000
Binary files a/app/src/main/res/drawable-hdpi/icon_cp_age_sensor.png and /dev/null differ
diff --git a/app/src/main/res/drawable-hdpi/icon_cp_announcement.png b/app/src/main/res/drawable-hdpi/icon_cp_announcement.png
deleted file mode 100644
index 23c9a9847d..0000000000
Binary files a/app/src/main/res/drawable-hdpi/icon_cp_announcement.png and /dev/null differ
diff --git a/app/src/main/res/drawable-hdpi/icon_cp_bgcheck.png b/app/src/main/res/drawable-hdpi/icon_cp_bgcheck.png
deleted file mode 100644
index 56569a264a..0000000000
Binary files a/app/src/main/res/drawable-hdpi/icon_cp_bgcheck.png and /dev/null differ
diff --git a/app/src/main/res/drawable-hdpi/icon_cp_bolus_combo.png b/app/src/main/res/drawable-hdpi/icon_cp_bolus_combo.png
deleted file mode 100644
index 98c076905c..0000000000
Binary files a/app/src/main/res/drawable-hdpi/icon_cp_bolus_combo.png and /dev/null differ
diff --git a/app/src/main/res/drawable-hdpi/icon_cp_bolus_meal.png b/app/src/main/res/drawable-hdpi/icon_cp_bolus_meal.png
deleted file mode 100644
index 97dd4e2ed8..0000000000
Binary files a/app/src/main/res/drawable-hdpi/icon_cp_bolus_meal.png and /dev/null differ
diff --git a/app/src/main/res/drawable-hdpi/icon_cp_bolus_snack.png b/app/src/main/res/drawable-hdpi/icon_cp_bolus_snack.png
deleted file mode 100644
index 710bf6e0da..0000000000
Binary files a/app/src/main/res/drawable-hdpi/icon_cp_bolus_snack.png and /dev/null differ
diff --git a/app/src/main/res/drawable-hdpi/icon_cp_cgm_insert.png b/app/src/main/res/drawable-hdpi/icon_cp_cgm_insert.png
deleted file mode 100644
index 699be54792..0000000000
Binary files a/app/src/main/res/drawable-hdpi/icon_cp_cgm_insert.png and /dev/null differ
diff --git a/app/src/main/res/drawable-hdpi/icon_cp_cgm_profile.png b/app/src/main/res/drawable-hdpi/icon_cp_cgm_profile.png
deleted file mode 100644
index 8887e60f27..0000000000
Binary files a/app/src/main/res/drawable-hdpi/icon_cp_cgm_profile.png and /dev/null differ
diff --git a/app/src/main/res/drawable-hdpi/icon_cp_cgm_start.png b/app/src/main/res/drawable-hdpi/icon_cp_cgm_start.png
deleted file mode 100644
index e917402c48..0000000000
Binary files a/app/src/main/res/drawable-hdpi/icon_cp_cgm_start.png and /dev/null differ
diff --git a/app/src/main/res/drawable-hdpi/icon_cp_cgm_target.png b/app/src/main/res/drawable-hdpi/icon_cp_cgm_target.png
deleted file mode 100644
index 2cf826dad1..0000000000
Binary files a/app/src/main/res/drawable-hdpi/icon_cp_cgm_target.png and /dev/null differ
diff --git a/app/src/main/res/drawable-hdpi/icon_cp_exercise.png b/app/src/main/res/drawable-hdpi/icon_cp_exercise.png
deleted file mode 100644
index e9aee1ac8a..0000000000
Binary files a/app/src/main/res/drawable-hdpi/icon_cp_exercise.png and /dev/null differ
diff --git a/app/src/main/res/drawable-hdpi/icon_cp_note.png b/app/src/main/res/drawable-hdpi/icon_cp_note.png
deleted file mode 100644
index b6b752e150..0000000000
Binary files a/app/src/main/res/drawable-hdpi/icon_cp_note.png and /dev/null differ
diff --git a/app/src/main/res/drawable-hdpi/icon_cp_pump_battery.png b/app/src/main/res/drawable-hdpi/icon_cp_pump_battery.png
deleted file mode 100644
index b4a4f2923a..0000000000
Binary files a/app/src/main/res/drawable-hdpi/icon_cp_pump_battery.png and /dev/null differ
diff --git a/app/src/main/res/drawable-hdpi/icon_cp_pump_canula.png b/app/src/main/res/drawable-hdpi/icon_cp_pump_canula.png
deleted file mode 100644
index e75d9ed81d..0000000000
Binary files a/app/src/main/res/drawable-hdpi/icon_cp_pump_canula.png and /dev/null differ
diff --git a/app/src/main/res/drawable-hdpi/icon_cp_pump_cartridge.png b/app/src/main/res/drawable-hdpi/icon_cp_pump_cartridge.png
deleted file mode 100644
index f780c23e37..0000000000
Binary files a/app/src/main/res/drawable-hdpi/icon_cp_pump_cartridge.png and /dev/null differ
diff --git a/app/src/main/res/drawable-hdpi/icon_cp_question.png b/app/src/main/res/drawable-hdpi/icon_cp_question.png
deleted file mode 100644
index 65102f2abf..0000000000
Binary files a/app/src/main/res/drawable-hdpi/icon_cp_question.png and /dev/null differ
diff --git a/app/src/main/res/drawable-hdpi/icon_local_activate.png b/app/src/main/res/drawable-hdpi/icon_local_activate.png
deleted file mode 100644
index 4ef567ffb6..0000000000
Binary files a/app/src/main/res/drawable-hdpi/icon_local_activate.png and /dev/null differ
diff --git a/app/src/main/res/drawable-hdpi/icon_local_activatehdpi.png b/app/src/main/res/drawable-hdpi/icon_local_activatehdpi.png
deleted file mode 100644
index 4ef567ffb6..0000000000
Binary files a/app/src/main/res/drawable-hdpi/icon_local_activatehdpi.png and /dev/null differ
diff --git a/app/src/main/res/drawable-hdpi/icon_local_reset.png b/app/src/main/res/drawable-hdpi/icon_local_reset.png
deleted file mode 100644
index 7d38cf0b50..0000000000
Binary files a/app/src/main/res/drawable-hdpi/icon_local_reset.png and /dev/null differ
diff --git a/app/src/main/res/drawable-hdpi/icon_local_resethdpi.png b/app/src/main/res/drawable-hdpi/icon_local_resethdpi.png
deleted file mode 100644
index 7d38cf0b50..0000000000
Binary files a/app/src/main/res/drawable-hdpi/icon_local_resethdpi.png and /dev/null differ
diff --git a/app/src/main/res/drawable-mdpi/ic_visibility.png b/app/src/main/res/drawable-mdpi/ic_visibility.png
deleted file mode 100644
index d5a9dc9ca4..0000000000
Binary files a/app/src/main/res/drawable-mdpi/ic_visibility.png and /dev/null differ
diff --git a/app/src/main/res/drawable-mdpi/icon_actions_profileswitch.png b/app/src/main/res/drawable-mdpi/icon_actions_profileswitch.png
deleted file mode 100644
index eeae6ccfdb..0000000000
Binary files a/app/src/main/res/drawable-mdpi/icon_actions_profileswitch.png and /dev/null differ
diff --git a/app/src/main/res/drawable-mdpi/icon_actions_temptarget.png b/app/src/main/res/drawable-mdpi/icon_actions_temptarget.png
deleted file mode 100644
index 39170bab37..0000000000
Binary files a/app/src/main/res/drawable-mdpi/icon_actions_temptarget.png and /dev/null differ
diff --git a/app/src/main/res/drawable-mdpi/icon_cp_aaps_offline.png b/app/src/main/res/drawable-mdpi/icon_cp_aaps_offline.png
deleted file mode 100644
index dc50653883..0000000000
Binary files a/app/src/main/res/drawable-mdpi/icon_cp_aaps_offline.png and /dev/null differ
diff --git a/app/src/main/res/drawable-mdpi/icon_cp_age_battery.png b/app/src/main/res/drawable-mdpi/icon_cp_age_battery.png
deleted file mode 100644
index 6c7fc56139..0000000000
Binary files a/app/src/main/res/drawable-mdpi/icon_cp_age_battery.png and /dev/null differ
diff --git a/app/src/main/res/drawable-mdpi/icon_cp_age_canula.png b/app/src/main/res/drawable-mdpi/icon_cp_age_canula.png
deleted file mode 100644
index 303ad946cd..0000000000
Binary files a/app/src/main/res/drawable-mdpi/icon_cp_age_canula.png and /dev/null differ
diff --git a/app/src/main/res/drawable-mdpi/icon_cp_age_insulin.png b/app/src/main/res/drawable-mdpi/icon_cp_age_insulin.png
deleted file mode 100644
index 5cd8598faa..0000000000
Binary files a/app/src/main/res/drawable-mdpi/icon_cp_age_insulin.png and /dev/null differ
diff --git a/app/src/main/res/drawable-mdpi/icon_cp_age_sensor.png b/app/src/main/res/drawable-mdpi/icon_cp_age_sensor.png
deleted file mode 100644
index d312b6c572..0000000000
Binary files a/app/src/main/res/drawable-mdpi/icon_cp_age_sensor.png and /dev/null differ
diff --git a/app/src/main/res/drawable-mdpi/icon_cp_announcement.png b/app/src/main/res/drawable-mdpi/icon_cp_announcement.png
deleted file mode 100644
index 6e1338ac24..0000000000
Binary files a/app/src/main/res/drawable-mdpi/icon_cp_announcement.png and /dev/null differ
diff --git a/app/src/main/res/drawable-mdpi/icon_cp_bgcheck.png b/app/src/main/res/drawable-mdpi/icon_cp_bgcheck.png
deleted file mode 100644
index 0cb14c2f57..0000000000
Binary files a/app/src/main/res/drawable-mdpi/icon_cp_bgcheck.png and /dev/null differ
diff --git a/app/src/main/res/drawable-mdpi/icon_cp_bolus_combo.png b/app/src/main/res/drawable-mdpi/icon_cp_bolus_combo.png
deleted file mode 100644
index ce4d8fb9d3..0000000000
Binary files a/app/src/main/res/drawable-mdpi/icon_cp_bolus_combo.png and /dev/null differ
diff --git a/app/src/main/res/drawable-mdpi/icon_cp_bolus_meal.png b/app/src/main/res/drawable-mdpi/icon_cp_bolus_meal.png
deleted file mode 100644
index 54b51e126e..0000000000
Binary files a/app/src/main/res/drawable-mdpi/icon_cp_bolus_meal.png and /dev/null differ
diff --git a/app/src/main/res/drawable-mdpi/icon_cp_bolus_snack.png b/app/src/main/res/drawable-mdpi/icon_cp_bolus_snack.png
deleted file mode 100644
index b2ba41c27d..0000000000
Binary files a/app/src/main/res/drawable-mdpi/icon_cp_bolus_snack.png and /dev/null differ
diff --git a/app/src/main/res/drawable-mdpi/icon_cp_cgm_insert.png b/app/src/main/res/drawable-mdpi/icon_cp_cgm_insert.png
deleted file mode 100644
index 67c0fb1ba2..0000000000
Binary files a/app/src/main/res/drawable-mdpi/icon_cp_cgm_insert.png and /dev/null differ
diff --git a/app/src/main/res/drawable-mdpi/icon_cp_cgm_profile.png b/app/src/main/res/drawable-mdpi/icon_cp_cgm_profile.png
deleted file mode 100644
index e0f0a15cc8..0000000000
Binary files a/app/src/main/res/drawable-mdpi/icon_cp_cgm_profile.png and /dev/null differ
diff --git a/app/src/main/res/drawable-mdpi/icon_cp_cgm_start.png b/app/src/main/res/drawable-mdpi/icon_cp_cgm_start.png
deleted file mode 100644
index 14a44bc852..0000000000
Binary files a/app/src/main/res/drawable-mdpi/icon_cp_cgm_start.png and /dev/null differ
diff --git a/app/src/main/res/drawable-mdpi/icon_cp_cgm_target.png b/app/src/main/res/drawable-mdpi/icon_cp_cgm_target.png
deleted file mode 100644
index 86ce00442c..0000000000
Binary files a/app/src/main/res/drawable-mdpi/icon_cp_cgm_target.png and /dev/null differ
diff --git a/app/src/main/res/drawable-mdpi/icon_cp_exercise.png b/app/src/main/res/drawable-mdpi/icon_cp_exercise.png
deleted file mode 100644
index 1c92c0ebb5..0000000000
Binary files a/app/src/main/res/drawable-mdpi/icon_cp_exercise.png and /dev/null differ
diff --git a/app/src/main/res/drawable-mdpi/icon_cp_note.png b/app/src/main/res/drawable-mdpi/icon_cp_note.png
deleted file mode 100644
index 7c8663a4fe..0000000000
Binary files a/app/src/main/res/drawable-mdpi/icon_cp_note.png and /dev/null differ
diff --git a/app/src/main/res/drawable-mdpi/icon_cp_pump_battery.png b/app/src/main/res/drawable-mdpi/icon_cp_pump_battery.png
deleted file mode 100644
index f4dab169a8..0000000000
Binary files a/app/src/main/res/drawable-mdpi/icon_cp_pump_battery.png and /dev/null differ
diff --git a/app/src/main/res/drawable-mdpi/icon_cp_pump_canula.png b/app/src/main/res/drawable-mdpi/icon_cp_pump_canula.png
deleted file mode 100644
index ee512c5fef..0000000000
Binary files a/app/src/main/res/drawable-mdpi/icon_cp_pump_canula.png and /dev/null differ
diff --git a/app/src/main/res/drawable-mdpi/icon_cp_pump_cartridge.png b/app/src/main/res/drawable-mdpi/icon_cp_pump_cartridge.png
deleted file mode 100644
index 70a90c596f..0000000000
Binary files a/app/src/main/res/drawable-mdpi/icon_cp_pump_cartridge.png and /dev/null differ
diff --git a/app/src/main/res/drawable-mdpi/icon_cp_question.png b/app/src/main/res/drawable-mdpi/icon_cp_question.png
deleted file mode 100644
index 5d430d9164..0000000000
Binary files a/app/src/main/res/drawable-mdpi/icon_cp_question.png and /dev/null differ
diff --git a/app/src/main/res/drawable-mdpi/icon_local_activate.png b/app/src/main/res/drawable-mdpi/icon_local_activate.png
deleted file mode 100644
index b39c72b407..0000000000
Binary files a/app/src/main/res/drawable-mdpi/icon_local_activate.png and /dev/null differ
diff --git a/app/src/main/res/drawable-mdpi/icon_local_activatemdpi.png b/app/src/main/res/drawable-mdpi/icon_local_activatemdpi.png
deleted file mode 100644
index b39c72b407..0000000000
Binary files a/app/src/main/res/drawable-mdpi/icon_local_activatemdpi.png and /dev/null differ
diff --git a/app/src/main/res/drawable-mdpi/icon_local_reset.png b/app/src/main/res/drawable-mdpi/icon_local_reset.png
deleted file mode 100644
index ad2e0eaf6d..0000000000
Binary files a/app/src/main/res/drawable-mdpi/icon_local_reset.png and /dev/null differ
diff --git a/app/src/main/res/drawable-mdpi/icon_local_resetmdpi.png b/app/src/main/res/drawable-mdpi/icon_local_resetmdpi.png
deleted file mode 100644
index ad2e0eaf6d..0000000000
Binary files a/app/src/main/res/drawable-mdpi/icon_local_resetmdpi.png and /dev/null differ
diff --git a/app/src/main/res/drawable-mdpi/icon_local_savemdpi.png b/app/src/main/res/drawable-mdpi/icon_local_savemdpi.png
deleted file mode 100644
index 843beed523..0000000000
Binary files a/app/src/main/res/drawable-mdpi/icon_local_savemdpi.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xhdpi/ic_visibility.png b/app/src/main/res/drawable-xhdpi/ic_visibility.png
deleted file mode 100644
index 1e16fb934f..0000000000
Binary files a/app/src/main/res/drawable-xhdpi/ic_visibility.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xhdpi/icon_actions_profileswitch.png b/app/src/main/res/drawable-xhdpi/icon_actions_profileswitch.png
deleted file mode 100644
index 57864f6ed5..0000000000
Binary files a/app/src/main/res/drawable-xhdpi/icon_actions_profileswitch.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xhdpi/icon_actions_temptarget.png b/app/src/main/res/drawable-xhdpi/icon_actions_temptarget.png
deleted file mode 100644
index c484837e53..0000000000
Binary files a/app/src/main/res/drawable-xhdpi/icon_actions_temptarget.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xhdpi/icon_cp_aaps_offline.png b/app/src/main/res/drawable-xhdpi/icon_cp_aaps_offline.png
deleted file mode 100644
index 4239e40ba7..0000000000
Binary files a/app/src/main/res/drawable-xhdpi/icon_cp_aaps_offline.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xhdpi/icon_cp_age_battery.png b/app/src/main/res/drawable-xhdpi/icon_cp_age_battery.png
deleted file mode 100644
index 3d75b9dc7a..0000000000
Binary files a/app/src/main/res/drawable-xhdpi/icon_cp_age_battery.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xhdpi/icon_cp_age_canula.png b/app/src/main/res/drawable-xhdpi/icon_cp_age_canula.png
deleted file mode 100644
index 8629a7998d..0000000000
Binary files a/app/src/main/res/drawable-xhdpi/icon_cp_age_canula.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xhdpi/icon_cp_age_insulin.png b/app/src/main/res/drawable-xhdpi/icon_cp_age_insulin.png
deleted file mode 100644
index 2e88ec9ad4..0000000000
Binary files a/app/src/main/res/drawable-xhdpi/icon_cp_age_insulin.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xhdpi/icon_cp_age_sensor.png b/app/src/main/res/drawable-xhdpi/icon_cp_age_sensor.png
deleted file mode 100644
index a3577da118..0000000000
Binary files a/app/src/main/res/drawable-xhdpi/icon_cp_age_sensor.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xhdpi/icon_cp_announcement.png b/app/src/main/res/drawable-xhdpi/icon_cp_announcement.png
deleted file mode 100644
index 472b51d775..0000000000
Binary files a/app/src/main/res/drawable-xhdpi/icon_cp_announcement.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xhdpi/icon_cp_bgcheck.png b/app/src/main/res/drawable-xhdpi/icon_cp_bgcheck.png
deleted file mode 100644
index 030099f910..0000000000
Binary files a/app/src/main/res/drawable-xhdpi/icon_cp_bgcheck.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xhdpi/icon_cp_bolus_combo.png b/app/src/main/res/drawable-xhdpi/icon_cp_bolus_combo.png
deleted file mode 100644
index 908f33ccd8..0000000000
Binary files a/app/src/main/res/drawable-xhdpi/icon_cp_bolus_combo.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xhdpi/icon_cp_bolus_meal.png b/app/src/main/res/drawable-xhdpi/icon_cp_bolus_meal.png
deleted file mode 100644
index 52ef734adf..0000000000
Binary files a/app/src/main/res/drawable-xhdpi/icon_cp_bolus_meal.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xhdpi/icon_cp_bolus_snack.png b/app/src/main/res/drawable-xhdpi/icon_cp_bolus_snack.png
deleted file mode 100644
index 8d2e9690fc..0000000000
Binary files a/app/src/main/res/drawable-xhdpi/icon_cp_bolus_snack.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xhdpi/icon_cp_cgm_insert.png b/app/src/main/res/drawable-xhdpi/icon_cp_cgm_insert.png
deleted file mode 100644
index af93321e3a..0000000000
Binary files a/app/src/main/res/drawable-xhdpi/icon_cp_cgm_insert.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xhdpi/icon_cp_cgm_profile.png b/app/src/main/res/drawable-xhdpi/icon_cp_cgm_profile.png
deleted file mode 100644
index e4c50f2667..0000000000
Binary files a/app/src/main/res/drawable-xhdpi/icon_cp_cgm_profile.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xhdpi/icon_cp_cgm_start.png b/app/src/main/res/drawable-xhdpi/icon_cp_cgm_start.png
deleted file mode 100644
index ce23d1cf54..0000000000
Binary files a/app/src/main/res/drawable-xhdpi/icon_cp_cgm_start.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xhdpi/icon_cp_cgm_target.png b/app/src/main/res/drawable-xhdpi/icon_cp_cgm_target.png
deleted file mode 100644
index fbd5880490..0000000000
Binary files a/app/src/main/res/drawable-xhdpi/icon_cp_cgm_target.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xhdpi/icon_cp_exercise.png b/app/src/main/res/drawable-xhdpi/icon_cp_exercise.png
deleted file mode 100644
index 90cc102c07..0000000000
Binary files a/app/src/main/res/drawable-xhdpi/icon_cp_exercise.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xhdpi/icon_cp_note.png b/app/src/main/res/drawable-xhdpi/icon_cp_note.png
deleted file mode 100644
index cf821a9d1f..0000000000
Binary files a/app/src/main/res/drawable-xhdpi/icon_cp_note.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xhdpi/icon_cp_pump_battery.png b/app/src/main/res/drawable-xhdpi/icon_cp_pump_battery.png
deleted file mode 100644
index 15af2af396..0000000000
Binary files a/app/src/main/res/drawable-xhdpi/icon_cp_pump_battery.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xhdpi/icon_cp_pump_canula.png b/app/src/main/res/drawable-xhdpi/icon_cp_pump_canula.png
deleted file mode 100644
index 84ae19c4a3..0000000000
Binary files a/app/src/main/res/drawable-xhdpi/icon_cp_pump_canula.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xhdpi/icon_cp_pump_cartridge.png b/app/src/main/res/drawable-xhdpi/icon_cp_pump_cartridge.png
deleted file mode 100644
index d40a8540e6..0000000000
Binary files a/app/src/main/res/drawable-xhdpi/icon_cp_pump_cartridge.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xhdpi/icon_cp_question.png b/app/src/main/res/drawable-xhdpi/icon_cp_question.png
deleted file mode 100644
index 43df04ef81..0000000000
Binary files a/app/src/main/res/drawable-xhdpi/icon_cp_question.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xhdpi/icon_local_activate.png b/app/src/main/res/drawable-xhdpi/icon_local_activate.png
deleted file mode 100644
index 75e9af38ed..0000000000
Binary files a/app/src/main/res/drawable-xhdpi/icon_local_activate.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xhdpi/icon_local_reset.png b/app/src/main/res/drawable-xhdpi/icon_local_reset.png
deleted file mode 100644
index 2813cb448d..0000000000
Binary files a/app/src/main/res/drawable-xhdpi/icon_local_reset.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xxhdpi/ic_visibility.png b/app/src/main/res/drawable-xxhdpi/ic_visibility.png
deleted file mode 100644
index dbc192368f..0000000000
Binary files a/app/src/main/res/drawable-xxhdpi/ic_visibility.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xxhdpi/icon_actions_profileswitch.png b/app/src/main/res/drawable-xxhdpi/icon_actions_profileswitch.png
deleted file mode 100644
index 29e28afe02..0000000000
Binary files a/app/src/main/res/drawable-xxhdpi/icon_actions_profileswitch.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xxhdpi/icon_actions_temptarget.png b/app/src/main/res/drawable-xxhdpi/icon_actions_temptarget.png
deleted file mode 100644
index 4fa88421ae..0000000000
Binary files a/app/src/main/res/drawable-xxhdpi/icon_actions_temptarget.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xxhdpi/icon_cp_aaps_offline.png b/app/src/main/res/drawable-xxhdpi/icon_cp_aaps_offline.png
deleted file mode 100644
index 1b4603bafc..0000000000
Binary files a/app/src/main/res/drawable-xxhdpi/icon_cp_aaps_offline.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xxhdpi/icon_cp_age_battery.png b/app/src/main/res/drawable-xxhdpi/icon_cp_age_battery.png
deleted file mode 100644
index d32a7791e1..0000000000
Binary files a/app/src/main/res/drawable-xxhdpi/icon_cp_age_battery.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xxhdpi/icon_cp_age_canula.png b/app/src/main/res/drawable-xxhdpi/icon_cp_age_canula.png
deleted file mode 100644
index 715682129b..0000000000
Binary files a/app/src/main/res/drawable-xxhdpi/icon_cp_age_canula.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xxhdpi/icon_cp_age_insulin.png b/app/src/main/res/drawable-xxhdpi/icon_cp_age_insulin.png
deleted file mode 100644
index 79a21cea45..0000000000
Binary files a/app/src/main/res/drawable-xxhdpi/icon_cp_age_insulin.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xxhdpi/icon_cp_age_sensor.png b/app/src/main/res/drawable-xxhdpi/icon_cp_age_sensor.png
deleted file mode 100644
index bb269c3af9..0000000000
Binary files a/app/src/main/res/drawable-xxhdpi/icon_cp_age_sensor.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xxhdpi/icon_cp_announcement.png b/app/src/main/res/drawable-xxhdpi/icon_cp_announcement.png
deleted file mode 100644
index e287fa15d4..0000000000
Binary files a/app/src/main/res/drawable-xxhdpi/icon_cp_announcement.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xxhdpi/icon_cp_bgcheck.png b/app/src/main/res/drawable-xxhdpi/icon_cp_bgcheck.png
deleted file mode 100644
index 4e68c25d70..0000000000
Binary files a/app/src/main/res/drawable-xxhdpi/icon_cp_bgcheck.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xxhdpi/icon_cp_bolus_combo.png b/app/src/main/res/drawable-xxhdpi/icon_cp_bolus_combo.png
deleted file mode 100644
index c91b515001..0000000000
Binary files a/app/src/main/res/drawable-xxhdpi/icon_cp_bolus_combo.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xxhdpi/icon_cp_bolus_meal.png b/app/src/main/res/drawable-xxhdpi/icon_cp_bolus_meal.png
deleted file mode 100644
index e13a420bad..0000000000
Binary files a/app/src/main/res/drawable-xxhdpi/icon_cp_bolus_meal.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xxhdpi/icon_cp_bolus_snack.png b/app/src/main/res/drawable-xxhdpi/icon_cp_bolus_snack.png
deleted file mode 100644
index 6a9fb42088..0000000000
Binary files a/app/src/main/res/drawable-xxhdpi/icon_cp_bolus_snack.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xxhdpi/icon_cp_cgm_insert.png b/app/src/main/res/drawable-xxhdpi/icon_cp_cgm_insert.png
deleted file mode 100644
index f1a791b702..0000000000
Binary files a/app/src/main/res/drawable-xxhdpi/icon_cp_cgm_insert.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xxhdpi/icon_cp_cgm_profile.png b/app/src/main/res/drawable-xxhdpi/icon_cp_cgm_profile.png
deleted file mode 100644
index d40cba3c46..0000000000
Binary files a/app/src/main/res/drawable-xxhdpi/icon_cp_cgm_profile.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xxhdpi/icon_cp_cgm_start.png b/app/src/main/res/drawable-xxhdpi/icon_cp_cgm_start.png
deleted file mode 100644
index 47d5de66a1..0000000000
Binary files a/app/src/main/res/drawable-xxhdpi/icon_cp_cgm_start.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xxhdpi/icon_cp_cgm_target.png b/app/src/main/res/drawable-xxhdpi/icon_cp_cgm_target.png
deleted file mode 100644
index 13fc303aa2..0000000000
Binary files a/app/src/main/res/drawable-xxhdpi/icon_cp_cgm_target.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xxhdpi/icon_cp_exercise.png b/app/src/main/res/drawable-xxhdpi/icon_cp_exercise.png
deleted file mode 100644
index 4fb54d3703..0000000000
Binary files a/app/src/main/res/drawable-xxhdpi/icon_cp_exercise.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xxhdpi/icon_cp_note.png b/app/src/main/res/drawable-xxhdpi/icon_cp_note.png
deleted file mode 100644
index c1881112b7..0000000000
Binary files a/app/src/main/res/drawable-xxhdpi/icon_cp_note.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xxhdpi/icon_cp_pump_battery.png b/app/src/main/res/drawable-xxhdpi/icon_cp_pump_battery.png
deleted file mode 100644
index 1a6d44bba0..0000000000
Binary files a/app/src/main/res/drawable-xxhdpi/icon_cp_pump_battery.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xxhdpi/icon_cp_pump_canula.png b/app/src/main/res/drawable-xxhdpi/icon_cp_pump_canula.png
deleted file mode 100644
index 6021f928ed..0000000000
Binary files a/app/src/main/res/drawable-xxhdpi/icon_cp_pump_canula.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xxhdpi/icon_cp_pump_cartridge.png b/app/src/main/res/drawable-xxhdpi/icon_cp_pump_cartridge.png
deleted file mode 100644
index c7a8897a52..0000000000
Binary files a/app/src/main/res/drawable-xxhdpi/icon_cp_pump_cartridge.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xxhdpi/icon_cp_question.png b/app/src/main/res/drawable-xxhdpi/icon_cp_question.png
deleted file mode 100644
index 09455d09fd..0000000000
Binary files a/app/src/main/res/drawable-xxhdpi/icon_cp_question.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xxhdpi/icon_local_activate.png b/app/src/main/res/drawable-xxhdpi/icon_local_activate.png
deleted file mode 100644
index 600e6ee61c..0000000000
Binary files a/app/src/main/res/drawable-xxhdpi/icon_local_activate.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xxhdpi/icon_local_reset.png b/app/src/main/res/drawable-xxhdpi/icon_local_reset.png
deleted file mode 100644
index dc9d659dd7..0000000000
Binary files a/app/src/main/res/drawable-xxhdpi/icon_local_reset.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xxxhdpi/ic_visibility.png b/app/src/main/res/drawable-xxxhdpi/ic_visibility.png
deleted file mode 100644
index 882eacdee5..0000000000
Binary files a/app/src/main/res/drawable-xxxhdpi/ic_visibility.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xxxhdpi/icon_actions_profileswitch.png b/app/src/main/res/drawable-xxxhdpi/icon_actions_profileswitch.png
deleted file mode 100644
index d5631ef3ae..0000000000
Binary files a/app/src/main/res/drawable-xxxhdpi/icon_actions_profileswitch.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xxxhdpi/icon_actions_temptarget.png b/app/src/main/res/drawable-xxxhdpi/icon_actions_temptarget.png
deleted file mode 100644
index 955a19f3bc..0000000000
Binary files a/app/src/main/res/drawable-xxxhdpi/icon_actions_temptarget.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xxxhdpi/icon_cp_aaps_offline.png b/app/src/main/res/drawable-xxxhdpi/icon_cp_aaps_offline.png
deleted file mode 100644
index 3da8775fb4..0000000000
Binary files a/app/src/main/res/drawable-xxxhdpi/icon_cp_aaps_offline.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xxxhdpi/icon_cp_age_battery.png b/app/src/main/res/drawable-xxxhdpi/icon_cp_age_battery.png
deleted file mode 100644
index dd21ad490c..0000000000
Binary files a/app/src/main/res/drawable-xxxhdpi/icon_cp_age_battery.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xxxhdpi/icon_cp_age_canula.png b/app/src/main/res/drawable-xxxhdpi/icon_cp_age_canula.png
deleted file mode 100644
index 6a3585b72f..0000000000
Binary files a/app/src/main/res/drawable-xxxhdpi/icon_cp_age_canula.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xxxhdpi/icon_cp_age_insulin.png b/app/src/main/res/drawable-xxxhdpi/icon_cp_age_insulin.png
deleted file mode 100644
index 3b50b616fc..0000000000
Binary files a/app/src/main/res/drawable-xxxhdpi/icon_cp_age_insulin.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xxxhdpi/icon_cp_age_sensor.png b/app/src/main/res/drawable-xxxhdpi/icon_cp_age_sensor.png
deleted file mode 100644
index 2dd35e6e9e..0000000000
Binary files a/app/src/main/res/drawable-xxxhdpi/icon_cp_age_sensor.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xxxhdpi/icon_cp_announcement.png b/app/src/main/res/drawable-xxxhdpi/icon_cp_announcement.png
deleted file mode 100644
index 256631f49b..0000000000
Binary files a/app/src/main/res/drawable-xxxhdpi/icon_cp_announcement.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xxxhdpi/icon_cp_bgcheck.png b/app/src/main/res/drawable-xxxhdpi/icon_cp_bgcheck.png
deleted file mode 100644
index fa72b549a9..0000000000
Binary files a/app/src/main/res/drawable-xxxhdpi/icon_cp_bgcheck.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xxxhdpi/icon_cp_bolus_combo.png b/app/src/main/res/drawable-xxxhdpi/icon_cp_bolus_combo.png
deleted file mode 100644
index 1418ea4994..0000000000
Binary files a/app/src/main/res/drawable-xxxhdpi/icon_cp_bolus_combo.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xxxhdpi/icon_cp_bolus_meal.png b/app/src/main/res/drawable-xxxhdpi/icon_cp_bolus_meal.png
deleted file mode 100644
index aa7bdf7fe3..0000000000
Binary files a/app/src/main/res/drawable-xxxhdpi/icon_cp_bolus_meal.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xxxhdpi/icon_cp_bolus_snack.png b/app/src/main/res/drawable-xxxhdpi/icon_cp_bolus_snack.png
deleted file mode 100644
index 1f9ab1697d..0000000000
Binary files a/app/src/main/res/drawable-xxxhdpi/icon_cp_bolus_snack.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xxxhdpi/icon_cp_cgm_insert.png b/app/src/main/res/drawable-xxxhdpi/icon_cp_cgm_insert.png
deleted file mode 100644
index 2d7e6b4542..0000000000
Binary files a/app/src/main/res/drawable-xxxhdpi/icon_cp_cgm_insert.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xxxhdpi/icon_cp_cgm_profile.png b/app/src/main/res/drawable-xxxhdpi/icon_cp_cgm_profile.png
deleted file mode 100644
index e8b4668b86..0000000000
Binary files a/app/src/main/res/drawable-xxxhdpi/icon_cp_cgm_profile.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xxxhdpi/icon_cp_cgm_start.png b/app/src/main/res/drawable-xxxhdpi/icon_cp_cgm_start.png
deleted file mode 100644
index e8d0e6773e..0000000000
Binary files a/app/src/main/res/drawable-xxxhdpi/icon_cp_cgm_start.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xxxhdpi/icon_cp_cgm_target.png b/app/src/main/res/drawable-xxxhdpi/icon_cp_cgm_target.png
deleted file mode 100644
index 2bdaf7d73d..0000000000
Binary files a/app/src/main/res/drawable-xxxhdpi/icon_cp_cgm_target.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xxxhdpi/icon_cp_exercise.png b/app/src/main/res/drawable-xxxhdpi/icon_cp_exercise.png
deleted file mode 100644
index c16560e8de..0000000000
Binary files a/app/src/main/res/drawable-xxxhdpi/icon_cp_exercise.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xxxhdpi/icon_cp_note.png b/app/src/main/res/drawable-xxxhdpi/icon_cp_note.png
deleted file mode 100644
index dd1e04b419..0000000000
Binary files a/app/src/main/res/drawable-xxxhdpi/icon_cp_note.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xxxhdpi/icon_cp_pump_battery.png b/app/src/main/res/drawable-xxxhdpi/icon_cp_pump_battery.png
deleted file mode 100644
index f1d306de12..0000000000
Binary files a/app/src/main/res/drawable-xxxhdpi/icon_cp_pump_battery.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xxxhdpi/icon_cp_pump_canula.png b/app/src/main/res/drawable-xxxhdpi/icon_cp_pump_canula.png
deleted file mode 100644
index 465111a6ba..0000000000
Binary files a/app/src/main/res/drawable-xxxhdpi/icon_cp_pump_canula.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xxxhdpi/icon_cp_pump_cartridge.png b/app/src/main/res/drawable-xxxhdpi/icon_cp_pump_cartridge.png
deleted file mode 100644
index afffd90482..0000000000
Binary files a/app/src/main/res/drawable-xxxhdpi/icon_cp_pump_cartridge.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xxxhdpi/icon_cp_question.png b/app/src/main/res/drawable-xxxhdpi/icon_cp_question.png
deleted file mode 100644
index b2e19c1575..0000000000
Binary files a/app/src/main/res/drawable-xxxhdpi/icon_cp_question.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xxxhdpi/icon_local_activate.png b/app/src/main/res/drawable-xxxhdpi/icon_local_activate.png
deleted file mode 100644
index 2de9ce9d4d..0000000000
Binary files a/app/src/main/res/drawable-xxxhdpi/icon_local_activate.png and /dev/null differ
diff --git a/app/src/main/res/drawable-xxxhdpi/icon_local_reset.png b/app/src/main/res/drawable-xxxhdpi/icon_local_reset.png
deleted file mode 100644
index ec54479149..0000000000
Binary files a/app/src/main/res/drawable-xxxhdpi/icon_local_reset.png and /dev/null differ
diff --git a/app/src/main/res/drawable/ic_actions_profileswitch.xml b/app/src/main/res/drawable/ic_actions_profileswitch.xml
new file mode 100644
index 0000000000..31c93c3483
--- /dev/null
+++ b/app/src/main/res/drawable/ic_actions_profileswitch.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_actions_temptarget.xml b/app/src/main/res/drawable/ic_actions_temptarget.xml
new file mode 100644
index 0000000000..5dbd5d8b0c
--- /dev/null
+++ b/app/src/main/res/drawable/ic_actions_temptarget.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_cp_aaps_offline.xml b/app/src/main/res/drawable/ic_cp_aaps_offline.xml
new file mode 100644
index 0000000000..0b267a6d88
--- /dev/null
+++ b/app/src/main/res/drawable/ic_cp_aaps_offline.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_cp_age_battery.xml b/app/src/main/res/drawable/ic_cp_age_battery.xml
new file mode 100644
index 0000000000..cc36e585a0
--- /dev/null
+++ b/app/src/main/res/drawable/ic_cp_age_battery.xml
@@ -0,0 +1,16 @@
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_cp_age_canula.xml b/app/src/main/res/drawable/ic_cp_age_canula.xml
new file mode 100644
index 0000000000..f2578fa72b
--- /dev/null
+++ b/app/src/main/res/drawable/ic_cp_age_canula.xml
@@ -0,0 +1,11 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_cp_age_insulin.xml b/app/src/main/res/drawable/ic_cp_age_insulin.xml
new file mode 100644
index 0000000000..701e31cee3
--- /dev/null
+++ b/app/src/main/res/drawable/ic_cp_age_insulin.xml
@@ -0,0 +1,11 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_cp_age_sensor.xml b/app/src/main/res/drawable/ic_cp_age_sensor.xml
new file mode 100644
index 0000000000..08134cc20b
--- /dev/null
+++ b/app/src/main/res/drawable/ic_cp_age_sensor.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_cp_announcement.xml b/app/src/main/res/drawable/ic_cp_announcement.xml
new file mode 100644
index 0000000000..3799ad551c
--- /dev/null
+++ b/app/src/main/res/drawable/ic_cp_announcement.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_cp_bgcheck.xml b/app/src/main/res/drawable/ic_cp_bgcheck.xml
new file mode 100644
index 0000000000..ecde2d118b
--- /dev/null
+++ b/app/src/main/res/drawable/ic_cp_bgcheck.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_cp_bgcheck2.xml b/app/src/main/res/drawable/ic_cp_bgcheck2.xml
new file mode 100644
index 0000000000..effce450c8
--- /dev/null
+++ b/app/src/main/res/drawable/ic_cp_bgcheck2.xml
@@ -0,0 +1,12 @@
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_cp_bolus_combo.xml b/app/src/main/res/drawable/ic_cp_bolus_combo.xml
new file mode 100644
index 0000000000..bc26e74837
--- /dev/null
+++ b/app/src/main/res/drawable/ic_cp_bolus_combo.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_cp_bolus_meal.xml b/app/src/main/res/drawable/ic_cp_bolus_meal.xml
new file mode 100644
index 0000000000..7612513c07
--- /dev/null
+++ b/app/src/main/res/drawable/ic_cp_bolus_meal.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_cp_bolus_snack.xml b/app/src/main/res/drawable/ic_cp_bolus_snack.xml
new file mode 100644
index 0000000000..7d77c384dd
--- /dev/null
+++ b/app/src/main/res/drawable/ic_cp_bolus_snack.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_cp_cgm_insert.xml b/app/src/main/res/drawable/ic_cp_cgm_insert.xml
new file mode 100644
index 0000000000..30107ac8fe
--- /dev/null
+++ b/app/src/main/res/drawable/ic_cp_cgm_insert.xml
@@ -0,0 +1,12 @@
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_cp_cgm_profile.xml b/app/src/main/res/drawable/ic_cp_cgm_profile.xml
new file mode 100644
index 0000000000..31c93c3483
--- /dev/null
+++ b/app/src/main/res/drawable/ic_cp_cgm_profile.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_cp_cgm_start.xml b/app/src/main/res/drawable/ic_cp_cgm_start.xml
new file mode 100644
index 0000000000..df714c4fca
--- /dev/null
+++ b/app/src/main/res/drawable/ic_cp_cgm_start.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_cp_cgm_target.xml b/app/src/main/res/drawable/ic_cp_cgm_target.xml
new file mode 100644
index 0000000000..e708ea5bdd
--- /dev/null
+++ b/app/src/main/res/drawable/ic_cp_cgm_target.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_cp_exercise.xml b/app/src/main/res/drawable/ic_cp_exercise.xml
new file mode 100644
index 0000000000..de04c4ecce
--- /dev/null
+++ b/app/src/main/res/drawable/ic_cp_exercise.xml
@@ -0,0 +1,12 @@
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_cp_note.xml b/app/src/main/res/drawable/ic_cp_note.xml
new file mode 100644
index 0000000000..8308aabedf
--- /dev/null
+++ b/app/src/main/res/drawable/ic_cp_note.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_cp_pump_battery.xml b/app/src/main/res/drawable/ic_cp_pump_battery.xml
new file mode 100644
index 0000000000..e83067fded
--- /dev/null
+++ b/app/src/main/res/drawable/ic_cp_pump_battery.xml
@@ -0,0 +1,12 @@
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_cp_pump_canula.xml b/app/src/main/res/drawable/ic_cp_pump_canula.xml
new file mode 100644
index 0000000000..b43de7ceaa
--- /dev/null
+++ b/app/src/main/res/drawable/ic_cp_pump_canula.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_cp_pump_cartridge.xml b/app/src/main/res/drawable/ic_cp_pump_cartridge.xml
new file mode 100644
index 0000000000..7ebcbccce6
--- /dev/null
+++ b/app/src/main/res/drawable/ic_cp_pump_cartridge.xml
@@ -0,0 +1,12 @@
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_cp_question.xml b/app/src/main/res/drawable/ic_cp_question.xml
new file mode 100644
index 0000000000..fc6d14c656
--- /dev/null
+++ b/app/src/main/res/drawable/ic_cp_question.xml
@@ -0,0 +1,12 @@
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_cp_stats.xml b/app/src/main/res/drawable/ic_cp_stats.xml
new file mode 100644
index 0000000000..81b3952eb4
--- /dev/null
+++ b/app/src/main/res/drawable/ic_cp_stats.xml
@@ -0,0 +1,30 @@
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_local_activate.xml b/app/src/main/res/drawable/ic_local_activate.xml
new file mode 100644
index 0000000000..905ade57d3
--- /dev/null
+++ b/app/src/main/res/drawable/ic_local_activate.xml
@@ -0,0 +1,12 @@
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_local_reset.xml b/app/src/main/res/drawable/ic_local_reset.xml
new file mode 100644
index 0000000000..07faa6ee4d
--- /dev/null
+++ b/app/src/main/res/drawable/ic_local_reset.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_reminder2.xml b/app/src/main/res/drawable/ic_reminder2.xml
new file mode 100644
index 0000000000..35c3148df5
--- /dev/null
+++ b/app/src/main/res/drawable/ic_reminder2.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_visibility.xml b/app/src/main/res/drawable/ic_visibility.xml
new file mode 100644
index 0000000000..de67f3ee84
--- /dev/null
+++ b/app/src/main/res/drawable/ic_visibility.xml
@@ -0,0 +1,12 @@
+
+
+
+
diff --git a/app/src/main/res/drawable/icon_actions_temptarget.png b/app/src/main/res/drawable/icon_actions_temptarget.png
deleted file mode 100644
index 39170bab37..0000000000
Binary files a/app/src/main/res/drawable/icon_actions_temptarget.png and /dev/null differ
diff --git a/app/src/main/res/drawable/icon_cp_aaps_offline.png b/app/src/main/res/drawable/icon_cp_aaps_offline.png
deleted file mode 100644
index dc50653883..0000000000
Binary files a/app/src/main/res/drawable/icon_cp_aaps_offline.png and /dev/null differ
diff --git a/app/src/main/res/drawable/icon_cp_age_battery.png b/app/src/main/res/drawable/icon_cp_age_battery.png
deleted file mode 100644
index 6c7fc56139..0000000000
Binary files a/app/src/main/res/drawable/icon_cp_age_battery.png and /dev/null differ
diff --git a/app/src/main/res/drawable/icon_cp_age_canula.png b/app/src/main/res/drawable/icon_cp_age_canula.png
deleted file mode 100644
index 303ad946cd..0000000000
Binary files a/app/src/main/res/drawable/icon_cp_age_canula.png and /dev/null differ
diff --git a/app/src/main/res/drawable/icon_cp_age_insulin.png b/app/src/main/res/drawable/icon_cp_age_insulin.png
deleted file mode 100644
index 5cd8598faa..0000000000
Binary files a/app/src/main/res/drawable/icon_cp_age_insulin.png and /dev/null differ
diff --git a/app/src/main/res/drawable/icon_cp_age_sensor.png b/app/src/main/res/drawable/icon_cp_age_sensor.png
deleted file mode 100644
index d312b6c572..0000000000
Binary files a/app/src/main/res/drawable/icon_cp_age_sensor.png and /dev/null differ
diff --git a/app/src/main/res/drawable/icon_cp_announcement.png b/app/src/main/res/drawable/icon_cp_announcement.png
deleted file mode 100644
index 6e1338ac24..0000000000
Binary files a/app/src/main/res/drawable/icon_cp_announcement.png and /dev/null differ
diff --git a/app/src/main/res/drawable/icon_cp_bgcheck.png b/app/src/main/res/drawable/icon_cp_bgcheck.png
deleted file mode 100644
index 0cb14c2f57..0000000000
Binary files a/app/src/main/res/drawable/icon_cp_bgcheck.png and /dev/null differ
diff --git a/app/src/main/res/drawable/icon_cp_bolus_combo.png b/app/src/main/res/drawable/icon_cp_bolus_combo.png
deleted file mode 100644
index ce4d8fb9d3..0000000000
Binary files a/app/src/main/res/drawable/icon_cp_bolus_combo.png and /dev/null differ
diff --git a/app/src/main/res/drawable/icon_cp_bolus_meal.png b/app/src/main/res/drawable/icon_cp_bolus_meal.png
deleted file mode 100644
index 54b51e126e..0000000000
Binary files a/app/src/main/res/drawable/icon_cp_bolus_meal.png and /dev/null differ
diff --git a/app/src/main/res/drawable/icon_cp_bolus_snack.png b/app/src/main/res/drawable/icon_cp_bolus_snack.png
deleted file mode 100644
index b2ba41c27d..0000000000
Binary files a/app/src/main/res/drawable/icon_cp_bolus_snack.png and /dev/null differ
diff --git a/app/src/main/res/drawable/icon_cp_cgm_insert.png b/app/src/main/res/drawable/icon_cp_cgm_insert.png
deleted file mode 100644
index 67c0fb1ba2..0000000000
Binary files a/app/src/main/res/drawable/icon_cp_cgm_insert.png and /dev/null differ
diff --git a/app/src/main/res/drawable/icon_cp_cgm_profile.png b/app/src/main/res/drawable/icon_cp_cgm_profile.png
deleted file mode 100644
index e0f0a15cc8..0000000000
Binary files a/app/src/main/res/drawable/icon_cp_cgm_profile.png and /dev/null differ
diff --git a/app/src/main/res/drawable/icon_cp_cgm_start.png b/app/src/main/res/drawable/icon_cp_cgm_start.png
deleted file mode 100644
index 14a44bc852..0000000000
Binary files a/app/src/main/res/drawable/icon_cp_cgm_start.png and /dev/null differ
diff --git a/app/src/main/res/drawable/icon_cp_cgm_target.png b/app/src/main/res/drawable/icon_cp_cgm_target.png
deleted file mode 100644
index 86ce00442c..0000000000
Binary files a/app/src/main/res/drawable/icon_cp_cgm_target.png and /dev/null differ
diff --git a/app/src/main/res/drawable/icon_cp_exercise.png b/app/src/main/res/drawable/icon_cp_exercise.png
deleted file mode 100644
index 1c92c0ebb5..0000000000
Binary files a/app/src/main/res/drawable/icon_cp_exercise.png and /dev/null differ
diff --git a/app/src/main/res/drawable/icon_cp_note.png b/app/src/main/res/drawable/icon_cp_note.png
deleted file mode 100644
index 7c8663a4fe..0000000000
Binary files a/app/src/main/res/drawable/icon_cp_note.png and /dev/null differ
diff --git a/app/src/main/res/drawable/icon_cp_pump_battery.png b/app/src/main/res/drawable/icon_cp_pump_battery.png
deleted file mode 100644
index f4dab169a8..0000000000
Binary files a/app/src/main/res/drawable/icon_cp_pump_battery.png and /dev/null differ
diff --git a/app/src/main/res/drawable/icon_cp_pump_canula.png b/app/src/main/res/drawable/icon_cp_pump_canula.png
deleted file mode 100644
index ee512c5fef..0000000000
Binary files a/app/src/main/res/drawable/icon_cp_pump_canula.png and /dev/null differ
diff --git a/app/src/main/res/drawable/icon_cp_pump_cartridge.png b/app/src/main/res/drawable/icon_cp_pump_cartridge.png
deleted file mode 100644
index 70a90c596f..0000000000
Binary files a/app/src/main/res/drawable/icon_cp_pump_cartridge.png and /dev/null differ
diff --git a/app/src/main/res/drawable/icon_cp_question.png b/app/src/main/res/drawable/icon_cp_question.png
deleted file mode 100644
index 5d430d9164..0000000000
Binary files a/app/src/main/res/drawable/icon_cp_question.png and /dev/null differ
diff --git a/app/src/main/res/drawable/icon_local_activate.png b/app/src/main/res/drawable/icon_local_activate.png
deleted file mode 100644
index 2de9ce9d4d..0000000000
Binary files a/app/src/main/res/drawable/icon_local_activate.png and /dev/null differ
diff --git a/app/src/main/res/drawable/icon_local_reset.png b/app/src/main/res/drawable/icon_local_reset.png
deleted file mode 100644
index dc9d659dd7..0000000000
Binary files a/app/src/main/res/drawable/icon_local_reset.png and /dev/null differ
diff --git a/app/src/main/res/layout/actions_fragment.xml b/app/src/main/res/layout/actions_fragment.xml
index 9b126fb8d1..ebb517dcb7 100644
--- a/app/src/main/res/layout/actions_fragment.xml
+++ b/app/src/main/res/layout/actions_fragment.xml
@@ -30,7 +30,7 @@
style="@style/ButtonSmallFontStyle"
android:layout_width="0dp"
android:layout_height="wrap_content"
- android:drawableTop="@drawable/icon_actions_profileswitch"
+ android:drawableTop="@drawable/ic_actions_profileswitch"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:text="@string/careportal_profileswitch"
@@ -45,7 +45,7 @@
style="@style/ButtonSmallFontStyle"
android:layout_width="0dp"
android:layout_height="wrap_content"
- android:drawableTop="@drawable/icon_actions_temptarget"
+ android:drawableTop="@drawable/ic_actions_temptarget"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:text="@string/careportal_temporarytarget"
@@ -144,7 +144,7 @@
style="@style/ButtonSmallFontStyle"
android:layout_width="0dp"
android:layout_height="fill_parent"
- android:drawableTop="@drawable/icon_cp_bgcheck"
+ android:drawableTop="@drawable/ic_cp_bgcheck"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:text="@string/careportal_bgcheck"
@@ -159,7 +159,7 @@
style="@style/ButtonSmallFontStyle"
android:layout_width="0dp"
android:layout_height="wrap_content"
- android:drawableTop="@drawable/icon_cp_pump_canula"
+ android:drawableTop="@drawable/ic_cp_pump_canula"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:text="@string/primefill"
@@ -174,7 +174,7 @@
style="@style/ButtonSmallFontStyle"
android:layout_width="0dp"
android:layout_height="fill_parent"
- android:drawableTop="@drawable/icon_cp_cgm_insert"
+ android:drawableTop="@drawable/ic_cp_cgm_insert"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:text="@string/careportal_cgmsensorinsert"
@@ -188,7 +188,7 @@
style="@style/ButtonSmallFontStyle"
android:layout_width="0dp"
android:layout_height="fill_parent"
- android:drawableTop="@drawable/icon_cp_pump_battery"
+ android:drawableTop="@drawable/ic_cp_pump_battery"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:text="@string/careportal_pumpbatterychange"
@@ -202,7 +202,7 @@
style="@style/ButtonSmallFontStyle"
android:layout_width="0dp"
android:layout_height="fill_parent"
- android:drawableTop="@drawable/icon_cp_note"
+ android:drawableTop="@drawable/ic_cp_note"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:text="@string/careportal_note"
@@ -216,7 +216,7 @@
style="@style/ButtonSmallFontStyle"
android:layout_width="0dp"
android:layout_height="fill_parent"
- android:drawableTop="@drawable/icon_cp_exercise"
+ android:drawableTop="@drawable/ic_cp_exercise"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:text="@string/careportal_exercise"
@@ -230,7 +230,7 @@
style="@style/ButtonSmallFontStyle"
android:layout_width="0dp"
android:layout_height="fill_parent"
- android:drawableTop="@drawable/icon_cp_announcement"
+ android:drawableTop="@drawable/ic_cp_announcement"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:text="@string/careportal_announcement"
@@ -244,7 +244,7 @@
style="@style/ButtonSmallFontStyle"
android:layout_width="0dp"
android:layout_height="fill_parent"
- android:drawableTop="@drawable/icon_cp_question"
+ android:drawableTop="@drawable/ic_cp_question"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:text="@string/careportal_question"
@@ -273,7 +273,7 @@
style="@style/ButtonSmallFontStyle"
android:layout_width="0dp"
android:layout_height="wrap_content"
- android:drawableTop="@drawable/icon_danarhistory"
+ android:drawableTop="@drawable/ic_danarhistory"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:text="@string/nav_historybrowser"
@@ -287,7 +287,7 @@
style="@style/ButtonSmallFontStyle"
android:layout_width="0dp"
android:layout_height="wrap_content"
- android:drawableTop="@drawable/icon_danarstats"
+ android:drawableTop="@drawable/ic_cp_stats"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:text="@string/tdd"
diff --git a/app/src/main/res/layout/activity_profilehelper.xml b/app/src/main/res/layout/activity_profilehelper.xml
new file mode 100644
index 0000000000..68d97b98a8
--- /dev/null
+++ b/app/src/main/res/layout/activity_profilehelper.xml
@@ -0,0 +1,96 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/survey_activity.xml b/app/src/main/res/layout/activity_survey.xml
similarity index 100%
rename from app/src/main/res/layout/survey_activity.xml
rename to app/src/main/res/layout/activity_survey.xml
diff --git a/app/src/main/res/layout/careportal_fragment.xml b/app/src/main/res/layout/careportal_fragment.xml
index 44d5f957f0..6d6da91bc3 100644
--- a/app/src/main/res/layout/careportal_fragment.xml
+++ b/app/src/main/res/layout/careportal_fragment.xml
@@ -50,7 +50,7 @@
style="@style/ButtonSmallFontStyle"
android:layout_width="0px"
android:layout_height="fill_parent"
- android:drawableTop="@drawable/icon_cp_bgcheck"
+ android:drawableTop="@drawable/ic_cp_bgcheck"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:text="@string/careportal_bgcheck"
@@ -65,7 +65,7 @@
style="@style/ButtonSmallFontStyle"
android:layout_width="0dp"
android:layout_height="fill_parent"
- android:drawableTop="@drawable/icon_cp_exercise"
+ android:drawableTop="@drawable/ic_cp_exercise"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:text="@string/careportal_exercise"
@@ -79,7 +79,7 @@
style="@style/ButtonSmallFontStyle"
android:layout_width="0dp"
android:layout_height="fill_parent"
- android:drawableTop="@drawable/icon_cp_cgm_target"
+ android:drawableTop="@drawable/ic_cp_cgm_target"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:text="@string/careportal_temporarytarget"
@@ -110,7 +110,7 @@
style="@style/ButtonSmallFontStyle"
android:layout_width="0dp"
android:layout_height="fill_parent"
- android:drawableTop="@drawable/icon_cp_bolus_snack"
+ android:drawableTop="@drawable/ic_cp_bolus_snack"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:text="@string/careportal_snackbolus"
@@ -124,7 +124,7 @@
style="@style/ButtonSmallFontStyle"
android:layout_width="0dp"
android:layout_height="fill_parent"
- android:drawableTop="@drawable/icon_cp_bolus_meal"
+ android:drawableTop="@drawable/ic_cp_bolus_meal"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:text="@string/careportal_mealbolus"
@@ -224,7 +224,7 @@
style="@style/ButtonSmallFontStyle"
android:layout_width="0dp"
android:layout_height="fill_parent"
- android:drawableTop="@drawable/icon_cp_cgm_start"
+ android:drawableTop="@drawable/ic_cp_cgm_start"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:text="@string/careportal_cgmsensorstart"
@@ -239,7 +239,7 @@
style="@style/ButtonSmallFontStyle"
android:layout_width="0dp"
android:layout_height="fill_parent"
- android:drawableTop="@drawable/icon_cp_cgm_insert"
+ android:drawableTop="@drawable/ic_cp_cgm_insert"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:text="@string/careportal_cgmsensorinsert"
@@ -254,7 +254,7 @@
style="@style/ButtonSmallFontStyle"
android:layout_width="0dp"
android:layout_height="fill_parent"
- android:drawableTop="@drawable/icon_cp_aaps_offline"
+ android:drawableTop="@drawable/ic_cp_aaps_offline"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:text="@string/careportal_openapsoffline"
@@ -269,7 +269,7 @@
style="@style/ButtonSmallFontStyle"
android:layout_width="0dp"
android:layout_height="fill_parent"
- android:drawableTop="@drawable/icon_cp_announcement"
+ android:drawableTop="@drawable/ic_cp_announcement"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:text="@string/careportal_announcement"
@@ -283,7 +283,7 @@
style="@style/ButtonSmallFontStyle"
android:layout_width="0dp"
android:layout_height="fill_parent"
- android:drawableTop="@drawable/icon_cp_question"
+ android:drawableTop="@drawable/ic_cp_question"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:text="@string/careportal_question"
@@ -297,7 +297,7 @@
style="@style/ButtonSmallFontStyle"
android:layout_width="0dp"
android:layout_height="fill_parent"
- android:drawableTop="@drawable/icon_cp_note"
+ android:drawableTop="@drawable/ic_cp_note"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:text="@string/careportal_note"
@@ -326,7 +326,7 @@
style="@style/ButtonSmallFontStyle"
android:layout_width="0dp"
android:layout_height="fill_parent"
- android:drawableTop="@drawable/icon_cp_pump_canula"
+ android:drawableTop="@drawable/ic_cp_pump_canula"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:text="@string/careportal_pumpsitechange"
@@ -340,7 +340,7 @@
style="@style/ButtonSmallFontStyle"
android:layout_width="0dp"
android:layout_height="fill_parent"
- android:drawableTop="@drawable/icon_cp_pump_cartridge"
+ android:drawableTop="@drawable/ic_cp_pump_cartridge"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:text="@string/careportal_insulincartridgechange"
@@ -354,7 +354,7 @@
style="@style/ButtonSmallFontStyle"
android:layout_width="0dp"
android:layout_height="fill_parent"
- android:drawableTop="@drawable/icon_cp_cgm_profile"
+ android:drawableTop="@drawable/ic_cp_cgm_profile"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:text="@string/careportal_profileswitch"
@@ -369,7 +369,7 @@
style="@style/ButtonSmallFontStyle"
android:layout_width="0dp"
android:layout_height="fill_parent"
- android:drawableTop="@drawable/icon_cp_pump_battery"
+ android:drawableTop="@drawable/ic_cp_pump_battery"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:text="@string/careportal_pumpbatterychange"
diff --git a/app/src/main/res/layout/careportal_stats_fragment.xml b/app/src/main/res/layout/careportal_stats_fragment.xml
index 2532a6f198..bcd7f38f21 100644
--- a/app/src/main/res/layout/careportal_stats_fragment.xml
+++ b/app/src/main/res/layout/careportal_stats_fragment.xml
@@ -21,7 +21,7 @@
android:layout_height="fill_parent"
android:layout_weight="1"
android:gravity="center_vertical"
- android:drawableLeft="@drawable/icon_cp_age_sensor"
+ android:drawableLeft="@drawable/ic_cp_age_sensor"
android:paddingRight="5dp"
android:paddingStart="15dp"
android:text="@string/careportal_sensorage_label"
@@ -68,7 +68,7 @@
android:layout_height="fill_parent"
android:layout_weight="1"
android:gravity="center_vertical"
- android:drawableLeft="@drawable/icon_cp_age_insulin"
+ android:drawableLeft="@drawable/ic_cp_age_insulin"
android:paddingRight="5dp"
android:paddingStart="15dp"
android:text="@string/careportal_insulinage_label"
@@ -115,7 +115,7 @@
android:layout_height="fill_parent"
android:layout_weight="1"
android:gravity="center_vertical"
- android:drawableLeft="@drawable/icon_cp_age_canula"
+ android:drawableLeft="@drawable/ic_cp_age_canula"
android:paddingRight="5dp"
android:paddingStart="15dp"
android:text="@string/careportal_canulaage_label"
@@ -162,7 +162,7 @@
android:layout_height="fill_parent"
android:layout_weight="1"
android:gravity="center_vertical"
- android:drawableLeft="@drawable/icon_cp_age_battery"
+ android:drawableLeft="@drawable/ic_cp_age_battery"
android:paddingRight="5dp"
android:paddingStart="15dp"
android:text="@string/careportal_pbage_label"
diff --git a/app/src/main/res/layout/combopump_fragment.xml b/app/src/main/res/layout/combopump_fragment.xml
index c4a65feb36..1a60481875 100644
--- a/app/src/main/res/layout/combopump_fragment.xml
+++ b/app/src/main/res/layout/combopump_fragment.xml
@@ -494,7 +494,7 @@
android:layout_height="wrap_content"
android:layout_weight="0.5"
android:layout_marginRight="-4dp"
- android:drawableTop="@drawable/icon_actions_refill"
+ android:drawableTop="@drawable/ic_actions_refill"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:text="@string/combo_refresh" />
diff --git a/app/src/main/res/layout/dialog_care.xml b/app/src/main/res/layout/dialog_care.xml
index 500b118afa..c4c5ad59ca 100644
--- a/app/src/main/res/layout/dialog_care.xml
+++ b/app/src/main/res/layout/dialog_care.xml
@@ -26,7 +26,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@string/careportal_profileswitch"
- android:src="@drawable/icon_actions_profileswitch" />
+ android:src="@drawable/ic_actions_profileswitch" />
+ android:src="@drawable/ic_cp_pump_canula" />
+ android:src="@drawable/ic_actions_profileswitch" />
+ android:src="@drawable/ic_actions_temptarget" />
+ android:drawableStart="@drawable/ic_local_activate" />
@@ -295,7 +295,7 @@
android:layout_marginRight="10dp"
android:layout_marginBottom="3dp"
android:layout_weight="1"
- android:drawableStart="@drawable/icon_local_save"
+ android:drawableStart="@drawable/ic_local_save"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:text="@string/save" />
diff --git a/app/src/main/res/layout/omnipod_fragment.xml b/app/src/main/res/layout/omnipod_fragment.xml
index f6d13171ce..912d975168 100644
--- a/app/src/main/res/layout/omnipod_fragment.xml
+++ b/app/src/main/res/layout/omnipod_fragment.xml
@@ -573,7 +573,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
- android:drawableTop="@drawable/icon_actions_refill"
+ android:drawableTop="@drawable/ic_actions_refill"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:text="@string/combo_refresh" />
@@ -585,7 +585,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
- android:drawableTop="@drawable/icon_danarhistory"
+ android:drawableTop="@drawable/ic_danarhistory"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:text="@string/omnipod_pod_mgmt" />
@@ -596,7 +596,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
- android:drawableTop="@drawable/icon_cp_aaps_offline"
+ android:drawableTop="@drawable/ic_cp_aaps_offline"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:text="@string/omnipod_ack_short" />
@@ -607,7 +607,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
- android:drawableTop="@drawable/icon_danarstats"
+ android:drawableTop="@drawable/ic_danarstats"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:text="@string/omnipod_rl_stats" />
diff --git a/app/src/main/res/layout/omnipod_initpod_init_action.xml b/app/src/main/res/layout/omnipod_initpod_init_action.xml
index 7fb6863405..012b87f71b 100644
--- a/app/src/main/res/layout/omnipod_initpod_init_action.xml
+++ b/app/src/main/res/layout/omnipod_initpod_init_action.xml
@@ -58,7 +58,7 @@
android:layout_marginRight="15dp"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
- android:drawableTop="@drawable/icon_actions_refill"
+ android:drawableTop="@drawable/ic_actions_refill"
android:visibility="gone" />
diff --git a/app/src/main/res/layout/omnipod_pod_mgmt.xml b/app/src/main/res/layout/omnipod_pod_mgmt.xml
index 13862757eb..778757e314 100644
--- a/app/src/main/res/layout/omnipod_pod_mgmt.xml
+++ b/app/src/main/res/layout/omnipod_pod_mgmt.xml
@@ -40,7 +40,7 @@
android:layout_marginTop="3dp"
android:textAllCaps="false"
android:layout_weight="0.5"
- android:drawableTop="@drawable/icon_cp_pump_canula"
+ android:drawableTop="@drawable/ic_cp_pump_canula"
android:text="@string/omnipod_cmd_init_pod" />
diff --git a/app/src/main/res/layout/overview_info_layout.xml b/app/src/main/res/layout/overview_info_layout.xml
index 9794abeaff..46b9ab16f4 100644
--- a/app/src/main/res/layout/overview_info_layout.xml
+++ b/app/src/main/res/layout/overview_info_layout.xml
@@ -46,23 +46,64 @@
android:id="@+id/overview_timeago"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
+ android:layout_gravity="center_horizontal"
android:text="n/a"
android:textAppearance="@style/TextAppearance.AppCompat.Small" />
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/overview_statuslights_layout.xml b/app/src/main/res/layout/overview_statuslights_layout.xml
index 13b9fd1815..2d318f900d 100644
--- a/app/src/main/res/layout/overview_statuslights_layout.xml
+++ b/app/src/main/res/layout/overview_statuslights_layout.xml
@@ -18,7 +18,7 @@
android:scaleType="centerInside"
android:scaleX="2"
android:scaleY="2"
- android:src="@drawable/icon_cp_age_canula" />
+ android:src="@drawable/ic_cp_age_canula" />
+ android:scaleX="1.8"
+ android:scaleY="1.8"
+ android:src="@drawable/ic_cp_age_insulin" />
+ android:src="@drawable/ic_cp_age_sensor" />
+ android:src="@drawable/ic_cp_age_battery" />
-->
+ Lêer nie gevind nieVoer instellings uit naVoer instellings in
- Maks U/hr vir \'n Tydelike Basale kan gestel word naDie waarde word \"maks basal\" genoem in OpenAPS konteksMaksimum basale IAB wat OpenAPS mag lewer [U]Hierdie waarde word Maks IAB genoem in OpenAPS konteks\nDit is die maksimum insulien in [U] wat APS op een slag kan lewer.
@@ -223,7 +222,6 @@
Prima/vulMaak asseblief seker dat die hoeveelheid ooreenstem met die spesifikasies van jou infusie stel!Ander
- Vul/prima standaard insulien hoeveelhede.Knoppie 1Knoppie 2Knoppie 3
@@ -278,7 +276,6 @@
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 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 ookVerstek waarde: waar\nDit word gebruik om autosens toe te laat om BG teikens aan te pas, benewens ISF en basale.Verstek waarde: 2\nBolus sluimer is verorden nadat jy \'n maaltyd bolus gedoen het, so die lus sal nie werk met lae tydelike wanneer jy nou net geëet het nie. Die voorbeeld hier se verstek is 2; so \'n 3 uur DIA beteken dat bolus sluimer sal geleidelik uitgefaseer sal word oor 1.5 uur (3DIA/2).Verstek waarde: 3.0 (AMA) of 8.0 (SMB). Dit is \'n instelling vir verstek karb absorpsie impak per 5 minute. Die verstek is \'n verwagte 3mg/dl / 5min. Dit beïnvloed hoe vinnig KOB opgeneem word, en hoeveel karb absorpsie word aanvaar sodat in die berekening van toekomstige BG, voorspel wanneer BG val meer as verwagte, of nie soveel styg as verwag.
@@ -673,7 +670,6 @@
Begin jou eerste doelwitToestemmingVra vir toestemming
- Applikasie benodig ligging toestemming vir BT skanderingToepassing benodig stoor toestemming om log leers te skryfVersoekKonfigureer insulien plugin
diff --git a/app/src/main/res/values-bg-rBG/exam.xml b/app/src/main/res/values-bg-rBG/exam.xml
index 3ea04e700d..cd1e715314 100644
--- a/app/src/main/res/values-bg-rBG/exam.xml
+++ b/app/src/main/res/values-bg-rBG/exam.xml
@@ -1,2 +1,26 @@
-
+
+ https://androidaps.readthedocs.io/en/latest/EN/Configuration/Config-Builder.html?#insulin
+ https://androidaps.readthedocs.io/en/latest/EN/Usage/temptarget.html
+ https://androidaps.readthedocs.io/en/latest/EN/Configuration/Config-Builder.html#profile
+ https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#other-settings
+ https://androidaps.readthedocs.io/en/latest/EN/Usage/ExportImportSettings.html
+ https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#what-emergency-equipment-is-recommended-to-take-with-me
+ https://androidaps.readthedocs.io/en/latest/EN/Usage/Smoothing-Blood-Glucose-Data-in-xDrip.html#smoothing-blood-glucose-data
+ https://androidaps.readthedocs.io/en/latest/EN/Usage/temptarget.html#activity-temp-target
+ https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#androidaps-settings
+ https://androidaps.readthedocs.io/en/latest/EN/Module/module.html
+ https://androidaps.readthedocs.io/en/latest/EN/Installing-AndroidAPS/Update-to-new-version.html#update-to-a-new-version-or-branch
+ https://androidaps.readthedocs.io/en/latest/EN/Installing-AndroidAPS/Update-to-new-version.html#troubleshooting
+ https://www.facebook.com/groups/AndroidAPSUsers/
+ https://gitter.im/MilosKozak/AndroidAPS
+ Fiasp®
+ https://androidaps.readthedocs.io/en/latest/EN/Configuration/Config-Builder.html#insulin
+ https://androidaps.readthedocs.io/en/latest/EN/Configuration/Sensitivity-detection-and-COB.html
+ https://androidaps.readthedocs.io/en/latest/EN/Usage/Extended-Carbs.html
+ https://androidaps.readthedocs.io/en/latest/EN/Children/Children.html
+ https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#insulin-sensitivity-factor-isf-mmol-l-u-or-mg-dl-u
+ https://androidaps.readthedocs.io/en/latest/EN/Usage/Profiles.html
+ https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#carbohydrate-to-insulin-ratio-cr-g-u
+ https://androidaps.readthedocs.io/en/latest/EN/Module/module.html#good-individual-dosage-algorithm-for-your-diabetes-therapy
+
diff --git a/app/src/main/res/values-bg-rBG/protection.xml b/app/src/main/res/values-bg-rBG/protection.xml
index 868fec0b53..5fd2ed4e54 100644
--- a/app/src/main/res/values-bg-rBG/protection.xml
+++ b/app/src/main/res/values-bg-rBG/protection.xml
@@ -9,11 +9,14 @@
Парола за настройкиПарола за приложениетоПарола за болус
+ Отключи настройкитеБиометрични данниДопълнителна паролаНяма защитаЗащитаГлавната парола не е зададена!\n\nМоля, настройте Вашата главна парола в Предпочитания (%1$s → %2$s)
+ Грешка при биометрични данни!
+ За да бъде ефективна, биометричната защита се нуждае от главна парола.\n\nМоля, въведете главна парола!Паролата е зададена!Паролата не е зададенаПаролата не е променена
diff --git a/app/src/main/res/values-bg-rBG/strings.xml b/app/src/main/res/values-bg-rBG/strings.xml
index f3c9582648..8293bacc5d 100644
--- a/app/src/main/res/values-bg-rBG/strings.xml
+++ b/app/src/main/res/values-bg-rBG/strings.xml
@@ -131,6 +131,7 @@
Изключи LoopВключи LoopИма ново предложение
+ ПредложениеНесъвместима версия на NightscoutLOOP Е СПРЯН ОТ ОГРАНИЧЕНИЯТАБазален IOB
@@ -163,7 +164,7 @@
Файлът не е намеренЕкспорт настройкиИмпорт настройки
- Максимално позволен временен базал Е/ч
+ Максимален временен базал Е/чМакс. лимит на временен базал [Е/ч] Максимален IOBТози параметър се нарича максимален IOB в OpenAPS и подразбиране е 0. След няколко дни или седмици можете да го увеличите.
@@ -195,7 +196,7 @@
КриптиранеСтар форматНов формат
- Нов формат (некриптирани)
+ Нов формат (незащитен)Непознат форматФайлът с настройки е преправянФайлът с настройки е сигурен
@@ -229,8 +230,8 @@
Отдалечен SMS контрол е изключен. Можете да го включите от AndroidAPS телефона.За да изпратите калибрация %1$.2f отговорете с код %2$sБолус отказан
- Минимален брой минути, в които трябва да мине между един отдалечен болус и следващия
- Колко най-малко минути трябва да минат два болуса
+ Минимално време в минути, което трябва да е изминало след отдалечен болус, преди да може да бъде доставен следващият
+ Колко най-малко минути трябва да минат между доставката на два болусаЗа вашата сигурност, променете тази настройка, трябва да добавите най-малко 2 телефонни номера.Болус от %1$.2fЕ доставен успешноЩе стартира %1$.2fЕ болус
@@ -299,7 +300,7 @@
Пълнене на сетМоля, уверете се, че стойността съответсва на вашият сет! Този инсулин не се включва в IOB!Други
- Fill/Prime количества инсулин по подразбиране.
+ Fill/Prime количества инсулин по подразбиранеБутон 1Бутон 2Бутон 3
@@ -450,7 +451,7 @@
Аларма при възраст на батерия над [часа]Праг за критична възраст на батерията над [часа]Ниво за аларма за останал инсулин в резервоара [Е]
- Критично ниво на останал инсулин в резервоар [Е]
+ Предупреждение за критично ниво на останал инсулин в резервоар [Е]Аларма при заряд на батерия под [%]Критично ниво на батерията под [%]Предв
@@ -512,7 +513,7 @@
ОткажиНе всички профили са заредени!Стойностите не са запазени!
- Включете излъчване към други приложения (като xDrip). Не включвайте, ако имате повече от един AAPS или имате инсталиран NSClient!
+ Активирайте предаване на данни към други приложения (като xDrip). Не активирайте, ако имате повече от един AAPS или имате инсталиран NSClient!Разреши локално предаване на данниАКТИВНОСТ И ОБРАТНА ВРЪЗКАХРАНА И БОЛУС
@@ -560,6 +561,7 @@
Аларма при липса на данни за КЗАларма при недостъпна помпаЛимит за недостъпна помпа [мин]
+ Аларма ако трябват въглехидратиСпешна алармаИНФОEversense приложение(модифицирано)
@@ -568,10 +570,12 @@
Показвай подробна делтаПоказвай делта с още един десетичен знакИнтервал между SMB в минути
- Максимум минути СМБ
+ Максимум минути SMBМаксимални минути за ограничаване на базала от SMBМаксимум минути за отчитане на необявени хранения UAMМаксимални минути за ограничаване на базала при SMB за UAM
+ Минимум въглехидрати, необходими за аларма
+ Грама въглехидрати минимум, за да се покаже аларма. Нужни въглехидрати под това число няма да доведат до уведомяване.Изпращай данни за КЗ към xDrip+В xDrip+ изберете 640g/Eversense за източник на данниКЗ от NS
@@ -651,11 +655,17 @@
Количество инсулин за добавяне при натискане на бутонаНе може да се стартира CGM приложението. Уверете се, че е инсталирано.CGM
+ Игнориране за 5 мин
+ Игнориране за 15 мин
+ Игнориране за 30 мин
+ нужнИсторияУведомяване при SMBПокажи SMB на часовника като стандартен болус.Създаване на известие при грешки
+ Създаване на известия при предупреждения за необходими въглехидратиСъздаване на Nightscout известие при грешки и локални аларми (също видими в Careportal - Treatments)
+ Създаване на Nightscout известия при предупреждения за необходими въглехидратиПоказвай прогнозините КЗ на часовника.Прогнозни КЗИзбор на данни
@@ -785,7 +795,7 @@
РазрешениеПитане за разрешениеААПС изисква разрешение за да може да Ви уведомява
- Приложението се нуждае от достъп до вашето местоположение за да активира BT сканиране
+ Приложение се нуждае от достъп до местоположението Ви за сканиране и WiFi идентификацияПриложението се нуждае от разрешение да съхранява данни за да може съхранява лог файловеИсканеКонфигуриране на модула за Инсулин
@@ -1207,8 +1217,8 @@
Изберете единиците, в които искате да работитеКачване на локални промени в НС профилаDIA
- IC (Инсулин/въглехидр.):
- ISF (Инс.чувствителност)
+ И / Въгл
+ ЧувствЦелКлонирайПърво запазете или се откажете от промените
@@ -1219,6 +1229,7 @@
Високата граница на диапазона (графика)ПодредиВъзраст:
+ Тегло:Номер:ИзпратиНай-често използван профил:
@@ -1394,4 +1405,6 @@
Не може да се провери статус на болус. Моля, уверете се, че вашият под е стартирал болус или го отменете.Статистика на RLPulse лог
+ Сравни с текущия профил
+ Профил съветник
diff --git a/app/src/main/res/values-cs-rCZ/exam.xml b/app/src/main/res/values-cs-rCZ/exam.xml
index 67b1930191..1691517759 100644
--- a/app/src/main/res/values-cs-rCZ/exam.xml
+++ b/app/src/main/res/values-cs-rCZ/exam.xml
@@ -1,6 +1,7 @@
Co je pravda o DIA?
+ Téma: Doba trvání účinku inzulínuMinimální hodnota je 3 hodiny.Minimální hodnota je 5 hodin.https://androidaps.readthedocs.io/en/latest/CROWDIN/cs/Configuration/Config-Builder.html#inzulin
@@ -121,6 +122,7 @@
Aplikace Loop na iPhone.Aplikace Spike na iPhone.https://androidaps.readthedocs.io/en/latest/CROWDIN/cs/Children/Children.html
+ Téma: Citlivost na inzulínVyšší hodnoty ISF vedou k menší dávce inzulínu při korigování vysoké glykémie.Nižší hodnoty ISF vedou k menší dávce inzulínu při korigování vysoké glykémie.Změna hodnoty ISF nemá vliv na dávku inzulínu při korigování vysoké glykémie.
@@ -128,6 +130,7 @@
Změna hodnoty citlivosti ve vašem profilu postačuje k tomu, aby se tato změna použila.https://androidaps.readthedocs.io/en/latest/CROWDIN/cs/Getting-Started/FAQ.html#korekcni-faktor-citlivost-na-inzulin-isf-mmol-l-u-nebo-mg-dl-uhttps://androidaps.readthedocs.io/en/latest/CROWDIN/cs/Usage/Profiles.html
+ Téma: Inzulino-sacharidový poměrVyšší hodnoty IC vedou k menší dávce inzulínu pro stejné množství sacharidů.Nižší hodnoty IC vedou k menší dávce inzulínu pro stejné množství sacharidů.Pokud máte 0 COB změna inzulino-sacharidového poměru povede k jinému množství inzulínu vydanému pro korekci glykémie.
diff --git a/app/src/main/res/values-cs-rCZ/objectives.xml b/app/src/main/res/values-cs-rCZ/objectives.xml
index bbebc9fc02..54608d561a 100644
--- a/app/src/main/res/values-cs-rCZ/objectives.xml
+++ b/app/src/main/res/values-cs-rCZ/objectives.xml
@@ -22,7 +22,7 @@
Povolit další funkce pro běžné používání jako SMBPovolení automatizacePřečíst si dokumentaci a zvýšit maximální IOB, aby mohlo SMB fungovat. Pro začátek se dá použít velikost běžného bolusu + 3x maximální denní bazál
- Přečtěte si na wiki, jak automatizace funguje. Nejdříve nastavte pouze jednoduchá pravidla. Namísto provádění akcí nechte AAPS zobrazovat pouze oznámení. Pokud jste si jistí, že je automatizace je spuštěna v pravý čas, můžete oznámení nahradit prováděním akce. (https://androidaps.readdocs.io/en/latest/CROWDIN/cs/Usage/Automation.html)
+ Přečtěte si na wiki, jak automatizace funguje. Nejdříve nastavte pouze jednoduchá pravidla. Namísto provádění akcí nechte AAPS zobrazovat pouze oznámení. Pokud jste si jistí, že je automatizace spouštěna v pravý čas, můžete oznámení nahradit prováděním akce. (https://androidaps.readdocs.io/en/latest/CROWDIN/cs/Usage/Automation.html)Glykémie dostupná v NSStav pumpy dostupný v NSRučně spuštěno
diff --git a/app/src/main/res/values-cs-rCZ/protection.xml b/app/src/main/res/values-cs-rCZ/protection.xml
index 01ec1022d6..d8117ca6dc 100644
--- a/app/src/main/res/values-cs-rCZ/protection.xml
+++ b/app/src/main/res/values-cs-rCZ/protection.xml
@@ -15,6 +15,8 @@
Bez ochranyOchranaHlavní heslo není nastaveno!\n\nProsím nastavte své hlavní heslo v Preferencích (%1$s → %2$s)
+ Nezabezpečené záložní řešení
+ Aby bylo biometrické zabezpečení účinné, je třeba pro záložní řešení nastavit hlavní heslo.\n\nNastavte hlavní heslo!Heslo nastaveno!Heslo není nastavenéHeslo nezměněno
diff --git a/app/src/main/res/values-cs-rCZ/strings.xml b/app/src/main/res/values-cs-rCZ/strings.xml
index c7ccc964d1..b760ef7044 100644
--- a/app/src/main/res/values-cs-rCZ/strings.xml
+++ b/app/src/main/res/values-cs-rCZ/strings.xml
@@ -164,7 +164,7 @@
Soubor nenalezenExportovat nastaveníImportovat nastavení
- Maximální povolený bazál [U/h]
+ Max. U/h, které lze nastavit pro dočas. bazálTato hodnota je v kontextu OpenAPS nazývána max basalMaximální bazální IOB [U]Tato hodnota je v kontextu OpenAPS nazývána max IOB
@@ -300,7 +300,7 @@
Plnění/doplňováníProsím ujistěte se, že hodnota odpovídá specifikaci Vašeho setu!Jiné
- Hodnoty plnění/doplňování.
+ Standardní množství inzulinu pro Plnění/DoplňováníTlačítko 1Tlačítko 2Tlačítko 3
@@ -359,7 +359,7 @@
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\nToto je bezpečnostní nastavení pro detekci sensitivity (a brzy autotune). Říká, že autosense 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 autosense 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
+ Autosense také upravuje cílovou glykémiiVý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).Výchozí hodnota: 3.0 (AMA) nebo 8.0 (SMB) mg/dl/5min. Tato hodnota definuje minimální část strávených sacharidů za každých 5 min. Tato hodnota ovlivňuje výpočet COB.
@@ -795,7 +795,7 @@
PovoleníZískat povoleníPro oznámení vyžaduje aplikace oprávnění systémového okna
- Aplikace vyžaduje povolení \"umístění\", aby mohla vyhledávat BT zařízení
+ Aplikace potřebuje oprávnění k přístupu k poloze kvůli skenování BT a WiFi identifikaciAplikace vyžaduje přístup k úložišti, aby mohla ukládat logyPožadavekNastavení inzulínu
@@ -814,9 +814,9 @@
Nízký dočasný cíl sníží senzitivituRezistence snižuje cíl
- Je-li zjištěna rezistence, snížit cílovou hladinu glukózy
+ Je-li zjištěna rezistence, sníží nastavenou cílovou glykémiiCitlivost zvyšuje cíl
- Je-li zjištěna vyšší citlivost, zvýší cílovou hladinu glukózy
+ Je-li zjištěna vyšší citlivost, zvýší nastavenou cílovou glykémiiChybné nastavení pumpy. Projděte si dokumentaci a přesvědčete se, že menu Quick Info se jmenuje QUICK INFO, za použití 360 configuration software.VolitelnýVyčistit události \"AndroidAPS restartován\"
@@ -1229,6 +1229,7 @@
Horní hodnota oblasti v rozsahu (pouze zobrazování)Změna pořadíVěk:
+ Hmotnost:ID:OdeslatNejběžnější profil:
diff --git a/app/src/main/res/values-de-rDE/protection.xml b/app/src/main/res/values-de-rDE/protection.xml
index 83fce7bd9a..2655bd08d8 100644
--- a/app/src/main/res/values-de-rDE/protection.xml
+++ b/app/src/main/res/values-de-rDE/protection.xml
@@ -15,6 +15,8 @@
Kein SchutzSchutzDas Master-Passwort ist nicht festgelegt!\n\nLege Dein Master-Passwort bitte in den Einstellungen fest (%1$s → %2$s)
+ Unsicherer Fallback
+ Zur Absicherung braucht der biometrischer Schutz ein Masterpasswort als Fallback.\n\nBitte gib ein Master-Passwort ein!Passwort festgelegt!Passwort nicht festgelegtPasswort nicht geändert
diff --git a/app/src/main/res/values-de-rDE/strings.xml b/app/src/main/res/values-de-rDE/strings.xml
index ff8135d71b..32e3a40d82 100644
--- a/app/src/main/res/values-de-rDE/strings.xml
+++ b/app/src/main/res/values-de-rDE/strings.xml
@@ -156,7 +156,7 @@
TBRVerzögerter BolusNightscout-Version:
- Fehlend %1$dg
+ Fehlend %1$d gEinstellungen exportiertEinstellungen exportieren nachImportiere Einstellungen von
@@ -164,7 +164,7 @@
Datei nicht gefundenEinstellungen exportierenEinstellungen importieren
- Max. IE/h, die als TBR gesetzt werden können
+ Maximale IE/h, die als TBR gesetzt werden könnenDieser Wert wird \"max basal\" in OpenAPS genannt.Maximales Basal-IOB, das OpenAPS abgeben darf [IE]Maximale Menge von Nicht-Bolus-IOB, die OpenAPS abgeben kann.
@@ -271,8 +271,8 @@
Um den Loop zu deaktivieren, antworte mit dem Code %1$sTBR mit %1$.2f IE/h für %2$d min wurde erfolgreich gestartet.Der erweiterte Bolus %1$.2f IE/h für %2$d Minuten wurde erfolgreich gestartet
- %1$dg Kohlenhydrate erfolgreich erfasst.
- Eingabe von %1$dg Kohlenhydraten ist fehlgeschlagen.
+ %1$d g Kohlenhydrate erfolgreich erfasst.
+ Eingabe von %1$d g Kohlenhydraten ist fehlgeschlagen.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.
@@ -355,8 +355,8 @@
Verwende immer das kurze durchschnittliche Delta statt des einfachen DeltasDas ist sinnvoll, wenn die Daten von einer ungefilterten Quelle Signalrauschen haben.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: 3\nDies ist eine wichtige Sicherheitseinstellung. Sie begrenzt die maximale Basal-Abgabe auf die dreifache Menge (im Standardfall) deiner größten Basalrate im Profil. 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 die Basal-Abgabe auf die (im Standardfall) vierfache Menge der aktuellen Basalrate im Profil. 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 stark Autosens Basalraten erhöhen 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
@@ -655,10 +655,10 @@
Menge an Insulin, die hinzugefügt werden soll, wenn die Schaltfläche gedrückt wirdCGM-Anwendung konnte nicht geöffnet werden. Stelle sicher, dass diese installiert ist.CGM
- Ignoriere für 5 Min.
- Ignoriere für 15 Min.
- Ignoriere für 30 Min.
- Anfrage
+ 5 Min. ignorieren
+ 15 Min. ignorieren
+ 30 Min. ignorieren
+ angef.HistorieBei SMB benachrichtigenZeige SMB auf der Uhr wie einen normalen Bolus an.
@@ -795,7 +795,7 @@
BerechtigungNach Berechtigung fragenDie App benötigt die Systemberechtigung für App-Benachrichtigungen
- AndroidAPS benötigt die Standortfreigabe für den BT-Scan.
+ Die App benötigt die Berechtigung für den Standort, um Bluetooth und WLAN nutzen zu könnenAndroidAPS benötigt Zugriff auf den Speicher, um Log-Dateien speichern zu können.AnfordernInsulin-Plugin konfigurieren
@@ -1207,7 +1207,7 @@ Unerwartetes Verhalten.
Ausgewählt:EinheitenWillst Du das Profil wechseln und die Änderungen am aktuellen Profil verwerfen?
- %1$dg
+ %1$d gEinAusZiel erneut öffnen
@@ -1407,4 +1407,5 @@ Mache das nur, wenn AAPS nicht mehr mit dem Pod kommunizieren kann. Wenn dies no
Erfolgreiche Bolusabgabe konnte nicht sicher ermittelt werden. Stelle sicher, dass der Pod Insulin abgibt oder brich den Bolus ab.RL StatsPulse Log
+ Profil-Helfer
diff --git a/app/src/main/res/values-el-rGR/strings.xml b/app/src/main/res/values-el-rGR/strings.xml
index 27bbf06e8f..02d5bb7ce8 100644
--- a/app/src/main/res/values-el-rGR/strings.xml
+++ b/app/src/main/res/values-el-rGR/strings.xml
@@ -159,7 +159,6 @@
Μη εύρεση φακέλουΕξαγωγή ρυθμίσεωνΕισαγωγή ρυθμίσεων
- Μέγιστο U/hr Προσωρινού Ρυθμού μπορεί να είναιΑυτή η τιμή ονομάζεται μέγιστο βασικού ρυθμού στο περιεχόμενο του OpenAPSΜέγιστο βασικής IOB που το OpenAPS μπορεί να δώσει [U]Αυτή η τιμή ονομάζεται μέγιστο IOB στο OpenAPS \nΑυτή είναι η μέγιστη ινσουλίνη [U] που το APS μπορεί να δώσει με την μία.
@@ -226,7 +225,6 @@
Πλήρωση/ΓέμισμαΠαρακαλώ ελέγξτε ότι η ποσότητα ταιριάζει με τις προδιαγραφές του σετ έγχυσης!Άλλο
- Πλήρωση/Γέμισμα στανταρ ποσότητες ινσουλίνης.Πλήκτρο 1Πλήκτρο 2Πλήκτρο 3
@@ -281,7 +279,6 @@
Προεπιλεγμένη τιμή: 4 Αυτό είναι το μισό του θέματος ασφαλείας του OpenAPS, και το άλλο μισό του «3 x μέγιστο ημέρας: 4 x τρέχων» των θεμάτων ασφαλείας. Αυτό σημαίνει ότι ο βασικός ρυθμός, ανεξάρτητα από την μέγιστη τιμή βασικού ρυθμού στην αντλία σας, δεν μπορεί να είναι υψηλότερος από το πολλαπλάσιο αυτού του αριθμού. Αυτό γίνεται για να αποτρέψει τους ανθρώπους από το να μπουν σε επικίνδυνες καταστάσεις θέτωντας υψηλό βασικό πριν κατανοήσουν πλήρως πώς λειτουργεί ο αλγόριθμος. Και πάλι, η προεπιλεγμένη τιμή είναι 4x: οι περισσότεροι άνθρωποι ποτέ δεν θα χρειαστεί να το προσαρμόσουν και αντίθετα είναι πιο πιθανό να χρειαστεί να προσαρμόσουν άλλες ρυθμίσεις αν αισθάνονται ότι κινούνται με ασφάλεια.Προεπιλεγμένη τιμή: 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 και βασικό ρυθμό.Προεπιλεγμένη τιμή: 2\nΗ αναβολή Bolus ενεργοποιείται αφού κάνετε ένα γευματικό bolus, έτσι το κύκλωμα δεν θα εξουδετερώσει με χαμηλό προσωρινό μόλις έχετε φάει. Το παράδειγμα εδώ και η προεπιλογή είναι 2: έτσι μια τρίωρη DIA σημαίνει ότι το bolus αναβολής θα είναι σταδιακά πάνω από 1,5 ώρα (3DIA/2).Προεπιλεγμένη τιμή: 3.0 (AMA) ή 8.0 (SMB). Αυτό είναι μια ρύθμιση για την επίπτωση της προεπιλεγμένης απορρόφησης υδατανθράκων ανά 5 λεπτά. Η προεπιλογή είναι μια αναμενόμενη 3mg/dl/5min. Αυτό επηρεάζει το πόσο γρήγορα το COB ελλατώνεται, και πόση απορρόφηση υδατανθράκων θα υποθέτει για τον υπολογισμό της μελλοντικής πρόβλεψης BG, όταν το BG πέφτει περισσότερο από το αναμενόμενο ή δεν αυξάνεται όσο το αναμενόμενο.
@@ -680,7 +677,6 @@
Ξεκινήστε τον πρώτο στόχοΆδειαΖητείστε άδεια
- Η εφαρμογή απαιτεί άδεια τοποθεσίας για την αναζήτηση συσκευών BTΗ εφαρμογή απαιτεί πρόσβαση στη μνήμη για την αποθήκευση αρχείων καταγραφήςΑίτημαΡυθμίστε την προσθήκη ινσουλίνης
diff --git a/app/src/main/res/values-es-rES/exam.xml b/app/src/main/res/values-es-rES/exam.xml
index e5fde44174..d10c0449d3 100644
--- a/app/src/main/res/values-es-rES/exam.xml
+++ b/app/src/main/res/values-es-rES/exam.xml
@@ -1,6 +1,7 @@
¿Qué es cierto acerca de DIA?
+ Tema: Duración de la acción de la insulinaEl valor mínimo es de 3 horas.El valor mínimo es de 5 horas.https://androidaps.readthedocs.io/en/latest/EN/Configuration/Config-Builder.html?#insulin
@@ -121,6 +122,7 @@
Aplicación de Loop en el iPhone.App de Spike en el iPhone.https://androidaps.readthedocs.io/en/latest/EN/Children/Children.html
+ Tema: Factor de sensibilidad de insulinaLos valores más altos de ISF llevan a una menor cantidad de insulina cuando AAPS corrige los valores altos de glucemia.Los valores más bajos de ISF llevan a una menor cantidad de insulina cuando AAPS corrige los valores altos de glucemia.El cambio de los valores de ISF no afecta a la cantidad de insulina que se entrega cuando AAPS corrige para compensar los valores altos de glucemia.
@@ -128,6 +130,7 @@
El cambio del valor de ISF en el perfil es suficiente para aplicar el cambio.https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#insulin-sensitivity-factor-isf-mmol-l-u-or-mg-dl-uhttps://androidaps.readthedocs.io/en/latest/EN/Usage/Profiles.html
+ Tema: El ratio insulina carbohidratos- ICLos ratios IC más altos conducen a menos insulina entregada por una cantidad determinada de carbohidratos.Los ratios IC más bajos conducen a menos insulina entregada por una cantidad determinada de carbohidratos.Si tiene 0 COB, cambiar la ratio IC conducirá a una cantidad distinta de insulina para corregir un valor de glucemia determinado.
diff --git a/app/src/main/res/values-es-rES/objectives.xml b/app/src/main/res/values-es-rES/objectives.xml
index 047ce04909..d1377e8706 100644
--- a/app/src/main/res/values-es-rES/objectives.xml
+++ b/app/src/main/res/values-es-rES/objectives.xml
@@ -20,7 +20,9 @@
Una semana con éxito en lazo cerrado durante el día con entrada regular de carbohidratosHabilitar funciones adicionales para su uso durante el día, como el asistente de comida avanzadoHabilitar funciones adicionales para uso durante el día como SMB
+ Activar automatización¡Debes leer el wiki y subir maxIOB para que SMB funcione bien! Para comenzar un buen valor sería maxIOB = bolo de comida medio + 3 x máximo basal diario
+ Lea los documentos sobre cómo funciona la automatización. Configura tus primeras reglas simples. En lugar de acción, deje que AAPS muestre solo notificaciones. Cuando esté seguro de que la automatización se activa en el momento adecuado, reemplace la notificación por acción real. (https://androidaps.readthedocs.io/en/latest/EN/Usage/Automation.html)Glucosa disponible en NSEstado de la bomba disponible en NSAprobación Manual
@@ -35,6 +37,7 @@
Mostrar contenido del plugin LoopUsar función de escala mediante un gráfico BG pulsado largoIntro
+ Si tienes al menos 3 meses de experiencia con el lazo cerrado de otros sistemas puedes cualificarte para obtener un código para saltarte los objetivos. Para información detallada (en inglés): https://androidaps.readthedocs.io/en/latest/EN/Usage/Objectives.html#skip-objectives.Código aceptadoCódigo no válidoCompruebe su conocimiento
diff --git a/app/src/main/res/values-es-rES/protection.xml b/app/src/main/res/values-es-rES/protection.xml
index 3ea04e700d..81480ef4d5 100644
--- a/app/src/main/res/values-es-rES/protection.xml
+++ b/app/src/main/res/values-es-rES/protection.xml
@@ -1,2 +1,25 @@
-
+
+ Autentificación requerida
+ Coloque el dedo en el lector de huellas dactilares para verificar su identidad
+ Protección de ajustes
+ Protección de aplicación
+ Protección de bolo
+ Contraseña maestra
+ Contraseña de configuración
+ Contraseña de aplicación
+ Contraseña de Bolus
+ Desbloquear ajustes
+ Biométrico
+ Contraseña personalizada
+ Sin protección
+ Protección
+ ¡La contraseña maestra no está configurada!\n\nPor favor, configure su contraseña maestra en Preferencias (%1$s → %2$s)
+ No es seguro volver atrás
+ Para ser eficaz, la protección biométrica necesita una contraseña maestra establecida para el respaldo.\n\nPor favor, establezca una contraseña maestra!
+ ¡Contraseña establecida!
+ Contraseña no establecida
+ Contraseña no cambiada
+ ¡Contraseña borrada!
+ Introducir contraseña aquí
+
diff --git a/app/src/main/res/values-es-rES/strings.xml b/app/src/main/res/values-es-rES/strings.xml
index b77a72edf8..4dc505384e 100644
--- a/app/src/main/res/values-es-rES/strings.xml
+++ b/app/src/main/res/values-es-rES/strings.xml
@@ -36,6 +36,7 @@
Integración de bomba de insulina para personas que usan varias inyecciones diarias para su terapia de diabetesIntegración para bombas de insulina que aún no tienen ningún controlador/driver (lazo abierto)Sensibilidad calculada de la misma manera que Oref0, pero puede especificarse el rango de tiempo. Absorción de carbohidratos mínima se calcula con el máximo tiempo de absorción de carbohidratos en preferencias.
+ La sensibilidad se calcula con las últimas 8 h y los carbohidratos (si no son absorbidos) se anulan después del tiempo indicado en preferencias. El complemento también calcula UAM.La sensibilidad se calcula como un promedio ampliado de las desviaciones. Desviaciones más recientes tienen mayor impacto. Absorción de carbohidratos mínima se calcula desde el tiempo de absorción de carbohidratos máximo en preferencias. Este algoritmo es el más rápido siguiendo los cambios de sensibilidad.Recibir los valores de glucosa de la aplicación Eversense parcheada.Recibir valores de glucosa de Glimp.
@@ -125,10 +126,12 @@
Modo APSLazo cerradoLazo abierto
+ Suspensión por glucosa bajaLazo InactivoDesactivar lazoActivar lazoNueva propuesta disponible
+ Sugerencia de carbohidratosVersión no aceptada de NightscoutLOOP DESACTIVADO POR RESTRICCIONESBasal IOB
@@ -161,7 +164,7 @@
Archivo no encontradoExportar ajustesImportar ajustes
- Max U/h para el perfil base
+ Max U/h para la basal temporalEste valor es llamado max basal en OpenAPSMax IOB basal que OpenAPs puede emitir [U]Este valor es llamado Max Iob en el OpenAPS\nEsta es la máxima insulina en [U] que APS puede entregar a la vez.
@@ -169,19 +172,25 @@
Se le solicitará la contraseña maestra, que es necesaria para descifrar las preferencias importadas.¡Exportación cancelada! ¡Las preferencias NO se han exportado!¡Importación cancelada! ¡Las preferencias NO se han importado!
+ Seleccionar fichero para importarPor favor, compruebe las preferencias antes de importar:¡Las preferencias no se pueden importar!¡Las preferencias no se deben importar!Explicar problemas de importación…
+ Importar Detalles del problemaImportarImportar de todos modos (¡PELIGROSO!)
+ Las preferencias se han creado con distinta versión de AAPS (%1$s), la versión instalada es: %2$s.\n\nAlgunos valores pueden faltar o no ser válidos después de importar, por favor, compruebe y actualice sus preferencias.Las preferencias se han creado en un dispositivo distinto. Está bien si va a importar desde un teléfono más antiguo/diferente, pero ¡asegúrese de que las preferencias importadas son correctas!¡Estás usando el obsoleto formato heredado de versiones antiguas de AAPS, que no es seguro! Únicamente utilizarlo como último recurso, si no tiene una exportación en formato JSON actual.Las preferencias importadas ya tienen %1$s días! ¿Tal vez tengas preferencias más actualizadas o eligiste el archivo equivocado? ¡Recuerda exportar las preferencias regularmente!¡Formato de fecha no válido!
+ Preferencias de una versión menor de la aplicación. Está bien si va a importar después de la actualización, pero ¡compruebe después de la importación si las preferencias siguen siendo correctas!
+ Preferencias de la versión principal distinta de la aplicación. ¡Las versiones principales difieren significativamente y pueden tener preferencias incompatibles! ¡Asegúrese de que, después de importar, las preferencias siguen siendo correctas!Formato del archivoCreado elVersión de AAPS
+ Construir VarianteExportar el nombre del paciente del dispositivoExportar modelo de dispositivoEncriptación de archivos
@@ -191,10 +200,20 @@
Formato de exportación desconocidoArchivo de configuración alteradoEl archivo de configuración es seguro
+ Uso no seguro, sin cifrar del formato de configuración
+ Error de formato JSON, falta campo necesario (formato, contenido, metadatos o seguridad)Error de descifrado, la contraseña proporcionada no puede descifrar el archivo
+ Falta el archivo de la suma de comprobación (hash), ¡no se puede verificar la autenticidad de configuración!¡El archivo se ha modificado tras la exportación!Error de descifrado, ¡el análisis de las preferencias ha fallado!
+ Error de descifrado, ¡la contraseña proporcionada no es válida o se ha modificado el archivo de ajustes! Puede suceder que el archivo importado se haya exportado con una contraseña maestra distinta.
+ Falta la configuración de cifrado, ¡el formato configuración no es válido!¡Algoritmo de cifrado no soportado o no especificado!
+ exportado hoy
+ exportado hace %1$s
+ exportado en %1$s
+ exportado hace menos de una hora
+ en el directorio: %1$sAcuerdo de licencia de usuario finalNO DEBE UTILIZARSE PARA TOMAR DECISIONES MÉDICAS. NO HAY NINGUNA GARANTÍA PARA EL PROGRAMA, EN LA MEDIDA PERMITIDA POR LA LEY APLICABLE. EXCEPTO CUANDO SE INDIQUE LO CONTRARIO POR ESCRITO, LOS TITULARES DE LOS DERECHOS DE AUTOR Y/O OTRAS PARTES PROPORCIONAN EL PROGRAMA \"TAL CUAL\" SIN GARANTÍA DE NINGÚN TIPO, YA SEA EXPRESA O IMPLÍCITA, INCLUIDAS, ENTRE OTRAS, LAS GARANTÍAS IMPLÍCITAS DE COMERCIABILIDAD Y ADECUACIÓN PARA UN PROPÓSITO EN PARTICULAR. TODO EL RIESGO EN CUANTO A LA CALIDAD Y EL RENDIMIENTO DEL PROGRAMA ES SUYA. SI EL PROGRAMA TUVIERA UN ERROR, USTED ASUME EL COSTE DE TODO SERVICIO, REPARACIÓN O CORRECCIÓN NECESARIOS.ENTIENDO Y ACEPTO
@@ -234,6 +253,11 @@
Lazo activo%1$.2f limitado a %2$.2fEl valor %1$s está fuera de límites
+ Para conectar la infusora responder con el código %1$s
+ Error al conectar a la bomba
+ Para desconectar la bomba durante %1dminutos responde con el código %2$s
+ Bomba desconectada
+ Bomba reconectadaComando remoto no permitidoEl bolo remoto no está disponible. Inténtalo de nuevo más tarde.Para iniciar una basal de %1$.2fU/h durante %2$d min, responder con el código %3$s
@@ -242,6 +266,9 @@
Para introducir %1$dg en %2$s responder con código %3$sPara iniciar una basal de %1$d%% durante %2$d min, responder con el código %3$sPara cancelar lazo por %1$d minutos responde con código %2$s
+ Para retomar el lazo responder con código %1$s
+ Para activar el lazo responder con código %1$s
+ Para desactivar el lazo responder con código %1$sBasal temporal %1$.2fU/h para %2$d min iniciada correctamenteBolo ampliado de %1$.2fU durante %2$d min se inició correctamenteLos carbohidratos %1$dg introducidos con éxito
@@ -273,7 +300,7 @@
Rellenar/Llenar¡Por favor asegurar que la cantidad coincide con la especificación del set de infusión!Otros
- Llenar/Rellenar cantidad de insulina estándar.
+ Llenar/Rellenar cantidad de insulina estándarBotón 1Botón 2Botón 3
@@ -371,6 +398,7 @@
Mostrar detalles IOBSeparar IOB en bolo y base en el relojsin efecto - por favor verificar en móvil
+ n/aEdad pacienteMenor de edadAdolescente
@@ -414,12 +442,26 @@
Activar superbolo en asistenteActivar función superbolo en asistente. No lo actives hasta que hayas aprendido lo que realmente hace. ¡PUEDE CAUSAR SOBREDOSIS DE INSULINA usándolo sin precaución!Mostrar luces de estado en la pantalla de inicio
+ Umbral de advertencia de la edad de la cánula [h]
+ Umbral crítico de la edad de la cánula [h]
+ Umbral de advertencia de la edad de la insulina [h]
+ Umbral crítico de la edad de la insulina [h]
+ Umbral de advertencia de la edad del sensor [h]
+ Umbral crítico de la edad del sensor [h]
+ Umbral de advertencia de nivel de pila [h]
+ Umbral crítico de nivel de batería [h]Umbral de advertencia de nivel de reservorio [U]Umbral crítico de nivel de reservorio [U]Umbral de advertencia de nivel de pila [%]Umbral crítico de nivel de batería [%]
+ PREDIOBCOB
+ BAS
+ DEV
+ ACT
+ ABS
+ DEVSLOPEAcerca deFalta permiso SMSFalta permiso de estado del teléfono
@@ -437,6 +479,8 @@
Cambio de perfilEdad batería bombaOpciones alarma
+ Crear notificaciones de alarmas NS
+ Crear notificaciones de avisos de NSDatos antiguos limite [min]Datos antiguos urgentes limite [min]Intervalo para autosens [h]
@@ -517,6 +561,7 @@
Alarma si no llegan datos BGAlarma si bomba no es alcanzableBomba no alcanzable durante [min]
+ Alerta si se necesitan carbohidratosAlarma urgenteINFOEversense App (parcheada)
@@ -529,6 +574,8 @@
Minutos máximos de basal para limitar SMBMinutos máximos de UAM SMBMinutos máximos de basal para limitar SMB para UAM
+ Carbohidratos mínimos necesarios para la sugerencia
+ Gramos mínimos de carbohidratos para mostrar una alerta de sugerencia de carbohitratos: las sugerencias de carbohidratos debajo de este número no iniciarán una notificación.Mandar datos BG a xDrip+En xDrip+ elige 640g/Eversense como fuente de datosNSClient BG
@@ -587,6 +634,8 @@
Error al emitir bolo extendidoSighthace
+ Establecer basales temporales neutras
+ Si está activado, cancelará un basal temporal antes del final de cada hora. Este método puede ayudar a evitar que algunas bombas pitan/vibran al final de la hora.Habilitar SMB siempreHabilitar SMB siempre de forma independiente a los Bolos. Solo posible con fuente BG con buen filtrado de datos como G5Habilitar SMB después de Carbohidratos
@@ -606,11 +655,17 @@
Cantidad de insulina que se agrega cuando se presiona el botónNo se pudo iniciar la aplicación CGM. Asegúrate de que está instalada.CGM
+ Ignorar 5m
+ Ignorar 15m
+ Ignorar 30m
+ reqHistorialNotificar SMBMostrar SMB en el reloj como un bolo estándar.Crear notificaciones de los errores
+ Crear mensajes de alertas de carbohidratos necesariosCrear notificaciones en Nightscout para diálogos de error y alertas locales (también visibles en Careportal en Tratamientos)
+ Crear mensajes de Nightscout para las alertas de carbohidratos necesariosMostrar predicciones en el relojPrediccionesOpciones de datos
@@ -739,7 +794,8 @@
Comienza tu primer objetivoPermisoPedir permiso
- La aplicación necesita permiso de localización para el escaneo de BT
+ La aplicación necesita permiso de ventana del sistema para las notificaciones
+ La aplicación necesita permiso de ubicación para la exploración de BT e identificación de WiFiLa aplicación necesita permiso para guardar los logsSolicitarConfigurar complemento de insulina
@@ -757,7 +813,10 @@
= 100]]>Objetivo temporal bajo reduce sensibilidad
+ Resistencia baja objetivo
+ Cuando se detecta resistencia, se baja el objetivo de glucosaSensibilidad aumenta objetivo
+ Cuando se detecta sensibilidad a insulina, aumenta el objetivo de glucosaConfiguración de la bomba incorrecta, leer la documentación y comprobar que el menú de Quick Info se llama QUICK INFO usando el software de configuración 360.PersonalizadoLimpiar eventos AndroidAPS iniciado
@@ -808,6 +867,10 @@
Registro de alarmasActivar emulación de dosis basal temporalUsa bolos extendidos en lugar de TBRs para pasar por alto el límite de 250%%
+ Desactivar vibraciones en la administración manual del bolo
+ Para bolo y bolo extendido (sólo disponible con el firmware de Insight 3.x)
+ Desactivar vibraciones en la administración automática del bolo
+ Para SMB y basal temp. con la emulación TBR (sólo disponible con el firmware de Insight 3.x)Desconectar el retraso [s]Número de serieVersión de software
@@ -1019,6 +1082,7 @@
BuscandoBúsqueda FinalizadaError de escaneo: %1$d
+ NuncaConfiguraciónHistorico
@@ -1148,6 +1212,7 @@
Limpieza finalizadaLimpieza iniciada¿Desea reiniciar el objetivo? Puedes perder tu progreso.
+ Cambio de hora y/o huso horario en la bombaNinguna bomba seleccionadaSeleccione las unidades en las que desea visualizar los valoresSubir cambios de perfil local a NS
@@ -1164,6 +1229,7 @@
Valor superior al área de rango (sólo visualización)RepetirEdad:
+ Peso:ID:EnviarPerfil más común:
@@ -1188,28 +1254,155 @@
El uso de la función de bolo extendido detendrá el modo de bucle cerrado durante el tiempo de ejecución del bolo extendido. ¿Realmente quieres esto?Bucle cerrado inhabilitado debido a la ejecución del bolo extendidoEB
+ \"Verificación de teléfono\"Menú gráficoASTiempo requerido de SMBTiempo de ejecución de SMB
+ Tiempo requerido para Basal temporal
+ Tiempo de ejecución para Temp Basal
+ Alertas de bomba Insight
+ de app de Autentificación a: %1$sHabilitar autentificador
+ Comandos de autentificación usando One Time Password de Google Autenticator o apps 2FA similar.
+ PIN adicional en token final
+ Los dígitos adicionales se deben memorizar y pegar al final de cada una de las contraseñas generadas por One Time PasswordConfiguración de autentificación
+ OTP para comprobar:
+ Restablecer autentificadores
+ Restablecer clave de autentificación¿Está seguro de que desea restablecer la clave del autenticador? Los autenticadores configurados actualmente no seran válidos, y tendrá que volver a configurarlos.¡Se ha generado una clave de autenticador nueva! Utilice QRCode actualizado para suministrar autenticadores.1. Instalar autenticador
+ 2. Escanea el código para instalar códigos AndroidAPS OTP
+ 3. Probar la contraseña de Uso únicoRestablecer autentificadores
+ En cada teléfono seguidor, instale la aplicación Authenticator que admita tokens RFC 6238 TOTP. Las aplicaciones gratuitas populares son:\n • Authy\n • Google Authenticator\n • LastPass Authenticator\n • FreeOTP Authenticator
+ NO COMPARTA este código en línea!\nUsa sólo para la instalación de la Aplicación google Authenticator en teléfonos seguidores.Al resetear el autenticador haces que todos los autenticadores ya provistos no sean válidos. ¡Necesitarás configurarlos de nuevo!Al conectarAl desconectarPredicciones
+ Pendiente de desviación
+ Ha fallado la autorización
+ Insulina en total
+ La contraseña maestra se usa para cifrar la copia de seguridad y para sustituir la seguridad en la aplicación. Recordar o almacenar en sitio seguro.
+ Contraseñas no coinciden
+ Contraseña maestra actual
+ Luces de estado
+ Copiar ajustes de NS
+ ¿Copiar los ajustes de NS (si existe)?
+ Tema original
+ Los botones siempre se muestran en la parte inferior de la pantalla
+ Pantalla grande
+ Tema
+ La integración de la bomba para Omnipod requiere el dispositivo RileyLink (con al menos 2,0 firmware).
+ Aviso de bolo activado
+ Aviso de basal activado
+ Aviso de SMB activado
+ Aviso de TBT activado
+ Opciones de depuración de Pod habilitadas
+ Detección de DST/Timezone habilitada
+ Pod Mgmt
+ Estado de Pod
+ %1$.2f U restantes
+ Más De 50 U
+ Dirección de Pod
+ Pod Caduca
+ Sin info
+ Sin Pod conectado
+ No Inicializado
+ Alertas de Pod activas
+ Alertas Ack
+ Omnipod (433.91 MHz)
+ La operación no es posible.\n\nDebe configurar Omnipod primero, antes de poder usar esta operación.
+ La operación no es posible.\n\n Necesitas esperar unos minutos, hasta que AAPS intente establecer el perfil por primera vez.
+ Ilegal PodInitActionType: %1$s
+ Ningún pod activo.
+ Falló la verificación del comando.
+ Error inesperado. Por favor, informe! (tipo: %1$s).
+ Comunicación fallida: se han recibido parámetros de entrada inválidos.
+ Comunicación fallida: tiempo de espera.
+ La comunicación ha fallado: error inesperado. ¡Por favor, Informe!
+ Comunicación fallida: falló la verificación de integridad del mensaje.
+ La comunicación ha fallado: se ha recibido un paquete no válido del Pod.
+ La comunicación ha fallado: el Pod está en un estado incorrecto.
+ La comunicación ha fallado: se ha recibido una respuesta no válida del Pod.
+ Ha fallado la comunicación: se ha recibido un mensaje con un número de secuencia no válido del Pod.
+ La comunicación ha fallado: se ha recibido un mensaje con una dirección no válida desde el Pod.
+ La comunicación ha fallado: no se ha podido descodificar el mensaje del Pod.
+ La comunicación ha fallado: nonce resync ha fallado.
+ Comunicación fallida: nonce no sincronizada.
+ La comunicación ha fallado: no se han recibido suficientes datos del Pod.
+ Un error de Pod (%1$03d %2$s) se ha detectado. Por favor, desactive su Pod e inicie uno nuevo.
+ La comunicación ha fallado: el Pod ha devuelto una respuesta de error.
+ Administración de Pod
+ Iniciar Pod
+ Desactivar Pod
+ Restablecer Pod
+ Historial de Pod
+ Establecer Bolo
+ Cancelar Bolus
+ Establecer la basal temporal
+ Cancelar Basal Temporal (Internamente por controlador)
+ Cancelar Basal Temporal (forzado por el usuario)
+ Establecer Planificación Basal
+ Obtener estado de Pod
+ Obtener información de Pod
+ Establecer hora
+ Configurar alertas
+ Confirmar Alertas
+ Suspender la entrega
+ Reanudar la entrega
+ Entrada desconocida
+ %1$.1fU
+ %1$.1f U, CH=%2$.1f g
+ Tasa: %1$.1f U, Duración: %2$d min
+ Si pulsa OK, el estado de Pod se restablecerá por la fuerza y ya no podrá comunicarse con el Pod. Hágalo sólo si ya no puede comunicarse con el Pod. Si todavía puede comunicarse con el Pod, utilice la opción Desactivar Pod.
+ Historial del Pod no disponible en el momento.
+ Llenar el Pod
+ \nLlenar el nuevo Pod con suficiente insulina durante 3 días.\n\nEscucha dos pitidos del Pod durante el proceso de llenado. Esto indica que se ha insertado la cantidad mínima de 85U. Asegúrese de vaciar completamente la jeringa, incluso después de escuchar los dos pitidos.\n\nDespués de llenar el Pod, por favor pulse Next.\n\nNota: no retire el capuchón de la aguja del Pod en este momento.
+ Cebado
+ Intentando emparejar con el nuevo Pod y primarlo.\n\nCuando todos los elementos están marcados, puedes pulsar Siguiente.\n\nNota: por favor mantenga el Pod muy cerca del RileyLink en este momento.
+ Adherir el Pod
+ \nPreparar el sitio de infusión. Retire el capuchón de la aguja del Pod y el adhesivo y aplique el Pod al sitio de perfusión.\n\nSi la cánula se queda fuera, por favor presione Cancel y descarte su Pod.\n\nPress Next para insertar la cánula y comenzar la entrega basal.
+ Insertar cánula
+ Intentando establecer la programación basal inicial e insertar la cánula.\n\nCuando todos los elementos están marcados, puede pulsar Siguiente.
+ Pod Info
+ \nEl Pod ahora está activo.\n\nSu horario basal ha sido programado y la cánula ha sido insertada.\n\nPor favor, verifique que la cánula ha sido insertada correctamente y reemplace su Pod si usted siente que no lo ha hecho.
+ Desactivar Pod
+ \nPulsa Siguiente para desactivar el Pod.\n\nNota: Esto suspenderá toda la entrega insulina y desactivará el Pod.
+ Desactivando el Pod
+ Desactivando el Pod.\n\nCuando se comprueban todos los elementos, puede pulsar Next.\n\nNota: Si la desactivación falla, por favor pulse Cancelar y utilice la opción Restablecer Pod para restablecer por la fuerza el estado de Pod.
+ Pod desactivado.\n\nPor favor, retire el Pod de su cuerpo y desecharlo.
+ Emparejar Pod
+ Llenado de cánula del Pod
+ Llenar cánula
+ Establecer el perfil basal
+ Cancelar entrega
+ Desactivar Pod
+ Integración de la bomba para Omnipod Dash.
+ Finalizar recordatorio de emparejamiento
+ Recordatorio de configuración finalizado
+ Pod a punto de caducar
+ Pod a punto de caducar
+ El apagado es inminente
+ Reservorio bajo
+ Alerta desconocida
+ La configuración del perfil basal podría haber fallado. ¡La entrega podría ser suspendida! Por favor, actualiza el estado de Pod.
+ La configuración de basal temporal podría haber fallado. Si ya se está ejecutando una basal temporal, ¡puede que haya sido cancelada! Por favor, actualice el estado del pod.
+ Ajuste de la hora puede ser que haya fallado. La entrega puede ser suspendido! Por favor, actualizar estado de Pod.
+ No se puede verificar si el bolo ha sido exitoso. Por favor verifique que su Pod está poniendo bolo o cancele el bolo.
+ Estadísticas del RL
+ Registro de pulso
diff --git a/app/src/main/res/values-fr-rFR/strings.xml b/app/src/main/res/values-fr-rFR/strings.xml
index ca0d79cbdf..5da915b220 100644
--- a/app/src/main/res/values-fr-rFR/strings.xml
+++ b/app/src/main/res/values-fr-rFR/strings.xml
@@ -164,7 +164,7 @@
Fichier introuvableExporter les paramètresImporter les paramètres
- Max U/h pour le débit de Basal Temp
+ Débit max en U/h pour une Basal Temp.Cette valeur est appelée Basal Maximum dans le contexte OpenAPSIA Basal max que OpenAPS pourra délivrer [U]Cette valeur est appelée Max IA (Insuline Active) dans le contexte OpenAPS\nC\'estlle maximum d\'insuline en [U] que APS peut délivrer en une seule fois.
@@ -301,7 +301,7 @@ L\'ENSEMBLE DES RISQUES LIÉS À LA QUALITÉ ET À LA PERFORMANCE DU PROGRAMME S
Amorcer/RemplirVeuillez à ce que la quantité corresponde aux caractéristiques de votre cathéter !Autres
- Valeurs prédéfinies pour remplir&amorcer
+ Quantité d\'insuline par défaut pour Amorcer/RemplirBouton 1Bouton 2Bouton 3
@@ -796,7 +796,7 @@ L\'ENSEMBLE DES RISQUES LIÉS À LA QUALITÉ ET À LA PERFORMANCE DU PROGRAMME S
AutorisationDemande d\'autorisationL\'application a besoin de l\'autorisation d\'accès à la fenêtre système pour les notifications
- L\'application requiert l\'autorisation de localisation pour le balayage Bluetooth
+ L\'application a besoin de l\'autorisation de localisation pour l\'analyse BT et l\'identification WiFiL\'application requiert une autorisation de stockage de données afin de pouvoir sauvegarder les fichiers journauxDemandeConfigurer le plugin d\'insuline
diff --git a/app/src/main/res/values-it-rIT/protection.xml b/app/src/main/res/values-it-rIT/protection.xml
index 6696bb44c4..2b1d73801e 100644
--- a/app/src/main/res/values-it-rIT/protection.xml
+++ b/app/src/main/res/values-it-rIT/protection.xml
@@ -15,6 +15,8 @@
Nessuna protezioneProtezioneLa password master non è impostata!\n\nImposta la tua password master in Preferenze (%1$s → %2$s)
+ Fallback non sicuro
+ Per essere efficace, la protezione biometrica richiede una password master per impostare un\'alternativa in caso di necessità (fallback).\n\nImposta una password master!Password impostata!Password non impostataPassword non modificata
diff --git a/app/src/main/res/values-it-rIT/strings.xml b/app/src/main/res/values-it-rIT/strings.xml
index 45d3d91f63..c07b82596b 100644
--- a/app/src/main/res/values-it-rIT/strings.xml
+++ b/app/src/main/res/values-it-rIT/strings.xml
@@ -158,8 +158,8 @@
Versione Nightscout:Mancanti %1$dgPreferenze esportate
- Esporta impostazioni su
- Importa impostazioni da
+ Esportare impostazioni su
+ Importare impostazioni daImpostazioni importateFile non trovatoEsporta impostazioni
@@ -300,7 +300,7 @@
Carica/RiempiAssicurati che la quantità corrisponda alla specifica del tuo set di infusione!Altro
- Quantità standard di insulina per Carica/Riempi.
+ Carica/Riempi: quantità standard di insulinaTasto 1Tasto 2Tasto 3
@@ -795,7 +795,7 @@
PermessoChiedi il permessoL\'applicazione richiede il permesso finestra di sistema per le notifiche
- L\'applicazione richiede l\'accesso alla posizione per eseguire la scansione bluetooth
+ L\'applicazione richiede l\'accesso alla posizione per la scansione bluetooth e l\'identificazione WiFiL\'applicazione richiede l\'accesso alla memoria per salvare i file di logRichiestaConfigura il plugin Insulina
diff --git a/app/src/main/res/values-ko-rKR/strings.xml b/app/src/main/res/values-ko-rKR/strings.xml
index 0d5475a46a..64d2780b01 100644
--- a/app/src/main/res/values-ko-rKR/strings.xml
+++ b/app/src/main/res/values-ko-rKR/strings.xml
@@ -161,7 +161,6 @@
파일을 찾을 수 없습니다설정 저장하기설정 불러오기
- 임시Basal 최대량 [U/hr]이 값은 OpenAPS에서 Max Basal(최대 Basal)로 설정되는 값입니다OpenAPS가 주입할수 있는 최대 Basal IOB [U]이 값은 OpenAPS에서 Max IOB라고 부르는 값입니다\n기본값은 0으로 설정되어 있습니다. 몇일 혹은 몇주 정도 사용 후 적절한 값으로 변경할 수 있습니다.
@@ -243,7 +242,6 @@
교체/채움양이 인퓨전세트의 사양과 일치하는지 확인하세요!기타
- 교체/채움 기본 인슐린양버튼1버튼2버튼3
@@ -302,7 +300,6 @@
기본값: 4\n이 값은 \"3x max daily; 4x current\"의 나머지 절반에 해당하는 또 다른 중요한 OpenAPS 안전장치입니다. 이것은, 펌프에 설정된 최대 Basal과는 관계없이, Basal이 설정된 현재시간의 Basal에 이 값을 곱한 양을 초과할 수 없다는 것을 의미합니다. 이는 알고리즘의 작동 방식을 이해하기 전에 과도하게 높은 최대 기본을 설정하여 위험한 상황에 빠지지 않도록 보호하기 위한 것입니다. 다시한번, 기본 값은 4배인 것을 알아두세요; 일반적으로 이것을 조정할 필요는 전혀 없으며, 대신 이 안전장치를 변경해야할것처럼 생각이 된다면, 다른 설정을 변경해야 할 가능성이 더 큽니다.기본값: 1.2\n이 옵션은 autosens의 최대 한계 값을 20%%로 제한하기 위해 autosens(곧 autotune)이 이용하는 승수값입니다. 이 값이 autosens에 대한 Basal의 최대 값, 인슐린 민감도(ISF)의 최소값 및 혈당 목표의 최소값을 결정케 합니다.기본값: 0.7\nautosens 안전 제한의 나머지 부분입니다. 이는 Basal을 얼마나 낮게 조절할 수 있는지, ISF와 혈당 목표범위를 얼마나 높게 설정할 수 있는지를 결정합니다.
- Autosens가 목표도 조절합니다.기본값: 활성\n이것은 autosens가 ISF와 Basal뿐만 아니라, 혈당 목표범위를 조절할 수 있게 합니다.기본값: 2\n식사주입 후 Bolus snooze가 수행되게 되고, 따라서 식사주입 직후엔 loop가 low temp에 대응하지 않게 됩니다. 기본값이 2일때 예제는 다음과 같습니다; DIA가 3시간일 경우 bolus snooz는 점차적으로 1.5시간에 걸쳐 단계적으로 사라지게 됩니다.(3DIA/2).기본값: 3.0 (AMA) 또는 8.0 (SMB). 5분당 탄수화물이 얼만큼 흡수되었는지에 대한 기본값 설정입니다. 기본값은 3mg/dl / 5분 입니다. 이는 혈당이 예상보다 빨리 떨어지거나 혹은 예상보다 오르지 않을때, COB가 얼마나 빨리 사라지게 되는지에 영향을 주게 되고, 추정된 탄수화물 흡수량이 미래 혈당 예측 계산시에도 영향을 주게 됩니다.
@@ -704,7 +701,6 @@
권한권한 요청하기알림에 대한 시스템 창 권한이 필요합니다
- 블루투스 스캔을 위해 위치 권한이 필요로 합니다.로그 파일을 저장하기 위해 저장공간 권한이 필요로 합니다.요청인슐린 플러그인 설정하기
diff --git a/app/src/main/res/values-lt-rLT/exam.xml b/app/src/main/res/values-lt-rLT/exam.xml
index 2deb998a72..dd8f3aba08 100644
--- a/app/src/main/res/values-lt-rLT/exam.xml
+++ b/app/src/main/res/values-lt-rLT/exam.xml
@@ -1,6 +1,7 @@
Koks atsakymas apie IVT yra teisingas?
+ Tema: Insulino veikimo trukmėMažiausia reikšmė - 3 valandos.Mažiausia reikšmė - 5 valandos.https://androidaps.readthedocs.io/en/latest/EN/Configuration/Config-Builder.html?#insulin
@@ -121,6 +122,7 @@
Loop app iPhone telefone.Spike iPhone telefone.https://androidaps.readthedocs.io/en/latest/EN/Children/Children.html
+ Tema: Insulino jautrumo faktoriusDidesnė JIF reikšmė lemia mažesnį insulino tiekimą, kai AAPS koreguoja aukštą glikemiją.Mažesnė JIF reikšmė lemia mažesnį insulino tiekimą, kai AAPS koreguoja aukštą glikemiją.JIF reikšmės pakeitimas neturi įtakos AAPS leidžiamo insulino kiekiui koreguojant aukštą glikemiją.
@@ -128,6 +130,7 @@
Jei profilyje pakeisite JIF vertę, Ciklas į pokytį iškart atsižvelgs.https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#insulin-sensitivity-factor-isf-mmol-l-u-or-mg-dl-uhttps://androidaps.readthedocs.io/en/latest/EN/Usage/Profiles.html
+ Tema: Insulino ir angliavandenių santykisDidesnis insulino ir angliavandenių IA santykis reiškia, kad mažiau insulino reikia padengti tam tikram angliavandenių kiekiui.Mažesnis insulino ir angliavandenių IA santykis reiškia, kad mažiau insulino reikia padengti tam tikram angliavandenių kiekiui.Jei turite 0 AAO (aktyvių angliavandenių organizme), pakeitus IA, glikemija bus koreguojama kitokiu insulino kiekiu.
diff --git a/app/src/main/res/values-lt-rLT/objectives.xml b/app/src/main/res/values-lt-rLT/objectives.xml
index 2ef9dbd944..b833792c44 100644
--- a/app/src/main/res/values-lt-rLT/objectives.xml
+++ b/app/src/main/res/values-lt-rLT/objectives.xml
@@ -20,7 +20,10 @@
1 savaitę praleiskite sėkmingai naudodami uždarąjį ciklą dienos metu ir įvesdami visus valgomus angliavandeniusDienos 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)
+ Automatizavimo įjungimasNorėdami, kad SMB veiktų gerai, turite perskaityti dokumentaciją ir padidinti max AIO! Pradžiai patartina skaičiuoti taip: maxAIO=(didžiausia valandinė bazė x 3) + vidutinis bolusas
+ Perskaitykite automatizavimo dokumentaciją. Nustatykite pirmąsias paprastas taisykles. Užuot įjungę veiksmus, leiskite AAPS tik rodyti pranešimus. Kai būsite tikri, kad automatizavimas prasidės tinkamu laiku, pakeiskite pranešimą realiu veiksmu.
+(https://androidaps.readthedocs.io/en/latest/EN/Usage/Automation.html)KG matoma NSNS matomas pompos statusasĮvesti rankiniu būdu
diff --git a/app/src/main/res/values-lt-rLT/protection.xml b/app/src/main/res/values-lt-rLT/protection.xml
index 3ea04e700d..4057e2737a 100644
--- a/app/src/main/res/values-lt-rLT/protection.xml
+++ b/app/src/main/res/values-lt-rLT/protection.xml
@@ -1,2 +1,25 @@
-
+
+ Reikalingas tapatybės nustatymas
+ Uždėkite pirštą ant pirštų atspaudų skaitytuvo jūsų tapatybės patvirtinimui
+ Nustatymų apsauga
+ Programos apsauga
+ Bolusų apsauga
+ Pagrindinis slaptažodis
+ Nustatymų slaptažodis
+ Programos slaptažodis
+ Bolusų slaptažodis
+ Atrakinti nustatymus
+ Biometriniai
+ Pasirinktinis slaptažodis
+ Apsaugos nėra
+ Apsauga
+ Pagrindinis slaptažodis nėra nustatytas!\n\nPrašome nustatyti savo pagrindinį slaptažodį Nustatymuose(%1$s → %2$s)
+ Nesaugus atsarginis įrašas
+ Saugumui užtikrinti, biometrinei apsaugai reikia pagrindinio slaptažodžio atsarginiam įrašui.\n\nĮveskite pagrindinį slaptažodį!
+ Slaptažodis nustatytas!
+ Slaptažodis nenustatytas
+ Slaptažodis nepakeistas
+ Slaptažodis išvalytas!
+ Įveskite slaptažodį čia
+
diff --git a/app/src/main/res/values-lt-rLT/strings.xml b/app/src/main/res/values-lt-rLT/strings.xml
index dc9d389eeb..e117fd3736 100644
--- a/app/src/main/res/values-lt-rLT/strings.xml
+++ b/app/src/main/res/values-lt-rLT/strings.xml
@@ -126,10 +126,12 @@
DKS režimasUždaras CiklasAtviras Ciklas
+ Sustabdymas esant žemai gliukozeiCiklas išjungtasIšjungti CikląĮjungti CikląGautas naujas pasiūlymas
+ Angliavandenių pasiūlymasNepalaikoma Nightscout versijaCIKLAS NEAKTYVUS DĖL APRIBOJIMŲBazės AIO
@@ -170,6 +172,7 @@
Jūsų paprašys nustatyti slaptažodį, kuris bus naudojamas atšifruojant importuotus nustatymus.Eksportas nutrauktas! Nustatymai NE eksportuoti!Importas nutrauktas! Nustatymai NE importuoti!
+ Pasirinkite failą importavimuiPrašom patikrinti nustatymus prieš importuojant:Nustatymai negali būti importuoti!Nustatymai neturėtų būti importuoti!
@@ -182,6 +185,8 @@
Jūs naudojate pasenusį formatą iš senos AAPS versijos, kuris nėra saugus! Naudokite tik kraštutiniu atveju, jei neturite nustatymų failo dabartiniu, JSON formatu.Importuoti nustatymai yra %1$s d. senumo! Patikrinkite, gal pasirinkote neteisingą failą ir turite naujesnius? Nepamirškite reguliariai eksportuoti nustatymų!Neteisingas datos ir laiko formatas!
+ Parametrai iš kitos palaikomosios programos versijos. Jei importuojate po atnaujinimo, tai yra normalu, bet po importavimo patikrinkite, ar visos nuostatos vis dar teisingos!
+ Parametrai iš kitos pagrindinės programos versijos. Pagrindinės versijos labai skiriasi ir gali turėti nesuderinamų parametrų! Po importavimo įsitikinkite, kad parametrai vis dar teisingi!Failo formatasSukurtaAAPS versija
@@ -204,6 +209,11 @@
Iššifravimas klaida, slaptažodis yra neteisingas arba nustatymų failas buvo pakeistas! Taip nutinka, jei importuotas failas buvo eksportuotas su kitu slaptažodžiu.Trūksta šifravimo sąrankos parametrų, nustatymų formatas yra neteisingas!Nepalaikomas arba nepatikslintas šifravimo algoritmas!
+ eksportuota šiandien
+ eksportuota prieš %1$s
+ eksportuota %1$s
+ eksportuota mažiau nei prieš valandą
+ kataloge: %1$sLicencinė sutartis su vartotojuPROGRAMA 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
@@ -243,6 +253,11 @@
Ciklas įjungtas%1$.2f apribotas iki %2$.2fVertė %1$s viršija griežtą limitą
+ Pompos prijungimui atsakykite su kodu %1$s
+ Nepavyko prisijungti prie pompos
+ Norėdami atjungti pompą %1d min., atsakykite kodu %2$s
+ Pompa atjungta
+ Pompa prijungtaNuotolinis valdymas negalimasNuotolinis bolusas negalimas. Bandykite vėliau.Norėdami aktyvuoti %1$.2fvv/val bazę, kurios trukmė %2$d min, atsakykite kodu %3$s
@@ -251,6 +266,9 @@
Įvedimui %1$dg %2$s atsakykite kodu %3$sNorėdami aktyvuoti %1$d%% bazę %2$d min., atsakykite kodu %3$sNorėdami sustabdyti Ciklą %1$d min., atsakykite kodu %2$s
+ Ciklo atnaujinimui atsakykite su kodu %1$s
+ Ciklo įjungimui atsakykite su kodu %1$s
+ Ciklo išjungimui atsakykite su kodu %1$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$dg angliavandeniai įrašyti sėkmingai
@@ -282,7 +300,7 @@
UžpildymasĮsitikinkite, kad nurodytas kiekis atitinka Jūsų infuzijos rinkinio specifikaciją!Kita
- Standartiniai insulino kiekiai kateterio/kaniulės užpildymui.
+ Standartiniai insulino kiekiai kateterio/kaniulės užpildymuiMygtukas 1Mygtukas 2Mygtukas 3
@@ -341,7 +359,7 @@
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
+ Autosens nustatomi tikslai, taip patNumatytoji 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.
@@ -380,6 +398,7 @@
Rodyti AIO detaliaiRodyti laikrodyje bazės ir bolusų AIOBandymas nesėkmingas - pasitikrinkite telefoną
+ n/aPaciento amžiusVaikasPaauglys
@@ -423,12 +442,26 @@
Į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
+ Kaniulės ribinio laiko įspėjimas [h]
+ Kaniulės kritinio laiko įspėjimas [h]
+ Insulino ribinio laiko įspėjimas [h]
+ Insulino kritinio laiko įspėjimas [h]
+ Jutiklio ribinio laiko įspėjimas [h]
+ Jutiklio kritinio laiko įspėjimas [h]
+ Baterijos ribinio laiko įspėjimas [h]
+ Baterijos kritinio laiko įspėjimas [h]Į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 [%]
+ PROGNAIOAAO
+ VB
+ DEV
+ VEIKS
+ ABS
+ DEVSLOPEApieTrūksta leidimo SMSTrūksta telefono būsenos leidimo
@@ -446,6 +479,8 @@
Profilio keitimasBaterijaAliarmų nustatymai
+ Sukurti pranešimus iš NS aliarmų
+ Sukurkite pranešimus iš NS perspėjimųSeni duomenys, riba [min]Kritiškai seni duomenys, riba [min]Autosens intervalas [h]
@@ -526,6 +561,7 @@
Perspėjimas apie negautus KG duomenisPerspėjimas apie nepasiekiamą pompąPerspėjimo apie nepasiekiamą pompą riba [min]
+ Perspėti, jei būtini angliavandeniaiKritiniai perspėjimaiINFOEversense programėlė (modifikuota)
@@ -538,6 +574,8 @@
SMB atitinka valandinės bazės insulino kiekį, kuris gaunamas ne daugiau, kaip perNDM SMB maks. min.NDM SMB atitinka valandinės bazės insulino kiekį, kuris gaunamas ne daugiau, kaip per
+ Minimali būtinų angliavandenių priminimo riba
+ Minimalus angliavandenių kiekis gramais, apie kurį reikia įspėti. Angliavandenių pasiūlymai, mažesni už šį kiekį, nėra pranešami.Siųsti KG duomenis į xDrip+Xdrip+ pasirinkite 640g/Eversense duomenų šaltinįNSClient KG
@@ -596,6 +634,8 @@
Ištęstinio boluso suleidimo klaidaSightprieš
+ Nustatyti neutralią laikiną bazę
+ Jei įjungta, laikina valandinė bazė bus anuliuota iki kiekvienos valandos pabaigos. Šis metodas gali padėti išvengti kai kurių pompų pypsėjimo ar vibravimo.Leisti SMB visadaLeisti SMB visada, nepriklausomai nuo bolusų. Įmanoma tik naudojant patikimų, filtruotų KG duomenų šaltinį, pvz.: Dexcom G5Leisti SMB po angliavandenių įvedimo
@@ -615,11 +655,17 @@
Paspaudus mygtuką įvedamas nustatytas insulino kiekisNepavyko paleisti NGJ programos. Įsitikinkite, kad ji įdiegta.NGJ
+ Ignoruoti 5 min
+ Ignoruoti 15 min
+ Ignoruoti 30 min
+ reikal.IstorijaPranešti apie SMBRodyti SMB laikrodyje kaip standartinį bolusą.Kurti klaidų pranešimus
+ Sukurkite pranešimus apie būtinų angliavandenių įspėjimusSukurti Nightscout pranešimus apie klaidas ir vietinius įspėjimus (taip pat matomi Priežiūroje prie Terapijos)
+ Sukurkite NS pranešimus apie būtinų angliavandenių įspėjimusRodyti prognozes laikrodyje.PrognozėDuomenų pasirinkimas
@@ -749,7 +795,7 @@
LeidimasPrašyti leidimoNorint gauti pranešimus, programai reikalingas sisteminio lango leidimas
- Aplikacijai reikia vietos nustatymo leidimo BT skenavimui atlikti
+ Programai reikia vietos nustatymo leidimo, kad būtų galima naudoti Bluetooth ir WiFiAplikacijai reikia leidimo prieigai prie saugyklos, kad galėtų išsaugoti žurnalo įrašusUžklausaKonfigūruoti insulino įskiepį
@@ -770,6 +816,7 @@
Rezistencija mažina tiksląKai nustatoma rezistencija, tikslinė gliukozės vertė sumažinamaJautrumas didina tikslą
+ Kai aptinkamas padidėjęs jautrumas insulinui, tikslinis gliukozės lygis padidinamasNetinkami pompos nustatymai, patikrinkite dokumentaciją ir įsitikinkite, kad Quick info meniu yra pavadintas QUICK INFO, naudojant 360 configuration software.PasirinktinisIštrinti \"AndroidAPS paleista\" įrašus
@@ -778,6 +825,7 @@
Terapijos duomenys nepilniServiso nustatymaiGavėjo el. paštas
+ Užšifruoti eksportuotus parametrusSiunčiamų įrašų skaičiusServisasServ
@@ -819,6 +867,10 @@
Įrašyti įspėjimusAktyvuoti LBD emuliacijąNaudoti ištęstinius bolusus vietoj laikinos bazės, kai viršijama 250%% riba
+ Išjungti vibracijas rankinio boluso suleidimo metu
+ Bolusui ir ištęstam bolusui (tik su Insight programinės įrangos 3.x versija)
+ Išjungti vibracijas automatinio boluso suleidimo metu
+ SMB ir laikinai valandinei bazei su TBR emuliacija (tik Insight su programinės įrangos versija 3.x)Atjungimo vėlavimas [s]Serijos numerisIšleistos programinės įrangos versija
@@ -962,6 +1014,8 @@
egzistuojaneegzistuojaLaikinas tikslas %1$s
+ Bluetooth ryšys su įrenginiu %1$s %2$s
+ Ryšys su Bluetooth įrenginiu WiFi SSID %1$s %2$sAutosens %1$s %2$s %%Autosens %
@@ -1016,6 +1070,7 @@
Šarminė (išplėstinis vaizdas)Ličio (išplėstinis vaizdas)Šarminė (išplėstinis vaizdas)
+ NiMH (išplėstinis vaizdas)Boluso/Terapijos DerinimasSKENAVIMAS
@@ -1027,6 +1082,7 @@
SkanuojamaSkanavimas baigtasSkanavimo klaida: %1$d
+ NiekadaParametraiIstorija
@@ -1156,6 +1212,7 @@
Išvalyti užbaigtusIšvalyti pradėtusAr norite iš naujo nustatyti tikslų pradžią? Jūs galite prarasti jau pasiektus.
+ Laiko ir/ar laiko zonos pakeitimas pompojePompa nepasirinktaPasirinkite vienetus, kurių vertes norite parodytiĮkelti vietinio profilio pakeitimus į NS
@@ -1172,6 +1229,7 @@
Didžiausia tikslinės srities vertė (tik rodymui)PertvarkytiAmžius:
+ Svoris:ID:PateiktiDažniausiai naudojamas profilis:
@@ -1205,30 +1263,146 @@
Laikinos bazės įvykdymo laikasInsight pompos aliarmai
+ iš tapatybės nustatymo programos: %1$s
+ Įgalinti tapatybės nustatymo funkciją
+ Autentifikuokite komandas naudodami vienkartinius slaptažodžius, sugeneruotus Google Authenticator ar panašiose 2FA programose.
+ Papildomas PIN kodas žymeklio gale
+ Papildomi skaitmenys, kuriuos reikia atsiminti ir pridėti kiekvieno sugeneruoto slaptažodžio pabaigoje
+ Autentifikavimo sąrankos nustatymas
+ OTP tikrinimas:
+ Atstatyti tapatybės nustatymą
+ Atstatyti autentifikatoriaus kodą
+ Ar tikrai norite iš naujo nustatyti autentifikatoriaus raktą? Dėl to visi šiuo metu konfigūruojami autentifikatoriai negalios, ir jums reikės juos nustatyti dar kartą.
+ Sukurtas naujas autentifikavimo raktas! Autentifikatoriams pateikti naudokite atnaujintą QR kodą.1. Įdiegti Authenticator2. Nuskanuoti kodą AndroidAPS OTP kodų nustatymyu3. Patikrinti vienkartinį slaptažodį
+ Atstatyti tapatybės nustatymą
+ Kiekviename telefone, palaikančiame RFC 6238 TOTP prieigos raktus, įdiekite autentifikavimo programą. Populiariausios nemokamos programos yra:\n • Authy\n • Google Authenticator\n • LastPass Authenticator\n • FreeOTP Authenticator
+ NESIDALINKITE šiuo kodu internete!\nNaudokite tik nustatydami Authenticator programą sekėjų telefonuose.
+ Jei iš naujo nustatysite autentifikavimo priemonę, visi esami autentifikatoriai taps negaliojantys. Tada turėsite juos vėl nustatyti!Sujungimo metuIšjungimo metu
+ Prognozė
+ Nukrypimo koeficientasAutorizacija nepavykoInsulinas absoliučiais vienetais
+ Pagrindinis slaptažodis naudojamas atsarginiam šifravimui ir programos saugumo ignoravimui. Atsiminkite jį arba laikykite užsirašę saugioje vietoje.Slaptažodžiai nesutampaDabartinis pagrindinis slaptažodis
+ Būklės indikatoriaiKopijuoti nustatymus iš NSKopijuoti NS nustatymus (jei yra)?Originali išvaizdaMygtukai visada rodomi ekrano apačioje
+ Didelis ekranasIšvaizda
+ Omnipod pompos integracijai reikalingas RileyLink (programinės įrangos versija ne mažiau 2.0).
+ Boluso signalas įjungtas
+ Bazės signalas įjungtas
+ SMB signalas įjungtas
+ Laikinos bazės signalas įjungtas
+ Įgalintos POD derinimo galimybės
+ Vasaros laiko/laiko juostos aptikimas įgalintas
+ POD valdymas
+ POD būklėliko %1$.2f UDaugiau nei 50 U
+ POD adresas
+ POD laikas pasibaigsNėra informacijos
+ POD neprijungta
+ Nepavyko paleisti
+ Aktyvaus POD signalai
+ Priimti pranešimus
+ Omnipod (433.91 MHz)
+ Operacija negalima.\n\n Pirmiausia turite sukonfigūruoti Omnipod pompą prieš atliekant šią operaciją.
+ Operacija negalima.\n\n Jūs turite palaukti kelias minutes, kol AAPS bando nustatyti profilį pirmą kartą.
+ Neteisingas inicijavimo tipas:%1$s
+ Nėra aktyvaus POD.
+ Komandos patikra nepavyko.
+ Įvyko netikėta klaida. Prašome pranešti! (tipas: %1$s).
+ Ryšio klaida: gauti neteisingi įvesties parametrai.
+ Ryšio klaida: skirtas laikas baigėsi.
+ Ryšio klaida: įvyko netikėta klaida. Prašome pranešti!
+ Ryšio klaida: pranešimo vientisumo patikra nepavyko.
+ Ryšio klaida: netinkami įvesties iš POD parametrai.
+ Ryšio klaida: Pod būklė yra netinkama.
+ Ryšio klaida: gautas netinkamas atsakymas iš POD.
+ Ryšio klaida: iš POD gautas pranešimas su negaliojančiu serijos numeriu.
+ Ryšio klaida: iš POD gautas pranešimas su netinkamu adresu.
+ Ryšio klaida: nepavyko iššifruoti pranešimo iš POD.
+ Ryšio klaida: nepavyko iš naujo sinchronizuoti Nonce.
+ Ryšio klaida: Nonce nebuvo sinchronizuota.
+ Ryšio klaida: nepakankamai duomenų gauta iš POD.
+ Aptikta POD klaida (%1$03d %2$s). Išjunkite POD ir pradėkite naują.
+ Ryšio klaida: POD pateikė klaidos atsakymą.
+ POD valdymas
+ Inicijuoti POD
+ Išjungti POD
+ Atstatyti POD
+ POD istorija
+ Nustatyti bolusą
+ Atšaukti bolusą
+ Nustatyti laikiną bazę
+ Atšaukti laikiną bazę (vidinis valdiklis)
+ Atšaukti laikiną bazę (Inicijuota vartotojo)
+ Nustatyti bazės tvarkaraštį
+ Gauti POD būklę
+ Gauti POD informaciją
+ Nustatyti laiką
+ Konfigūruoti perspėjimus
+ Patvirtinti perspėjimus
+ Sustabdyti suleidimą
+ Atnaujinti suleidimą
+ Nežinomas Įrašas
+ %1$.1f vv
+ %1$.1f vv, AV=%2$.1f g
+ Kiekis: %1$.1f vv, Trukmė: %2$d min
+ Jei spustelėsite OK, ryšys su POD bus priverstinai nutrauktas ir nebegalėsite prie jo prisijungti. Atlikite tai tik tada, kai AAPS nebegali bendrauti su POD. Jei ryšys su POD vis tiek veikia, naudokite parinktį Išjungti POD.
+ POD istorija šiuo metu nėra prieinama.
+ Užpildyti POD
+ \nUžpildykite naują POD insulinu, kurio pakaktų 3 dienas.\n\nTaip pat atkreipkite dėmesį į du pyptelėjimus iš POD, kai pildote. Tai rodo, kad rezervuaras buvo užpildytas mažiausiai 85vv. Visiškai ištuštinkite švirkštą, net jei girdėjote du pyptelėjimus.\n\nUžpildę POD, spustelėkite Kitas.\n\n Pastaba: vykdant šiuos veiksmus, nenuimkite POD adatos apsauginio dangtelio.
+ Užpildymas
+ Pabandykite suporuoti naują POD ir užpildykite jį.\n\nKai pažymėti visi elemetai, galite spustelėti Kitas.\n\n Pastaba: POD ir RileyLink turi būti būti labai arti vienas kito.
+ Prijunkite POD
+ \nParuoškite infuzijos vietą. Nuimkite adatos apsauginį dangtelį, pleistro apsaugą ir užklijuokite POD ant infuzijos vietos.\n\nJei kaniulė atšoks, paspauskite Atšaukti ir pakeiskite POD.\n\nSpauskite Kitas, norėdami įvesti kaniulę ir pradėti leisti insuliną.
+ Įvedama kaniulė
+ Mėginkite nustatyti pradinį bazės profilį ir įvesti kaniulę.\n\nKai visi elementai yra patikrinti, galite paspausti Kitas.
+ POD informacija
+ \nPOD yra aktyvus.\n\nJūsų bazės profilis yra suprogramuotas ir kaniulė įvesta.\n\nPatikrinkite, ar kaniulė buvo tinkamai įvesta, ir, jei jaučiate, kad taip nėra, pakeiskite POD.
+ Išjungti POD
+ \nSpustelėkiteKitas, kad išjungtumėte POD.\n\nPastaba: Tai sustabdys insulino leidimą ir išjungs POD.
+ POD išjungimas
+ POD išjungimas.\n\nJei visi elementai pažymėti, galite paspausti Kitas.\n\n Pastaba: Jei išjungimas vis nepavyksta, paspauskite Atšaukti ir naudokite parinktį Atstatyti POD , kad priverstinai atkurtumėte POD būklę.
+ POD išjungtas.\n\nNuimkite POD nuo odos ir jį išmeskite.
+ POD suporavimas
+ POD užpildymas
+ Kaniulės užpildymas
+ Nustatyti bazės profilį
+ Atšauti insulino leidimą
+ Išjungti POD
+ Integracija su Omnipod Dash pompa.
+ Priminimas apie suporavimo pabaigą
+ Priminimas apie sąrankos pabaigą
+ POD galiojimas greitai baigsis
+ POD galiojimas greitai baigsis
+ Išjungimas yra neišvengiamas
+ Žemas rezervuaro lygis
+ Nežinomas perspėjimas
+ Gali nepavykti nustatyti bazės profilio. Insulino leidimas gali būti sustabdytas! Atkurkite POD būseną.
+ Laikinos valandinės bazės nustatymas gali būti nesėkmingas. Jei laikina valandinė bazė iki šiol buvo nustatyta ir galioja, ji gali būti atšaukta! Atnaujinkite POD būseną.
+ Laiko nustatymas gali būti nesėkmingas. Insulino leidimas gali būti sustabdytas! Atkurkite POD būseną.
+ Neįmanoma patikrinti, ar bolusas suleistas sėkmingai. Patikrinkite, ar jūsų POD leidžia bolusą, arba bolusą atšaukite.
+ RL statistika
+ Pulse žurnalas
diff --git a/app/src/main/res/values-nl-rNL/exam.xml b/app/src/main/res/values-nl-rNL/exam.xml
index 9762b98a8a..a63d6cda98 100644
--- a/app/src/main/res/values-nl-rNL/exam.xml
+++ b/app/src/main/res/values-nl-rNL/exam.xml
@@ -1,6 +1,7 @@
Wat is waar over DIA?
+ Thema: Duur van Insuline ActieDe minimumwaarde is 3 uur.De minimumwaarde is 5 uur.https://androidaps.readthedocs.io/en/latest/CROWDIN/nl/Configuration/Config-Builder.html#insuline
@@ -121,6 +122,7 @@
Loop app op de iPhone.Spike app op de iPhone.https://androidaps.readthedocs.io/en/latest/CROWDIN/nl/Children/Children.html
+ Thema: InsulinegevoeligheidsfactorHogere ISF-waarden leiden tot minder insulineafgifte wanneer AAPS voor hoge BG corrigeert.Lagere ISF-waarden leiden tot minder insulineafgifte wanneer AAPS voor hoge BG corrigeert.Het wijzigen van de ISF-waarden heeft geen effect op de hoeveelheid insuline die wordt geleverd wanneer AAPS voor hoge BG corrigeert.
@@ -128,6 +130,7 @@
Het wijzigen van de ISF-waarde in uw profiel is voldoende om de wijziging toe te passen.https://androidaps.readthedocs.io/en/latest/CROWDIN/nl/Getting-Started/FAQ.html#insuline-gevoeligheids-factor-insulin-sensitivity-factor-ISF-mmol-l-E-of-mg-dl-Ehttps://androidaps.readthedocs.io/en/latest/CROWDIN/nl/Usage/Profiles.html
+ Thema: KH ratioHogere KH ratios leiden tot minder insuline afgifte voor een bepaalde hoeveelheid koolhydraten.Lagere KH ratios leiden tot minder insuline afgifte voor een bepaalde hoeveelheid koolhydraten.Als je 0 COB hebt zal het veranderen van KH ratio leiden tot een andere hoeveelheid insuline om jouw BG te corrigeren.
diff --git a/app/src/main/res/values-nl-rNL/protection.xml b/app/src/main/res/values-nl-rNL/protection.xml
index 8b73d107d3..04865f9606 100644
--- a/app/src/main/res/values-nl-rNL/protection.xml
+++ b/app/src/main/res/values-nl-rNL/protection.xml
@@ -1,12 +1,22 @@
+ Authentificatie vereistPlaats uw vinger op de vingerafdruklezer om uw identiteit te verifiërenInstellingen beveiliging
+ App beveiliging
+ Bolus beveiliging
+ MasterwachtwoordInstellingen wachtwoord
+ App wachtwoordBolus wachtwoordInstellingen ontgrendelenBiometrischAangepast wachtwoord
+ Geen beveiliging
+ Beveiliging
+ Masterwachtwoord is niet ingesteld!\n\nStel een masterwachtwoord in in Instellingen (%1$s → %2$s)
+ Niet beveiligde fallback
+ Om biometrische beveiliging te kunnen gebruiken, heb je een masterwachtwoord nodig als backup optie.\n\nStel dus een masterwachtwoord in!Wachtwoord ingesteld!Wachtwoord niet ingesteldWachtwoord niet gewijzigd
diff --git a/app/src/main/res/values-nl-rNL/strings.xml b/app/src/main/res/values-nl-rNL/strings.xml
index 7cc7557dbd..0c700b271d 100644
--- a/app/src/main/res/values-nl-rNL/strings.xml
+++ b/app/src/main/res/values-nl-rNL/strings.xml
@@ -35,8 +35,9 @@
Pomp integratie voor Accu-Chek Combo pompen, vereist dat ruffy geïnstalleerd isPomp integratie voor mensen met pen-therapie (meerdere dagelijkse injecties)Pomp integratie voor pompen, waar nog geen driver voor is (Open Loop)
- Gevoeligheid wordt berekend op dezelfde manier als Oref0, maar u kunt een tijdframe naar het verleden specificeren. Minimale koolhydraat absorptie is berekend op basis van max koolhydraat absorptie tijd van de voorkeursinstellingen.
- Gevoeligheid wordt berekend als een gewogen gemiddelde van afwijkingen. Nieuwere afwijkingen wegen hierbij zwaarder. Minimale koolhydraat absorptie is berekend op basis van de max koolhydraat absorptie tijd uit de voorkeursinstellingen. Dit algoritme is de snelste in het volgen van wijzigingen van de gevoeligheid.
+ Gevoeligheid wordt berekend op dezelfde manier als Oref0, maar je kunt een tijdframe naar het verleden specificeren. Minimale koolhydraat absorptie is berekend op basis van max koolhydraat absorptie tijd zoals in jouw instellingen.
+ Gevoeligheid wordt berekend met gegevens van de afgelopen 8 of 24 uur (de meest gevoelige van die twee) en koolhydraten (indien niet geabsorbeerd) worden hiervan afgehaald, na de duur die is opgegeven in de instellingen. Berekend ook UAM.
+ Gevoeligheid wordt berekend als een gewogen gemiddelde van afwijkingen. Nieuwere afwijkingen wegen hierbij zwaarder. Minimale koolhydraat absorptie is berekend op basis van de max koolhydraat absorptie tijd uit jouw instellingen. Dit algoritme is de snelste in het volgen van wijzigingen van de gevoeligheid.Ontvang BG waardes van de aangepaste Eversense app.Ontvang BG waardes van Glimp.Ontvang BG waardes van 600SeriesAndroidUploader.
@@ -125,10 +126,12 @@
APS ModeClosed loopOpen loop
+ Stop bij laagLoop gedeactiveerdLoop deactiverenActiveer LoopNieuw voorstel beschikbaar
+ Koolhydraten VoorstelNiet ondersteunde versie van NightscoutLoop gedeactiveerd door doelen tabBasaal IOB
@@ -154,17 +157,63 @@
Vertraagde bolusNightscout versie:Ontbrekend %1$dg
- Voorkeuren geëxporteerd
+ Instellingen geëxporteerdExporteer instellingen naarImporteer instellingen vanInstellingen geïmporteerdBestand niet gevondenExporteer instellingenImporteer instellingen
- Maximale E/uur dat OpenAPS kan toedienen
+ Maximaal instelbaar basaal Eh/uDit is de maximale waarde waarop het basaal door OpenAPS ingesteld kan wordenMaximale basaal IOB, dat OpenAPS kan toedienen [E]Deze waarde wordt de Max IOB genoemd in OpenAPS context\nDit is de maximale insuline hoeveelheid in [E] dat APS in één keer kan toedienen.
+ Je wordt gevraagd om een masterwachtwoord. Daarmee worden geëxporteerde instellingen versleuteld.
+ Je wordt gevraagd om een masterwachtwoord. Daarmee worden geïmporteerde instellingen ontsleuteld.
+ Exporteren geannuleerd! Instellingen zijn NIET geëxporteerd!
+ Importeren geannuleerd! Instellingen zijn NIET geïmporteerd!
+ Kies bestand om te importeren
+ Controleer instellingen voor het importeren:
+ Instellingen kunnen niet worden geïmporteerd!
+ Instellingen zouden niet moeten worden geïmporteerd!
+ Beschrijf import problemen…
+ Importeer problemen - details
+ Importeren
+ Toch importeren (GEVAARLIJK!)
+ Instellingen zijn gemaakt met een andere variant van AAPS (%1$s) terwijl je nu: %2$s gebruikt.\n\nEr kunnen instellingen ontbreken of ongeldig zijn - controleer aub jouw instellingen na het importeren en corrigeer ze zonodig.
+ Instellingen zijn gemaakt op een ander apparaat. Het is OK als ze zijn geïmporteerd van een oude/andere telefoon, maar zorg ervoor dat de geïmporteerde instellingen correct zijn!
+ Je gebruikt de verouderde indeling van een vorige AAPS versie, dit is niet veilig! Gebruik dit alleen als je niet anders kunt, wanneer je geen export hebt met de huidige JSON-indeling.
+ Geïmporteerde instellingen zijn al %1$s dagen oud! Misschien heb je een meer recente versie of heb je het verkeerde bestand gekozen? Vergeet niet om regelmatig jouw instellingen te exporteren!
+ Ongeldige notatie voor datum/tijd!
+ Instellingen zijn afkomstig van een vorige minor versie van de AAPS app. Het is OK als je deze importeert na een app upgrade, maar controleer na importeren dan wel of de instellingen nog steeds correct zijn!
+ Instellingen van een andere major versie van de AAPS app. Deze versies kunnen aanzienlijk verschillen en kunnen instellingen hebben die incompatibel zijn! Zorg ervoor dat na het importeren alle instellingen nog steeds correct zijn!
+ Bestandsformaat
+ Gemaakt op
+ AAPS versie
+ Build variant
+ Patiëntnaam van exporterend apparaat
+ Modelnaam/nr van exporterend apparaat
+ Bestandsversleuteling
+ Oude export indeling
+ Nieuwe versleutelde indeling
+ Nieuwe debug indeling (onversleuteld)
+ Onbekende export indeling
+ Geknoeid met instellingenbestand
+ Instellingenbestand is veilig
+ Gebruikt niet veilige, niet-versleutelde indeling voor instellingen
+ JSON-indelingsfout, vereist veld ontbreekt (indeling, inhoud, metagegevens of beveiliging)
+ Decryptie fout, het opgegeven wachtwoord kan het bestand niet ontsleutelen
+ Bestand checksum (hash) ontbreekt, kan de authenticiteit van instellingen niet controleren!
+ Bestand is gewijzigd na export!
+ Decoderingsfout, uitlezen van instellingen is mislukt!
+ Decoderingsfout, het opgegeven wachtwoord is ongeldig of het instellingenbestand is gewijzigd / mee geknoeid. Wellicht was het geïmporteerde bestand geëxporteerd met een ander masterwachtwoord.
+ Ontbrekende versleutelingsconfiguratie, instellingen indeling is ongeldig!
+ Niet-ondersteund of niet opgegeven versleutelingsalgoritme!
+ vandaag geëxporteerd
+ %1$s geleden geëxporteerd
+ geëxporteerd op %1$s
+ minder dan een uur geleden geëxporteerd
+ in map: %1$sEind gebruiker overeenkomstMUST NOT BE USED TO MAKE MEDICAL DECISIONS. THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.Begrepen en goedgekeurd
@@ -204,6 +253,11 @@
Loop is ingeschakeld%1$.2f gelimiteerd tot %2$.2fWaarde %1$s valt buiten de toegestane harde limieten
+ Om verbinding te maken met pomp antwoord met code %1$s
+ Verbinding maken met pomp is mislukt
+ Om verbinding te verbreken met pomp gedurende %1d minuten antwoord met code %2$s
+ Pomp verbinding verbroken
+ Pomp opnieuw verbondenCommando\'s op afstand zijn niet toegestaanBolus op afstand niet beschikbaar. Probeer het later opnieuw.Om een basaal van %1$.2fE/u voor %2$d min te starten antwoord met code %3$s
@@ -212,6 +266,9 @@
Antwoord met code %3$s om %1$dg in te voeren op %2$sOm een basaal van %1$d%% voor %2$d min te starten antwoord met code %3$sOm de loop te onderbreken voor %1$d minuten antwoord met de code %2$s
+ Om loop te hervatten antwoord met code %1$s
+ Om loop in te schakelen antwoord met code %1$s
+ Om loop uit te schakelen antwoord met code %1$sTijdelijk basaal %1$.2fE/u voor %2$d minuten succesvol gestartVertraagde bolus %1$.2fE voor %2$d minuten succesvol gestartKoolhydraten %1$dg succesvol ingevoerd
@@ -243,7 +300,7 @@
Ontlucht/vulVerzeker u dat de vulhoeveelheid overeenkomt met de infusieset!Andere
- Vull standaard hoeveelheid.
+ Vul/Prime standaard insuline hoeveelhedenKnop 1Knop 2Knop 3
@@ -302,7 +359,7 @@
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 is een vermenigvuldigingsfactor voor autosense (en binnenkort autotune) die zorgt dat de autosens ratio maximaal 20%% kan zijn. Dit maximum bepaalt in hoeverre je basaal kan worden verhoogd, en hoeveel je ISF en BG doel verlaagd kunnen 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
+ Autosens past ook de streefwaardes aanStandaardwaarde: waar Dit wordt gebruikt om autosens de bevoegdheid te geven BG doelen aan te passen alsook ISF en basalenStandaard waarde: 2\nBolus snooze is actief nadat je een maaltijd bolus toegediend hebt, zodat de loop geen tegenvoorstel met een verlaagd tijdelijk basaal doet nadat je gegeten hebt. Het voorbeeld hier van van standaard 2; dus een 3 u DIA betekent dat de bolus snooze gemiddeld 1.5u actief is (3DIA/2).Standaardwaarde: 3,0 (AMA) of 8,0 (SMB). Dit is een instelling voor de standaard koolhydraten absorptie-impact per 5 minuten. De standaard is een verwachte 3mg / dl / 5min. Dit is van invloed op hoe snel COB zijn opgenomen en hoeveel koolhydraten absorptie wordt verwacht, bij het voorspellen van toekomstige BG, wanneer BG meer dan verwacht daalt of niet zoveel stijgt als verwacht.
@@ -341,12 +398,16 @@
Toon gedetailleerde IOBSplits IOB in bolus en basaal op de watchfaceNiet geslaagd - controleer de telefoon
+ n.v.t.Leeftijd PatientKindTienerVolwasseneinsuline resistente volwasseneKies leeftijd van de patient voor veiligheids limieten
+ Naam patiënt
+ Geef de naam of roepnaam van de patiënt op om onderscheid te maken tussen meerdere setups
+ GebruikerGlimpVoor een goede werking van %1$s moeten de accubesparing-opties zijn uitgeschakeld in de telefooninstellingenLoop pauzeren
@@ -381,12 +442,26 @@
Activeer superbolus in de wizardActiveer de superbolus functie in de wizard. Activeer deze niet tot je begrijpt wat dit doet. OVERDOSIS IS MOGELIJK BIJ BLINDELINGS GEBRUIK!Toon statusindicatoren op startscherm
+ Drempel waarschuwing infuus leeftijd [h]
+ Drempel alarm infuus leeftijd [h]
+ Drempel waarschuwing insuline leeftijd [h]
+ Drempel alarm insuline leeftijd [h]
+ Drempel waarschuwing sensor leeftijd [h]
+ Drempel alarm sensor leeftijd [h]
+ Drempel waarschuwing batterij leeftijd [h]
+ Drempel alarm batterij niveau [h]Drempel waarschuwing reservoir niveau [E]Drempel alarm reservoir niveau [E]Drempel waarschuwing batterij niveau [%]Drempel alarm batterij niveau [%]
+ PREDIOBCOB
+ BAS
+ DEV
+ ACT
+ ABS
+ DEVSLOPEOverGeen SMS bevoegdheidMachtiging ontbreekt voor telefoon gebruik
@@ -404,6 +479,8 @@
Profiel wissel uitvoerenOuderdom batterijAlarm opties
+ Maak meldingen van NS alarmen
+ Maak meldingen van NS aankondigingenOude gegevens sinds [min]Alarm oude gegevens sinds [min]Interval voor autosens [uur]
@@ -484,6 +561,7 @@
Alarm als er geen BG gegevens ontvangen zijnWaarschuwing bij niet bereikbare pompPomp niet beschikbaar sinds [min]
+ Waarschuwen als koolhydraten nodig zijnDringend alarmINFOEversense App (aangepast)
@@ -491,8 +569,13 @@
BG upload instellingenToon gedetailleerde deltaToon delta met een extra decimaal punt
+ Tijdsinterval in minuten tussen afgeven van SMBsSMB max minutenMax minuten basaal om SMB tot te limiteren
+ UAM SMB max minuten
+ Max minuten basaal om SMB tot te limiteren voor UAM
+ Minimaal benodigde koolhydraten voor waarschuwing
+ Minimum gram benodigde koolhydraten waarbij een waarschuwing wordt gegeven. Wanneer er minder koolhydraten nodig zijn dan dit getal, wordt er geen waarschuwing gegeven.Stuur BG data naar xDrip+In xDrip+ kies 640g/Eversense data bronNSClient BG
@@ -551,6 +634,8 @@
Vertraagde bolus toedieningsfoutInsightvoorbij
+ Stel neutraal tijdelijk basaal in
+ Als deze optie is ingeschakeld, wordt een tijdelijk basaal geannuleerd vlak voor het einde van elk uur. Handige optie voor sommige pompen die elk uur piepen/vibreren zolang een tijdelijk basaal actief is.Activeer SMB altijdSMB altijd aan onafhankelijk van bolussen. Enkel mogelijk met een BG bron met goed gefilterde data zoals de G5Activeer SMB na koolhydraten
@@ -570,11 +655,17 @@
Hoeveelheid insuline dat wordt toegevoegd wanneer er op de knop gedrukt wordtKon de CGM applicatie niet starten. Zorg dat deze geïnstalleerd is.CGM
+ Negeer 5m
+ Negeer 15m
+ Negeer 30m
+ nodigHistoriek vensterWaarschuw bij SMBToon SMB op horloge zoals gewone bolussen.Creëer een melding bij storingen
+ Maak melding bij waarschuwingen voor benodigde koolhydratenCreëer een Nightscout melding voor storingen en lokale waarschuwingen (ook zichtbaar in het Careportal en Behandelingen)
+ Maak Nightscout melding bij waarschuwingen voor benodigde koolhydratenToon de voorspellingen op het horloge.VoorspellingenData Keuzes
@@ -619,10 +710,10 @@
Aantal TBRPomp kan geen tijdelijk basaal aanvaardenGeen correcte basale snelheid van pomp kunnen lezen
- Closed Loop modus gedeactiveerd in de voorkeuren
- Autosens gedeactiveerd in de voorkeuren
- SMB gedeactiveerd in de voorkeuren
- UAM gedeactiveerd in configuratie
+ Closed Loop modus gedeactiveerd in de instellingen
+ Autosens gedeactiveerd in de instellingen
+ SMB gedeactiveerd in de instellingen
+ UAM gedeactiveerd in de instellingenUAM gedeactiveerd omdat het Oref1 gevoeligheid plugin nodig heeftMax basaal vermenigvuldigerMax dagelijks basaal vermenigvuldiger
@@ -632,7 +723,7 @@
Max IOB wordt beperkt tot %1$.1f E doordat %2$sKoolhydraten worden beperkt tot %1$d gr doordat %2$sIOB gelimiteerd tot %1$.1f E doordat %2$s
- Maximum waarde in voorkeuren
+ Maximum waarde in instellingenmax limiet (SC)Onveilig gebruikLezen van status mislukt
@@ -704,14 +795,14 @@
ToestemmingVragen om toestemmingToepassing vereist systeemvenstermachtiging voor meldingen
- Toepassing heeft toestemming nodig voor bepalen van Locatie (voor BT scan)
+ App heeft locatie toestemming nodig voor Bluetooth scan en WiFi identificatieApplicatie heeft toestemming nodig om log bestanden op te kunnen slaanVerzoekGevoeligheid plugin configurerenAfsluitenOpen navigatieSluit navigatie
- Plugin voorkeuren
+ Plugin instellingenVoltooid, goed gedaan!Nog niet voltooidVerstreken tijd
@@ -722,6 +813,10 @@
= 100]]>Laag tijdelijk streefdoel verlaagt gevoeligheid
+ Resistentie verlaagt het doel
+ Wanneer insulineresistentie wordt gedetecteerd, wordt het BG streefdoel verlaagd
+ Gevoeligheid verhoogt het doel
+ Wanneer insulinegevoeligheid wordt gedetecteerd, wordt het BG streefdoel verhoogdOngeldige pompinstellingen, controleer de documenten en controleer of het Quick Info-menu QUICK INFO wordt genoemd met behulp van de 360-configuratiesoftware.AangepastVerwijder AndroidAPS start-meldingen
@@ -729,6 +824,8 @@
Let op: als u activeert en verbinding maakt met een hardwarepomp, kopieert AndroidAPS de basale instellingen van het profiel naar de pomp en overschrijft de bestaande basaal snelheid die op de pomp is opgeslagen. Zorg ervoor dat u de juiste basaal instelling hebt in AndroidAPS. Als u niet zeker weet of niet wilt dat de basaal instellingen op uw pomp worden overschreven, drukt u op Annuleren en herhaalt u het overschakelen naar de pomp op een later tijdstip.Behandelingen data incompleetOnderhoudsinstellingen
+ E-mail
+ Geëxporteerde instellingen versleutelenAantal Logs om te verzendenOnderhoudONDH
@@ -770,6 +867,10 @@
Alarmen noterenTBR-emulatie inschakelenGebruik vertraagde bolus ipv TBRs om de limiet van 250%% te omzeilen
+ Trillen uitschakelen bij handmatige bolus toediening
+ Voor bolus en verlengde bolus (alleen mogelijk voor Insight firmware 3.x)
+ Trillen uitschakelen bij automatische bolus toediening
+ Voor SMB en tijdelijke basalen met TBR emulatie (alleen mogelijk voor Insight firmware 3.x)Verbindingsvertraging [s]SerienummerRelease softwareversie
@@ -913,6 +1014,8 @@
bestaandniet bestaandTijdelijk streefdoel %1$s
+ Bluetooth verbinding met apparaat %1$s %2$s
+ Verbinding met Bluetooth apparaat WiFi SSID %1$s %2$sGevoeligheid %1$s %2$s %%Gevoeligheid %
@@ -967,6 +1070,7 @@
Alkaline (uitgebreide weergave)Lithium (uitgebreide weergave)NiZn (uitgebreide weergave)
+ NiMH (Uitgebreide weergave)Bolus/Behandelingen DebuggenSCAN
@@ -978,6 +1082,7 @@
ScannenScannen voltooidScanfout: %1$d
+ NooitInstellingenGeschiedenis
@@ -1107,6 +1212,7 @@
Voltooiing wissenWissen gestartWil je dit leerdoel opnieuw starten? Je kunt je voortgang verliezen.
+ Tijd en/of tijdzone wijzigen op de pompGeen pomp geselecteerdSelecteer eenheden waarin je waarden wilt weergevenUpload lokale profielwijzigingen naar NS
@@ -1123,6 +1229,7 @@
Hoogste waarde in bereik (alleen weergave)SorterenLeeftijd:
+ Gewicht:ID:VerzendenMeest voorkomende profiel:
@@ -1156,14 +1263,146 @@
Tijdelijke basaal uitvoering tijdInsight pomp waarschuwingen
+ van authentificatie app voor: %1$s
+ Authentificatie inschakelen
+ Authentificeer SMS commando\'s met behulp van One Time Passwords (OTPs, eenmalige wachtwoorden) gegenereerd door Google Authenticator of soortgelijke 2FA apps.
+ Extra PIN aan einde van token
+ Extra cijfers die je moet onthouden, en aan het eind van elk gegenereerd eenmalig wachtwoord moet toevoegen.
+ Authentificatie instellingen
+ Te controleren OTP:
+ Reset Authentificatie
+ Reset Authentificatie-sleutel
+ Weet je zeker dat je de Autentificatie-sleutel wilt resetten? Met deze actie maak je alle Authentificatie instellingen van verbonden telefoons ongeldig, en je zult ze opnieuw moeten instellen.
+ Er is een nieuwe Authentificatie-sleutel gegenereerd! Gebruik de nieuwe QR-Code voor het instellen van geautoriseerde telefoons.
+ 1. Installeer Authenticator app
+ 2. Scan code om AndroidAPS OTP codes in te stellen
+ 3. Test eenmalig wachtwoord (One Time Password)
+ Reset Authentificatie
+ Installeer de Authenticator-app op elke volger telefoon die RFC 6238 TOTP tokens ondersteunt. Populaire gratis apps zijn:\n • Authy\n • Google Authenticator\n • LastPass Authenticator\n • FreeOTP Authenticator
+ DEEL deze code met NIEMAND ANDERS!\nGebruik hem alleen om de Authenticator-app in te stellen op telefoons van volgers.
+ Door de Athentificator te resetten, maak je alle Authentificatie-instellingen van reeds verbonden telefoons ongeldig! Je zult ze opnieuw moeten instellen!
+ Bij verbinden
+ Bij verbinding verbreken
+ Voorspellingen
+ Richtingscoëfficiënt afwijking
+ Authorisatie mislukt
+ Absolute insuline
+ Het masterwachtwoord wordt gebruikt voor het versleutelen van backups en om de app-beveiligingen te kunnen overschrijven. Onthoud het goed of bewaar het op een veilige plaats.
+ Wachtwoorden komen niet overeen
+ Huidig masterwachtwoord
+ Statusindicatoren
+ Kopieer instellingen van NS
+ NS instellingen kopiëren (indien aanwezig)?
+ Klassiek weergave thema
+ Knoppen worden altijd weergegeven aan de onderkant van het scherm
+ Groot scherm
+ Skin
+ Pomp integratie voor Omnipod, vereist RileyLink (met firmware 2.0 of hoger).
+ Bolus pieptoon ingeschakeld
+ Basaal pieptoon ingeschakeld
+ SMB pieptoon ingeschakeld
+ Tijdelijk basaal pieptoon ingeschakeld
+ Pod debugging opties ingeschakeld
+ DST/tijdzone detectie ingeschakeld
+ Pod Beheer
+ Pod Status
+ %1$.2f E over
+ Meer dan 50 E
+ Pod adres
+ Pod verloopt
+ Geen info
+ Geen pod verbonden
+ Niet geïnitialiseerd
+ Actieve pod alarmen
+ Alarmen bevestigen
+ Omnipod (433,91 MHz)
+ Bewerking is niet mogelijk.\n\nJe moet eerst Omnipod ingesteld hebben, voordat je deze bewerking kunt gebruiken.
+ Bewerking is niet mogelijk.\n\nJe moet enkele minuten wachten, totdat AAPS voor de eerste keer probeert om het profiel in te stellen.
+ Ongeldig PodInitActionType: %1$s
+ Geen actieve pod.
+ Opdracht verificatie is mislukt.
+ Er is een onverwachte fout opgetreden. Rapporteer dit alsjeblieft! (type: %1$s).
+ Communicatie mislukt: ongeldige invoerparameters ontvangen.
+ Communicatie mislukt: timeout.
+ Communicatie mislukt: er is een onvoorziene fout opgetreden. Rapporteer dit alsjeblieft!
+ Communicatie mislukt: berichtintegriteit kon niet worden geverifieerd.
+ Communicatie mislukt: ongeldige gegevens ontvangen van de Pod.
+ Communicatie mislukt: de Pod bevindt zich in een verkeerde staat.
+ Communicatie mislukt: ongeldig antwoord ontvangen van de Pod.
+ Communicatie mislukt: bericht met ongeldig volgnummer ontvangen van de Pod.
+ Communicatie mislukt: bericht met ongeldig adres ontvangen van de Pod.
+ Communicatie is mislukt: kon bericht van de Pod niet decoderen.
+ Communicatie mislukt: nonce resync is mislukt.
+ Communicatie mislukt: nonce out of sync.
+ Communicatie mislukt: onvoldoende gegevens ontvangen van de Pod.
+ Een pod-fout (%1$03d %2$s) is gedetecteerd. Deactiveer je Pod en start een nieuwe.
+ Communicatie mislukt: de Pod heeft een foutrespons gegeven.
+ Pod Beheer
+ Initialiseer Pod
+ Deactiveer Pod
+ Reset Pod
+ Pod HistorieBolus instellen
+ Annuleer Bolus
+ Instellen Tijdelijke Basaal
+ Annuleer Tijdelijk Basaal (Intern door stuurprogramma)
+ Annuleer Tijdelijk Basaal (Geforceerd door gebruiker)
+ Basaalprofiel instellen
+ Pod status ophalen
+ Pod info ophalen
+ Tijd instellen
+ Configureer alarmen
+ Bevestig alarmen
+ Onderbreek toediening
+ Hervat toediening
+ Onbekende invoer
+ %1$.1f E
+ %1$.1f E, KH=%2$.1f g
+ Basaal: %1$.1f E, Duur: %2$d min
+ Als je op OK klikt, zal de Pod gedwongen worden gereset en kun je niet meer communiceren met de Pod. Doe dit alleen als je al niet meer met de Pod kunt communiceren. Als je nog wel kunt communiceren met de Pod, gebruik dan de optie Deactiveer Pod.
+ Pod Historie momenteel niet beschikbaar.
+ Vul de Pod
+ \nVul de nieuwe Pod met voldoende insuline voor 3 dagen.\n\nLuister of je twee piepjes hoort tijdens het vullen. Deze geven aan dat de minimum hoeveelheid van 85E is bereikt. Ook als je de twee piepjes hebt gehoord ga je verder met vullen totdat de vulspuit volledig leeg is.\n\nNa het vullen van de Pod druk je op Volgende.\n\nOpmerking: verwijder de beschermkap van de Pod naald nog niet!
+ Uitvullen
+ Probeer te koppelen met de nieuwe Pod en laat de Pod de naald uitvullen.\n\nWanneer alle onderdelen zijn afgerond, druk je op Volgende.\n\nOpmerking: Houd de Pod goed dicht bij de RileyLink terwijl je dit doet.
+ Plaats de Pod
+ \nBereid het plaatsen voor. Verwijder de beschermdop van de naald en haal de papiertjes van de sticker.\n\n(Mocht je zien dat de canule uitsteekt, druk dan op Annuleren en begin overnieuw met een andere Pod.)\n\nBevestig de Pod op de huid. Druk op Volgende om de canule te gaan inschieten en de insulinetoediening te laten starten.
+ Canule inschieten
+ De basaalstand wordt ingesteld en de canule wordt ingeschoten.\n\nWanneer alle onderdelen zijn afgerond, druk je op Volgende.
+ Pod Info
+ \nDe Pod is nu actief.\n\nJouw basaalprofiel is ingeladen in de Pod en de canule is ingebracht.\n\nControleer of de canule correct is geplaatst en vervang de Pod als je denkt dat er iets is misgegaan.
+ Deactiveer Pod
+ \nDruk op Volgende om de Pod te deactiveren.\n\nOpmerking: Hiermee wordt de insuline toediening gestopt en wordt de Pod gedeactiveerd.
+ Deactiveren van de Pod
+ Deactiveren van de Pod.\n\nWanneer alle onderdelen zijn afgerond, druk je op Volgende.\n\nOpmerking: Als deactiveren herhaaldelijk niet wil lukken, druk je op Annuleren en gebruik de optie Reset Pod om de Pod-status geforceerd te deactiveren.
+ Pod gedeactiveerd.\n\nVerwijder de Pod van je lichaam en gooi hem weg.
+ Pod Koppelen
+ Pod Uitvullen
+ Canule vullen
+ Instellen Basaal Profiel
+ Annuleer toediening
+ Deactiveer Pod
+ Pomp integratie voor Omnipod Dash.
+ Herinnering koppeling afronden
+ Herinnering setup afronden
+ Pod verloopt binnenkort
+ Pod verloopt binnenkort
+ Schakelt zeer binnenkort uit
+ Laag reservoir
+ Onbekend alarm
+ Het instellen van basaal profiel is mogelijk mislukt. De toediening is misschien gestopt! Vernieuw de status van Pod.
+ Het instellen van tijdelijk basaal is mogelijk mislukt. Als er al een tijdelijk basaal actief was, is dat misschien geannuleerd! Vernieuw de status van de Pod.
+ Het instellen van de tijd is mogelijk mislukt. De toediening is misschien gestopt! Vernieuw de status van Pod.
+ Kan niet controleren of de bolus is geslaagd. Controleer of de Pod de bolus aan het toedienen is of annuleer de bolus.
+ RL Statistieken
+ Pulsen Log
diff --git a/app/src/main/res/values-pl-rPL/strings.xml b/app/src/main/res/values-pl-rPL/strings.xml
index e0b4435a1a..2242a82842 100644
--- a/app/src/main/res/values-pl-rPL/strings.xml
+++ b/app/src/main/res/values-pl-rPL/strings.xml
@@ -162,7 +162,6 @@
Nie znaleziono plikuEksportuj ustawieniaImportuj ustawienia
- Max U/h Tymczasowa Dawka Bazowa, jaka może być ustawionaWartość określona jako Maksymalna Baza (max basal) w OpenAPSMaksymalna bazowa IOB, którą OpenAPS może dostarczyć [U]Ta wartość jest nazywana Max IOB w OpenAPS\nTo jest maksymalna wartość insuliny w [U], którą APS może dostarczyć w danej chwili.
@@ -290,7 +289,6 @@
Rozpocznij/WypełnijProszę upewnij się, że ilość wypełnienia odpowiada ilości właściwej dla twojego wkłucia!Inne
- Rozpocznij/Wypełnij standardowe ilości insuliny.Przycisk 1Przycisk 2Przycisk 3
@@ -349,7 +347,6 @@
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 doceloweDomyś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.Wartość domyślna: 2\nBolus snooze jest uruchamiany po wykonaniu bolusa posiłkowego, tak by pętla nie przeciwdziałała niskim wartościom tymczasowym zaraz po posiłku. Jako przykład: wartość domyślna ustawiona jest 2; więc 3 godzinne DIA oznacza, że bolus snooze będzie stopniowo wycofany po 1.5 godziny (3DIA/2).Wartość domyślna: 3.0 (AMA) lub 8.0 (SMB). To jest ustawienie domyślnego wpływu wchłaniania węglowodanów w czasie 5 min. Wartością domyślną jest spodziewane 3mg/dl/5min. Ma to wpływ na szybkość zaniku COB, oraz jak duże wchłanianie węglowodanów będzie przyjęte do obliczeń przyszłych przewidywanych wartości BG, jeżeli BG obniża się bardziej niż w założono, lub nie wzrasta tak szybko jak się spodziewano.
@@ -767,7 +764,6 @@
UprawnieniaZapytaj o uprawnieniaAplikacja wymaga uprawnienia systemowego okna dla powiadomień
- Aplikacja wymaga dostępu do lokalizacji, aby przeprowadzić skan BTAplikacja wymaga dostępu do magazynu plików, aby móc przechować pliki logówŻądanieSkonfiguruj wtyczkę insuliny
diff --git a/app/src/main/res/values-pt-rBR/exam.xml b/app/src/main/res/values-pt-rBR/exam.xml
index d0abb5b77c..cd256141c4 100644
--- a/app/src/main/res/values-pt-rBR/exam.xml
+++ b/app/src/main/res/values-pt-rBR/exam.xml
@@ -1,15 +1,16 @@
O que é verdade sobre o DIA?
+ Tópico: Duração da Ação de InsulinaO valor mínimo é de 3 horas.O valor mínimo é de 5 horas.https://androidaps.readthedocs.io/en/latest/EN/Configuration/Config-Builder.html?#insulinO significado é igual ao parâmetro DIA usado na bomba.Você tem que determinar o seu valor individual (mas não menos de 5 horas).Tópico: Hipo Temp-Alvo
- O que é a razão principal para definir TT hipoglicemia?
- Para evitar que a Glic fique baixa se já estiver em funcionamento um temp zero.
- Para evitar o AAPS dosear demasiada insulina após uma subida rápida causada por hidratos de actuação rápida para tratar hipoglicemia.
+ Qual é a razão principal para definir TT hipoglicemia?
+ Para evitar que a glicose fique baixa se já estiver em funcionamento um temp zero.
+ Para evitar o AAPS dose muita insulina após uma subida rápida causada por carboidratos de atuação rápida para tratar hipoglicemia.https://androidaps.readthedocs.io/en/latest/EN/Usage/temptarget.htmlQual perfil pode ser usado e configurado offline?Tópico: Perfil Offline
@@ -17,7 +18,7 @@
https://androidaps.readthedocs.io/en/latest/EN/Configuration/Config-Builder.html#profileTópico: Desconectando-se da bombaO que deve ser feito ao desligar a bomba?
- Clique em \'Desligar bomba\' para que o AAPS saiba que nenhuma insulina está a ser administrada.
+ Clique em \'Desligar bomba\' para que o AAPS saiba que nenhuma insulina será entregue.Clique em \'Suspender loop\' para que AAPS pare o looping enquanto a bomba estiver desconectada.Não altere nada no AAPS, apenas desconecte a bomba.https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#other-settings
@@ -27,14 +28,14 @@
Salve o arquivo exportado para outro local como e-mail, Dropbox, Google drive…Exporte-as logo após a instalação do AAPS.Exportá-los depois de fazer alterações de configuração.
- Exportá-los depois de completar um objectivo.
+ Exportá-los depois de completar um objetivo.Exporte-as quando concluir as configurações iniciais.https://androidaps.readthedocs.io/en/latest/EN/Usage/ExportImportSettings.htmlhttps://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#what-emergency-equipment-is-recommended-to-take-with-meTópico: Leituras do CGM imprecisasO que deve ser feito se os dados do CGM são irregulares?Nada, AAPS vai lidar com isso.
- Desactivar o loop para evitar sobredosagem.
+ Desativar o loop para evitar sobredosagem.Substitua o sensor CGM.Desligue o telefone.https://androidaps.readthedocs.io/en/latest/EN/Usage/Smoothing-Blood-Glucose-Data-in-xDrip.html#smoothing-blood-glucose-data
@@ -45,18 +46,18 @@
Faça um mudança de perfil abaixo de 100%.Fazer uma mudança de perfil acima de 100%.Pare o loop.
- Definir um alvo-temp de actividade antes de iniciar o exercício.
- Definir um alvo-temp de actividade após iniciar o exercício leva a resultados piores do que se iniciado antes.
+ Definir um alvo-temp de atividade antes de iniciar o exercício.
+ Definir um alvo-temp de atividade após iniciar o exercício leva a resultados piores do que se iniciado antes.https://androidaps.readthedocs.io/en/latest/EN/Usage/temptarget.html#activity-temp-target
- Tópico: Loop Desactivado/Suspenso
- Eu recebo insulina quando o loop estiver desactivado/suspenso?
- Sim, a insulina basal continua a ser administrada.
+ Tópico: Loop Desativado/Suspenso
+ Eu recebo insulina quando o loop estiver desativado/suspenso?
+ Sim, a insulina basal continua a ser entregue.Não, a entrega da insulina está parada.Tópico: Testando Basal, ISF e ICQuando devo validar os valores de basal, ISF e IC?Antes de começar com o loop.
- Quando ocorrer frequentemente Glic baixa.
- Quando ocorrer frequentemente Glic alta.
+ Quando ocorrer frequentemente glicemia baixa.
+ Quando ocorrer frequentemente glicemia alta.https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#androidaps-settingsTópico: Pré-requisitosO que eu preciso?
@@ -73,10 +74,10 @@
https://androidaps.readthedocs.io/en/latest/EN/Module/module.htmlUm Smartwatch.Um CGM compatível.
- Tópico: Actualização do AndroidAPS
+ Tópico: Atualização do AndroidAPSO que é verdade?Você precisa ter o Git instalado.
- Actualizar assim que nova versão for lançada e tiver tempo suficiente para fazer isso.
+ Atualizar assim que nova versão for lançada e tiver tempo suficiente para fazer isso.Você deve utilizar as mesmas chaves de assinatura.Nunca atualize se o sistema estiver funcionando bem.Peça ao seu amigo para a nova APK.
@@ -102,9 +103,9 @@
Qual algoritmo de sensibilidade tem um intervalo de tempo configurável?https://androidaps.readthedocs.io/en/latest/EN/Configuration/Sensitivity-detection-and-COB.htmlQual plugin de sensibilidade deve ser usado para o recurso UAM?
- Tópico: Erros de Entrada de Hidratos
- O que deve fazer se tiver feito uma entrada incorrecta de hidratos?
- Em Tratamentos, excluir a entrada incorrecta de hidratos. Insira novos hidratos.
+ Tópico: Erros de Entrada de Carboidratos
+ O que deve fazer se tiver feito uma entrada incorrecta de carboidratos?
+ Em Tratamentos, excluir a entrada incorrecta de carboidratos. Insira novos carboidratos.Adicionar falsa insulina usando a função de RefillTópico: Alimentos com Gordura e ProteínaO que fazer se sua comida contiver uma grande quantidade de gordura e/ou proteínas?
@@ -121,16 +122,18 @@
Aplicativo Loop no iPhone.Aplicativo Spike no iPhone.https://androidaps.readthedocs.io/en/latest/EN/Children/Children.html
- Valores elevados de FSI levam a uma administração de menos insulina quando o AAPS corrige Glic alta.
- Valores baixos de FSI levam a uma administração de menos insulina quando o AAPS corrige Glic alta.
- Alterar os valores FSI não tem efeito sobre a quantidade de insulina administrada quando a AAPS corrige Glic alta.
+ Tópico: Fator de Sensibilidade de Insulina
+ Valores elevados de FSI levam a uma entrega de menos insulina quando o AAPS corrige glicemia alta.
+ Valores baixos de FSI levam a uma entrega de menos insulina quando o AAPS corrige glicemia alta.
+ Alterar os valores FSI não tem efeito sobre a quantidade de insulina entregue quando a AAPS corrige glicemia alta.Você precisa inserir o ISF nas Preferências.Alterar o valor do ISF no seu perfil é o suficiente para aplicar a alteração.https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#insulin-sensitivity-factor-isf-mmol-l-u-or-mg-dl-uhttps://androidaps.readthedocs.io/en/latest/EN/Usage/Profiles.html
- Rácios IC mais altos levam a menos insulina administrada para uma dada quantidade de hidratos.
- Rácios IC mais baixos levam a menos insulina administrada para uma dada quantidade de hidratos.
- Se tiver 0 COB, alterar o rácio IC irá levar a uma quantidade diferente de insulina para corrigir um determinado valor da Glic.
+ Tópico: Porporção IC
+ Proporções IC mais altos levam a menos insulina entregue para uma dada quantidade de carboidratos.
+ Proporções IC mais baixos levam a menos insulina entregue para uma dada quantidade de carboidratos.
+ Se tiver 0 COB, alterar a proporção IC irá levar a uma quantidade diferente de insulina para corrigir um determinado valor da glicemia.O IC será diferente se você contar a unidade de pão como 10g ou 12g.O significado do IC é: Quantos pães são cobertas por 1U de insulina.https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#carbohydrate-to-insulin-ratio-cr-g-u
@@ -160,6 +163,6 @@
GoogleFacebookOutra Medicação
- AAPS reduz Basal para aumentar o açúcar no sangue. As drogas do grupo de inibidores de SGLT2 (gliflozins) podem evitar o aumento esperado da Glic e, assim, podem produzir uma deficiência de insulina perigosa (DKA).
-\nOs nomes comuns de marca são: Invokana®, Forxiga®, Jardiance®, Steglatro®, Suglat®, Apleway®, Deberza®, Synjardy®, Vokanamet®, Xigduo®.\n\nPrometo que não vou tomar tais drogas ao usar o AAPS ou vou desactivar o loop antes de usar essas drogas.
+ AAPS reduz Basal para aumentar o açúcar no sangue. As drogas do grupo de inibidores de SGLT2 (gliflozins) podem evitar o aumento esperado da glicose e, assim, podem produzir uma deficiência de insulina perigosa (DKA).
+\nOs nomes comuns de marca são: Invokana®, Forxiga®, Jardiance®, Steglatro®, Suglat®, Apleway®, Deberza®, Synjardy®, Vokanamet®, Xigduo®.\n\nPrometo que não vou tomar tais drogas ao usar o AAPS ou vou desativar o loop antes de usar essas drogas.
diff --git a/app/src/main/res/values-pt-rBR/objectives.xml b/app/src/main/res/values-pt-rBR/objectives.xml
index ab4fe5aebe..2f75aa94e4 100644
--- a/app/src/main/res/values-pt-rBR/objectives.xml
+++ b/app/src/main/res/values-pt-rBR/objectives.xml
@@ -18,42 +18,38 @@
Utilizar por alguns dias e pelo menos uma noite sem alarmes de Glic baixa, antes de baixar GlicAjuste as basais e os rácios, se necessário, e, em seguida, active o auto-sens1 semana de looping durante o dia com sucesso com entrada regular de hidratos de carbono
- A activar recursos adicionais para uso durante o dia, como assistente avançado de refeição
- Activando recursos adicionais para uso durante o dia, como SMB
- A activar a automação
+ A ativar recursos adicionais para uso durante o dia, como assistente avançado de refeição
+ Ativando recursos adicionais para uso durante o dia, como SMB
+ A ativar a automaçãoDeverá ler a wiki e aumentar a IOB máx para que os SMBs funcionem devidamente! Inicialmente poderá considerar maxIOB=média dos bólus + 3 x a basal máxima
- Leia os documentos de como a automação funciona. Configure primeiro regras simples. Em vez de acção deixe AAPS apresentar apenas a notificação. Quando tem certeza de automação é accionada no momento certo substitua a notificação por acção real. (https://androidaps.readthedocs.io/en/latest/EN/Usage/Automation.html)
+ Leia os documentos de como a automação funciona. Configure primeiro regras simples. Em vez de ação deixe AAPS apresentar apenas a notificação. Quando tem certeza de automação é acionada no momento certo substitua a notificação por ação real. (https://androidaps.readthedocs.io/en/latest/EN/Usage/Automation.html)Glic disponível no NSEstado da Bomba disponível no NSExecução manualConcluído: %1$sAprenda como controlar AndroidAPS
- Executar diferentes acções no AndroidAPS
+ Executar diferentes ações no AndroidAPSDefinir perfil de 90% por 10 min (pressione longo no nome de perfil na Visão Geral)Simular chuveiro. Desligar a bomba de 1h (Pressione longo em Open Loop)... e volte a ligar de volta da mesma forma
- Crie um alvo temporário personalizado com 10 min de duração (pressione longo no seu alvo actual)
- No Configurador active o plugiin de Acções, torne-o visível e exiba o seu conteúdo no menu superior
+ Crie um alvo temporário personalizado com 10 min de duração (pressione longo no seu alvo atual)
+ No Configurador ative o plugin de Ações, torne-o visível e exiba o seu conteúdo no menu superiorMostrar conteúdo do plugin LoopUtilizar a função de escala premindo longamente gráfico GlicInserir
- Se tiver pelo menos 3 meses de experiência com Close Loop com outros sistemas, pode-se qualificar para um código para ignorar objectivos. Ver https://androidaps.readthedocs.io/en/latest/EN/Usage/Objectives.html#skip-objectives para mais detalhes.
- Código aceite
+ Se tiver pelo menos 3 meses de experiência com Close Loop com outros sistemas, pode-se qualificar para um código para ignorar objetivos. Ver https://androidaps.readthedocs.io/en/latest/EN/Usage/Objectives.html#skip-objectives para mais detalhes.
+ Código aceitoCódigo inválidoProve seu conhecimento
- Estude e responda as perguntas correctamente
- Responder desactivado até: %1$s
+ Estude e responda as perguntas corretamente
+ Resposta desativada para: %1$sResposta errada!Próximo inacabadoPedir Código: %1$s(marque todas as respostas correctas)
- https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#what-to-do-when-taking-a-shower-or-bath
- https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#the-homescreen
- https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#config-builder
- https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#the-homescreenNão está ligado à internetFalha ao recuperar tempo
- Requisitos de objectivo não cumpridos
+ Requisitos de objetivo não cumpridos%1$d dia%1$d dias
diff --git a/app/src/main/res/values-pt-rBR/protection.xml b/app/src/main/res/values-pt-rBR/protection.xml
index 67ae6b40c1..1c9c3e10d8 100644
--- a/app/src/main/res/values-pt-rBR/protection.xml
+++ b/app/src/main/res/values-pt-rBR/protection.xml
@@ -2,22 +2,22 @@
Autenticação necessáriaColoque o dedo sobre o leitor de impressões digitais para verificar a sua identidade
- Definições Protecção
- Protecção Aplicação
- Protecção Bólus
- Password Mestre
- Definições Password
- Password Aplicação
- Password Bólus
- Definições Desbloqueio
- Biométrico
- Password Personalizada
- Sem Protecção
- Protecção
- A Password Mestre não está definida!\n\nPor favor, configure Password Mestre em Preferências (%1$s → %2$s)
- Password foi definida!
- Password não foi definida
- Password não foi alterada
- Password apagada!
- Insira a password aqui
+ Definições Proteção
+ Proteção Aplicação
+ Proteção Bólus
+ Senha mestra
+ Definições de senha
+ Senha da aplicação
+ Senha do bólus
+ Definições de desbloqueio
+ Biometria
+ Senha personalizada
+ Sem proteção
+ Proteção
+ A senha mestre não está definida!\n\nPor favor, configure a senha mestre em Preferências (%1$s → %2$s)
+ Senha foi definida!
+ Senha não foi definida
+ Senha não foi alterada
+ Senha apagada!
+ Insira a senha aqui
diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml
index fbff230423..0069fdc11a 100644
--- a/app/src/main/res/values-pt-rBR/strings.xml
+++ b/app/src/main/res/values-pt-rBR/strings.xml
@@ -35,8 +35,8 @@
Integração para bombas Accu-Chek Combo, requer ter o ruffy instaladoIntegração para as pessoas que fazem múltiplas injeções diárias para a sua terapia de diabetesIntegração para as bombas que não têm qualquer driver ainda (Open Loop)
- A sensibilidade é calculada da mesma forma que Oref0, mas você pode especificar o período de tempo para o passado. A absorção mínima de hidratos de carbono é calculada a partir do tempo máximo de absorção de hidratos de carbono das preferências.
- A sensibilidade é calculada a partir de dados das últimas 8h ou 24h (usando qualquer um que é mais sensível). Hidratos são cortados (se não absorvidos) após o tempo especificado nas preferências. O Plugin também calcula o UAM.
+ A sensibilidade é calculada da mesma forma que Oref0, mas você pode especificar um período de tempo no passado. A absorção mínima de carboidratos é calculada a partir do tempo de absorção máxima especificado nas preferências.
+ A sensibilidade é calculada a partir de dados de 8h ou 24h no passado (usando o que é mais sensível). Carboidratos (se não absorvidos) são cortados após o tempo especificado nas preferências. O plugin também calcula o UAM.A sensibilidade é calculada como uma média ponderada de desvios. Desvios mais recentes têm maior peso. A absorção mínima de hidratos de carbono é calculada a partir do tempo máximo de absorção de hidratos de carbono das preferências. Este algoritmo é o mais rápido em seguir as mudanças de sensibilidade.Receber valores de Glicose da aplicação Eversense modificada.Receber valores BG do Glimp.
@@ -131,7 +131,7 @@
Desativar loopAtivar loopNova sugestão disponível
- Sugestão de Hidratos
+ Sugestão de CarbsVersão não suportada do NightscoutLOOP DESATIVADO POR RESTRIÇÕESIOB Basal
@@ -164,7 +164,7 @@
Arquivo não encontradoExportar configuraçõesImportar configurações
- Max U/hr em que uma Temp Basal pode ser definida
+ Max U/h em que uma Basal temporária pode ser definidaEste valor é chamado max basal no contexto do OpenAPSBasal Máxima IOB que OpenAPS pode dar [U]Este valor é denominado Max IOB em contexto OpenAPS \nEste é o valor máximo de insulina em [U] que APS pode dar de uma vez.
@@ -172,7 +172,7 @@
Será perguntado pela senha mestre, que será necessária para desencriptar preferências importadas.Exportação cancelada! Preferências NÃO foram exportadas!Importação cancelada! Preferências NÃO foram importadas!
- Seleccione o ficheiro para importação
+ Selecionar arquivo para importarPor favor, verifique as preferências antes da importação:Preferências não podem ser importadas!As preferências não devem ser importadas!
@@ -180,40 +180,36 @@
Detalhes de problemas de importaçãoImportarImportar mesmo assim (PERIGOSO!)
- As preferências foram criadas com uma variante diferente do AAPS (%1$s) enquanto tem: %2$s.\n\nAlgumas configurações podem estar ausentes ou inválidas - após a importação, por favor verifique e actualize suas preferências.
+ As preferências foram criadas com uma variante diferente do AAPS (%1$s) enquanto tem: %2$s.\n\nAlgumas configurações podem estar ausentes ou inválidas - após a importação, por favor verifique e atualize suas preferências.Preferências foram criadas num dispositivo diferente. Não há problema se estiver a importar de telefone diferente/antigo, mas se certifique que as preferências importadas estão corretas!
- Está a usar formato ultrapassado herdado a partir de versões antigas do AAPS, o que não é seguro! Use-o apenas como um último recurso, se não tiver uma exportação no actual no formato JSON.
- Preferências importadas já são %1$s dias antigas! Talvez tenha preferências mais actualizadas ou escolheu o ficheiro errado? Lembre-se de exportar preferências regularmente!
+ Você está usando o formato de legado desatualizado a partir de versões antigas da AAPS, que não é seguro! Use apenas como último recurso, se você não tiver uma exportação em formato atual, JSON.
+ As preferências importadas já têm %1$s dias de idade! Talvez você tenha preferências mais atualizadas ou escolha o arquivo errado? Lembre-se de exportar preferências regularmente!Formato de data-hora inválido!
- Preferências de uma versão menor diferente de aplicação. Está OK se você está importando após o upgrade, mas verifique após a importação se as preferências ainda estão corretas!
- Preferências de uma versão principal diferente de aplicação. As principais versões diferem significativamente e podem ter preferências incompatíveis! Certifique-se depois de importar que as preferências ainda estão corretas!
- Formato do ficheiro
+ Formato do arquivoCriado emVersão AAPSVariante de Compilação
- A exportar nome do paciente do dispositivo
- A exportar modelo do dispositivo
- Encriptação do Ficheiro
+ Exportando nome do paciente do dispositivo
+ Exportando modelo do dispositivo
+ Criptografia do arquivoAntigo Formato de ExportaçãoNovo formato de encriptaçãoNovo formato de depuração (não encriptado)Formato de exportação desconhecido
- Ficheiro de configurações adulterado
- Ficheiro de configurações é seguro
+ Arquivo de configurações adulterado
+ Arquivo de configurações é seguroA usar um formato de configurações não seguro e não encriptadoErro de formato JSON, campo necessário ausente (formato, conteúdo, metadados ou segurança)
- Erro ao desencriptar, a senha inserida não pode desencriptar o ficheiro
- Ficheiro de verificação (hash) em falta, não é possível verificar a autenticidade de configurações!
- Ficheiro foi modificado após exportação!
- Erro Desencriptação, a análise de preferências falhou!
- Erro de Desencriptação, a senha é inválida ou configurações de arquivo foram modificadas! Pode acontecer que o ficheiro importado foi exportado com uma Senha Mestre diferente.
+ Erro ao desencriptar, a senha inserida não pode desencriptar o arquivo
+ Arquivo de verificação (hash) em falta, não é possível verificar a autenticidade de configurações!
+ Arquivo foi modificado após exportação!
+ Erro desencriptação, a análise de preferências falhou!
+ Erro de desencriptação, a senha é inválida ou configurações de arquivo foram modificadas! Pode acontecer que o arquivo importado foi exportado com uma senha mestre diferente.Configuração de encriptação ausente, formato de configurações é inválido!Algoritmo de encriptação não suportado ou não especificado!exportado hoje
- exportado há %1$s
- exportado às %1$s
+ exportado %1$s atrásexportado há menos de uma hora
- no diretório: %1$sCondições de UtilizaçãoNÃO DEVE SER USADO PARA FAZER DECISÕES MÉDICAS. NÃO HÁ NENHUMA GARANTIA PARA O PROGRAMA, NA EXTENSÃO PERMITIDA PELA LEGISLAÇÃO APLICÁVEL. EXCETO QUANDO DE OUTRA FORMA, POR ESCRITO, OS TITULARES DOS DIREITOS DE AUTOR E / OU OUTRAS PARTES FORNECEM O PROGRAMA “TAL COMO ESTÁ”, SEM GARANTIA DE QUALQUER TIPO, EXPRESSA OU IMPLÍCITA, INCLUINDO, MAS NÃO SE LIMITANDO, ÀS GARANTIAS IMPLÍCITAS DE COMERCIALIZAÇÃO E ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. TODO O RISCO QUANTO À QUALIDADE E DESEMPENHO DO PROGRAMA É COM VOCÊ. CASO O PROGRAMA SEJA DEFEITUOSO, VOCÊ ASSUME O CUSTO DE TODOS OS SERVIÇOS, REPAROS OU CORREÇÕES NECESSÁRIOS.EU ENTENDO E CONCORDO
@@ -223,11 +219,11 @@
Números de telefone permitidos+XXXXXXXXXX;+YYYYYYYYYYPara dar bolus %1$.2fU responder com código %2$s
- Para administrar bólus %1$.2fU responder com código %2$s
+ Para dar bólus %1$.2fU responder com código %2$sPara definir o Alvo Tempo %1$s responda com o código %2$sPara cancelar Alvo Temp responda com o código %1$s
- Para desactivar o Serviço Remoto SMS de responda com o código %1$s.\n\nTenha em mente que será capaz de o reactivar directamente apenas a partir do telemóvel mestre do AAPS.
- SMS Serviço Remoto interrompido. Para reactivá-lo, use o AAPS no telemóvel mestre.
+ Para desativar o Serviço Remoto SMS de responda com o código %1$s.\n\nTenha em mente que será capaz de o reativar diretamente apenas a partir do celular principal do AAPS.
+ SMS Serviço Remoto interrompido. Para reativá-lo, use o AAPS no telemóvel mestre.Para enviar calibração %1$.2f responder com código %2$sBolus falhouNúmero mínimo de minutos que deve decorrer entre um bólus remoto e o próximo
@@ -236,7 +232,7 @@
Bolus %1$.2fU entregue com sucessoVão ser administradas %1$.2fUBólus %1$.2fU enviado com êxito
- Bólus de refeição %1$.2fU administrado com sucesso
+ Bólus de refeição %1$.2fU entregue com sucessoAlvo %1$s para %2$d minutosAlvo %1$s para %2$d minutos definido com sucessoAlvo Temp cancelado com êxito
@@ -253,11 +249,8 @@
Loop ativado%1$.2f limitado a %2$.2fO valor %1$s está fora dos limites permitidos
- Para ligar a bomba responda com o código %1$s
- Ligação à bomba falhou
- Para desligar a bomba por %1d minutos responda com o código %2$s
- Bomba desligada
- Bomba ligada novamente
+ Bomba desconectada
+ Bomba reconectadaO comando remoto não é permitidoO bolus remoto não está disponível. Tente novamente mais tarde.Para começar a basal %1$.2fU/h durante%2$d min responda com o código %3$s
@@ -266,9 +259,6 @@
Para inserir %1$dg em %2$s responda com código %3$sPara começar a basal %1$d%% U/h durante %2$d min responda com o código %3$sPara suspender o loop por %1$d minutos resposta com código %2$s
- Para retomar o loop responda com o código %1$s
- Para activar o loop responda com o código %1$s
- Para desactivar o loop responda com o código %1$sBasal temporária %1$.2fU/h para %2$d min iniciada com êxitoBólus estendido %1$.2fU/h para %2$d min iniciado com êxitoHidratos %1$dg inseridos com sucesso
@@ -300,7 +290,7 @@
Purgar/PreencherPor favor certifique-se que o valor corresponde ao especificado para o seu conjunto de infusão!Outro
- Purgar/Preencher os valores standard.
+ Purgar/Preencher os valores padrõesBotão 1Botão 2Botão 3
@@ -328,17 +318,17 @@
OpenAPS AMADelta médio curtoDelta médio longo
- Array de %1$d elementos.\nValor actual:
+ Array de %1$d elementos.\nValor atual:Dados AutosensScript debugUsar função Autosens
- Actualizar tratamentos do NS
+ Atualizar tratamentos do NSApagar tratamentos do futuroComer em breveHipoAtividadeRemover registo
- ACÇ
+ ACTCONFLOOPPS
@@ -355,14 +345,14 @@
Usar sempre delta médio curto em vez de delta simplesÚtil quando há ruído nos dados de fontes sem filtro como o xDrip.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 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 atual (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 objetivo é evitar que sejam determinadas basais temporárias muito 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 (FSI) e baixar o valor alvo de glicose no sangue.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 alvosValor 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.
- Valor padrão: 2\nBolus Snooze (pausa após bolus) é executado depois de realizar um bolus por refeição Desta maneira o algoritmo não irá contrariar com temporárias baixas logo depois da refeição. O valor padrão é 2; Então uma duração de acção da insulina (DIA) de 5h significa que o Bolus Snooze irá ser gradualmente reduzido ao longo de 2,5 horas = 5/2 = DIA/Valor padrão.
- Valor padrão: 3.0 para detecção avançada de refeições (AMA) ou 8.0 para super micro bolus (SMB). Esta é a configuração padrão para o calculo de quanto varia a cada 5 min a glucose no sangue (BG) devido à absorção de hidratos de carbono. O padrão é 3mg/ dl / 5min. Isso afeta a rapidez com que decaem as calorias no corpo (COB), e quantos hidratos de carbono terão de ser considerados no cálculo da previsão de BG, quando é que a BG está baixando mais do que espectável ou não subindo como espectável.
+ Valor padrão: 2\nBolus Snooze (pausa após bolus) é executado depois de realizar um bolus por refeição Desta maneira o algoritmo não irá contrariar com temporárias baixas logo depois da refeição. O valor padrão é 2; Então uma duração de ação da insulina (DIA) de 5h significa que o Bolus Snooze irá ser gradualmente reduzido ao longo de 2,5 horas = 5/2 = DIA/Valor padrão.
+ Valor padrão: 3.0 para detecção avançada de refeições (AMA) ou 8.0 para super micro bolus (SMB). Esta é a configuração padrão para o calculo de quanto varia a cada 5 min a glucose no sangue (BG) devido à absorção de carboidratos. O padrão é 3mg/ dl / 5min. Isso afeta a rapidez com que decaem as calorias no corpo (COB), e quantos carboidratos terão de ser considerados no cálculo da previsão de BG, quando é que a BG está baixando mais do que o esperado ou não subindo como esperado.Atenção!\n Normalmente não é necessário modificar os valores abaixo. Por favor PRESSIONE AQUI e LEIA o texto para garantir que ENTENDE as consequenciais antes de alterar algum destes valores.SMS número de telefone inválidoCalibração
@@ -398,7 +388,7 @@
Mostrar IOB detalhadoDividir IOB entre IOB de bolus e de basal na face do relógionão foi bem sucedido - por favor, verifique o telefone
- n/d
+ n/aIdade do PacienteCriançaAdolescente
@@ -406,8 +396,8 @@
Adulto resistente insulinaPor favor seleccione a idade do diabético para definir os limites de segurançaNome do Paciente
- Por favor, forneça nome do paciente ou alcunha para diferenciar entre várias configurações
- Utilizador
+ Por favor, forneça nome do paciente ou apelido para diferenciar entre várias configurações
+ UsuárioGlimp%1$s necessita de autorizar a não optimização da bateria para assegurar a performance necessáriaLoop suspenso
@@ -439,29 +429,16 @@
Novorapid, Novolog, HumalogFiaspINS
- Activar superbólus no assistente
+ Ativar superbólus no assistenteHabilite a funcionalidade de superbolus no assistente. Não habilite até que aprenda o funcionamento. PODE CAUSAR OVERDOSE DE INSULINA SE USAR INDISCRIMINADAMENTE!Mostrar luzes de estado no ecrã principal
- Limite aviso idade canula [h]
- Limite Crítico Idade Canula [h]
- Limite aviso idade insulina [h]
- Limite crítico idade insulina [h]
- Limite aviso idade sensor [h]
- Limite crítico idade sensor [h]
- Limite de aviso de nível de bateria [h]
- Limite crítico de nível de bateria [h]Limite de aviso de nível de reservatório [U]Limite crítico de nível de reservatório [U]Limite de aviso de nível de bateria [%]Limite de crítico de nível de bateria [%]
- PREVIOBCOB
- BAS
- DESVACT
- ABS
- DESVINCLISobreFalta de permissão SMSFalta permissão do estado do telefone
@@ -479,8 +456,6 @@
Fazer Mudança De PerfilIdade bateria bombaOpções Alarme
- Criar notificações dos alarmes NS
- Criar notificações a partir dos anúncios NSTempo limite para dados obsoletos [min]Tempo limite para Urgência por dados obsoletos [min]Intervalo para autosens [h]
@@ -507,31 +482,31 @@
ESTManter a tela ligadaImpedir Android de desligar o ecrã. Isto irá consumir muita bateria quando não ligado ao carregador.
- Ao activar a função Autosense lembre-se de introduzir todos os hidratos de carbono (carbs) que comeu. Caso contra contrário os desvios de carbs serão erroneamente identificados como uma variação da sensibilidade!!
+ Ao ativar a função Autosense lembre-se de introduzir todos os carboidratos (carbs) que comeu. Caso contra contrário os desvios de carbs serão erroneamente identificados como uma variação da sensibilidade!!Média ponderada da SensibilidadeOKCancelarNem todos perfis foram carregados!Valores não guardados!Ative as transmissões para outros apps (como xDrip). Não ative se você tiver mais de uma instância de AAPS ou NSClient instalada!
- Activar partilha local.
+ Ativar partilha local.ATIVIDADE & FEEDBACKCARBOS & BOLUSCGM & OPENAPSBOMBADuração [min]SMB OpenAPS
- Activar UAM
- Activar SMB
- Use Super Micro Boluses em vez de basal temp para uma acção mais rápida
+ Ativar UAM
+ Ativar SMB
+ Use Super Micro Boluses em vez de basal temp para uma ação mais rápidaDetecção de refeições não IntroduzidasTempo Pico da curva de IOBTempo Pico [min]Oref Pico-Livre
- Oref Acção Rápida
+ Oref Ação RápidaUltra-Rapid OrefDuração de Acção da Insulina (DIA) de %1$f demasiado curto - corrigido para %2$f!
- Activar perfil
+ Ativar perfilINVÁLIDOPercentagemAlteração Turno
@@ -552,7 +527,7 @@
EnPrGor
- ]]>
+ ]]>Comando será executado agoraBomba inacessívelLeituras Glic. perdidas
@@ -561,7 +536,6 @@
Alerta caso nenhuma glicemia seja recebidaAlerta caso não seja possivel alcançar a bombaLimite para bomba inacessível [min]
- Alertar se forem necessários HidratosAlarme UrgenteINFOAplicação Eversense (com patch)
@@ -574,7 +548,6 @@
Limite de minutos de basal para SMBUAM SMB máx minutosMax minutos de basal para limitar SMB para UAM
- Mínimo De Hidratos Necessários Para SugestãoEnviar dados Glic. para xDrip+Seleccionar 640g/Eversense como fonte no xDrip+Glic NSCliente
@@ -633,14 +606,12 @@
Erro na entrega Bólus EstendidoVisãoatrás
- Definir basais temporárias neutras
- Se activado, ele irá cancelar basal temporária antes do final de cada hora. Este método pode ajudar a parar o sinal sonoro/vibração em algumas bombas, de hora em hora.SMB sempre activadoSMB sempre activo independentemente dos bolus. Possível apenas quando o medidor tive um bom filtro de dados como o G5Ativar SMB após carbosSMB activo por 6h após carbs, mesmo com 0 COB. Possível apenas quando o medidor tive um bom filtro de dados como o G5
- Activar SMB com COB
- Activar SMB quando tem COB activo.
+ Ativar SMB com COB
+ Ativar SMB quando houver COB ativo.SMB activo com valores alvo temporáriosSMB activo quando há valor alvo temporário activo (exercício, etc)SMB activo com alvos temporários elevados
@@ -657,7 +628,6 @@
Ignorar 5mIgnorar 15mIgnorar 30m
- reqNavegador do históricoNotificar no SMBMostrar SMB no relogio como bolus normal.
@@ -702,7 +672,7 @@
\n\nhttp://www.androidaps.org\nhttp://www.androidaps.de (de)\n\nfacebook:\nhttp://facebook.androidaps.org\nhttp://facebook.androidaps.de (de)O último bólus tem mais de 24 horas ou está no futuro. Por favor verifique se a data está definida correctamente na bomba.Hora/data da entrega do bólus na bomba parece errado, IOB aparentemente está incorrecto. Verifique hora/data na bomba.
- TrocaPerfil em falta. Por favor faça uma troca de perfil ou pressione \"Activar Perfil\" em PerfilLocal.
+ TrocaPerfil em falta. Por favor faça uma troca de perfil ou pressione \"Ativar Perfil\" em PerfilLocal.Contagem BólusContagem TBRA bomba não é capaz de basais temporárias
@@ -711,7 +681,7 @@
Autosens desabilitado nas preferênciasSMB desactivado nas configuraçõesUAM desactivado nas configurações
- UAM desactivado porque confia no plugin de sensibilidade Oref1
+ UAM desativado porque confia no plugin de sensibilidade Oref1multiplicador de basal máxmultiplicador de basal máx diáriaUm bolus foi injectado nos últimos 3 minutos, saltando SMB
@@ -772,27 +742,26 @@
Resultado cálculos incluídos no Assistente:Mostrar ConfiguraçõesConfigurações gerais
- Activar NSCliente
+ Ativar NSClienteBem-vindo ao assistente de configuração. Vai guiá-lo(a) através do processo de instalação\nConfigurações da bombaLer estadoAlterações devem ser feitas no NSSaltar assistente de configuração
- Pressione o botão abaixo para activar o AndroidAPS para sugerir/fazer alterações basais
+ Pressione o botão abaixo para ativar o AndroidAPS para sugerir/fazer alterações basaisConfigurar plugin APSConfigurar plugin SensibilidadePlugin de Sensibilidade é usado para detecção de sensibilidade e cálculos COB. Para mais info visite:https://github.com/MilosKozak/AndroidAPS/wiki/Sensitivity-detection-and-COB
- NSCliente gere a ligação ao Nightscout. Pode saltar esta parte mas não será possível passar os objectivos até que o configure.
+ NSCliente gere a ligação ao Nightscout. Pode saltar esta parte mas não será possível passar os objetivos até que o configure.Lembre-se: novos perfis de insulina requerem diâmetro de pelo menos 5h. DIA 5–6h no novo perfil é igual ao diâmetro 3h nos antigos perfis de insulina.Configure a fonte das glicemias
- Por favor seleccione a fonte do perfil. Se o paciente é uma criança deverá utilizar perfil NS. Se ninguém o está a seguir no Nightscout provavelmente preferirá um perfil Local. Lembre-se que apenas está a escolher a fonte de perfil. Para o utilizar terá que o activar executando \"Troca Perfil\"
+ Por favor selecione a fonte do perfil. Se o paciente é uma criança deverá utilizar perfil NS. Se ninguém o está a seguir no Nightscout provavelmente preferirá um perfil Local. Lembre-se que apenas está a escolher a fonte de perfil. Para o utilizar terá que o ativar executando \"Troca Perfil\"Seleccione um dos algoritmos disponíveis. Eles são classificados do mais antigo para o mais recente. Algoritmo mais recente é geralmente mais forte e mais agressivo. Assim, se você é novo looper, poderá provavelmente começar com AMA e não com a versão mais recente. Não se esqueça de ler a documentação de OpenAPS e configurá-lo antes de usar.
- Iniciar primeiro objectivo
+ Iniciar primeiro objetivoPermissãoPedir permissãoAplicação precisa de permissão de janela do sistema para notificações
- Aplicação requer permissão de localização para pesquisa BTAplicação necessita da permissão de armazenamento para ser capaz de armazenar ficheiros de registoPedidoConfigurar plugin Insulina
@@ -818,7 +787,7 @@
PersonalizadoLimpar AndroidAPS iniciadoConfigurações encontradas
- Atenção: Se conectar à sua bomba física e activar o perfil, o AndroidAPS irá copiar as definições desse perfil para as definições da bomba, apagando o memorizado na bomba. Por favor verifique que o que preencheu no perfil da app tem os mesmos valores que estão na bomba. Em caso contrario pressione imediatamente cancelar e corrija antes de voltar a ligar à bomba.
+ Atenção: Se conectar à sua bomba física e ativar o perfil, o AndroidAPS irá copiar as definições desse perfil para as definições da bomba, apagando o memorizado na bomba. Por favor verifique que o que preencheu no perfil do app tem os mesmos valores que estão na bomba. Em caso contrário pressione imediatamente cancelar e corrija antes de voltar a ligar à bomba.Dados tratamento incompletosConfigurações de manutençãoEmail destinatário
@@ -864,10 +833,6 @@
Alertas de registoAtivar a emulação TBRUsar bólus prolongados em vez de basais temporárias para contornar o limite de 250%%
- Desactivar vibrações na entrega manual de bólus
- Para bólus e bólus estendidos (só disponível com o firmware Insight 3.x)
- Desactivar vibrações na entrega automática de bólus
- Para SMB e Basal Temp com emulação DBT (só disponível com firmware Insight 3.x)Atraso de desconexão [s]Número de sérieLançar versão de software
@@ -984,7 +949,7 @@
TodoNuncaCondição:
- Acção:
+ Ação:IOB [U]:Glicose [%1$s]:APAGAR
@@ -996,7 +961,7 @@
Detectamos que está a correr uma versão inválida. Loop desactivado!versão antigaversão muito antiga
- Nova versão para pelo menos %1$d dias disponíveis! Retorno a SGB após %2$d dias, o loop será desactivado após %3$d dias
+ Nova versão para pelo menos %1$d dias disponíveis! Retorno a LGS após %2$d dias, o loop será desativado após %3$d dias2hApp Dexcom (com patch)DXCM
@@ -1037,7 +1002,7 @@
COB %1$s %2$.0fNome da TarefaEDITAR
- Escolha um tipo de acção
+ Escolha um tipo de açãoEscolha um tipo de gatilhoGatilhos:REMOVER
@@ -1074,7 +1039,7 @@
PARARSeleccionadoProcura RileyLink
- Activar
+ AtivarNãoA procurarProcura terminada
@@ -1128,7 +1093,7 @@
Frequência da Bomba não suportada.Endereço RileyLink inválido.A bomba detectada não é a mesma que a bomba configurada.
- A configuração de perfis/padrões da basal não éstá atcivada na bomba. Active-a na bomba.
+ A configuração de perfis/padrões da basal não éstá ativada na bomba. Ative-a na bomba.Perfil Basal definido na Bomba está incorrecto (deve ser STD).Tipo de DBT errado definido na bomba (deve ser Absoluto).Máx. Basal definida na Bomba está incorreta (deve ser %1$.2f).
@@ -1144,13 +1109,13 @@
TudoHistórico da Bomba Medtronic
- Nunca contactado
+ Nunca contatadoA acordarErro com comunicaçãoTempo limite para comunicaçãoBomba inacessívelConfiguração inválida
- Activo
+ AtivoA dormirCancelou o Bolus, depois de ele já ter sido definido na Bomba. Uma vez que a Bomba Medtronic não suporta cancelamento, precisará de cancelar manualmente. Coloque a Bomba no modo de Suspender e depois Retome (se ainda quiser cancelar). A aplicação irá obter as alterações, na próxima actualização (em menos de 5 minutos).
@@ -1175,9 +1140,9 @@
Definir BólusAlterar perfil paraAlterar perfil para %1$s
- Última ligação à bomba
- Última ligação à bomba [minutos atrás]
- Última ligação à bomba %1$s %2$s min atrás
+ Última ligação com a bomba
+ Última ligação com a bomba [minutos atrás]
+ Última ligação com a bomba %1$s %2$s min atrásEnviar SMS: %1$sEnviar SMS para todos os númerosEnviar SMS com texto
@@ -1194,22 +1159,16 @@
Aumentar o valor máximo de basal porque a configuração é inferior à sua basal máxima no perfilCorpo da mensagem inválido%1$s FSI: %2$.1f
- %1$.0fg IC: %2$.1f
- %1$.1fg IC: %2$.1f
- %1$d%%Assistente de Bólus
- minNome do Perfil:Seleccionado:Unidades
- Deseja mudar de perfil e descartar as alterações feitas no perfil actual?
- %1$dg
+ Deseja mudar de perfil e descartar as alterações feitas no perfil atual?LigadoDesligado
- Limpar terminado
- Limpar iniciado
- Deseja reiniciar o objectivo? Pode perder seu progresso.
- Alterar Hora e/ou Fuso Horário na Bomba
+ Limpeza terminado
+ Limpeza iniciado
+ Deseja reiniciar o objetivo? Pode perder seu progresso.Nenhuma bomba seleccionadaSeleccione as unidades em que deseja exibir os valoresCarregar as alterações do perfil local para NS
@@ -1217,16 +1176,14 @@
ICFSIALV
- Clone
- Guardar ou repor as alterações actuais primeiro
- Eliminar perfil actual?
+ Guardar ou repor as alterações atuais primeiro
+ Eliminar perfil atual?Criar novo perfil local a partir desta troca de perfil?
- Nome do perfil contém pontos.\nIsso não é suportado pelo NS.\nPerfil não é enviado para o NS.
+ Nome do perfil contém pontos.\nIsso não é suportado pelo NS.\nPerfil não foi enviado para o NS.Valor mais baixo da área de intervalo (apenas exibição)Valor mais alto da área de intervalo (apenas exibição)ReordenarIdade:
- ID:EnviarPerfil mais comum:Nota: Apenas os dados visíveis neste ecrã serão enviados anonimamente. O ID é atribuído a esta instalação do AndroidAPS. Você pode enviar dados novamente se o perfil principal for alterado, mas deixá-lo rodar pelo menos uma semana para tornar o resultado visível no intervalo de tempo. Sua ajuda é apreciada.
@@ -1235,9 +1192,8 @@
Entrada de peso inválida%1$s: Hipo: %2$02d%% Dentro: %3$02d%% Hiper: %4$02d%%]]>Média
- TIR
- Monitor de actividade
- Quer reiniciar as estatísticas de actividade?
+ Monitor de atividade
+ Quer reiniciar as estatísticas de atividade?EstatísticasGlic. AleatóriaGerar dados de Glic. aleatórios (Somente modo de Demonstração)
@@ -1247,9 +1203,9 @@
Evento de automaçãoJá definidoLimpar fila? Todos os dados na fila serão perdidos!
- O uso do Bólus Prolongado irá parar o modo Closed Loop no tempo do bólus prolongado. Quer realmente isso?
- Closed Loop desabilitado por causa da execução do Bólus Prolongado
- BP
+ O uso do Bólus Estendido irá parar o modo Closed Loop no tempo do bólus estendido. Quer realmente isso?
+ Closed Loop desabilitado por causa da execução do Bólus Estendido
+ BE\"VerificadorTelefone\"Menu do GráficoAS
@@ -1260,19 +1216,19 @@
Alertas Bomba Insighta partir da app Autenticador para: %1$s
- Activar Autenticador
- Autenticar comandos usando Uma-Senha-Única que sejam geradas pelo Google Authenticator ou app 2FA similar.
+ Ativar Autenticador
+ Autenticar comandos usando Uma-Password-Única que sejam geradas pelo Google Authenticator ou app 2FA similar.PIN adicional no token final
- Dígitos adicionais que devem ser memorizados e colados no final de cada Uma-Senha-Única que seja gerada
+ Dígitos adicionais que devem ser memorizados e colados no final de cada Uma-Password-Única que seja geradaConfiguração do AutenticadorOTP para verificar:Repor AutenticadoresRepor Chave Autenticador
- Tem certeza de redefinir chave Authenticador? Ele tornará todos os Authenticators configurados actualmente como inválidos, e precisará de os configurar novamente.
- Nova Chave do Autenticador foi gerada! Por favor, use o QRCode actualizado para os autenticadores.
+ Tem certeza de redefinir chave Authenticador? Ele tornará todos os Authenticators configurados atualmente como inválidos, e precisará de os configurar novamente.
+ Nova Chave do Autenticador foi gerada! Por favor, use o QRCode atualizado para os autenticadores.1. Instalar Autenticador2. Pesquise o código para configurar os códigos OTP do AndroidAPS
- 3. Testar Uma-Senha-Única
+ 3. Teste Uma-Password-ÚnicaRepor AutenticadoresInstalar uma app Autenticador que suporte Tokens RFC 6238 TOTP em cada telefone seguidor. Populares aplicativos gratuitos são:\n • Authy\n • o Google Authenticator\n • LastPass Autenticador\n • FreeOTP AutenticadorNÃO PARTILHE este código online!\nUse-o apenas para a instalação da app Autenticador nos telefones seguidores.
@@ -1283,122 +1239,27 @@
Desvio de inclinaçãoFalha na autorizaçãoInsulina absoluta
- Senha Mestre é usada para encriptação da cópia de segurança e substituir segurança na aplicação. Lembre-se dela ou guarde-a em um lugar seguro.
- As senhas não coincidem
- Senha Mestre actual
- Luzes de Estado
+ Password Mestre é usada para encriptação da cópia de segurança e substituir segurança na aplicação. Lembre-se dela ou guarde-a em um lugar seguro.
+ As passwords não coincidem
+ Senha mestra atualCopiar definições do NS
- Copiar definições do NS (se existir)?
- Tema Gráfico Original
- Os botões são sempre exibidos na parte inferior do ecrã
+ Tema original
+ Botões são sempre exibidos na parte inferior da telaMostrador Grande
- Tema gráfico
+ Tema
- Integração de bomba para Omnipod, requer RileyLink (com pelo menos firmware 2.0) dispositivo.
- Sinal Bólus Activado
- Sinal Basal Activado
- Sinal SMB Activado
- Sinal DBT Activado
- Opções de Depuração do Pod habilitadas
- Detecção de DST/Fuso Horário Activado
- Gestão Pod
- Estado do Pod
- %1$.2f U restante
- Mais de 50 U
- Endereço do Pod
- Pod Expira
- Sem info
- Nenhum Pod ligado
- Não inicializado
- Alertas Pod Activos
- Reco Alertas
- Omnipod (433.91 MHz)
- A operação não é possível.\n\nPrecisa configurar o Omnipod primeiro, antes de pode usar esta operação.
- A operação não é possível.\n\n Precisa de esperar alguns minutos, até que AAPS tente definir o perfil para a primeira vez.
- PodInitActionType Ilegal: %1$s
- Nenhum Pod Activo.
- A verificação do comando falhou.
- Ocorreu um erro inesperado. Por favor reporte! (digite: %1$s).
- Falha na comunicação: foram recebidos parâmetros de entrada inválidos.
- Falha na comunicação: tempo limite.
- Falha na comunicação: ocorreu um erro inesperado. Por favor, reporte!
- Falha na comunicação: mensagem de falha de verificação de integridade.
- Falha na comunicação: recebeu um pacote inválido do Pod.
- Falha na comunicação: o Pod está em um estado errado.
- Falha na comunicação: recebeu uma resposta inválida do Pod.
- Falha na comunicação: recebeu uma mensagem com número de sequência inválido do Pod.
- Falha na comunicação: recebeu uma mensagem com um endereço inválido do Pod.
- Falha na comunicação: falha ao descodificar a mensagem do Pod.
- Falha na comunicação: nonce resync falhou.
- Falha na comunicação: nonce fora de sincronização.
- Falha na comunicação: não há dados suficientes recebidos do Pod.
- Uma falha de Pod (%1$03d %2$s) foi detectada. Por favor, desactive o Pod e inicie um novo.
- Falha na comunicação: o Pod devolveu uma resposta de erro.
- Gestão Pod
- Iniciar Pod
- Desactivar Pod
- Repor Pod
- Histórico do Pod
+ Desativado PodDefinir Bólus
- Cancelar Bólus
- Definir Basal Temporária
- Cancelar Basal Temporária (Forçado pelo controlador)
- Cancelar Basal Temporária (Forçado pelo utilizador)
- Definir Programação Basal
- Obter Status do Pod
- Obter Pod Info
- Definir Hora
- Configurar Alertas
- Reconhecer Alertas
- Suspender Administração
- Retomar Administração
- Entrada Desconhecida
+ Definir Basal temporário%1$.1f U
- %1$.1f U, HC=%2$.1f g
- Taxa: %1$.1f U, Duração: %2$d min
- Se pressionar OK, o estado do Pod vai ser forçado a redefinir e você não será capaz de comunicar mais com o Pod. Faça isso somente se você não pode comunicar mais com o Pod. Se ainda pode comunicar com o Pod, por favor, use o Desactivar Pod opção.
- Histórico do Pod não disponível no momento.
- Encher o Pod
- \nPreencher o novo Pod com insulina suficiente para 3 dias.\n\nOuvir dois sinais sonoros a partir do Pod durante o processo de enchimento. Isso indica que a quantidade mínima de 85U foi inserida. Certifique-se de esvaziar completamente a seringa, mesmo depois de ouvir dois sinais sonoros.\n\nDepois de preencher o Pod, por favor, pressione Próximo.\n\nNota: não remova a tampa da agulha do Pod neste momento.
- A Purgar
- A tentar emparelhar com o novo Pod e purgá-lo.\n\nQuando todos os itens forem verificados, pode pressionar Próximo.\n\nNota: por favor, mantenha o Pod muito perto do RileyLink neste momento.
- Anexar o Pod
- \nPrepare o local de infusão. Remova a tampa da agulha do Pod e o adesivo e fixe o Pod no local de infusão.\n\nSe a canula sair, por favor, pressione Cancelar e descarte o seu Pod.\n\nPressione Próximo para inserir a canula e começar a administração da basal.
- A inserir canula
- A tentar definir um plano da basal inicial e inserir canula.\n\nQuando todos os itens estiverem verificados, pode pressionar Próximo.
- Info Pod
- \nO Pod está agora activo.\n\nO seu plano de basal foi programado e a canula foi inserida.\n\nPor favor, verifique se a canula foi inserida correctamente e substitua o seu Pod se você se sente que não.
- Desactivar Pod
- \nPressione Próximo para desactivar o Pod.\n\nNota: Isto irá suspender toda a administração de insulina e desactivar o Pod.
- A Desactivar Pod
- A desactivar o Pod.\n\nQuando todos os itens forem verificados, pode pressionar Próximo.\n\nNota: Se desactivar falhar continuamente, por favor, pressione Cancelar e use o Repor Pod opção para forçar a repor o estado do Pod.
- Pod desactivado.\n\nPor favor, remova o Pod do seu corpo e descarte-o.
- Emparelhar Pod
- Purgar Pod
- Enchimento de CanulaDefinir Perfil Basal
- Cancelar Administração
- Desactivar Pod
+ Desativado Pod
- Integração da Bomba para Omnipod Dash.
- Lembrete Concluir Emparelhamento
- Lembrete Terminar Configuração
- Pod vai expirar em breve
- Pod vai expirar em breve
- Encerramento iminente
- Reservatório baixo
- Alerta desconhecido
- Pode ter falhado ao definir perfil da basal. A administração pode estar suspensa! Por favor, actualize o estado do Pod.
- Pode ter falhado ao definir basal temporária. Se houve uma basal temporária já em execução, pode ter sido cancelada! Por favor, actualize o estado do Pod.
- Pode ter falhado ao definir a hora. A administração pode estar suspensa! Por favor, actualize o estado do Pod.
- Não é possível verificar se o bólus foi bem-sucedido. Por favor, verifique se o Pod está administrar ou cancelar o bólus.
- Estatísticas RL
- Registo de Pulse
diff --git a/app/src/main/res/values-pt-rPT/exam.xml b/app/src/main/res/values-pt-rPT/exam.xml
index 829be46b50..4ce02a40a9 100644
--- a/app/src/main/res/values-pt-rPT/exam.xml
+++ b/app/src/main/res/values-pt-rPT/exam.xml
@@ -1,6 +1,7 @@
O que é verdade sobre DIA?
+ Tópico: Duração da Acção de Insulina (DIA)O valor mínimo é de 3 horas.O valor mínimo é de 5 horas.https://androidaps.readthedocs.io/en/latest/EN/Configuration/Config-Builder.html?#insulin
@@ -121,6 +122,7 @@
App de Loop no iPhone.App Spike no iPhone.https://androidaps.readthedocs.io/en/latest/EN/Children/Children.html
+ Tópico: Factor de Sensibilidade de InsulinaValores elevados de FSI levam a uma administração de menos insulina quando o AAPS corrige Glic alta.Valores baixos de FSI levam a uma administração de menos insulina quando o AAPS corrige Glic alta.Alterar os valores FSI não tem efeito sobre a quantidade de insulina administrada quando a AAPS corrige Glic alta.
@@ -128,6 +130,7 @@
A alteração do valor do FSI no seu perfil é suficiente para aplicar a mudança.https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#insulin-sensitivity-factor-isf-mmol-l-u-or-mg-dl-uhttps://androidaps.readthedocs.io/en/latest/EN/Usage/Profiles.html
+ Tópico: Rácio ICRácios IC mais altos levam a menos insulina administrada para uma dada quantidade de hidratos.Rácios IC mais baixos levam a menos insulina administrada para uma dada quantidade de hidratos.Se tiver 0 COB, alterar o rácio IC irá levar a uma quantidade diferente de insulina para corrigir um determinado valor da Glic.
diff --git a/app/src/main/res/values-pt-rPT/protection.xml b/app/src/main/res/values-pt-rPT/protection.xml
index 1d65b8cf53..2fa347f1b5 100644
--- a/app/src/main/res/values-pt-rPT/protection.xml
+++ b/app/src/main/res/values-pt-rPT/protection.xml
@@ -15,6 +15,8 @@
Sem ProtecçãoProtecçãoA Senha Mestre não está definida!\n\nPor favor, configure Senha Mestre em Preferências (%1$s → %2$s)
+ Reverter Inseguro
+ Para ser eficaz, a protecção biométrica precisa de uma senha mestre definida para reverter.\n\nPor favor, defina uma senha mestre!Senha foi definida!Senha não foi definidaSenha não foi alterada
diff --git a/app/src/main/res/values-pt-rPT/strings.xml b/app/src/main/res/values-pt-rPT/strings.xml
index 3a82cec679..211f12e032 100644
--- a/app/src/main/res/values-pt-rPT/strings.xml
+++ b/app/src/main/res/values-pt-rPT/strings.xml
@@ -164,7 +164,7 @@
Ficheiro não encontradoExportar configuraçõesImportar configurações
- Max U/hr em que uma Temp Basal pode ser definida
+ Max U/h em que uma Temp Basal pode ser definidaEste valor é chamado max basal no contexto do OpenAPSBasal Máxima IOB que OpenAPS pode administrar [U]Este valor é denominado Max IOB em contexto OpenAPS \nEste é o valor máximo de insulina em [U] que APS pode administrar de uma vez.
@@ -300,7 +300,7 @@
Purgar/PreencherPor favor certifique-se que o valor corresponde ao especificado para o seu conjunto de infusão!Outro
- Valor Padrão Insulina Purgar/Preencher.
+ Valores Padrão Purgar/Preencher InsulinaBotão 1Botão 2Botão 3
@@ -359,7 +359,7 @@
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 (FSI) e baixar o valor alvo de glicose no sangue.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
+ Autosens ajusta os alvos, tambémValor 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.Valor padrão: 2\nBolus Snooze (pausa após bolus) é executado depois de realizar um bolus por refeição Desta maneira o algoritmo não irá contrariar com temporárias baixas logo depois da refeição. O valor padrão é 2; Então uma duração de acção da insulina (DIA) de 5h significa que o Bolus Snooze irá ser gradualmente reduzido ao longo de 2,5 horas = 5/2 = DIA/Valor padrão.Valor padrão: 3.0 para detecção avançada de refeições (AMA) ou 8.0 para super micro bolus (SMB). Esta é a configuração padrão para o calculo de quanto varia a cada 5 min a glucose no sangue (BG) devido à absorção de hidratos de carbono. O padrão é 3mg/ dl / 5min. Isso afeta a rapidez com que decaem as calorias no corpo (COB), e quantos hidratos de carbono terão de ser considerados no cálculo da previsão de BG, quando é que a BG está baixando mais do que espectável ou não subindo como espectável.
@@ -575,6 +575,7 @@
UAM SMB máx minutosMax minutos de basal para limitar SMB para UAMMínimo De Hidratos Necessários Para Sugestão
+ Mínimo de gramas de hidratos de carbono ara exibir um alerta de sugestão de hidratos. As sugestões de hidratos abaixo deste número não activarão uma notificação.Enviar dados Glic. para xDrip+Seleccionar 640g/Eversense como fonte no xDrip+Glic ClienteNS
@@ -662,7 +663,9 @@
Notificar no SMBMostrar SMB no relogio como bolus normal.Criar anúncios dos erros
+ Criar anúncios a partir dos alertas de hidratos necessáriosCriar um anúncio no Nightscout para caixas de diálogo de erro e alertas locais (também podem ser visualizados em Careportal sob tratamentos)
+ Criar anúncios Nightscout para alertas de hidratos necessáriosMostrar a predições na face do relogio.PrevisãoEscolha de Dados
@@ -792,7 +795,7 @@
PermissãoPedir permissãoAplicação precisa de permissão de janela do sistema para notificações
- Aplicação requer permissão de localização para pesquisa BT
+ Aplicação necessita de permissão de localização para pesquisa Bluetooth e identificação Wi-FiAplicação necessita da permissão de armazenamento para ser capaz de armazenar ficheiros de registoPedidoConfigurar plugin Insulina
@@ -1226,6 +1229,7 @@
Valor mais alto da área de intervalo (apenas exibição)ReordenarIdade:
+ Peso:ID:EnviarPerfil mais comum:
@@ -1401,4 +1405,6 @@
Não é possível verificar se o bólus foi bem-sucedido. Por favor, verifique se o Pod está administrar ou cancelar o bólus.Estatísticas RLRegisto de Pulse
+ Comparar com o perfil atual
+ Assistente de Perfil
diff --git a/app/src/main/res/values-ro-rRO/exam.xml b/app/src/main/res/values-ro-rRO/exam.xml
index c5d07b7e4b..be73b91f50 100644
--- a/app/src/main/res/values-ro-rRO/exam.xml
+++ b/app/src/main/res/values-ro-rRO/exam.xml
@@ -1,6 +1,7 @@
Care afirmații despre DIA sunt adevărate?
+ Subiect: Durata de acțiune a insulineiValoarea minimă este de 3 ore.Valoarea minimă este de 5 ore.https://androidaps.readthedocs.io/en/latest/EN/Configuration/Config-Builder.html?#insulin
@@ -19,28 +20,149 @@
Ce trebuie să faceți atunci când deconectați pompa?Apăsați ‘Deconectează pompa’ astfel încât AAPS să știe că nu se va putea livra insulină.Apăsați ‘Suspendă bucla’ astfel încât AAPS să dezactiveze bucla atâta timp cât pompa este deconectată.
+ Nu modificați nimic în AAPS, doar deconectați pompa.https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#other-settingsSubiect: Setări AndroidAPSCare sunt cele mai bune metode de a păstra o copie de siguranță a setărilor AndroidAPS?Export pe un mediu de stocare local folosind meniul Mentenanță.Stocarea fișierului exportat într-un alt loc, precum email, Dropbox, Google drive…Exportarea imedia după instalarea AAPS.
+ Exportați-le după ce modificați setările.
+ Exportaţi-le după finalizarea unui obiectiv.Exportarea atunci când ați terminat setarea inițială.https://androidaps.readthedocs.io/en/latest/EN/Usage/ExportImportSettings.htmlhttps://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#what-emergency-equipment-is-recommended-to-take-with-meSubiect: Citiri zgomotoase ale glicemiei
+ Ce ar trebui făcut dacă valorile CGM sunt nesigure?
+ Nimic, AAPS se va descurca.
+ Dezactivați bucla închisă pentru a evita supra-dozarea.Se va înlocui senzorul CGM.Se va opri telefonul.https://androidaps.readthedocs.io/en/latest/EN/Usage/Smoothing-Blood-Glucose-Data-in-xDrip.html#smoothing-blood-glucose-data
+ Verificați dacă aplicația de senzor normalizează valorile glicemiei.Subiect: Exerciții fiziceCum puteți ajuta sistemul să facă față exercițiilor fizice?
+ Folosirea funcționalității de țintă temporară.Se va face un schimb de profil de sub 100%.Se va face o schimbare de profil de peste 100%.Se va opri bucla.
+ Setați o valoare-țintă temporară de activitate înainte de a începe exercițiul fizic.
+ Setarea unei valori-țintă temporare pentru activitate după ce exercițiul fizic a început generează rezultate mai proaste decât dacă ar fi fost setată înainte.https://androidaps.readthedocs.io/en/latest/EN/Usage/temptarget.html#activity-temp-target
+ Subiect: Dezactivarea/Suspendarea buclei închise
+ Primesc insulina atunci când bucla închisă este dezactivata/suspendata?
+ Da, insulina bazală este livrată în continuare.Nu, livrarea de insulină este oprită.Subiect: Bazală, ISF și testare ICCând ar trebui să validez bazalele, ISF și valorile IC?Înainte de pornirea buclei.
+ Atunci când hipoglicemiile apar frecvent.
+ Atunci când hiperglicemiile apar frecvent.https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#androidaps-settings
+ Subiect: Cerințe preliminare
+ Ce am nevoie?
+ Profil validat (ratele bazale, IC, ISF, DIA).
+ Un calculator pentru a crea APK-ul.
+ Un telefon compatibil.
+ O mașină.
+ Nightscout pentru a finaliza obiectivele.
+ Un cont Tidepool.
+ Un cont de Google.
+ Un cont de Github.
+ Experiență în dezvoltarea Android.
+ O pompă MiniMed 670G.
+ https://androidaps.readthedocs.io/en/latest/EN/Module/module.html
+ Un ceas inteligent.
+ Un sistem de senzori CGM compatibil.
+ Subiect: Actualizarea AndroidAPS
+ Ce este adevărat?
+ Aveți nevoie de Git instalat.
+ Actualizați când o versiune noua este lansată și aveți timp să o instalați.
+ Ar trebui sa folosiți aceleași chei de semnare.
+ Nu actualizați niciodată dacă sistemul funcționează corect.
+ Cereți unui prieten noul APK.
+ https://androidaps.readthedocs.io/en/latest/EN/Installing-AndroidAPS/Update-to-new-version.html#update-to-a-new-version-or-branch
+ Subiect: Rezolvarea Problemelor
+ Unde căutați ajutor?
+ Alăturaţi-vă grupului de Facebook AndroidAPS.
+ Citiți documentația AndroidAPS.
+ Vizitați canalul AndroidAPS pe Gitter.
+ Vizitați AndroidAPS Google support
+ Vă consultați cu diabetologul.
+ https://androidaps.readthedocs.io/en/latest/EN/Installing-AndroidAPS/Update-to-new-version.html#troubleshooting
+ https://www.facebook.com/groups/AndroidAPSUsers/
+ https://gitter.im/MilosKozak/AndroidAPS
+ Subiect: Plugin-uri pentru Insulină
+ Ce brand de insulină poate fi folosit cu plugin-ul ‘Ultra-Rapid-Oref’?
+ Fiasp®
+ NovoRapid®
+ Humalog®
+ Actrapid®
+ https://androidaps.readthedocs.io/en/latest/EN/Configuration/Config-Builder.html#insulin
+ Subiect: Plugin-uri pentru sensibilitate
+ Ce algoritm de sensibilitate are un interval de timp configurabil?
+ https://androidaps.readthedocs.io/en/latest/EN/Configuration/Sensitivity-detection-and-COB.html
+ Ce plugin de sensibilitate trebuie folosit pentru funcționalitatea UAM?
+ Subiect: Erori la introducerea carbohidraților
+ Ce ar trebui sa faceți dacă ați introdus o cantitate de carbohidrați greșită?
+ În secțiunea Tratamente, ștergeți intrarea greșită. Introduceți din nou cantitatea de carbohidrați.
+ Adăugați unități false de insulina folosind funcția de Reîncărcare
+ Subiect: Alimente cu Lipide și Proteine
+ Cum procedați atunci când mâncarea conține o cantitate mare de lipide și\/sau proteine?
+ Convertiți lipidele și proteinele în carbohidrați și folosiți funcționalitatea de \"Carbohidrați extinși\".
+ Convertiți lipidele și proteinele în carbohidrați și adăugați-i la calcularea bolusului.
+ Folosiți bolusul extins pentru a acoperi lipidele și proteinele.
+ https://androidaps.readthedocs.io/en/latest/EN/Usage/Extended-Carbs.html
+ Subiect: Monitorizarea la distanţă
+ Cum puteți monitoriza AAPS-ul copilului dumneavoastră de la distanță?
+ Folosind un site Nightscout.
+ Aplicația Dexcom Flollow dacă folosiți aplicația Dexcom originală (doar valorile glicemiei).
+ Dexcom Follow dacă folosiți aplicația xDrip.
+ Aplicația xDrip în modul \"follower\".
+ Aplicația Loop pe iPhone.
+ Aplicația Spike pe iPhone.
+ https://androidaps.readthedocs.io/en/latest/EN/Children/Children.html
+ Subiect: Factorul de Sensibilitate la Insulină (ISF)
+ Valorile ISF mai mari determina livrarea unor cantități mai mici de insulina atunci când AAPS corectează hiperglicemiile.
+ Valorile ISF mai mici determina livrarea unor cantități mai mici de insulina atunci când AAPS corectează hiperglicemiile.
+ Modificările ISF nu au nicio influență asupra cantităților de insulina livrate atunci când AAPS corectează hiperglicemiile.
+ Trebuie sa setați ISF in Preferințe.
+ Schimbarea valorii ISF în profil este suficientă pentru a produce efecte.
+ https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#insulin-sensitivity-factor-isf-mmol-l-u-or-mg-dl-u
+ https://androidaps.readthedocs.io/en/latest/EN/Usage/Profiles.html
+ Subiect: Rația insulină-carbohidrați (IC)
+ Valorile IC mai mari determină o cantitate mai mică de insulină livrată pentru o cantitate dată de carbohidrați.
+ Valorile IC mai mici determină o cantitate mai mică de insulină livrată pentru o cantitate dată de carbohidrați.
+ Dacă aveți 0 CoB (carbohidrați activi), schimbarea IC va determina modificarea cantității de insulină livrată pentru a corecta glicemia.
+ Valoarea IC va fi diferita dacă considerați 1BE (unitate de pâine) ca 10g sau 12g glucide.
+ IC înseamnă: Câte unități de pâine sunt acoperite de 1 unitate de insulină.
+ https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#carbohydrate-to-insulin-ratio-cr-g-u
+ Subiect: Schimbarea de profil
+ Atunci când se specifică 90% la schimbarea de profil…
+ Ratele bazale vor fi cu 10% mai mari.
+ Ratele bazale vor fi cu 10% mai mici.
+ Valoarea IC va fi cu 10% mai mare.
+ Valoarea IC va fi cu 10% mai mica.
+ Valoarea ISF va fi cu 10% mai mare.
+ Valoarea ISF va fi cu 10% mai mică.
+ Veți primi în total cam cu 10% mai puțină insulină.
+ Intervalul-ţintă va fi cu 10% mai mare.
+ Intervalul-ţintă va fi cu 10% mai mic.
+ Doar valoarea-ţintă inferioară va fi cu 10% mai mică.
+ https://androidaps.readthedocs.io/en/latest/EN/Usage/Profiles.html?highlight=profile%20switch#profile-switch
+ Dacă va treziți cu o ora mai devreme decât de obicei, cum veți anunța AAPS de schimbarea din programul dumneavoastră?
+ Inițiați o schimbare de profil cu decalaj de timp de 1
+ Inițiați o schimbare de profil cu decalaj de timp de -1
+ https://androidaps.readthedocs.io/en/latest/EN/Usage/Profiles.html?highlight=profile%20switch#timeshift
+ Inițiați o schimbare de profil cu decalaj de timp de 60
+ Inițiați o schimbare de profil cu decalaj de timp de -60
+ https://androidaps.readthedocs.io/en/latest/EN/Module/module.html#good-individual-dosage-algorithm-for-your-diabetes-therapy
+ Subiect: Ajutor pentru ratele bazale
+ Unde căutați ajutor pentru a seta ratele bazale etc.
+ Medicul dumneavoastră diabetolog
+ Google
+ Facebook
+ Alte tratamente
+ AAPS reduce ratele bazale pentru a crește glicemia. Medicamentele din grupa inhibitorilor SGLT2 (gliflozins) pot împiedica această creștere a glicemiei si, prin urmare, pot mări riscul de cetoacidoza diabetica (DKA).
+\nBranduri comune sunt: Invokana®, Forxiga®, Jardiance®, Steglatro®, Suglat®, Apleway®, Deberza®, Synjardy®, Vokanamet®, Xigduo®.\n\nDeclar pe propria răspundere că nu voi lua asemenea medicamente cât folosesc AAPS sau că voi dezactiva bucla închisă înainte de le folosi.
diff --git a/app/src/main/res/values-ro-rRO/objectives.xml b/app/src/main/res/values-ro-rRO/objectives.xml
index cdf5312139..80b2837283 100644
--- a/app/src/main/res/values-ro-rRO/objectives.xml
+++ b/app/src/main/res/values-ro-rRO/objectives.xml
@@ -20,7 +20,9 @@
O săptămână de buclă închisă încheiată cu succes în condițiile introducerii regulate a carbohidrațilorActivarea unor facilități adiționale pentru funcționarea în timpul zilei, cum ar fi advanced meal assistSe activează opțiuni pentru uzul în timpul zilei, cum ar fi SMB
+ Activarea automatizăriiTrebuie sa citiți wiki și să măriți maxIOB pentru a obține SMB corect! Un start bun este maxIOB=media bolusurilor + 3x maxima bazalei din zi
+ Citiți documentația despre cum funcționează automatizarea. Setați primele reguli simple. În loc de a acționa, lăsați AAPS doar să afișeze notificări. Când sunteți siguri ca automatizarea acționează la momentul potrivit, înlocuiți notificările cu acțiuni reale.(https://androidaps.readthedocs.io/en/latest/EN/Usage/Automation.html)Glicemie disponibilă în NSStarea pompei disponibilă în NSAcțiuni manuale
@@ -35,10 +37,12 @@
Afișați conținutul facilității BuclăFolosiți funcția scală prin apăsarea prelungă a graficului glicemieiIntroduceţi
+ Dacă aveți cel puțin 3 luni de experiență cu un sistem în bucla închisă, puteți beneficia de un cod pentru a sări peste obiective. Pentru mai multe detalii vezi: https://androidaps.readthedocs.io/en/latest/EN/Usage/Objectives.html#skip-objectives.Cod acceptatCod invalidDovediți-vă cunoștințeleStudiați și răspundeți corect la întrebări
+ Posibilitatea de a răspunde este dezactivată până la: %1$sRăspuns greșit!Următoarea nefinalizatăSolicită codul: %1$s
diff --git a/app/src/main/res/values-ro-rRO/protection.xml b/app/src/main/res/values-ro-rRO/protection.xml
index 3ea04e700d..03b44e5135 100644
--- a/app/src/main/res/values-ro-rRO/protection.xml
+++ b/app/src/main/res/values-ro-rRO/protection.xml
@@ -1,2 +1,25 @@
-
+
+ Autentificarea este obligatorie
+ Puneți degetul pe cititorul de amprente pentru a verifica identitatea
+ Protecţie setări
+ Protecție aplicație
+ Protecție bolus
+ Parola principală
+ Parolă setări
+ Parolă aplicație
+ Parolă bolus
+ Deblochează setările
+ Biometric
+ Parolă personalizată
+ Fără protecţie
+ Protecţie
+ Parola principală nu este setată!\n\nVă rugăm să vă setaţi parola principală în Preferinţe (%1$s → %2$s)
+ Trecere la modul nesecurizat biometric
+ Pentru a fi eficientă, protecţia biometrică are nevoie de o parolă principală pentru regresie.\n\nVă rugăm să setaţi o parolă principală!
+ Parola a fost setată!
+ Parola nu a fost setată
+ Parola nu a fost modificată
+ Parolă ștearsă!
+ Introduceți parola aici
+
diff --git a/app/src/main/res/values-ro-rRO/strings.xml b/app/src/main/res/values-ro-rRO/strings.xml
index 8a63c33001..268988058d 100644
--- a/app/src/main/res/values-ro-rRO/strings.xml
+++ b/app/src/main/res/values-ro-rRO/strings.xml
@@ -36,6 +36,7 @@
Integrare cu pompă virtuală, pentru persoanele ce folosesc terapia cu penIntegrare cu pompele ce nu au încă un driver software disponibil (Buclă Deschisă)Sensibilitatea este calculată la fel ca în algoritmul Oref0, dar se poate specifica un interval de timp în trecut. Absorbția minimă de carbohidrați este calculată din parametrul echivalent, stabilit în preferințe.
+ Sensibilitatea este calculată folosind datele din ultimele 8 sau 24 ore (se alege cea mai mare din ele), iar carbohidrații (când nu sunt absorbiți) sunt ignorați după timpul specificat în preferințe. Plugin-ul calculează și UAM.Sensibilitatea este calculată ca o medie ponderată a deviațiilor. Deviațiile noi au o importanță mai mare. Absorbția minimă de carbohidrați este calculată în funcție de parametrul absorbție maximă de carbohidrați, stabilit în preferințe. Acest algoritm este cel mai rapid atunci când sensibilitatea la insulină este fluctuantă.Primește valorile glicemiei din aplicația Eversense modificată.Primește valorile glicemiei din aplicația Glimp.
@@ -73,6 +74,7 @@
ProfilDate despre masăRezultat
+ Rezultat: %1$s %2$sNu există date despre glicemieSolicităGlicemie
@@ -109,6 +111,7 @@
Modul inactivÎncălcare a unei limiteEroare la livrarea bolusului
+ Valoare bazală [%]Acceptă noua bazală temporară:TratamentCalculator
@@ -123,10 +126,12 @@
Mod APSBuclă închisăBuclă deschisă
+ Suspendare la hipoglicemieBuclă inactivăDezactivează buclaActivează buclaO nouă sugestie este disponibilă
+ Sugestie carbohidrațiVersiune incompatibilă de NightscoutBUCLĂ DEZACTIVATĂ DATORITĂ CONSTRÂNGERILORIOB bazală
@@ -143,6 +148,7 @@
ProcentAbsolutNote
+ Ora evenimentuluiProfilIntrodus deTip glicemie
@@ -158,10 +164,48 @@
Nu am găsit fișierulExportă setărileImportă setările
- Maximul de unități de insulină pe oră poate fi setat la
+ Valoarea maximă în U/ora a unei rate bazale temporare poate fi setată laAceastă valoare este denumită bazală maximă în contextul OpenAPSMaximul de bazală IOB pe care o poate livra OpenAPS[U]Această valoare este denumită Max IOB în contextul OpenAPS\nAceastă valoare este implicit nulă (0). După câteva zile sau săptămâni, în funcție de opțiunea dumneavoastră, puteți ajusta acest număr.
+ Vi se va solicita parola principală, care va fi utilizată pentru criptare la exportarea setărilor.
+ Vi se va solicita parola principală, care este necesară pentru a decripta setările importate.
+ Exportarea a eșuat! Preferințele NU au fost exportate!
+ Importarea a eșuat! Preferințele NU au fost importate!
+ Selectați fișierul pentru import
+ Verificați preferințele înainte de a le importa:
+ Preferințele nu pot fi importate!
+ Preferințele nu ar trebui importate!
+ Explicații problemele de import…
+ Detalii probleme de import
+ Importă
+ Importă oricum (PERICOL!)
+ Preferințele au fost create folosind o alta versiune de AAPS (%1$s) în timp ce versiunea curentă este: %2$s.\n\nCâteva setări pot lipsi sau pot fi invalide - după import verificați și actualizați preferințele.
+ Preferințele au fost create pe un dispozitiv diferit. Este în regulă să le importați de pe un alt telefon, dar asigurați-vă că sunt corecte!
+ Folosiți un format neactualizat dintr-o versiune veche de AAPS care nu este securizat! Folosiți acest format în ultima instanța, doar dacă nu aveți un export în formatul curent de JSON.
+ Preferințele importate sunt vechi de %1$s zile deja! Poate aveți preferințe mai recente sau ați ales un fișier greșit? Amintiți-vă să exportați preferințele în mod regulat!
+ Format dată invalid!
+ Preferințe dintr-o versiune minoră diferită a aplicației. Este OK dacă importați după upgrade, dar verificați după import că preferințele sunt corecte!
+ Formatul fișierului
+ Creat la
+ Versiune AAPS
+ Versiune de build
+ Exporta numele dispozitivului pacientului
+ Exportarea modelului dispozitivului
+ Criptarea fișierului
+ Format vechi de export
+ Format nou criptat
+ Format nou pentru debug (necriptat)
+ Format de export necunoscut
+ Fişier de setări modificat
+ Fișierul de setări este securizat
+ Folosirea formatului nesecurizat, necriptat pentru setări
+ Eroare format JSON, lipsește un câmp necesar (format, conținut, metadate sau securitate)
+ Eroare la decriptare, parola dată nu poate decripta fişierul
+ Suma de control a fişierului (hash) lipseşte, nu se poate verifica autenticitatea setărilor!
+ Fişierul a fost modificat după export!
+ Eroare la decriptare, parsarea preferinţelor a eşuat!
+ Eroare la decriptare, parola furnizată este invalidă sau fişierul de setări a fost modificat! Se poate întâmpla ca fişierul importat să fi fost exportat cu o parolă master diferită.Licență utilizator finalNU FOLOSIȚI PENTRU LUAREA DE DECIZII MEDICALE. NU EXISTĂ RĂSPUNDERE LEGALĂ SAU GARANȚIE PENTRU ACEST PROGRAM, ÎN LIMITA APLICABILĂ A LEGII. CU EXCEPTIA CAZURILOR SPECIAL MENȚIONATE, AUTORUL ȘI/SAU ALTE PERSOANE IMPLICATE PUN LA DISPOZIȚIE ACEST PROGRAM FĂRĂ NICIO GARANȚIE, IMPLICITĂ SAU EXPLICITĂ, INCLUZÂND, DAR FĂRĂ A SE LIMITA LA, GARANȚIILE LEGATE DE VĂNZAREA SAU POTRIVIREA PENTRU UN ANUME SCOP. ÎNTREGUL RISC LEGAT DE CALITATEA ȘI PERFORMANȚA ACESTUI PROGRAM CAD ÎN RESPONSABILITATEA DUMNEAVOASTRĂ. DACĂ PROGRAMUL SE DOVEDEȘTE A FI DEFECT, DUMNEAVOASTRĂ VĂ ASUMAȚI ÎNTREAGA RĂSPUNDERE, PRECUM ȘI TOATE COSTURILE LEGATE DE SERVICE, REPARAȚII SAU CORECȚII.ÎNȚELEG ȘI SUNT DE ACORD
@@ -189,6 +233,8 @@
Bucla este activată%1$.2f este limitată la %2$.2fValoarea %1$s este mai mare decât limita stabilită
+ Pompă deconectată
+ Pompă reconectatăComanda de la distanță nu este permisăBolus de la distanță nu este disponibil. Încearcă din nou mai târziu.Pentru a iniția bazala de %1$.2fU/h pentru %2$d min trimiteți codul %3$s
@@ -225,7 +271,6 @@
Pregătire/umplereAsigurați-vă că aveți cantitatea specificată de instrucțiunile setului de infuzie!Alte
- Pregătire/umplere cu cantitățile standard de insulină.Buton 1Buton 2Buton 3
@@ -280,7 +325,6 @@
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 laValoare 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.Valoare implicită: 2\nAmânarea bolusului este aplicată după ce ați făcut un bolus de masă, astfel încât bucla să nu reacționeze cu ținte bazale temporare scăzute atunci când tocmai ați mâncat. Exemplul de față și valoarea implicită sunt 2; astfel o durată de acțiune a insulinei (DIA) de 3 ore duce la o eliminare treptată a întârzierii setării bazalelor temporare după 1.5 ore (3DIA/2).Valoarea implicită: 3.0 (AMA) sau 8.0 (SMB). Aceasta este o setare pentru impactul implicit al carbohidraţilor pe 5 minute. Valoarea implicită este 3mg/dl la 5min. Aceasta influenţează rapiditatea cu care se scade COB şi modul în care se ia în calcul absorbţia carbohidraţilor în calcularea valorilor estimate ale glicemiei, atunci când glicemia este în scădere mai mare decât se aştepta sau nu creşte atât de repede pe cât se aştepta.
@@ -325,6 +369,7 @@
AdultAdult rezistent la insulinăVă rog să selectați vârsta pacientului în vederea stabilirii valorilor maxime admise de siguranță
+ Numele pacientuluiGlimp%1$s necesită excluderea din lista de optimizare a bateriei pentru o funcționare corespunzătoareBuclă suspendată
@@ -677,7 +722,6 @@
Începeți primul obiectivPermisiuneSolicitați permisiunea
- Aplicația necesită permisiune de localizare pentru scanarea prin BTAplicația necesită permisiune de acces la mediul de stocare pentru a putea înregistra jurnaleleCerințăConfigurați plugin insulină
@@ -895,6 +939,8 @@
Long:Dist [m]:Nume:
+ %1$s %2$s
+ Când Ultimul bolusUltimul bolus acum %1$s %2$s minCOB
@@ -1055,15 +1101,33 @@
%1$d%%Asistent bolusaremin
+ Unități%1$dg
+ Pornit
+ Oprit
+ Ştergeţi profilul curent?
+ Vârstă:
+ Greutate:
+ Glicemie
+ Instrumente
+ Pod Mgmt
+ %1$.2f U rămase
+ Peste 50 U
+ Inițializare Pod
+ Dezactivare Pod
+ Resetare Pod
+ Istoric Pod
+ Configurare alerte
+ Confirmare alerte
+ Amorsare
diff --git a/app/src/main/res/values-ru-rRU/exam.xml b/app/src/main/res/values-ru-rRU/exam.xml
index 0489d0b9cd..732da76770 100644
--- a/app/src/main/res/values-ru-rRU/exam.xml
+++ b/app/src/main/res/values-ru-rRU/exam.xml
@@ -1,6 +1,7 @@
Что верно о длительности работы инсулина DIA?
+ Тема: продолжительность действия инсулина DIAМинимальное значение 3 часа.Минимальное значение 5 часов.https://androidaps.readthedocs.io/en/latest/EN/Configuration/Config-Builder.html?#insulin
@@ -123,6 +124,7 @@ Context | Edit Context
Приложения Loop на iPhone.Приложения Spike на iPhone.https://androidaps.readthedocs.io/en/latest/EN/Children/Children.html
+ Тема: Коэффициент чувствительности к инсулинуБолее высокие значения ISF приводят к меньшей подаче инсулина, когда AAPS исправляет высокую ГК.Более низкие значения ISF приводят к меньшей подаче инсулина, когда AAPS исправляет высокую ГК.Изменение значений ISF никак не влияет на количество инсулина, подаваемого AAPS при коррекции высокой ГК.
@@ -130,6 +132,7 @@ Context | Edit Context
Изменение значения ISF в профиле достаточно для применения изменений.https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#insulin-sensitivity-factor-isf-mmol-l-u-or-mg-dl-uhttps://androidaps.readthedocs.io/en/latest/EN/Usage/Profiles.html
+ Тема: Соотношение инсулин-углеводы ICБолее высокие коэффициенты инсулин-углеводы IC приводят к уменьшению инсулина на данное количество углеводов.Более низкие коэффициенты инсулин-углеводы IC приводят к уменьшению инсулина на данное количество углеводов.Если у вас 0 активных углеводов COB, изменение соотношения инсулин-углеводы IC приведет к иному количеству инсулина на коррекцию данной ГК.
diff --git a/app/src/main/res/values-ru-rRU/protection.xml b/app/src/main/res/values-ru-rRU/protection.xml
index 6198bca5d9..ebc9b10c25 100644
--- a/app/src/main/res/values-ru-rRU/protection.xml
+++ b/app/src/main/res/values-ru-rRU/protection.xml
@@ -15,6 +15,8 @@
Без защитыЗащитаНе задан главный пароль!\n\nЗадайте главный пароль в настройках (%1$s → %2$s)
+ Небезопасный резервный вход
+ Биометрической защите требуется главный пароль для безопасности.\n\n Установите главный пароль!Пароль задан!Пароль не заданПароль не был изменён
diff --git a/app/src/main/res/values-ru-rRU/strings.xml b/app/src/main/res/values-ru-rRU/strings.xml
index 2ddb9ef219..1a5f1a6a56 100644
--- a/app/src/main/res/values-ru-rRU/strings.xml
+++ b/app/src/main/res/values-ru-rRU/strings.xml
@@ -164,7 +164,7 @@
файл не найденэкспорт настроекимпорт настроек
- макс разрешенный врем базал Е/ч
+ Максимальное значение ед./ч для скорости временного базалав контексте OpenAPS называется макс базалмакс базал активн инс подаваемый с OpenAPS (ед)Эта величина называется Max IOB (макс активн инс) в OpenAPS\n. Это макс кол-во инсулина в ед. [U] которое APS может подать единовременно.
@@ -300,7 +300,7 @@
прайм/заполнениеубедитесь что количество соответствует характеристикам вашей инфузионной системыдругое
- заполнить стандартное количество инсулина
+ Заполнить стандартное количество инсулинакнопка 1кнопка 2кнопка 3
@@ -797,7 +797,7 @@ Context | Edit Context
Права доступаЗапросить права доступаПриложению требуется разрешение системного окна для уведомлений
- Приложение нуждается в разрешении на доступ к определению местоположения для сканирования bluetooth
+ Приложению требуется разрешение на доступ к местоположению для сканирования BT и идентификации WiFiПриложение нуждается в разрешении доступа к хранению данных для хранения лог-файловЗапросНастроить плагин инсулина
@@ -1231,6 +1231,7 @@ Context | Edit Context
Большее значение диапазона целевых значений (только для дисплея)Повторный заказВозраст:
+ Вес:Идентификатор:ОтправитьНаиболее часто применяемый профиль:
diff --git a/app/src/main/res/values-sk-rSK/exam.xml b/app/src/main/res/values-sk-rSK/exam.xml
index ecbfd646d9..07c257c64c 100644
--- a/app/src/main/res/values-sk-rSK/exam.xml
+++ b/app/src/main/res/values-sk-rSK/exam.xml
@@ -1,6 +1,7 @@
Čo je pravda o DIA?
+ Téma: Doba trvania účinku inzulínuMinimálna hodnota je 3 hodiny.Minimálna hodnota je 5 hodín.https://androidaps.readthedocs.io/en/latest/CROWDIN/cs/Configuration/Config-Builder.html#inzulin
@@ -121,6 +122,7 @@
Aplikácia Loop na iPhone.Aplikácia Spike na iPhone.https://androidaps.readthedocs.io/en/latest/CROWDIN/cs/Children/Children.html
+ Téma: Citlivosť na inzulínVyššie hodnoty ISF vedú k menšej dávke inzulínu pri korigovaní vysokej glykémie.Nižšie hodnoty ISF vedú k menšej dávke inzulínu pri korigovaní vysokej glykémie.Zmena hodnoty ISF nemá vplyv na dávku inzulínu, keď AAPS koriguje vysokú glykémiu.
@@ -128,6 +130,7 @@
Zmena hodnoty citlivosti vo vašom profile stačí k tomu, aby se táto zmena použila.https://androidaps.readthedocs.io/en/latest/CROWDIN/cs/Getting-Started/FAQ.html#korekcni-faktor-citlivost-na-inzulin-isf-mmol-l-u-nebo-mg-dl-uhttps://androidaps.readthedocs.io/en/latest/CROWDIN/cs/Usage/Profiles.html
+ Téma: Inzulínovo-sacharidový pomerVyššie hodnoty IC vedú k menšej dávke inzulínu ku rovnakému množstvu sacharidov.Nižšie hodnoty IC vedú k menšej dávke inzulínu ku rovnakému množstvu sacharidov.Pokiaľ máte 0 COB, zmena inzulíno-sacharidového pomeru povedie k inému množstvu inzulínu vydanému pre korekciu glykémie.
diff --git a/app/src/main/res/values-sk-rSK/protection.xml b/app/src/main/res/values-sk-rSK/protection.xml
index 99bcd7815b..18f88d1b9c 100644
--- a/app/src/main/res/values-sk-rSK/protection.xml
+++ b/app/src/main/res/values-sk-rSK/protection.xml
@@ -15,6 +15,8 @@
Bez ochranyOchranaHlavné heslo nie je nastavené!\n\nProsím nastavte svoje hlavné heslo v nastaveniach (%1$s → %2$s)
+ Nezabezpečené záložné riešenie
+ Aby bolo biometrické zabezpečenie účinné, je potrebné pre záložné riešenie nastaviť hlavné heslo.\n\nProsím nastavte hlavné heslo!Heslo nastavené!Heslo nie je nastavenéHeslo nezmenené
diff --git a/app/src/main/res/values-sk-rSK/strings.xml b/app/src/main/res/values-sk-rSK/strings.xml
index 61b125dbb9..f9ca56d06f 100644
--- a/app/src/main/res/values-sk-rSK/strings.xml
+++ b/app/src/main/res/values-sk-rSK/strings.xml
@@ -131,6 +131,7 @@
Deaktivovať uzavretý okruhAktivovať uzavretý okruhDostupné nové doporučenie
+ Návrh sacharidovNepodporovaná verzia NighscoutuUzavretý okruh deaktivovaný obmedzenímBazálny IOB
@@ -163,7 +164,7 @@
Súbor nenájdenýExportovať nastaveniaImportovať nastavenia
- Maximálny povolený dočasný bazál [JI/h]
+ Max. JI/h, ktoré je možné nastaviť pre dočas. bazálTáto hodnota je nazývaná v OpenAPS ako \"max basal\"Maximálny bazálny IOB, ktorý OpenAPS môže podať [JI]Táto hodnota je nazývaná v kontexte OpenAPS ako max IOB, je to maximálne množstvo inzulínu v [JI], ktoré APS môže naraz podať.
@@ -252,6 +253,11 @@
Uzavretý okruh je aktivovaný%1$.2f obmedzené na %2$.2fHodnota %1$s je mimo prednastavený rozsah
+ Ak chcete pripojiť pumpu, odpovedzte pomocou SMS s kódom %1$s
+ Pripojenie k pumpe zlyhalo
+ Ak chcete odpojiť pumpu na %1d minút, odpovedzte pomocou SMS s kódom %2$s
+ Pumpa odpojená
+ Pumpa bola znovu pripojená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$.2fJI/h na %2$d min odpovedzte SMS s kódom %3$s
@@ -294,7 +300,7 @@
Plnenie/doplňovanieProsím uistite sa, že hodnota zodpovedá špecifikácií Vášho setu!Iné
- Štandardné hodnoty plnenia/doplňovania.
+ Štandardné množstvo inzulínu pre Plnenie/DoplňovanieTlačidlo 1Tlačidlo 2Tlačidlo 3
@@ -353,7 +359,7 @@
Š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 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
+ Autosense takisto upravuje cieľovú glykémiuŠtandardná hodnota: zapnuté\nToto nastavenie hovorí, že automatická detekcia citlivosti môže meniť tiež cieľové hodnoty glykémií.Štandardná hodnota: 2\nToto nastavenie hovorí, po akú časť z hodnoty DIA uzavretý okruh po boluse čaká a nereaguje na zmeny glykémií (tu 3DIA/2 = 1,5h).Štandardná hodnota: 3.0 (AMA), alebo 8.0 (SMB) mg/dl/5min. Táto hodnota definuje minimálnu časť vstrebaných sacharidov za každých 5min. Táto hodnota ovplyvňuje výpočet COB.
@@ -555,6 +561,7 @@
Výstraha pri nedostupných hodnotách glykémieVýstraha pri nedostupnej pumpeLimit pre nedostupnosť pumpy [min]
+ Výstraha, ak sú požadované sacharidyUrgentný alarmINFOEversense aplikácia (upravená)
@@ -567,6 +574,8 @@
Maximálny počet minút bazálu, ku ktorým se limituje SMBUAM SMB max. minútMaximální počet minút bazálu, ku ktorým sa limituje SMB pre UAM
+ Minimálne množstvo sacharidov potrebných pre návrh
+ Minimálne množstvo sacharidov v gramoch, ktoré spustí upozornenie návrhu sacharidov. Množstvo sacharidov pod touto hodnotou nespustí oznámenie.Odosielať glykémie do xDrip+V xDrip+ vyberte zdroj dát 640g/EversenseGlykémie z NS
@@ -646,11 +655,17 @@
Množstvo inzulínu, ktoré má byť pridané po stlačení tlačidlaNie je možné spustiť aplikáciu CGM. Uistite sa, že je nainštalovaná.CGM
+ Ignorovať 5m
+ Ignorovať 15m
+ Ignorovať 30m
+ pož.Prehliadač histórieOznámenie pri SMBUkazovať SMB na hodinkách ako normálny bolus.Vytvárať z chýb oznámenia
+ Vytvoriť oznámenie z výstrahy požadovaných sacharidovVytvárať oznámenia pre chyby a lokálne výstrahy v NS (zobraziteľné v starostlivosti pod ošetrením)
+ Pre výstrahy požadovaných sacharidov vytvoriť oznámenie v NightscouteZobrazovať predikcie na hodinkách.PredikciaMožnosti dát
@@ -780,7 +795,7 @@
PovolenieVyžiadať si povolenieAplikácia vyžaduje pre oznámenia systémové oprávnenie
- Aplikácia vyžaduje povolenie \"polohy\", aby mohla vyhľadávať BT zariadenia
+ Aplikácia vyžaduje oprávnenie polohy, pre vyhľadávanie BT a identifikáciu WiFiAplikácia vyžaduje prístup k úložisku, aby mohla ukladať logyPožiadavkaNastavenie inzulínového modulu
@@ -1214,6 +1229,7 @@
Horná hodnota v oblasti cieľového rozsahu (iba zobrazovanie)Zmena poradiaVek:
+ Váha:ID:OdoslaťNajčastejšie používaný profil:
diff --git a/app/src/main/res/values-sv-rSE/exam.xml b/app/src/main/res/values-sv-rSE/exam.xml
index e7ddb72089..10e769312a 100644
--- a/app/src/main/res/values-sv-rSE/exam.xml
+++ b/app/src/main/res/values-sv-rSE/exam.xml
@@ -1,6 +1,7 @@
Vad är sant om DIA?
+ Ämne: InsulindurationMinimivärdet är 3 timmar.Minimivärdet är 5 timmar.https://androidaps.readthedocs.io/en/latest/EN/Configuration/Config-Builder.html?#insulin
@@ -121,6 +122,7 @@
Appen Loop för iPhone.Appen Spike för iPhone.https://androidaps.readthedocs.io/en/latest/EN/Children/Children.html
+ Ämne: Insulinkänslighetsfaktor (ISF)Högre ISF-värden leder till mindre insulintillförsel när AAPS korrigerar för högt BG.Lägre ISF-värden leder till mindre insulintillförsel när AAPS korrigerar för högt BG.Ändringar av ISF-värden påverkar inte det insulin som levereras när AAPS korrigerar för högt BG.
@@ -128,6 +130,7 @@
Om du ändrar ISF-värdet i din profil är det tillräckligt för att tillämpa ändringen.https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#insulin-sensitivity-factor-isf-mmol-l-u-or-mg-dl-uhttps://androidaps.readthedocs.io/en/latest/EN/Usage/Profiles.html
+ Ämne: KH-kvotHögre IC-kvot leder till mindre insulin som levereras för en given mängd kolhydrater.Lägre IC-kvot leder till mindre insulin som levereras för en given mängd kolhydrater.Om du har 0 COB, kommer en förändring av IC-kvoten leda till en annan mängd insulin för att korrigera din BG-nivå.
diff --git a/app/src/main/res/values-sv-rSE/protection.xml b/app/src/main/res/values-sv-rSE/protection.xml
index 2586a94122..a890fea8cf 100644
--- a/app/src/main/res/values-sv-rSE/protection.xml
+++ b/app/src/main/res/values-sv-rSE/protection.xml
@@ -15,6 +15,8 @@
Inget skyddSkyddHuvudlösenord har inte angetts.\n\nAnge huvudlösenord i Inställningar (%1$s → %2$s)
+ Osäker alternativ autentisering
+ Biometrisk verifiering kräver att huvudlösenordet är inställt (som reservlösning).\n\nVänligen sätt ett huvudlösenord!Lösenord sparat!Lösenord inte inställtLösenordet har inte ändrats
diff --git a/app/src/main/res/values-sv-rSE/strings.xml b/app/src/main/res/values-sv-rSE/strings.xml
index 5659d7aec2..b039d62802 100644
--- a/app/src/main/res/values-sv-rSE/strings.xml
+++ b/app/src/main/res/values-sv-rSE/strings.xml
@@ -165,7 +165,7 @@ Eversense-appen.
Hittade inte filenExportera inställningarImportera inställningar
- Max enheter per timme
+ Max enheter per timme som en temp basal kan sättas tillDetta värde kallas max basal inom OpenAPSMaximal basal IOB som OpenAPS kan ge [E]Detta värde kallas Max IOB i OpenAPS. Det är ställt till noll från start. Efter flera dagar till veckor, beroende på hur du känner, kan du välja att justera denna.
@@ -301,7 +301,7 @@ Eversense-appen.
FörfyllningFörsäkra dig om att mängden motsvarar det som är specificerat för just ditt infusionsset.Övrigt
- Standardvärden för förfyllning av slang och kanyl.
+ Standardvärden för påfyllning/förfyllning Knapp 1Knapp 2Knapp 3
@@ -796,7 +796,7 @@ Eversense-appen.
BehörighetBe om behörighetApplikationen behöver förhöjd behörighet för aviseringar
- Appen behöver behörighet att använda Platsinfo för att kunna söka efter Bluetooth-enheter
+ Appen behöver platsåtkomst för bluetooth- och WiFi-identifieringAppen behöver behörighet att använda Lagring för att kunna spara loggfilerBegäranKonfigurera insticksprogram för insulin
@@ -1230,6 +1230,7 @@ Eversense-appen.
Övre värdet för målområde (endast visning)Ändra ordningÅlder:
+ Vikt:ID:SparaDen vanligaste profilen:
@@ -1405,4 +1406,6 @@ Eversense-appen.
Det går inte att verifiera om bolusen är slutförd. Verifiera att din pod leverarar bolus eller avsluta bolus.RL-statistikPulslogg
+ Jämför med aktuell profil
+ Profilguide
diff --git a/app/src/main/res/values-tr-rTR/strings.xml b/app/src/main/res/values-tr-rTR/strings.xml
index 496fdef5db..e3da965f38 100644
--- a/app/src/main/res/values-tr-rTR/strings.xml
+++ b/app/src/main/res/values-tr-rTR/strings.xml
@@ -154,7 +154,6 @@
Dosya bulunamadıDışarı aktarma ayarlarıİçe aktarma ayarları
- Max Ü/sa geçici Bazal ayarlanabilirBu değer OpenAPS\'te \"max bazal\" olarak adlandırılırOpenAPS\'nin vermesine izin verilen maksimum bazal IOB (Aktif insülin) [U]Bu değere OpenAPS bağlamında Max IOB denir.\nAPS\'de [U] bir kerede verilen maksimum insülin.
@@ -204,7 +203,6 @@
Hazırla/doldurLütfen miktarın infüzyon setinizin özelliklerine uygun olduğundan emin olun!Diğer
- Hazırla/doldur standart insülin miktarları.Düğme 1Düğme 2Düğme 3
@@ -257,7 +255,6 @@
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: 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 ayarlarVarsayı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.Varsayılan değer: 2\nEğer sadece öğününüzü yerseniz, öğün bolusu alındıktan sonra bolus ertelemesi devreye girer, bu şekilde Döngü karşı bir tetbir olarak geçici bazal oranını azaltmasın diye. Buaradaki örnekte olduğu gibi varsayılan 2; 3 saat DIA olacak şekilde bolus ertelemesi kademeli olarak 1,5 saat üzeri (3DIA/2=1,5).Varsayılan değer: 3.0 (AMA) Gelişmiş Yemek Asistanı veya 8.0 (SMB) Super Micro Bolus. Bu 5 dakika başına varsayılan karbonhidrat emilimi için bir ayardır. Standart değer AMA için 3mg/dl/5dk aynı şekilde SMB 8mg/dl/5dk dir.
@@ -640,7 +637,6 @@ Aktif Karbonhidratın ne kadar hızlı sindirildiğine ve KŞ\'nin beklenenden d
İlk hedefinize başlayınYetkiİzin için sorunuz
- Uygulama Bluetooth taraması için konum izni gerektiriyorUygulama, log dosyalarını depolayabilmek için depolama izni gerektiriyorİstekİnsülin eklentisini yapılandır
diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml
index bfbda9b2e9..f566195d3e 100644
--- a/app/src/main/res/values-zh-rCN/strings.xml
+++ b/app/src/main/res/values-zh-rCN/strings.xml
@@ -155,7 +155,6 @@
找不到文件导出配置导入配置
- 临时基础率可以设置的最大值 U/小时这个值在 OpenAPS被称为最大基础率OpenAPS通过基础率可以输注的IOB活性胰岛素的最大值[U]这个值在OpenAPS中被成为最大IOB\n这是APS单次可以输注的胰岛素的最大值[U]
@@ -222,7 +221,6 @@
充盈请确保数量和输液器里的药量匹配其他
- 充盈标准数量的胰岛素按钮1按钮2按钮3
@@ -277,7 +275,6 @@
默认值: 4 这是另一个的关键 OpenAPS 安全阀值, 日最大基础率的3倍,当前基础率的4倍,这是建议的安全阀值。这意味着你的基础率, 无论你的泵上的最大基础率设置的多少,也 不能超过你的当前基础率的4倍。这是为了防止人们在了解该算法的工作原理之前进入危险的领域 。同样, 默认值为 4倍; 大多数人将永远不需要调整, 而是更有可能需要调整其他设置,默认值: 1.2 \n 这是 autosens 的安全阀值 对 autosens ( 很快autotune) 比率的高值设置最大增加20%% 最大限制, 这反过来决定了 autosens 可以调整的基础率的上限值, 可以调整的胰岛素敏感系数的下限值, 以及它可以设置血糖目标的下限值。默认值: 0.7 \n 这是autosens 的另一个安全阈值, 。这个值决定了 autosens 可以调整的基础率的下限值, 可以调整的胰岛素敏感系数的上限值, 以及它可以设置血糖目标的上限值。
- Autosens 也调整目标血糖缺省值:是\n 这是用来允许 autosens调整血糖目标,还有 ISF胰岛素敏感系数和基础率这些参数。默认值: 2 \n大剂量snooze是在输注餐时大剂量后开始生效的, 所以在你刚吃完饭的时候, 闭环不会因为你输注了大剂量而减少或停基础。这里的例子和缺省是 2; 因此, 3 小时的DIA(胰岛素持续作用时间) 意味着大剂量snooze将逐步在1. 5小时 (3 DIA/2) 后失效。默认值: 3.0 (AMA) 或者 8.0 (SMB)。这是默认的每5分钟碳水化合物吸收量。默认值为3毫克/dl/5 分钟。 当血糖的下降超过预期时, 或者不像预期的上升的那么多时,这个值就影响了活性碳水化合物的衰减速度, 以及在计算预测未来血糖时假设的碳水化合物吸收量,
@@ -670,7 +667,6 @@
开始你的第一个目标权限请求权限
- 应用程序需要位置权限用于蓝牙扫描应用程序需要存储权限才能存储日志文件请求配置胰岛素插件
diff --git a/app/src/main/res/values/protection.xml b/app/src/main/res/values/protection.xml
index bb09c5ca9e..0b39654d2b 100644
--- a/app/src/main/res/values/protection.xml
+++ b/app/src/main/res/values/protection.xml
@@ -15,6 +15,8 @@
No protectionProtectionMaster password is not set!\n\nPlease set your Master password in Preferences (%1$s → %2$s)
+ Unsecure Fallback
+ In order to be effective, biometric protection needs a master password set for fallback.\n\nPlease set a master password!Password set!Password not set
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index a9f9a21bf7..79231b59fc 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -196,7 +196,7 @@
File not foundExport settingsImport settings
- Max U/hr a Temp Basal can be set to
+ Max U/h a Temp Basal can be set toThis value is called max basal in OpenAPS contextMaximum basal IOB OpenAPS can deliver [U]This value is called Max IOB in OpenAPS context\nThis is maximal insulin in [U] APS can deliver at once.
@@ -345,7 +345,7 @@
Prime/FillPlease make sure the amount matches the specification of your infusion set!Other
- Fill/Prime standard insulin amounts.
+ Fill/Prime standard insulin amountsButton 1Button 2Button 3
@@ -408,7 +408,7 @@
autosens_minDefault 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
- Autosens adjust targets too
+ Autosens adjust targets, tooDefault value: true\nThis is used to allow autosens to adjust BG targets, in addition to ISF and basals.bolussnooze_dia_divisorDefault value: 2\nBolus snooze is enacted after you do a meal bolus, so the loop won’t counteract with low temps when you’ve just eaten. The example here and default is 2; so a 3 hour DIA means that bolus snooze will be gradually phased out over 1.5 hours (3DIA/2).
@@ -949,7 +949,7 @@
PermissionAsk for permissionApplication needs system window permission for notifications
- Application needs location permission for BT scan
+ Application needs location permission for BT scan and WiFi identificationApplication needs storage permission to be able store log filesRequestConfigure Insulin plugin
@@ -1552,5 +1552,7 @@
Unable to verify whether the bolus succeeded. Please verify that your Pod is bolusing or cancel the bolus.RL StatsPulse Log
+ Compare with current profile
+ Profile helper
diff --git a/app/src/main/res/xml/pref_openapssmb.xml b/app/src/main/res/xml/pref_openapssmb.xml
index 252ce1ccf4..f30107ea15 100644
--- a/app/src/main/res/xml/pref_openapssmb.xml
+++ b/app/src/main/res/xml/pref_openapssmb.xml
@@ -18,12 +18,12 @@
validate:testType="floatNumericRange" />
diff --git a/app/src/test/java/info/nightscout/androidaps/danars/comm/DanaRS_Packet_Bolus_Set_Step_Bolus_StartTest.kt b/app/src/test/java/info/nightscout/androidaps/danars/comm/DanaRS_Packet_Bolus_Set_Step_Bolus_StartTest.kt
index 349eeb673b..0247ff9da5 100644
--- a/app/src/test/java/info/nightscout/androidaps/danars/comm/DanaRS_Packet_Bolus_Set_Step_Bolus_StartTest.kt
+++ b/app/src/test/java/info/nightscout/androidaps/danars/comm/DanaRS_Packet_Bolus_Set_Step_Bolus_StartTest.kt
@@ -55,7 +55,7 @@ class DanaRS_Packet_Bolus_Set_Step_Bolus_StartTest : DanaRSTestBase() {
@Before
fun mock() {
- danaRSPlugin = DanaRSPlugin(HasAndroidInjector { AndroidInjector { Unit } }, aapsLogger, rxBus, context, resourceHelper, constraintChecker, profileFunction, activePluginProvider, sp, commandQueue, danaPump, detailedBolusInfoStorage, fabricPrivacy, dateUtil, Config())
+ danaRSPlugin = DanaRSPlugin(HasAndroidInjector { AndroidInjector { Unit } }, aapsLogger, rxBus, context, resourceHelper, constraintChecker, profileFunction, activePluginProvider, sp, commandQueue, danaPump, detailedBolusInfoStorage, fabricPrivacy, dateUtil)
Mockito.`when`(constraintChecker.applyBolusConstraints(anyObject())).thenReturn(Constraint(0.0))
}
}
\ No newline at end of file
diff --git a/app/src/test/java/info/nightscout/androidaps/danars/comm/DanaRS_Packet_Notify_Delivery_Rate_DisplayTest.kt b/app/src/test/java/info/nightscout/androidaps/danars/comm/DanaRS_Packet_Notify_Delivery_Rate_DisplayTest.kt
index 0ec1dd5911..66ac024330 100644
--- a/app/src/test/java/info/nightscout/androidaps/danars/comm/DanaRS_Packet_Notify_Delivery_Rate_DisplayTest.kt
+++ b/app/src/test/java/info/nightscout/androidaps/danars/comm/DanaRS_Packet_Notify_Delivery_Rate_DisplayTest.kt
@@ -68,7 +68,7 @@ class DanaRS_Packet_Notify_Delivery_Rate_DisplayTest : DanaRSTestBase() {
@Before
fun mock() {
- danaRSPlugin = DanaRSPlugin(HasAndroidInjector { AndroidInjector { Unit } }, aapsLogger, rxBus, context, resourceHelper, constraintChecker, profileFunction, activePluginProvider, sp, commandQueue, danaPump, detailedBolusInfoStorage, fabricPrivacy, dateUtil, Config())
+ danaRSPlugin = DanaRSPlugin(HasAndroidInjector { AndroidInjector { Unit } }, aapsLogger, rxBus, context, resourceHelper, constraintChecker, profileFunction, activePluginProvider, sp, commandQueue, danaPump, detailedBolusInfoStorage, fabricPrivacy, dateUtil)
danaPump.bolusingTreatment = Treatment(packetInjector)
}
}
\ No newline at end of file
diff --git a/app/src/test/java/info/nightscout/androidaps/data/ProfileTest.kt b/app/src/test/java/info/nightscout/androidaps/data/ProfileTest.kt
index ac4988d8ac..a0776e8365 100644
--- a/app/src/test/java/info/nightscout/androidaps/data/ProfileTest.kt
+++ b/app/src/test/java/info/nightscout/androidaps/data/ProfileTest.kt
@@ -57,7 +57,7 @@ class ProfileTest : TestBaseWithProfile() {
JSONAssert.assertEquals(okProfile, p.data, false)
Assert.assertEquals(3.0, p.dia, 0.01)
Assert.assertEquals(TimeZone.getTimeZone("UTC"), p.timeZone)
- Assert.assertEquals("00:30", p.format_HH_MM(30 * 60))
+ Assert.assertEquals("00:30", Profile.format_HH_MM(30 * 60))
val c = Calendar.getInstance()
c[Calendar.HOUR_OF_DAY] = 1
c[Calendar.MINUTE] = 0
diff --git a/app/src/test/java/info/nightscout/androidaps/interfaces/ConstraintsCheckerTest.kt b/app/src/test/java/info/nightscout/androidaps/interfaces/ConstraintsCheckerTest.kt
index e4f2e86bbd..9956d09295 100644
--- a/app/src/test/java/info/nightscout/androidaps/interfaces/ConstraintsCheckerTest.kt
+++ b/app/src/test/java/info/nightscout/androidaps/interfaces/ConstraintsCheckerTest.kt
@@ -118,7 +118,7 @@ class ConstraintsCheckerTest : TestBaseWithProfile() {
objectivesPlugin = ObjectivesPlugin(injector, aapsLogger, resourceHelper, activePlugin, sp, Config())
comboPlugin = ComboPlugin(injector, aapsLogger, rxBus, resourceHelper, profileFunction, treatmentsPlugin, sp, commandQueue, context)
danaRPlugin = DanaRPlugin(injector, aapsLogger, rxBus, context, resourceHelper, constraintChecker, activePlugin, sp, commandQueue, danaPump, dateUtil, fabricPrivacy)
- danaRSPlugin = DanaRSPlugin(injector, aapsLogger, rxBus, context, resourceHelper, constraintChecker, profileFunction, activePluginProvider, sp, commandQueue, danaPump, detailedBolusInfoStorage, fabricPrivacy, dateUtil, Config())
+ danaRSPlugin = DanaRSPlugin(injector, aapsLogger, rxBus, context, resourceHelper, constraintChecker, profileFunction, activePluginProvider, sp, commandQueue, danaPump, detailedBolusInfoStorage, fabricPrivacy, dateUtil)
insightPlugin = LocalInsightPlugin(injector, aapsLogger, rxBus, resourceHelper, treatmentsPlugin, sp, commandQueue, profileFunction, nsUpload, context, uploadQueue, Config(), dateUtil)
openAPSSMBPlugin = OpenAPSSMBPlugin(injector, aapsLogger, rxBus, constraintChecker, resourceHelper, profileFunction, context, activePlugin, treatmentsPlugin, iobCobCalculatorPlugin, hardLimits, profiler, fabricPrivacy)
openAPSAMAPlugin = OpenAPSAMAPlugin(injector, aapsLogger, rxBus, constraintChecker, resourceHelper, profileFunction, context, activePlugin, treatmentsPlugin, iobCobCalculatorPlugin, hardLimits, profiler, fabricPrivacy)
diff --git a/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/actions/ActionProfileSwitchPercentTest.kt b/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/actions/ActionProfileSwitchPercentTest.kt
index 1cc417276e..dd324e3373 100644
--- a/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/actions/ActionProfileSwitchPercentTest.kt
+++ b/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/actions/ActionProfileSwitchPercentTest.kt
@@ -38,7 +38,7 @@ class ActionProfileSwitchPercentTest : ActionsTestBase() {
}
@Test fun iconTest() {
- Assert.assertEquals(R.drawable.icon_actions_profileswitch, sut.icon())
+ Assert.assertEquals(R.drawable.ic_actions_profileswitch, sut.icon())
}
@Test fun doActionTest() {
diff --git a/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/actions/ActionProfileSwitchTest.kt b/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/actions/ActionProfileSwitchTest.kt
index f51e667682..569ab4d0da 100644
--- a/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/actions/ActionProfileSwitchTest.kt
+++ b/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/actions/ActionProfileSwitchTest.kt
@@ -116,6 +116,6 @@ class ActionProfileSwitchTest : ActionsTestBase() {
}
@Test fun iconTest() {
- Assert.assertEquals(R.drawable.icon_actions_profileswitch, sut.icon())
+ Assert.assertEquals(R.drawable.ic_actions_profileswitch, sut.icon())
}
}
\ No newline at end of file
diff --git a/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/actions/ActionStartTempTargetTest.kt b/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/actions/ActionStartTempTargetTest.kt
index fe4abf1d7c..0bf99824ec 100644
--- a/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/actions/ActionStartTempTargetTest.kt
+++ b/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/actions/ActionStartTempTargetTest.kt
@@ -24,7 +24,6 @@ class ActionStartTempTargetTest : ActionsTestBase() {
@Before
fun setup() {
- PowerMockito.mockStatic(MainApp::class.java)
`when`(resourceHelper.gs(R.string.starttemptarget)).thenReturn("Start temp target")
sut = ActionStartTempTarget(injector)
@@ -42,7 +41,7 @@ class ActionStartTempTargetTest : ActionsTestBase() {
}
@Test fun iconTest() {
- Assert.assertEquals(R.drawable.icon_cp_cgm_target, sut.icon())
+ Assert.assertEquals(R.drawable.ic_cp_cgm_target, sut.icon())
}
@Test fun doActionTest() {
diff --git a/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/actions/ActionsTestBase.kt b/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/actions/ActionsTestBase.kt
index 5d56382e0b..84e90208ed 100644
--- a/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/actions/ActionsTestBase.kt
+++ b/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/actions/ActionsTestBase.kt
@@ -2,6 +2,7 @@ package info.nightscout.androidaps.plugins.general.automation.actions
import dagger.android.AndroidInjector
import dagger.android.HasAndroidInjector
+import info.nightscout.androidaps.Constants
import info.nightscout.androidaps.TestBaseWithProfile
import info.nightscout.androidaps.data.PumpEnactResult
import info.nightscout.androidaps.interfaces.ActivePluginProvider
@@ -9,11 +10,14 @@ import info.nightscout.androidaps.interfaces.CommandQueueProvider
import info.nightscout.androidaps.plugins.aps.loop.LoopPlugin
import info.nightscout.androidaps.plugins.bus.RxBusWrapper
import info.nightscout.androidaps.plugins.configBuilder.ConfigBuilderPlugin
+import info.nightscout.androidaps.plugins.general.automation.elements.InputTempTarget
import info.nightscout.androidaps.plugins.general.smsCommunicator.SmsCommunicatorPlugin
import info.nightscout.androidaps.plugins.profile.local.LocalProfilePlugin
import info.nightscout.androidaps.plugins.pump.virtual.VirtualPumpPlugin
import info.nightscout.androidaps.utils.sharedPreferences.SP
+import org.junit.Before
import org.mockito.Mock
+import org.mockito.Mockito.`when`
import org.powermock.core.classloader.annotations.PrepareForTest
@PrepareForTest(VirtualPumpPlugin::class, RxBusWrapper::class, LocalProfilePlugin::class, SmsCommunicatorPlugin::class, ConfigBuilderPlugin::class)
@@ -25,8 +29,8 @@ open class ActionsTestBase : TestBaseWithProfile() {
@Mock lateinit var virtualPumpPlugin: VirtualPumpPlugin
@Mock lateinit var loopPlugin: LoopPlugin
@Mock lateinit var activePlugin: ActivePluginProvider
- @Mock lateinit var localProfilePlugin : LocalProfilePlugin
- @Mock lateinit var smsCommunicatorPlugin : SmsCommunicatorPlugin
+ @Mock lateinit var localProfilePlugin: LocalProfilePlugin
+ @Mock lateinit var smsCommunicatorPlugin: SmsCommunicatorPlugin
var injector: HasAndroidInjector = HasAndroidInjector {
AndroidInjector {
@@ -87,7 +91,14 @@ open class ActionsTestBase : TestBaseWithProfile() {
it.aapsLogger = aapsLogger
it.resourceHelper = resourceHelper
}
+ if (it is InputTempTarget) {
+ it.profileFunction = profileFunction
+ }
}
}
+ @Before
+ fun mock() {
+ `when`(profileFunction.getUnits()).thenReturn(Constants.MGDL)
+ }
}
\ No newline at end of file
diff --git a/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/elements/InputTempTargetTest.kt b/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/elements/InputTempTargetTest.kt
index d98ca75f1c..b137a8ef9b 100644
--- a/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/elements/InputTempTargetTest.kt
+++ b/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/elements/InputTempTargetTest.kt
@@ -1,10 +1,12 @@
package info.nightscout.androidaps.plugins.general.automation.elements
import info.nightscout.androidaps.Constants
+import info.nightscout.androidaps.interfaces.ProfileFunction
import info.nightscout.androidaps.plugins.general.automation.triggers.TriggerTestBase
import org.junit.Assert
import org.junit.Test
import org.junit.runner.RunWith
+import org.mockito.Mock
import org.powermock.modules.junit4.PowerMockRunner
@RunWith(PowerMockRunner::class)
diff --git a/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/triggers/TriggerBgTest.kt b/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/triggers/TriggerBgTest.kt
index b628f6035a..4d8e2b5442 100644
--- a/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/triggers/TriggerBgTest.kt
+++ b/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/triggers/TriggerBgTest.kt
@@ -90,7 +90,7 @@ class TriggerBgTest : TriggerTestBase() {
@Test
fun iconTest() {
- Assert.assertEquals(Optional.of(R.drawable.icon_cp_bgcheck), TriggerBg(injector).icon())
+ Assert.assertEquals(Optional.of(R.drawable.ic_cp_bgcheck), TriggerBg(injector).icon())
}
private fun generateOneCurrentRecordBgData(): List {
diff --git a/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/triggers/TriggerProfilePercentTest.kt b/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/triggers/TriggerProfilePercentTest.kt
index 9a03087c4e..eccbf1a3e2 100644
--- a/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/triggers/TriggerProfilePercentTest.kt
+++ b/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/triggers/TriggerProfilePercentTest.kt
@@ -69,7 +69,7 @@ class TriggerProfilePercentTest : TriggerTestBase() {
}
@Test fun iconTest() {
- Assert.assertEquals(Optional.of(R.drawable.icon_actions_profileswitch), TriggerProfilePercent(injector).icon())
+ Assert.assertEquals(Optional.of(R.drawable.ic_actions_profileswitch), TriggerProfilePercent(injector).icon())
}
@Test fun friendlyNameTest() {
diff --git a/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/triggers/TriggerTestBase.kt b/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/triggers/TriggerTestBase.kt
index 2b35932914..bda0b5c532 100644
--- a/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/triggers/TriggerTestBase.kt
+++ b/app/src/test/java/info/nightscout/androidaps/plugins/general/automation/triggers/TriggerTestBase.kt
@@ -6,9 +6,11 @@ import dagger.android.HasAndroidInjector
import info.nightscout.androidaps.TestBaseWithProfile
import info.nightscout.androidaps.db.BgReading
import info.nightscout.androidaps.interfaces.ActivePluginProvider
+import info.nightscout.androidaps.interfaces.ProfileFunction
import info.nightscout.androidaps.plugins.bus.RxBusWrapper
import info.nightscout.androidaps.plugins.general.automation.AutomationPlugin
import info.nightscout.androidaps.plugins.general.automation.elements.InputBg
+import info.nightscout.androidaps.plugins.general.automation.elements.InputTempTarget
import info.nightscout.androidaps.plugins.general.automation.elements.StaticLabel
import info.nightscout.androidaps.plugins.iob.iobCobCalculator.GlucoseStatus
import info.nightscout.androidaps.plugins.iob.iobCobCalculator.IobCobCalculatorPlugin
@@ -71,6 +73,9 @@ open class TriggerTestBase : TestBaseWithProfile() {
if (it is InputBg) {
it.profileFunction = profileFunction
}
+ if (it is InputTempTarget) {
+ it.profileFunction = profileFunction
+ }
if (it is GlucoseStatus) {
it.aapsLogger = aapsLogger
it.iobCobCalculatorPlugin = iobCobCalculatorPlugin
diff --git a/app/src/test/java/info/nightscout/androidaps/plugins/general/nsclient/NsClientReceiverDelegateTest.kt b/app/src/test/java/info/nightscout/androidaps/plugins/general/nsclient/NsClientReceiverDelegateTest.kt
index b0441c289f..b3a275d255 100644
--- a/app/src/test/java/info/nightscout/androidaps/plugins/general/nsclient/NsClientReceiverDelegateTest.kt
+++ b/app/src/test/java/info/nightscout/androidaps/plugins/general/nsclient/NsClientReceiverDelegateTest.kt
@@ -14,13 +14,11 @@ import org.junit.Assert
import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith
-import org.mockito.ArgumentMatchers
import org.mockito.ArgumentMatchers.anyBoolean
import org.mockito.ArgumentMatchers.anyInt
import org.mockito.ArgumentMatchers.anyLong
import org.mockito.ArgumentMatchers.anyString
import org.mockito.Mock
-import org.mockito.Mockito
import org.mockito.Mockito.`when`
import org.powermock.api.mockito.PowerMockito
import org.powermock.core.classloader.annotations.PrepareForTest
@@ -51,12 +49,12 @@ class NsClientReceiverDelegateTest : TestBase() {
@Test fun testCalculateStatusChargingState() {
PowerMockito.mockStatic(SP::class.java)
- Mockito.`when`(sp.getBoolean(ArgumentMatchers.anyInt(), ArgumentMatchers.anyBoolean())).thenReturn(false)
+ `when`(sp.getBoolean(anyInt(), anyBoolean())).thenReturn(false)
var ev = EventChargingState(true, 0)
Assert.assertTrue(sut!!.calculateStatus(ev))
ev = EventChargingState(false, 0)
Assert.assertTrue(sut!!.calculateStatus(ev))
- Mockito.`when`(sp.getBoolean(ArgumentMatchers.anyInt(), ArgumentMatchers.anyBoolean())).thenReturn(true)
+ `when`(sp.getBoolean(anyInt(), anyBoolean())).thenReturn(true)
ev = EventChargingState(true, 0)
Assert.assertTrue(sut!!.calculateStatus(ev))
ev = EventChargingState(false, 0)
@@ -67,24 +65,24 @@ class NsClientReceiverDelegateTest : TestBase() {
PowerMockito.mockStatic(SP::class.java)
// wifiOnly = false
// allowRoaming = false as well
- Mockito.`when`(sp.getBoolean(ArgumentMatchers.anyInt(), ArgumentMatchers.anyBoolean())).thenReturn(false)
- Mockito.`when`(sp.getString(ArgumentMatchers.anyInt(), ArgumentMatchers.anyString())).thenReturn("")
+ `when`(sp.getBoolean(anyInt(), anyBoolean())).thenReturn(false)
+ `when`(sp.getString(anyInt(), anyString())).thenReturn("")
val ev = EventNetworkChange()
ev.ssid = ""
ev.mobileConnected = true
ev.wifiConnected = true
Assert.assertTrue(sut!!.calculateStatus(ev))
ev.ssid = "test"
- Mockito.`when`(sp.getString(ArgumentMatchers.anyInt(), ArgumentMatchers.anyString())).thenReturn("\"test\"")
+ `when`(sp.getString(anyInt(), anyString())).thenReturn("test")
Assert.assertTrue(sut!!.calculateStatus(ev))
- ev.ssid = "\"test\""
+ ev.ssid = "test"
Assert.assertTrue(sut!!.calculateStatus(ev))
ev.wifiConnected = false
Assert.assertTrue(sut!!.calculateStatus(ev))
// wifiOnly = true
// allowRoaming = true as well
- Mockito.`when`(sp.getBoolean(ArgumentMatchers.anyInt(), ArgumentMatchers.anyBoolean())).thenReturn(true)
+ `when`(sp.getBoolean(anyInt(), anyBoolean())).thenReturn(true)
ev.wifiConnected = true
Assert.assertTrue(sut!!.calculateStatus(ev))
ev.wifiConnected = false
@@ -92,39 +90,39 @@ class NsClientReceiverDelegateTest : TestBase() {
// wifiOnly = false
// allowRoaming = false as well
- Mockito.`when`(sp.getBoolean(ArgumentMatchers.anyInt(), ArgumentMatchers.anyBoolean())).thenReturn(false)
+ `when`(sp.getBoolean(anyInt(), anyBoolean())).thenReturn(false)
ev.wifiConnected = false
ev.roaming = true
Assert.assertTrue(!sut!!.calculateStatus(ev))
// wifiOnly = false
// allowRoaming = true
- Mockito.`when`(sp.getBoolean(R.string.key_ns_wifionly, false)).thenReturn(false)
- Mockito.`when`(sp.getBoolean(R.string.key_ns_allowroaming, true)).thenReturn(true)
+ `when`(sp.getBoolean(R.string.key_ns_wifionly, false)).thenReturn(false)
+ `when`(sp.getBoolean(R.string.key_ns_allowroaming, true)).thenReturn(true)
ev.wifiConnected = false
ev.roaming = true
Assert.assertTrue(sut!!.calculateStatus(ev))
// wifiOnly = true
// allowRoaming = true
- Mockito.`when`(sp.getBoolean(R.string.key_ns_wifionly, false)).thenReturn(true)
- Mockito.`when`(sp.getBoolean(R.string.key_ns_allowroaming, true)).thenReturn(true)
+ `when`(sp.getBoolean(R.string.key_ns_wifionly, false)).thenReturn(true)
+ `when`(sp.getBoolean(R.string.key_ns_allowroaming, true)).thenReturn(true)
ev.wifiConnected = false
ev.roaming = true
Assert.assertTrue(!sut!!.calculateStatus(ev))
// wifiOnly = true
// allowRoaming = true
- Mockito.`when`(sp.getBoolean(R.string.key_ns_wifionly, false)).thenReturn(true)
- Mockito.`when`(sp.getBoolean(R.string.key_ns_allowroaming, true)).thenReturn(true)
+ `when`(sp.getBoolean(R.string.key_ns_wifionly, false)).thenReturn(true)
+ `when`(sp.getBoolean(R.string.key_ns_allowroaming, true)).thenReturn(true)
ev.wifiConnected = true
ev.roaming = true
Assert.assertTrue(sut!!.calculateStatus(ev))
// wifiOnly = false
// allowRoaming = false
- Mockito.`when`(sp.getBoolean(R.string.key_ns_wifionly, false)).thenReturn(false)
- Mockito.`when`(sp.getBoolean(R.string.key_ns_allowroaming, true)).thenReturn(false)
+ `when`(sp.getBoolean(R.string.key_ns_wifionly, false)).thenReturn(false)
+ `when`(sp.getBoolean(R.string.key_ns_allowroaming, true)).thenReturn(false)
ev.wifiConnected = true
ev.roaming = true
Assert.assertTrue(sut!!.calculateStatus(ev))
diff --git a/app/src/test/java/info/nightscout/androidaps/plugins/iob/iobCobCalculatorPlugin/GlucoseStatusTest.kt b/app/src/test/java/info/nightscout/androidaps/plugins/iob/iobCobCalculator/GlucoseStatusTest.kt
similarity index 97%
rename from app/src/test/java/info/nightscout/androidaps/plugins/iob/iobCobCalculatorPlugin/GlucoseStatusTest.kt
rename to app/src/test/java/info/nightscout/androidaps/plugins/iob/iobCobCalculator/GlucoseStatusTest.kt
index b7b421035b..1f96b86b83 100644
--- a/app/src/test/java/info/nightscout/androidaps/plugins/iob/iobCobCalculatorPlugin/GlucoseStatusTest.kt
+++ b/app/src/test/java/info/nightscout/androidaps/plugins/iob/iobCobCalculator/GlucoseStatusTest.kt
@@ -1,13 +1,10 @@
-package info.nightscout.androidaps.plugins.iob.iobCobCalculatorPlugin
+package info.nightscout.androidaps.plugins.iob.iobCobCalculator
import dagger.android.AndroidInjector
import dagger.android.HasAndroidInjector
import info.nightscout.androidaps.TestBase
import info.nightscout.androidaps.db.BgReading
-import info.nightscout.androidaps.logging.AAPSLogger
import info.nightscout.androidaps.plugins.general.nsclient.data.NSSgv
-import info.nightscout.androidaps.plugins.iob.iobCobCalculator.GlucoseStatus
-import info.nightscout.androidaps.plugins.iob.iobCobCalculator.IobCobCalculatorPlugin
import info.nightscout.androidaps.utils.DateUtil
import info.nightscout.androidaps.utils.T
import org.json.JSONException
diff --git a/app/src/test/java/info/nightscout/androidaps/plugins/iob/iobCobCalculatorPlugin/IobCobCalculatorPluginTest.kt b/app/src/test/java/info/nightscout/androidaps/plugins/iob/iobCobCalculator/IobCobCalculatorPluginTest.kt
similarity index 99%
rename from app/src/test/java/info/nightscout/androidaps/plugins/iob/iobCobCalculatorPlugin/IobCobCalculatorPluginTest.kt
rename to app/src/test/java/info/nightscout/androidaps/plugins/iob/iobCobCalculator/IobCobCalculatorPluginTest.kt
index 93a30ca973..9bb58a0738 100644
--- a/app/src/test/java/info/nightscout/androidaps/plugins/iob/iobCobCalculatorPlugin/IobCobCalculatorPluginTest.kt
+++ b/app/src/test/java/info/nightscout/androidaps/plugins/iob/iobCobCalculator/IobCobCalculatorPluginTest.kt
@@ -1,4 +1,4 @@
-package info.nightscout.androidaps.plugins.iob.iobCobCalculatorPlugin
+package info.nightscout.androidaps.plugins.iob.iobCobCalculator
import dagger.android.AndroidInjector
import dagger.android.HasAndroidInjector
@@ -7,7 +7,6 @@ import info.nightscout.androidaps.db.BgReading
import info.nightscout.androidaps.interfaces.ActivePluginProvider
import info.nightscout.androidaps.plugins.bus.RxBusWrapper
import info.nightscout.androidaps.interfaces.ProfileFunction
-import info.nightscout.androidaps.plugins.iob.iobCobCalculator.IobCobCalculatorPlugin
import info.nightscout.androidaps.plugins.sensitivity.SensitivityAAPSPlugin
import info.nightscout.androidaps.plugins.sensitivity.SensitivityOref1Plugin
import info.nightscout.androidaps.plugins.sensitivity.SensitivityWeightedAveragePlugin
@@ -340,6 +339,7 @@ class IobCobCalculatorPluginTest : TestBase() {
bgReadingList.add(BgReading(injector).date(DateUtil.fromISODateString("2018-09-05T03:50:03Z")).value(100.0))
bgReadingList.add(BgReading(injector).date(DateUtil.fromISODateString("2018-09-05T03:44:57Z")).value(100.0))
iobCobCalculatorPlugin.bgReadings = bgReadingList
+ iobCobCalculatorPlugin.referenceTime = null
Assert.assertEquals(true, iobCobCalculatorPlugin.isAbout5minData)
iobCobCalculatorPlugin.createBucketedData()
Assert.assertEquals(DateUtil.fromISODateString("2018-09-05T13:34:57Z").time, iobCobCalculatorPlugin.bucketedData[0].timestamp)
diff --git a/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaRS/DanaRSPluginTest.kt b/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaRS/DanaRSPluginTest.kt
index d33e3d565c..d1619600d5 100644
--- a/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaRS/DanaRSPluginTest.kt
+++ b/app/src/test/java/info/nightscout/androidaps/plugins/pump/danaRS/DanaRSPluginTest.kt
@@ -65,6 +65,6 @@ class DanaRSPluginTest : DanaRSTestBase() {
Mockito.`when`(resourceHelper.gs(eq(R.string.limitingbasalratio), anyObject(), anyObject())).thenReturn("limitingbasalratio")
Mockito.`when`(resourceHelper.gs(eq(R.string.limitingpercentrate), anyObject(), anyObject())).thenReturn("limitingpercentrate")
- danaRSPlugin = DanaRSPlugin(HasAndroidInjector { AndroidInjector { Unit } }, aapsLogger, rxBus, context, resourceHelper, constraintChecker, profileFunction, activePluginProvider, sp, commandQueue, danaPump, detailedBolusInfoStorage, fabricPrivacy, dateUtil, Config())
+ danaRSPlugin = DanaRSPlugin(HasAndroidInjector { AndroidInjector { Unit } }, aapsLogger, rxBus, context, resourceHelper, constraintChecker, profileFunction, activePluginProvider, sp, commandQueue, danaPump, detailedBolusInfoStorage, fabricPrivacy, dateUtil)
}
}
\ No newline at end of file
diff --git a/app/src/test/java/info/nightscout/androidaps/plugins/source/NSClientPluginTest.kt b/app/src/test/java/info/nightscout/androidaps/plugins/source/NSClientPluginTest.kt
index 3cbdb53a7e..1f2da4c70d 100644
--- a/app/src/test/java/info/nightscout/androidaps/plugins/source/NSClientPluginTest.kt
+++ b/app/src/test/java/info/nightscout/androidaps/plugins/source/NSClientPluginTest.kt
@@ -2,6 +2,7 @@ package info.nightscout.androidaps.plugins.source
import dagger.android.AndroidInjector
import dagger.android.HasAndroidInjector
+import info.nightscout.androidaps.Config
import info.nightscout.androidaps.TestBase
import info.nightscout.androidaps.logging.AAPSLogger
import info.nightscout.androidaps.utils.resources.ResourceHelper
@@ -23,7 +24,7 @@ class NSClientPluginTest : TestBase() {
@Before
fun setup() {
- nsClientSourcePlugin = NSClientSourcePlugin(HasAndroidInjector { AndroidInjector { } }, resourceHelper, aapsLogger, sp)
+ nsClientSourcePlugin = NSClientSourcePlugin(HasAndroidInjector { AndroidInjector { } }, resourceHelper, aapsLogger, sp, Config())
}
@Test fun advancedFilteringSupported() {
diff --git a/build.gradle b/build.gradle
index 1e9b924fc7..acf667df6d 100644
--- a/build.gradle
+++ b/build.gradle
@@ -3,15 +3,15 @@
buildscript {
ext {
kotlin_version = '1.3.72'
- android_ktx_version = '1.2.0'
+ coreVersion = '1.3.0'
rxjava_version = '2.2.19'
rxandroid_version = '2.1.1'
rxkotlin_version = '2.4.0'
room_version = '2.2.5'
lifecycle_version = '2.2.0'
- dagger_version = '2.28'
+ dagger_version = '2.28.1'
coroutinesVersion = '1.3.7'
- activityVersion = '1.2.0-alpha05'
+ activityVersion = '1.2.0-alpha06'
ormLiteVersion = "4.46"
}
repositories {
diff --git a/core/build.gradle b/core/build.gradle
index 3b10b7b96f..b79909271a 100644
--- a/core/build.gradle
+++ b/core/build.gradle
@@ -58,8 +58,8 @@ dependencies {
//Logger
implementation 'org.slf4j:slf4j-api:1.7.30'
//Fabric
- implementation 'com.google.firebase:firebase-analytics-ktx:17.4.2'
- implementation 'com.google.firebase:firebase-crashlytics:17.0.0'
+ implementation 'com.google.firebase:firebase-analytics-ktx:17.4.3'
+ implementation 'com.google.firebase:firebase-crashlytics:17.1.0'
//RxBus
implementation "io.reactivex.rxjava2:rxandroid:${rxandroid_version}"
diff --git a/core/src/main/AndroidManifest.xml b/core/src/main/AndroidManifest.xml
index 6d8a02d4c2..9ef7e793bf 100644
--- a/core/src/main/AndroidManifest.xml
+++ b/core/src/main/AndroidManifest.xml
@@ -1,6 +1,10 @@
+
+
+
+
diff --git a/core/src/main/java/info/nightscout/androidaps/data/Profile.java b/core/src/main/java/info/nightscout/androidaps/data/Profile.java
index 7f583663bb..9fe8c7846e 100644
--- a/core/src/main/java/info/nightscout/androidaps/data/Profile.java
+++ b/core/src/main/java/info/nightscout/androidaps/data/Profile.java
@@ -370,7 +370,7 @@ public class Profile {
return lastValue;
}
- protected String format_HH_MM(Integer timeAsSeconds) {
+ public static String format_HH_MM(Integer timeAsSeconds) {
String time;
int hour = timeAsSeconds / 60 / 60;
int minutes = (timeAsSeconds - hour * 60 * 60) / 60;
diff --git a/core/src/main/java/info/nightscout/androidaps/data/defaultProfile/DefaultProfile.kt b/core/src/main/java/info/nightscout/androidaps/data/defaultProfile/DefaultProfile.kt
index 536c5ed68f..ecab21784c 100644
--- a/core/src/main/java/info/nightscout/androidaps/data/defaultProfile/DefaultProfile.kt
+++ b/core/src/main/java/info/nightscout/androidaps/data/defaultProfile/DefaultProfile.kt
@@ -126,7 +126,7 @@ class DefaultProfile @Inject constructor(val injector: HasAndroidInjector) {
return res
}
- fun arrayToJson(b: Array): JSONArray {
+ private fun arrayToJson(b: Array): JSONArray {
val basals = JSONArray()
for (i in 0..23) {
val time = String.format(Locale.ENGLISH, "%02d:00", i)
@@ -135,7 +135,7 @@ class DefaultProfile @Inject constructor(val injector: HasAndroidInjector) {
return basals
}
- fun singleValueArray(value: Double, sample: Array): JSONArray {
+ private fun singleValueArray(value: Double, sample: Array): JSONArray {
val array = JSONArray()
array.put(JSONObject().put("time", "00:00").put("value", value + sample[0]))
array.put(JSONObject().put("time", "06:00").put("value", value + sample[1]))
diff --git a/core/src/main/java/info/nightscout/androidaps/db/TDD.java b/core/src/main/java/info/nightscout/androidaps/db/TDD.java
index 05b9025491..5717abec74 100644
--- a/core/src/main/java/info/nightscout/androidaps/db/TDD.java
+++ b/core/src/main/java/info/nightscout/androidaps/db/TDD.java
@@ -29,6 +29,7 @@ public class TDD {
@DatabaseField
public double total;
+ public double carbs;
public double getTotal() {
return (total > 0d) ? total : (bolus + basal);
@@ -56,11 +57,17 @@ public class TDD {
']';
}
- public String toText(ResourceHelper resourceHelper, DateUtil dateUtil) {
- return resourceHelper.gs(R.string.tddformat, dateUtil.dateStringShort(date), total, bolus, basal);
+ public String toText(ResourceHelper resourceHelper, DateUtil dateUtil, boolean includeCarbs) {
+ if (includeCarbs)
+ return resourceHelper.gs(R.string.tddwithcarbsformat, dateUtil.dateStringShort(date), total, bolus, basal, carbs);
+ else
+ return resourceHelper.gs(R.string.tddformat, dateUtil.dateStringShort(date), total, bolus, basal);
}
- public String toText(ResourceHelper resourceHelper, int days) {
- return resourceHelper.gs(R.string.tddformat, String.format(Locale.getDefault(), "%d ", days) + resourceHelper.gs(R.string.days), total, bolus, basal);
+ public String toText(ResourceHelper resourceHelper, int days, boolean includeCarbs) {
+ if (includeCarbs)
+ return resourceHelper.gs(R.string.tddwithcarbsformat, String.format(Locale.getDefault(), "%d ", days) + resourceHelper.gs(R.string.days), total, bolus, basal, carbs);
+ else
+ return resourceHelper.gs(R.string.tddformat, String.format(Locale.getDefault(), "%d ", days) + resourceHelper.gs(R.string.days), total, bolus, basal);
}
}
diff --git a/core/src/main/java/info/nightscout/androidaps/dialogs/ProfileViewerDialog.kt b/core/src/main/java/info/nightscout/androidaps/dialogs/ProfileViewerDialog.kt
index df60da2067..75708b76ae 100644
--- a/core/src/main/java/info/nightscout/androidaps/dialogs/ProfileViewerDialog.kt
+++ b/core/src/main/java/info/nightscout/androidaps/dialogs/ProfileViewerDialog.kt
@@ -1,6 +1,7 @@
package info.nightscout.androidaps.dialogs
import android.os.Bundle
+import android.text.Spanned
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
@@ -12,11 +13,14 @@ import info.nightscout.androidaps.Constants
import info.nightscout.androidaps.core.R
import info.nightscout.androidaps.data.Profile
import info.nightscout.androidaps.interfaces.ActivePluginProvider
+import info.nightscout.androidaps.interfaces.DatabaseHelperInterface
import info.nightscout.androidaps.utils.DateUtil
+import info.nightscout.androidaps.utils.HtmlHelper
import info.nightscout.androidaps.utils.resources.ResourceHelper
import kotlinx.android.synthetic.main.close.*
import kotlinx.android.synthetic.main.dialog_profileviewer.*
import org.json.JSONObject
+import java.text.DecimalFormat
import javax.inject.Inject
class ProfileViewerDialog : DaggerDialogFragment() {
@@ -24,16 +28,20 @@ class ProfileViewerDialog : DaggerDialogFragment() {
@Inject lateinit var resourceHelper: ResourceHelper
@Inject lateinit var activePlugin: ActivePluginProvider
@Inject lateinit var dateUtil: DateUtil
+ @Inject lateinit var databaseHelper: DatabaseHelperInterface
private var time: Long = 0
enum class Mode(val i: Int) {
RUNNING_PROFILE(1),
- CUSTOM_PROFILE(2)
+ CUSTOM_PROFILE(2),
+ DB_PROFILE(3),
+ PROFILE_COMPARE(4)
}
private var mode: Mode = Mode.RUNNING_PROFILE
private var customProfileJson: String = ""
+ private var customProfileJson2: String = ""
private var customProfileName: String = ""
private var customProfileUnits: String = Constants.MGDL
@@ -46,6 +54,8 @@ class ProfileViewerDialog : DaggerDialogFragment() {
customProfileJson = bundle.getString("customProfile", "")
customProfileUnits = bundle.getString("customProfileUnits", Constants.MGDL)
customProfileName = bundle.getString("customProfileName", "")
+ if (mode == Mode.PROFILE_COMPARE)
+ customProfileJson2 = bundle.getString("customProfile2", "")
}
dialog?.window?.requestFeature(Window.FEATURE_NO_TITLE)
@@ -62,11 +72,13 @@ class ProfileViewerDialog : DaggerDialogFragment() {
close.setOnClickListener { dismiss() }
val profile: Profile?
+ val profile2: Profile?
val profileName: String?
val date: String?
when (mode) {
Mode.RUNNING_PROFILE -> {
profile = activePlugin.activeTreatments.getProfileSwitchFromHistory(time)?.profileObject
+ profile2 = null
profileName = activePlugin.activeTreatments.getProfileSwitchFromHistory(time)?.customizedName
date = dateUtil.dateAndTimeString(activePlugin.activeTreatments.getProfileSwitchFromHistory(time)?.date
?: 0)
@@ -75,27 +87,63 @@ class ProfileViewerDialog : DaggerDialogFragment() {
Mode.CUSTOM_PROFILE -> {
profile = Profile(injector, JSONObject(customProfileJson), customProfileUnits)
+ profile2 = null
profileName = customProfileName
date = ""
profileview_datelayout.visibility = View.GONE
}
+
+ Mode.PROFILE_COMPARE -> {
+ profile = Profile(injector, JSONObject(customProfileJson), customProfileUnits)
+ profile2 = Profile(injector, JSONObject(customProfileJson2), customProfileUnits)
+ profileName = customProfileName
+ date = ""
+ profileview_datelayout.visibility = View.GONE
+ }
+
+ Mode.DB_PROFILE -> {
+ val profileList = databaseHelper.getProfileSwitchData(time, true)
+ profile = if (profileList.isNotEmpty()) profileList[0].profileObject else null
+ profile2 = null
+ profileName = if (profileList.isNotEmpty()) profileList[0].customizedName else null
+ date = if (profileList.isNotEmpty()) dateUtil.dateAndTimeString(profileList[0].date) else null
+ profileview_datelayout.visibility = View.VISIBLE
+ }
}
profileview_noprofile.visibility = View.VISIBLE
- profile?.let {
- profileview_units.text = it.units
- profileview_dia.text = resourceHelper.gs(R.string.format_hours, it.dia)
- profileview_activeprofile.text = profileName
- profileview_date.text = date
- profileview_ic.text = it.icList
- profileview_isf.text = it.isfList
- profileview_basal.text = it.basalList
- profileview_target.text = it.targetList
- basal_graph.show(it)
+ if (mode == Mode.PROFILE_COMPARE)
+ profile?.let { profile1 ->
+ profile2?.let { profile2 ->
+ profileview_units.text = profile1.units
+ profileview_dia.text = HtmlHelper.fromHtml(formatColors("", profile1.dia, profile1.dia, DecimalFormat("0.00"), resourceHelper.gs(R.string.shorthour)))
+ profileview_activeprofile.text = profileName
+ profileview_date.text = date
+ profileview_ic.text = ics(profile1, profile2)
+ profileview_isf.text = isfs(profile1, profile2)
+ profileview_basal.text = basals(profile1, profile2)
+ profileview_target.text = HtmlHelper.fromHtml(formatColors("", profile1.targetList + " ", profile2.targetList, ""))
+ basal_graph.show(profile1, profile2)
+ }
- profileview_noprofile.visibility = View.GONE
- profileview_invalidprofile.visibility = if (it.isValid("ProfileViewDialog")) View.GONE else View.VISIBLE
- }
+ profileview_noprofile.visibility = View.GONE
+ profileview_invalidprofile.visibility = if (profile1.isValid("ProfileViewDialog")) View.GONE else View.VISIBLE
+ }
+ else
+ profile?.let {
+ profileview_units.text = it.units
+ profileview_dia.text = resourceHelper.gs(R.string.format_hours, it.dia)
+ profileview_activeprofile.text = profileName
+ profileview_date.text = date
+ profileview_ic.text = it.icList
+ profileview_isf.text = it.isfList
+ profileview_basal.text = it.basalList
+ profileview_target.text = it.targetList
+ basal_graph.show(it)
+
+ profileview_noprofile.visibility = View.GONE
+ profileview_invalidprofile.visibility = if (it.isValid("ProfileViewDialog")) View.GONE else View.VISIBLE
+ }
}
override fun onStart() {
@@ -110,6 +158,79 @@ class ProfileViewerDialog : DaggerDialogFragment() {
bundle.putString("customProfile", customProfileJson)
bundle.putString("customProfileName", customProfileName)
bundle.putString("customProfileUnits", customProfileUnits)
+ if (mode == Mode.PROFILE_COMPARE)
+ bundle.putString("customProfile2", customProfileJson2)
}
+ private fun formatColors(label: String, value1: Double, value2: Double, format: DecimalFormat, units: String): String {
+ return formatColors(label, format.format(value1), format.format(value2), units)
+ }
+
+ private fun formatColors(label: String, text1: String, text2: String, units: String): String {
+ var s = "$label"
+ s += " "
+ s += "$text1"
+ s += " "
+ s += "$text2"
+ s += " "
+ s += "$units"
+ return s
+ }
+
+ private fun basals(profile1: Profile, profile2: Profile): Spanned {
+ var prev1 = 0.0
+ var prev2 = 0.0
+ val s = StringBuilder()
+ for (hour in 0..23) {
+ val val1 = profile1.getBasalTimeFromMidnight(hour * 60 * 60)
+ val val2 = profile2.getBasalTimeFromMidnight(hour * 60 * 60)
+ if (val1 != prev1 || val2 != prev2) {
+ s.append(formatColors(Profile.format_HH_MM(hour * 60 * 60), val1, val2, DecimalFormat("0.00"), resourceHelper.gs(R.string.profile_ins_units_per_hour)))
+ s.append(" ")
+ }
+ prev1 = val1
+ prev2 = val2
+ }
+ s.append(formatColors(
+ " ∑ ",
+ profile1.baseBasalSum(),
+ profile2.baseBasalSum(),
+ DecimalFormat("0.00"),
+ resourceHelper.gs(R.string.insulin_unit_shortname)))
+ return HtmlHelper.fromHtml(s.toString())
+ }
+
+ private fun ics(profile1: Profile, profile2: Profile): Spanned {
+ var prev1 = 0.0
+ var prev2 = 0.0
+ val s = StringBuilder()
+ for (hour in 0..23) {
+ val val1 = profile1.getIcTimeFromMidnight(hour * 60 * 60)
+ val val2 = profile2.getIcTimeFromMidnight(hour * 60 * 60)
+ if (val1 != prev1 || val2 != prev2) {
+ s.append(formatColors(Profile.format_HH_MM(hour * 60 * 60), val1, val2, DecimalFormat("0.0"), resourceHelper.gs(R.string.profile_carbs_per_unit)))
+ s.append(" ")
+ }
+ prev1 = val1
+ prev2 = val2
+ }
+ return HtmlHelper.fromHtml(s.toString())
+ }
+
+ private fun isfs(profile1: Profile, profile2: Profile): Spanned {
+ var prev1 = 0.0
+ var prev2 = 0.0
+ val s = StringBuilder()
+ for (hour in 0..23) {
+ val val1 = Profile.fromMgdlToUnits(profile1.getIsfMgdlTimeFromMidnight(hour * 60 * 60), profile1.units)
+ val val2 = Profile.fromMgdlToUnits(profile2.getIsfMgdlTimeFromMidnight(hour * 60 * 60), profile1.units)
+ if (val1 != prev1 || val2 != prev2) {
+ s.append(formatColors(Profile.format_HH_MM(hour * 60 * 60), val1, val2, DecimalFormat("0.0"), resourceHelper.gs(R.string.profile_carbs_per_unit)))
+ s.append(" ")
+ }
+ prev1 = val1
+ prev2 = val2
+ }
+ return HtmlHelper.fromHtml(s.toString())
+ }
}
diff --git a/core/src/main/java/info/nightscout/androidaps/events/EventNetworkChange.kt b/core/src/main/java/info/nightscout/androidaps/events/EventNetworkChange.kt
index 87599a9373..716b2b1810 100644
--- a/core/src/main/java/info/nightscout/androidaps/events/EventNetworkChange.kt
+++ b/core/src/main/java/info/nightscout/androidaps/events/EventNetworkChange.kt
@@ -11,8 +11,4 @@ class EventNetworkChange : Event() {
var ssid = ""
var roaming = false
var metered = false
-
- fun connectedSsid(): String {
- return StringUtils.removeSurroundingQuotes(ssid)
- }
}
diff --git a/core/src/main/java/info/nightscout/androidaps/interfaces/DatabaseHelperInterface.kt b/core/src/main/java/info/nightscout/androidaps/interfaces/DatabaseHelperInterface.kt
index 35226a2537..968b84a5ff 100644
--- a/core/src/main/java/info/nightscout/androidaps/interfaces/DatabaseHelperInterface.kt
+++ b/core/src/main/java/info/nightscout/androidaps/interfaces/DatabaseHelperInterface.kt
@@ -1,7 +1,11 @@
package info.nightscout.androidaps.interfaces
import com.j256.ormlite.dao.CloseableIterator
-import info.nightscout.androidaps.db.*
+import info.nightscout.androidaps.db.BgReading
+import info.nightscout.androidaps.db.CareportalEvent
+import info.nightscout.androidaps.db.DanaRHistoryRecord
+import info.nightscout.androidaps.db.DbRequest
+import info.nightscout.androidaps.db.TDD
interface DatabaseHelperInterface {
@@ -23,4 +27,5 @@ interface DatabaseHelperInterface {
fun getTemporaryBasalsDataFromTime(mills: Long, ascending: Boolean) : List
fun getCareportalEventFromTimestamp(timestamp: Long): CareportalEvent
fun getTDDsForLastXDays(days: Int): List
-}
\ No newline at end of file
+ fun getProfileSwitchData(from: Long, ascending: Boolean): List
+}
diff --git a/core/src/main/java/info/nightscout/androidaps/plugins/general/actions/defs/CustomAction.kt b/core/src/main/java/info/nightscout/androidaps/plugins/general/actions/defs/CustomAction.kt
index b276bae9b1..be5e30496a 100644
--- a/core/src/main/java/info/nightscout/androidaps/plugins/general/actions/defs/CustomAction.kt
+++ b/core/src/main/java/info/nightscout/androidaps/plugins/general/actions/defs/CustomAction.kt
@@ -2,9 +2,9 @@ package info.nightscout.androidaps.plugins.general.actions.defs
import info.nightscout.androidaps.core.R
-class CustomAction @JvmOverloads constructor(val name: Int, val customActionType: CustomActionType?, val iconResourceId: Int = R.drawable.icon_actions_profileswitch, var isEnabled: Boolean = true) {
+class CustomAction @JvmOverloads constructor(val name: Int, val customActionType: CustomActionType?, val iconResourceId: Int = R.drawable.ic_actions_profileswitch, var isEnabled: Boolean = true) {
constructor(nameResourceId: Int, actionType: CustomActionType?, enabled: Boolean) :
- this(nameResourceId, actionType, R.drawable.icon_actions_profileswitch, enabled)
+ this(nameResourceId, actionType, R.drawable.ic_actions_profileswitch, enabled)
}
\ No newline at end of file
diff --git a/core/src/main/java/info/nightscout/androidaps/plugins/treatments/fragments/ProfileGraph.kt b/core/src/main/java/info/nightscout/androidaps/plugins/treatments/fragments/ProfileGraph.kt
index a48f5e4118..8dd922ca60 100644
--- a/core/src/main/java/info/nightscout/androidaps/plugins/treatments/fragments/ProfileGraph.kt
+++ b/core/src/main/java/info/nightscout/androidaps/plugins/treatments/fragments/ProfileGraph.kt
@@ -1,13 +1,16 @@
package info.nightscout.androidaps.plugins.treatments.fragments
import android.content.Context
+import android.graphics.Color
import android.util.AttributeSet
import com.jjoe64.graphview.GraphView
import com.jjoe64.graphview.series.DataPoint
import com.jjoe64.graphview.series.LineGraphSeries
+import info.nightscout.androidaps.core.R
import info.nightscout.androidaps.data.Profile
import info.nightscout.androidaps.utils.Round
import java.util.*
+import kotlin.math.max
class ProfileGraph : GraphView {
@@ -21,7 +24,7 @@ class ProfileGraph : GraphView {
basalArray.add(DataPoint(hour.toDouble(), profile.getBasalTimeFromMidnight(hour * 60 * 60)))
basalArray.add(DataPoint((hour + 1).toDouble(), profile.getBasalTimeFromMidnight(hour * 60 * 60)))
}
- val basalDataPoints: Array = Array(basalArray.size){ i-> basalArray[i]}
+ val basalDataPoints: Array = Array(basalArray.size) { i -> basalArray[i] }
val basalSeries: LineGraphSeries = LineGraphSeries(basalDataPoints)
addSeries(basalSeries)
basalSeries.thickness = 8
@@ -35,4 +38,40 @@ class ProfileGraph : GraphView {
gridLabelRenderer.numHorizontalLabels = 13
gridLabelRenderer.verticalLabelsColor = basalSeries.color
}
+
+ fun show(profile1: Profile, profile2: Profile) {
+ removeAllSeries()
+
+ // profile 1
+ val basalArray1: MutableList = ArrayList()
+ for (hour in 0..23) {
+ basalArray1.add(DataPoint(hour.toDouble(), profile1.getBasalTimeFromMidnight(hour * 60 * 60)))
+ basalArray1.add(DataPoint((hour + 1).toDouble(), profile1.getBasalTimeFromMidnight(hour * 60 * 60)))
+ }
+ val basalSeries1: LineGraphSeries = LineGraphSeries(Array(basalArray1.size) { i -> basalArray1[i] })
+ addSeries(basalSeries1)
+ basalSeries1.thickness = 8
+ basalSeries1.isDrawBackground = true
+
+ // profile 2
+ val basalArray2: MutableList = ArrayList()
+ for (hour in 0..23) {
+ basalArray2.add(DataPoint(hour.toDouble(), profile2.getBasalTimeFromMidnight(hour * 60 * 60)))
+ basalArray2.add(DataPoint((hour + 1).toDouble(), profile2.getBasalTimeFromMidnight(hour * 60 * 60)))
+ }
+ val basalSeries2: LineGraphSeries = LineGraphSeries(Array(basalArray2.size) { i -> basalArray2[i] })
+ addSeries(basalSeries2)
+ basalSeries2.thickness = 8
+ basalSeries2.isDrawBackground = false
+ basalSeries2.color = context.getColor(R.color.examinedProfile)
+ basalSeries2.backgroundColor = context.getColor(R.color.examinedProfile)
+
+ viewport.isXAxisBoundsManual = true
+ viewport.setMinX(0.0)
+ viewport.setMaxX(24.0)
+ viewport.isYAxisBoundsManual = true
+ viewport.setMinY(0.0)
+ viewport.setMaxY(Round.ceilTo(max(profile1.maxDailyBasal, profile2.maxDailyBasal) * 1.1, 0.5))
+ gridLabelRenderer.numHorizontalLabels = 13
+ }
}
\ No newline at end of file
diff --git a/core/src/main/java/info/nightscout/androidaps/receivers/NetworkChangeReceiver.kt b/core/src/main/java/info/nightscout/androidaps/receivers/NetworkChangeReceiver.kt
index faeb4632cd..9233ee1b1b 100644
--- a/core/src/main/java/info/nightscout/androidaps/receivers/NetworkChangeReceiver.kt
+++ b/core/src/main/java/info/nightscout/androidaps/receivers/NetworkChangeReceiver.kt
@@ -12,6 +12,7 @@ import info.nightscout.androidaps.events.EventNetworkChange
import info.nightscout.androidaps.logging.AAPSLogger
import info.nightscout.androidaps.logging.LTag
import info.nightscout.androidaps.plugins.bus.RxBusWrapper
+import info.nightscout.androidaps.utils.StringUtils
import javax.inject.Inject
class NetworkChangeReceiver : DaggerBroadcastReceiver() {
@@ -39,7 +40,7 @@ class NetworkChangeReceiver : DaggerBroadcastReceiver() {
val wifiManager = context.applicationContext.getSystemService(Context.WIFI_SERVICE) as WifiManager
val wifiInfo = wifiManager.connectionInfo
if (wifiInfo.supplicantState == SupplicantState.COMPLETED) {
- event.ssid = wifiInfo.ssid
+ event.ssid = StringUtils.removeSurroundingQuotes(wifiInfo.ssid)
// aapsLogger.debug(LTag.CORE, "NETCHANGE: Wifi connected. SSID: ${event.connectedSsid()}")
}
}
diff --git a/core/src/main/java/info/nightscout/androidaps/services/AlarmSoundService.kt b/core/src/main/java/info/nightscout/androidaps/services/AlarmSoundService.kt
index 140cfda5b4..f84e6af6e2 100644
--- a/core/src/main/java/info/nightscout/androidaps/services/AlarmSoundService.kt
+++ b/core/src/main/java/info/nightscout/androidaps/services/AlarmSoundService.kt
@@ -29,13 +29,13 @@ class AlarmSoundService : DaggerService() {
startForeground(notificationHolder.notificationID, notificationHolder.notification)
}
- override fun onStartCommand(intent: Intent, flags: Int, startId: Int): Int {
+ override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
startForeground(notificationHolder.notificationID, notificationHolder.notification)
player?.let { if (it.isPlaying) it.stop() }
aapsLogger.debug(LTag.CORE, "onStartCommand")
- if (intent.hasExtra("soundid")) resourceId = intent.getIntExtra("soundid", R.raw.error)
+ if (intent?.hasExtra("soundid") == true) resourceId = intent.getIntExtra("soundid", R.raw.error)
player = MediaPlayer()
try {
val afd = resourceHelper.openRawResourceFd(resourceId) ?: return START_STICKY
diff --git a/core/src/main/java/info/nightscout/androidaps/utils/DateUtil.java b/core/src/main/java/info/nightscout/androidaps/utils/DateUtil.java
index c5c5b68335..afa469f468 100644
--- a/core/src/main/java/info/nightscout/androidaps/utils/DateUtil.java
+++ b/core/src/main/java/info/nightscout/androidaps/utils/DateUtil.java
@@ -215,18 +215,14 @@ public class DateUtil {
return dateString(mills) + " " + timeStringWithSeconds(mills);
}
- public static String dateAndTimeFullString(long mills) {
- return dateString(mills) + " " + timeFullString(mills);
- }
-
public static String minAgo(ResourceHelper resourceHelper, long time) {
int mins = (int) ((now() - time) / 1000 / 60);
return resourceHelper.gs(R.string.minago, mins);
}
public static String minAgoShort(long time) {
- Integer mins = (int) ((time - now()) / 1000 / 60);
- return (mins > 0 ? "+" : "") + mins.toString();
+ int mins = (int) ((time - now()) / 1000 / 60);
+ return (mins > 0 ? "+" : "") + Integer.toString(mins);
}
public static String hourAgo(long time, ResourceHelper resourceHelper) {
diff --git a/core/src/main/res/drawable-hdpi/icon_actions_refill.png b/core/src/main/res/drawable-hdpi/icon_actions_refill.png
deleted file mode 100644
index ace25d1558..0000000000
Binary files a/core/src/main/res/drawable-hdpi/icon_actions_refill.png and /dev/null differ
diff --git a/core/src/main/res/drawable-hdpi/icon_danar_useropt.png b/core/src/main/res/drawable-hdpi/icon_danar_useropt.png
deleted file mode 100644
index ee3ab7725e..0000000000
Binary files a/core/src/main/res/drawable-hdpi/icon_danar_useropt.png and /dev/null differ
diff --git a/core/src/main/res/drawable-hdpi/icon_danarhistory.png b/core/src/main/res/drawable-hdpi/icon_danarhistory.png
deleted file mode 100644
index 2de295946a..0000000000
Binary files a/core/src/main/res/drawable-hdpi/icon_danarhistory.png and /dev/null differ
diff --git a/core/src/main/res/drawable-hdpi/icon_danarprofile.png b/core/src/main/res/drawable-hdpi/icon_danarprofile.png
deleted file mode 100644
index 31148c5647..0000000000
Binary files a/core/src/main/res/drawable-hdpi/icon_danarprofile.png and /dev/null differ
diff --git a/core/src/main/res/drawable-hdpi/icon_danarstats.png b/core/src/main/res/drawable-hdpi/icon_danarstats.png
deleted file mode 100644
index 9caa112e0e..0000000000
Binary files a/core/src/main/res/drawable-hdpi/icon_danarstats.png and /dev/null differ
diff --git a/core/src/main/res/drawable-hdpi/icon_home_profile.png b/core/src/main/res/drawable-hdpi/icon_home_profile.png
deleted file mode 100644
index b288171332..0000000000
Binary files a/core/src/main/res/drawable-hdpi/icon_home_profile.png and /dev/null differ
diff --git a/core/src/main/res/drawable-hdpi/icon_local_save.png b/core/src/main/res/drawable-hdpi/icon_local_save.png
deleted file mode 100644
index e5c1d5cedc..0000000000
Binary files a/core/src/main/res/drawable-hdpi/icon_local_save.png and /dev/null differ
diff --git a/core/src/main/res/drawable-mdpi/icon_danarhistory.png b/core/src/main/res/drawable-mdpi/icon_danarhistory.png
deleted file mode 100644
index 60e61d125a..0000000000
Binary files a/core/src/main/res/drawable-mdpi/icon_danarhistory.png and /dev/null differ
diff --git a/core/src/main/res/drawable-mdpi/icon_danarprofile.png b/core/src/main/res/drawable-mdpi/icon_danarprofile.png
deleted file mode 100644
index 485eb6dc61..0000000000
Binary files a/core/src/main/res/drawable-mdpi/icon_danarprofile.png and /dev/null differ
diff --git a/core/src/main/res/drawable-mdpi/icon_danarstats.png b/core/src/main/res/drawable-mdpi/icon_danarstats.png
deleted file mode 100644
index a0fcd27008..0000000000
Binary files a/core/src/main/res/drawable-mdpi/icon_danarstats.png and /dev/null differ
diff --git a/core/src/main/res/drawable-mdpi/icon_local_save.png b/core/src/main/res/drawable-mdpi/icon_local_save.png
deleted file mode 100644
index 843beed523..0000000000
Binary files a/core/src/main/res/drawable-mdpi/icon_local_save.png and /dev/null differ
diff --git a/core/src/main/res/drawable-xhdpi/icon_actions_refill.png b/core/src/main/res/drawable-xhdpi/icon_actions_refill.png
deleted file mode 100644
index ace20f3bfe..0000000000
Binary files a/core/src/main/res/drawable-xhdpi/icon_actions_refill.png and /dev/null differ
diff --git a/core/src/main/res/drawable-xhdpi/icon_danar_useropt.png b/core/src/main/res/drawable-xhdpi/icon_danar_useropt.png
deleted file mode 100644
index 126122a570..0000000000
Binary files a/core/src/main/res/drawable-xhdpi/icon_danar_useropt.png and /dev/null differ
diff --git a/core/src/main/res/drawable-xhdpi/icon_danarhistory.png b/core/src/main/res/drawable-xhdpi/icon_danarhistory.png
deleted file mode 100644
index 8dba1c6a8e..0000000000
Binary files a/core/src/main/res/drawable-xhdpi/icon_danarhistory.png and /dev/null differ
diff --git a/core/src/main/res/drawable-xhdpi/icon_danarprofile.png b/core/src/main/res/drawable-xhdpi/icon_danarprofile.png
deleted file mode 100644
index 227b49a89c..0000000000
Binary files a/core/src/main/res/drawable-xhdpi/icon_danarprofile.png and /dev/null differ
diff --git a/core/src/main/res/drawable-xhdpi/icon_danarstats.png b/core/src/main/res/drawable-xhdpi/icon_danarstats.png
deleted file mode 100644
index 3d525ea4e6..0000000000
Binary files a/core/src/main/res/drawable-xhdpi/icon_danarstats.png and /dev/null differ
diff --git a/core/src/main/res/drawable-xhdpi/icon_home_profile.png b/core/src/main/res/drawable-xhdpi/icon_home_profile.png
deleted file mode 100644
index 95c0ca4502..0000000000
Binary files a/core/src/main/res/drawable-xhdpi/icon_home_profile.png and /dev/null differ
diff --git a/core/src/main/res/drawable-xhdpi/icon_local_save.png b/core/src/main/res/drawable-xhdpi/icon_local_save.png
deleted file mode 100644
index 0cf81430cc..0000000000
Binary files a/core/src/main/res/drawable-xhdpi/icon_local_save.png and /dev/null differ
diff --git a/core/src/main/res/drawable-xxhdpi/icon_actions_refill.png b/core/src/main/res/drawable-xxhdpi/icon_actions_refill.png
deleted file mode 100644
index 45cc5d3e1a..0000000000
Binary files a/core/src/main/res/drawable-xxhdpi/icon_actions_refill.png and /dev/null differ
diff --git a/core/src/main/res/drawable-xxhdpi/icon_danar_useropt.png b/core/src/main/res/drawable-xxhdpi/icon_danar_useropt.png
deleted file mode 100644
index b2a8eb9313..0000000000
Binary files a/core/src/main/res/drawable-xxhdpi/icon_danar_useropt.png and /dev/null differ
diff --git a/core/src/main/res/drawable-xxhdpi/icon_danarhistory.png b/core/src/main/res/drawable-xxhdpi/icon_danarhistory.png
deleted file mode 100644
index dcd00419a3..0000000000
Binary files a/core/src/main/res/drawable-xxhdpi/icon_danarhistory.png and /dev/null differ
diff --git a/core/src/main/res/drawable-xxhdpi/icon_danarprofile.png b/core/src/main/res/drawable-xxhdpi/icon_danarprofile.png
deleted file mode 100644
index 7da3c045fe..0000000000
Binary files a/core/src/main/res/drawable-xxhdpi/icon_danarprofile.png and /dev/null differ
diff --git a/core/src/main/res/drawable-xxhdpi/icon_danarstats.png b/core/src/main/res/drawable-xxhdpi/icon_danarstats.png
deleted file mode 100644
index 254623e213..0000000000
Binary files a/core/src/main/res/drawable-xxhdpi/icon_danarstats.png and /dev/null differ
diff --git a/core/src/main/res/drawable-xxhdpi/icon_home_profile.png b/core/src/main/res/drawable-xxhdpi/icon_home_profile.png
deleted file mode 100644
index 00c4de023a..0000000000
Binary files a/core/src/main/res/drawable-xxhdpi/icon_home_profile.png and /dev/null differ
diff --git a/core/src/main/res/drawable-xxhdpi/icon_local_save.png b/core/src/main/res/drawable-xxhdpi/icon_local_save.png
deleted file mode 100644
index 20448e4bf9..0000000000
Binary files a/core/src/main/res/drawable-xxhdpi/icon_local_save.png and /dev/null differ
diff --git a/core/src/main/res/drawable-xxxhdpi/icon_actions_refill.png b/core/src/main/res/drawable-xxxhdpi/icon_actions_refill.png
deleted file mode 100644
index be3a5db708..0000000000
Binary files a/core/src/main/res/drawable-xxxhdpi/icon_actions_refill.png and /dev/null differ
diff --git a/core/src/main/res/drawable-xxxhdpi/icon_danar_useropt.png b/core/src/main/res/drawable-xxxhdpi/icon_danar_useropt.png
deleted file mode 100644
index 52f952ced4..0000000000
Binary files a/core/src/main/res/drawable-xxxhdpi/icon_danar_useropt.png and /dev/null differ
diff --git a/core/src/main/res/drawable-xxxhdpi/icon_danarhistory.png b/core/src/main/res/drawable-xxxhdpi/icon_danarhistory.png
deleted file mode 100644
index 1f37071514..0000000000
Binary files a/core/src/main/res/drawable-xxxhdpi/icon_danarhistory.png and /dev/null differ
diff --git a/core/src/main/res/drawable-xxxhdpi/icon_danarprofile.png b/core/src/main/res/drawable-xxxhdpi/icon_danarprofile.png
deleted file mode 100644
index ae1d615a33..0000000000
Binary files a/core/src/main/res/drawable-xxxhdpi/icon_danarprofile.png and /dev/null differ
diff --git a/core/src/main/res/drawable-xxxhdpi/icon_danarstats.png b/core/src/main/res/drawable-xxxhdpi/icon_danarstats.png
deleted file mode 100644
index d147295d62..0000000000
Binary files a/core/src/main/res/drawable-xxxhdpi/icon_danarstats.png and /dev/null differ
diff --git a/core/src/main/res/drawable-xxxhdpi/icon_home_profile.png b/core/src/main/res/drawable-xxxhdpi/icon_home_profile.png
deleted file mode 100644
index 80234a0f75..0000000000
Binary files a/core/src/main/res/drawable-xxxhdpi/icon_home_profile.png and /dev/null differ
diff --git a/core/src/main/res/drawable/ic_actions_profileswitch.xml b/core/src/main/res/drawable/ic_actions_profileswitch.xml
new file mode 100644
index 0000000000..31c93c3483
--- /dev/null
+++ b/core/src/main/res/drawable/ic_actions_profileswitch.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/core/src/main/res/drawable/ic_actions_refill.xml b/core/src/main/res/drawable/ic_actions_refill.xml
new file mode 100644
index 0000000000..09e8cd2953
--- /dev/null
+++ b/core/src/main/res/drawable/ic_actions_refill.xml
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+
+
diff --git a/core/src/main/res/drawable/ic_danar_useropt.xml b/core/src/main/res/drawable/ic_danar_useropt.xml
new file mode 100644
index 0000000000..04edfa4d71
--- /dev/null
+++ b/core/src/main/res/drawable/ic_danar_useropt.xml
@@ -0,0 +1,12 @@
+
+
+
+
diff --git a/core/src/main/res/drawable/ic_danarhistory.xml b/core/src/main/res/drawable/ic_danarhistory.xml
new file mode 100644
index 0000000000..d4ef6ac5f0
--- /dev/null
+++ b/core/src/main/res/drawable/ic_danarhistory.xml
@@ -0,0 +1,12 @@
+
+
+
+
diff --git a/core/src/main/res/drawable/ic_danarprofile.xml b/core/src/main/res/drawable/ic_danarprofile.xml
new file mode 100644
index 0000000000..d24a8eb1a5
--- /dev/null
+++ b/core/src/main/res/drawable/ic_danarprofile.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/core/src/main/res/drawable/ic_danarstats.xml b/core/src/main/res/drawable/ic_danarstats.xml
new file mode 100644
index 0000000000..81b3952eb4
--- /dev/null
+++ b/core/src/main/res/drawable/ic_danarstats.xml
@@ -0,0 +1,30 @@
+
+
+
+
+
+
diff --git a/core/src/main/res/drawable/ic_home_profile.xml b/core/src/main/res/drawable/ic_home_profile.xml
new file mode 100644
index 0000000000..31c93c3483
--- /dev/null
+++ b/core/src/main/res/drawable/ic_home_profile.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/core/src/main/res/drawable/ic_local_save.xml b/core/src/main/res/drawable/ic_local_save.xml
new file mode 100644
index 0000000000..7b946244f3
--- /dev/null
+++ b/core/src/main/res/drawable/ic_local_save.xml
@@ -0,0 +1,12 @@
+
+
+
+
diff --git a/core/src/main/res/drawable/icon_actions_profileswitch.png b/core/src/main/res/drawable/icon_actions_profileswitch.png
deleted file mode 100644
index eeae6ccfdb..0000000000
Binary files a/core/src/main/res/drawable/icon_actions_profileswitch.png and /dev/null differ
diff --git a/core/src/main/res/drawable/icon_actions_refill.png b/core/src/main/res/drawable/icon_actions_refill.png
deleted file mode 100644
index 737cca8b00..0000000000
Binary files a/core/src/main/res/drawable/icon_actions_refill.png and /dev/null differ
diff --git a/core/src/main/res/drawable/icon_danar_useropt.png b/core/src/main/res/drawable/icon_danar_useropt.png
deleted file mode 100644
index 1fadcd446b..0000000000
Binary files a/core/src/main/res/drawable/icon_danar_useropt.png and /dev/null differ
diff --git a/core/src/main/res/drawable/icon_home_profile.png b/core/src/main/res/drawable/icon_home_profile.png
deleted file mode 100644
index f689df10c6..0000000000
Binary files a/core/src/main/res/drawable/icon_home_profile.png and /dev/null differ
diff --git a/core/src/main/res/drawable/icon_local_save.png b/core/src/main/res/drawable/icon_local_save.png
deleted file mode 100644
index f2ecc45ac0..0000000000
Binary files a/core/src/main/res/drawable/icon_local_save.png and /dev/null differ
diff --git a/core/src/main/res/layout/dialog_profileviewer.xml b/core/src/main/res/layout/dialog_profileviewer.xml
index 9434d828f0..feec6a1163 100644
--- a/core/src/main/res/layout/dialog_profileviewer.xml
+++ b/core/src/main/res/layout/dialog_profileviewer.xml
@@ -24,7 +24,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@string/carbs"
- android:src="@drawable/icon_home_profile" />
+ android:src="@drawable/ic_home_profile" />
+ СдвояванеГрешкаНе е зададен
@@ -47,24 +48,136 @@
Сериен номерБатерияПоследна връзка
+ Последен болус:
+ Инсулин за деня
+ Базална стойност
+ Временен базал
+ Удължен болус
+ Резервоар
+ История
+ Виж профил
+ Тип събитие
+ мг/дл
+ ммол/л
+ Допълнителни настройки
+ Bluetooth
+ BT ограничения
+ Изключва Bluetooth на телефона за една секунда, ако няма връзка с помпата. Това може да помогне на някои телефони, където Bluetooth блокира.
+ Ограничаване на макс. базална стойност до %1$.2f Е/ч поради %2$s
+ лимит на помпата
+ Ограничаване на максималната процентна стойност до %1$d%% поради %2$s
+ трябва да бъде положително число
+ Ограничаване на болус до %1$.1f Е поради %2$s
+ Помпата не е инициализирана, профила не е зададен!
+ Потвърждение
+ Съобщение
+ ОК
+ Откажи
+ Разбрах
+ Bluetooth Low Energy не се поддържа.
+ Bluetooth не е включен.
+ Локацията не е включена
+ За да работи откриването на нови устройсва чрез Bluetooth, трябва да включите локацията. AAPS не проследява вашето местоположение и ще можете да я изключите след успешното свързване.преди %1$d мин
+ преди %1$.1fч
+ ч.
+ дни
+ часа
+ секунда
+ минута
+ час
+ ден
+ седмица
+ секунди
+ минути
+ часове
+ дни
+ седмици
+ мин.
+ д
+ Базалните стойности не са за кръгли часове: %1$s
+ Базалната стойност е заместена от минимално поддържаната стойност %1$s
+ Базалната стойност е заместена от максимално поддържаната стойност %1$s
+ /Е
+ Е/ч
+ гр/Е
+ Няма избран профил
+ * Само конкретни стойности! Диапазони не се поддържат за базал/болус при виртуална помпа.
+ Откажи временен базал
+ Нека текущия временен базал продължи
+ Стойност
+ Срок
+ Основание
+ Не се изисква промяна
+ Грешен профил: %1$s%1$dмин
+ %1$s: ∑: %2$.2fЕ Бол: %3$.2fЕ Баз: %4$.2fЕ]]>
+ %1$s: ∑: %2$.2fЕ Бол: %3$.2fЕ Баз: %4$.2fЕ Въгл: %5$.0fгр]]>
+ Проверка на КЗ
+ Известие
+ Бележка
+ Въпрос
+ Физ. активност
+ Смяна на сет
+ Смяна на сензор
+ Старт на сензор
+ Смяна на резервоар
+ Смяна на профил
+ Болус за закуска
+ Болус за основно хранене
+ Болус корекция
+ Комбиниран болус
+ Старт на временен базал
+ Край на временен базал
+ Корекция с въглехидрати
+ OpenAPS спрян
+ Смяна на батерия
+ Временна цел
+ Откажи временна цел
+ Пръст
+ Сензор
+ Друго
+ неизвестно
+ Времето за връзка изтече
+ Приложено
+ Коментар
+ Успешен
+ Процент
+ Абсолютна
+ Инсулин (ед.):
+ Ед.
+ Изчаква резултат от помпата
+ SMB
+ %dгр допълнителни въглехидрати ще са необходими до %d минутиСтатистика
+ Комулативна TDD
+ Експоненциално претеглена TDD
+ Базал
+ Болус
+ ОДД
+ Коефициент
+ # дни
+ Тегло
+ Възможна неточност, ако сте използвали болус за презареждане!
+ Стари данни - натиснете \"ПРЕЗАРЕДИ\"
+ Общо базален инсулин
+ ОБИ * 2
+ Засичане на времето
diff --git a/core/src/main/res/values-cs-rCZ/strings.xml b/core/src/main/res/values-cs-rCZ/strings.xml
index 2a6d73f169..df2937d30b 100644
--- a/core/src/main/res/values-cs-rCZ/strings.xml
+++ b/core/src/main/res/values-cs-rCZ/strings.xml
@@ -122,7 +122,6 @@
%1$d minut
- %1$s: ∑: %2$.2f Bol: %3$.2f Baz: %4$.2f]]>Kontrola glykémieOznámení
@@ -162,6 +161,7 @@
Čekání na výsledekSMB
+ Požadováno %d g dodatečných sacharidů během %d minutStatistikyKumulativní CDD
diff --git a/core/src/main/res/values-de-rDE/strings.xml b/core/src/main/res/values-de-rDE/strings.xml
index e5c4ba6b93..98874eda3d 100644
--- a/core/src/main/res/values-de-rDE/strings.xml
+++ b/core/src/main/res/values-de-rDE/strings.xml
@@ -84,7 +84,7 @@
vor %1$d Min.vor %1$.1f Stunde
- Std
+ hTageStundenSekunde
@@ -122,7 +122,8 @@
%1$d Min.
- %1$s: ∑: %2$.2f Bol: %3$.2f Bas: %4$.2f]]>
+ %1$s: ∑: %2$.2fU Bol: %3$.2fU Bas: %4$.2fU]]>
+ %1$s: ∑: %2$.2fU Bol: %3$.2fU Bas: %4$.2fU KH: %5$.0fg]]>BZ-TestAnkündigung
@@ -162,7 +163,7 @@
Auf Pumpenergebnis wartenSMB
- \"%dg zusätzliche Kohlenhydrate innerhalb von %d Minuten erforderlich.
+ Innerhalb der nächsten %d Minuten werden %dg zusätzliche Kohlenhydrate benötigtStatistikKumulative TDD
diff --git a/core/src/main/res/values-es-rES/strings.xml b/core/src/main/res/values-es-rES/strings.xml
index accb96c26b..84c0484cdc 100644
--- a/core/src/main/res/values-es-rES/strings.xml
+++ b/core/src/main/res/values-es-rES/strings.xml
@@ -1,21 +1,181 @@
+ Emparejando
+ Error
+ No configurado
+ Error al actualizar el perfil basal
+ Perfil basal actualizado en bomba
+ Datos inválidos
+ Basal Temporal no emitida
+ Se van a infundir %1$.2fU
+ Esperando bomba
+ Conexión por %1$d s
+ Infundiendo %1$.2fU
+ Estableciendo comunicacion
+ Conectando
+ Conectado
+ Desconectado
+ Desconectando
+ AndroidAPS iniciado
+ %1$.2fU
+ %1$.0f/%2$dU
+ %1$.2fU/h
+ %1$.2f h
+ %1$d min
+ %1$dm
+ Bomba ocupada
+ Error de conexión de la bomba
+ Límite permitido alcanzado
+ Objetivos
+ Cerrar
+ Por favor, espere…
+ Silenciar
+ Recargar
+ STOP pulsado
+ Detener
+ Carbohidratos [g]
+ Perfil inválido !!!
+ NINGÚN PERFIL ACTIVO
+ Fecha
+ Unidades
+ DIA (Duración Insulina Activa)
+ IC (Ratio Insulina/Carbohidratos)
+ ISF (Factor Sensibilidad Insulina)
+ Dosis Basal
+ Objetivo
+ Iniciando...
+ Número de serie
+ Batería
+ Última conexión
+ Último bolo
+ Unidades diarias
+ Dosis Basal
+ Basal Temporal
+ Bolo extendido
+ Reservorio
+ Historial de la bomba
+ Ver perfil
+ Tipo de evento
+ mg/dl
+ mmol/l
+ Ajustes avanzados
+ Bluetooth
+ Vigilante de BT
+ Apaga el bluetooth del móvil por un segundo si no hay conexión con la bomba. Esto ayuda con algunos móviles con problemas para establecer conexión bluetooth estable.
+ Limitando max basal rate a %1$.2f U/h debido a %2$s
+ límite de la bomba
+ Limitando porcentaje máximo de dosis a %1$d%% debido a %2$s
+ tiene que ser un valor positivo
+ Limitando el bolo a %1$.1f U debido a %2$s
+ Bomba no iniciada, ¡perfil establecido!
+ Confirmación
+ Mensaje
+ Ok
+ Cancelar
+ DESCARTAR
+ Bluetooth de baja energía no soportado.
+ Bluetooth no activado.
+ Ubicación no habilitada
+ Para activar la visibilidad Bluetooth en nuevos dispositivos, la ubicación debe estar habilitada. AAPS no hace un seguimiento de su ubicación y se puede desactivar después de realizar la vinculación.
+ Hace %1$dm
+ Hace %1$.1fh
+ h
+ días
+ horas
+ segundo
+ minuto
+ hora
+ día
+ semana
+ segundos
+ minutos
+ horas
+ días
+ semanas
+ m
+ d
+ Valores basales no alineados a las horas: %1$s
+ Valor basal reemplazado por el valor mínimo soportado: %1$s
+ Valor basal reemplazado por el valor máximo soportado: %1$s
+ /U
+ U/h
+ g/U
+ Ningun perfil seleccionado
+ * Sólo se soportan valores discretos, no rangos, como entrada de datos para basal/bolo en la bomba virtual.
+ Cancelar basal temporal
+ Deja ejecutar basal temporal
+ Dosis
+ Duración
+ Motivo
+ Ningún cambio solicitado
+ Perfil inválido: %1$s
+ %1$dmin
+ Medir glucosa
+ Aviso
+ Nota
+ Pregunta
+ Ejercicio
+ Cambio Cánula de Bomba
+ Inserción de sensor
+ Inicio de Sensor
+ Cambio Cartucho insulina
+ Cambio de perfil
+ Bolo de aperitivo
+ Bolo de comida
+ Bolo de corrección
+ Bolo combo
+ Inicio Basal Temp
+ Fin Basal Temp
+ Corrección Carbohidratos
+ OpenAPS sin conexión
+ Cambio batería bomba
+ Objetivo temporal
+ Cancelar Objetivo temporal
+ Dedo
+ Sensor
+ Manualmente
+ desconocido
+ Tiempo de conexión agotado
+ Establecido
+ Comentario
+ Exito
+ Porcentaje
+ Absoluto
+ Insulina
+ U
+ Esperando resultado
+ SMB
+ %dg Carbohidratos adicionales son necesarios dentro de %d minutos
+ Estadísticas
+ TDD acumulativa
+ TDD ampliada exponencialmente
+ Dosis Basal
+ Bolo
+ Dosis diaria
+ Ratio
+ # Días
+ Peso
+ Probablemente impreciso si se usan bolos para llenar/rellenar!
+ Datos caducados por favor pulsa RELOAD
+ Basal total
+ Basal diaria *2
+ Detección de tiempo
diff --git a/core/src/main/res/values-fr-rFR/strings.xml b/core/src/main/res/values-fr-rFR/strings.xml
index 5a5de873fe..3f526625f6 100644
--- a/core/src/main/res/values-fr-rFR/strings.xml
+++ b/core/src/main/res/values-fr-rFR/strings.xml
@@ -122,7 +122,6 @@
%1$dmin
- %1$s: ∑: %2$.2f Bol: %3$.2f Bas: %4$.2f]]>Contrôle GlycémieNotification
@@ -162,7 +161,7 @@
Attente de résultatSMB
- \"%dg Glucides Supplémentaires Requis Dans %d Minutes
+ %dg de glucides supplémentaires requis d\'ici %d minutesStatsDTI cumulé
diff --git a/core/src/main/res/values-it-rIT/strings.xml b/core/src/main/res/values-it-rIT/strings.xml
index 41abc12106..6c6a2fa917 100644
--- a/core/src/main/res/values-it-rIT/strings.xml
+++ b/core/src/main/res/values-it-rIT/strings.xml
@@ -122,7 +122,6 @@
%1$dmin
- %1$s: ∑: %2$.2f Bol: %3$.2f Bas: %4$.2f]]>Controllo BGAvviso
@@ -162,7 +161,7 @@
In attesa del risultatoSMB
- \"%dg di CHO aggiuntivi richiesti entro %d minuti
+ %dg di CHO aggiuntivi richiesti entro %d minutiStatisticheTDD cumulativo
diff --git a/core/src/main/res/values-lt-rLT/strings.xml b/core/src/main/res/values-lt-rLT/strings.xml
index accb96c26b..543eb2f728 100644
--- a/core/src/main/res/values-lt-rLT/strings.xml
+++ b/core/src/main/res/values-lt-rLT/strings.xml
@@ -1,21 +1,183 @@
+ Sujungiama
+ Klaida
+ Nenustatyta
+ Nepavyko atnaujinti bazės profilio
+ Bazės profilis pompoje atnaujintas
+ Neteisingai įvesti duomenys
+ Laikinos bazės suleidimo klaida
+ Bus suleista %1$.2fvv
+ Laukiama ryšio su pompa
+ Jungiamasi %1$d s
+ Leidžiama %1$.2fvv
+ Ryšio užmezgimas
+ Jungiamasi
+ Prisijungta
+ Atsijungta
+ Atsijungiama
+ AndroidAPS paleista
+ %1$.2fvv
+ %1$.0f / %2$d vv
+ %1$.2fvv/val
+ %1$.2f val.
+ %1$d min.
+ %1$dm
+ Pompa šiuo metu veikia
+ Pompos prisijungimo klaida
+ Pasiekėte leistiną ribą
+ Tikslai
+ Uždaryti
+ Palaukite…
+ Nutildyti
+ Atnaujinti
+ Paspausta STOP
+ Stop
+ AV
+ Netinkamas profilis!!!
+ Nenustatytas profilis
+ Data
+ Vienetai
+ IVT
+ IA
+ JIF
+ VB
+ Tikslas
+ Inicijuojama ...
+ Serijos numeris
+ Baterija
+ Paskutinis prisijungimas
+ Paskutinis bolusas
+ Paros insulinas
+ Pagrindinis bazės dydis
+ Laikina bazė
+ Ištęstas bolusas
+ Rezervuaras
+ Pompos istorija
+ Peržiūrėti profilį
+ Įvykio tipas
+ mg/dl
+ mmol/l
+ Papildomi nustatymai
+ 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ų.
+ Ribojamas maksimalus bazės dydis%1$.2f vv/val dėl %2$s
+ pompos limitas
+ Ribojamas maks procentų skaičius %1$d%%, nes %2$s
+ reikšmė turi būti teigiama
+ Bolusas ribojamas iki %1$.1f vv dėl %2$s
+ Pompa neprijungta, profilis nepasirinktas!
+ Patvirtinimas
+ Pranešimas
+ Gerai
+ Atšaukti
+ ATMESTI
+ Bluetooth Low Energy nepalaikoma.
+ Bluetooth neįjungta.
+ Vietovės nustatymas neįjungtas
+ Vietos nustatymo paslauga turi būti įjungta, kad Bluetooth aptikimas veiktų naujesniuose įrenginiuose. AAPS neseka Jūsų lokacijos, o vietos nustatymo paslauga gali būti išjungta po sėkmingo įrenginių suporavimo.
+ prieš %1$d min
+ Prieš %1$.1f val.
+ val
+ d.
+ val.
+ sek.
+ min.
+ val.
+ d.
+ savaitė
+ sekundės
+ min.
+ val.
+ d.
+ savaičių
+ min.
+ d
+ Bazės reikšmės nesuderintos su valandomis: %1$s
+ Valandinė bazė pakeista mažiausia palaikoma verte: %1$s
+ Valandinė bazė pakeista didžiausia palaikoma verte: %1$s
+ /vv
+ Vv/val
+ g/vv
+ Nepasirinktas profilis
+ * Virtualioje pompoje palaikomos tik atskiros vertės, o ne diapazonas detalumui užtikrinti.
+ Atšaukti laikiną bazę
+ Paleisti laikinąją bazę
+ Vertė
+ Trukmė
+ Priežastis
+ Pakeitimai nereikalingi
+ Netinkamas profilis: %1$s
+ %1$dmin
+ %1$s: ∑: %2$.2fU Bol: %3$.2fU Baz: %4$.2fU]]>
+ %1$s: ∑: %2$.2fU Bol: %3$.2fU Baz: %4$.2fU AV: %5$.0fg]]>
+ KG testas
+ Pranešimas
+ Pastaba
+ Klausimas
+ Aktyvumas
+ Kateterio keitimas
+ NGJ įvedimas
+ NGJ paleidimas
+ Rezervuaro keitimas
+ Profilio keitimas
+ Bolusas užkandžiui
+ Bolusas valgiui
+ Bolusas korekcijai
+ Kombinuotas bolusas
+ Pradėta laikina bazė
+ Užbaigta laikina bazė
+ AV korekcijai
+ OpenAPS neprisijungus
+ Baterijos keitimas
+ Laikinas tikslas
+ Laikino tikslo atšaukimas
+ Iš piršto
+ Iš sensoriaus
+ Rankiniu būdu
+ nežinoma
+ Prijungimo laikas baigėsi
+ Vykdoma
+ Komentaras
+ Atlikta
+ Procentai
+ Absoliutus
+ Insulinas
+ vv
+ Laukiama rezultato
+ SMB
+ Būtini %dg papildomų AV per %d min
+ Statistika
+ BPD viso
+ Eksponentiškai svertinė BPD
+ Valandinė bazė
+ Bolusas
+ BPD
+ Vertė
+ # d.
+ Svoris
+ Duomenys netikslūs, jei bolusai naudojami kateterių užpildymui!
+ Duomenys seni, spauskite \"ATNAUJINTI\"
+ Pagrindinė bazė (PB)
+ PB * 2
+ Laiko nustatymas
diff --git a/core/src/main/res/values-nl-rNL/strings.xml b/core/src/main/res/values-nl-rNL/strings.xml
index 3648be0016..ad245b7265 100644
--- a/core/src/main/res/values-nl-rNL/strings.xml
+++ b/core/src/main/res/values-nl-rNL/strings.xml
@@ -122,7 +122,6 @@
%1$dmin
- %1$s: ∑: %2$.2f Bol: %3$.2f Bas: %4$.2f]]>BG ControleMededeling
@@ -162,6 +161,7 @@
Wachtend op resultaatSMB
+ %dg Extra Koolhydraten Nodig Binnen %d MinutenStatistiekenCumulatieve TDD
diff --git a/core/src/main/res/values-pl-rPL/strings.xml b/core/src/main/res/values-pl-rPL/strings.xml
index c0d40219a0..7693dc81f4 100644
--- a/core/src/main/res/values-pl-rPL/strings.xml
+++ b/core/src/main/res/values-pl-rPL/strings.xml
@@ -69,7 +69,6 @@
Nieprawidłowy profil: %1$s
- %1$s: ∑: %2$.2f Bol: %3$.2f Baz: %4$.2f]]>Sprawdź BGPowiadomienie
diff --git a/core/src/main/res/values-pt-rBR/strings.xml b/core/src/main/res/values-pt-rBR/strings.xml
index 12c36e5b7b..a124e98e4d 100644
--- a/core/src/main/res/values-pt-rBR/strings.xml
+++ b/core/src/main/res/values-pt-rBR/strings.xml
@@ -1,58 +1,55 @@
- A Emparelhar
+ A emparelharErroNão definido
- Falha a actualizar perfil da basal
- Perfil Basal actualizado na bomba
- Entrada Inválida
- Erro na administração da Basal Temp
- A ser administrado %1$.2fU
- À espera da bomba
- A ligar durante %1$d s
- A administrar %1$.2fU
+ Falha ao atualizar o perfil basal
+ Perfil Basal atualizado na bomba
+ Dados de entrada inválidos
+ Erro na entrega da basal temporária
+ Vão ser administradas %1$.2fU
+ Aguardando a bomba
+ Conectando para %1$d
+ Administrando %1$.2fUCumprimento
- A ligar
- Ligado
- Desligado
+ Conectando
+ Conectado
+ DesconectadoA desligarAndroidAPS iniciado%1$.2fU%1$.0f / %2$d U
- %1$.2fU/h%1$.2f h
- %1$d mins
- %1$dmA bomba está ocupada
- Erro de ligação da bomba
+ Erro de conexão com a bombaAtingiu o limite autorizado
- Objectivos
+ ObjetivosFecharPor favor aguarde…SilêncioRecarregar
- PARAR PRESSIONADO
+ STOP PRESSIONADOParar
- Hidratos
+ CarbosPerfil inválido !!!SEM PERFIL DEFINIDODataUnidadesDIAIC
- FSI
+ ISFBasal
- Alvo
- A inicializar ...
+ Meta
+ Inicializando...Número de sérieBateriaÚltima ligação
- Último bólus
+ Último BolusUnidades diáriasTaxa Basal de base
- Basal temp
- Bólus Prolongado
+ Basal temporaria
+ Bólus estendidoReservatórioHistórico da BombaVer perfil
@@ -62,9 +59,9 @@
Configurações AvançadasBluetoothWatchdog BT
- Desliga o bluetooth do telefone durante um segundo se nenhuma ligação com bomba for possível. Este parâmetro pode ser útil em alguns telefones, onde o bluetooth congela.
+ Desliga o bluetooth do telefone durante um segundo se nenhuma conexão com bomba for possível. Este parâmetro pode ser util em alguns telefones, onde a pilha bluetooth congela.
- A basal máx está limitada a %1$.2f U/h por %2$s
+ A basal max está limitada a %1$.2f U/h por %2$slimite bombaA limitar rácio percentagem máx para %1$d%% porque %2$sdeve ser valor positivo
@@ -75,14 +72,13 @@
MensagemOKCancelar
- DISPENSAR
+ Dispensar
- Bluetooth Low Energy não suportado.
+ Bluetooth de energia baixa (LE) não suportado.Bluetooth não está activado.
- Localização Não Está Activa
- Para a Pesquisa Bluetooth funcionar em dispositivos mais recentes, a localização deve ser activada. AAPS não acompanha a sua localização e pode ser desactivada após o emparelhamento bem-sucedido.
+ Localização Não Está Activada
+ Para que a procura de Bluetooth funcione em aparelhos mais recentes, a localização tem que ser activada. A app não rastreia a sua localização e pode ser desativada depois de um emparelhamento bem sucedido.
- %1$dm atrás%1$.1fh atráshdias
@@ -98,7 +94,6 @@
diassemanasm
- dValores das basais não definidos por horas: %1$sValor da basal alterado para o valor mínimo suportado: %1$s
@@ -107,12 +102,12 @@
U/hg/U
- Nenhum perfil seleccionado
+ Nenhum perfil selecionado* Somente valores discretos nos intervalos são suportados como granularidade para basal/bolus na bomba virtual.
- Cancelar Basal Temp
- Permitir Basal Temp Correr
+ Cancelar basal temporária
+ Permitir basal temp correrRácioDuraçãoMotivo
@@ -120,17 +115,15 @@
Perfil inválido: %1$s
- %1$dmin
- %1$s: ∑: %2$.2f Bol: %3$.2f Bas: %4$.2f]]>
- Verificar Glic
+ Verificação BGAnúncio
- Nota
- Questão
+ Anotação
+ PerguntaExercício
- Mudança Local Bomba
- Colocação Sensor CGM
+ Alteração do local do cateter
+ Colocação do Sensor CGMInício do Sensor CGMMudança de Cartucho de InsulinaTroca de Perfil
@@ -139,12 +132,12 @@
Bólus CorrecçãoBólus ComboInício Basal Temp
- Fim Basal Temp
- Correcção Hidratos
+ Fim de Basal Temp
+ Correção CarbosOpenAPS Offline
- Troca Bateria Bomba
+ Mudança de BateriaAlvo Temporário
- Cancelar Alvo Temporário
+ Cancelar alvo temporárioDedoSensorManual
@@ -152,27 +145,26 @@
Ligação expirou
- Realizado
- Comentário
+ Executado
+ CommentárioSucessoPercentagemAbsolutoInsulinaU
- À espera de resultado
+ Aguardando resultadosSMB
- EstatísticasDose diária acumulativaDose diária exponencialmente ponderadaBasalBólusTDD
- Rácio
+ Média# DiasPeso
- Possivelmente impreciso se foram usados bólus para purgar/preencher!
+ Possivelmente impreciso se foram usados bolus para purgar/preencher!Dados antigos, pressione \"Recarregar\"Basal Diária TotalBasal diária * 2
diff --git a/core/src/main/res/values-pt-rPT/strings.xml b/core/src/main/res/values-pt-rPT/strings.xml
index 12c36e5b7b..6695a167f1 100644
--- a/core/src/main/res/values-pt-rPT/strings.xml
+++ b/core/src/main/res/values-pt-rPT/strings.xml
@@ -122,7 +122,8 @@
%1$dmin
- %1$s: ∑: %2$.2f Bol: %3$.2f Bas: %4$.2f]]>
+ %1$s: ∑: %2$.2fU Bol: %3$.2fU Bas: %4$.2fU]]>
+ %1$s: ∑: %2$.2fU Bol: %3$.2fU Bas: %4$.2fU Hidratos: %5$.0fg]]>Verificar GlicAnúncio
@@ -162,6 +163,7 @@
À espera de resultadoSMB
+ %dg Hidratos Adicionais Necessários Dentro de %d MinutosEstatísticasDose diária acumulativa
diff --git a/core/src/main/res/values-ro-rRO/strings.xml b/core/src/main/res/values-ro-rRO/strings.xml
index accb96c26b..aa06e80fd8 100644
--- a/core/src/main/res/values-ro-rRO/strings.xml
+++ b/core/src/main/res/values-ro-rRO/strings.xml
@@ -1,21 +1,71 @@
+ Eroare
+ Se conectează
+ Conectat
+ Deconectat
+ Se deconectează
+ %1$.2fU
+ %1$.0f / %2$d U
+ Închide
+ Așteptați…
+ Reîncărcare
+ Stop
+ Bazală
+ Țintă
+ Inițializare...
+ Număr serial
+ Baterie
+ Ultima conexiune
+ Ultimul bolus
+ Confirmare
+ Mesaj
+ OK
+ Renunță
+ zile
+ ore
+ secundă
+ minut
+ oră
+ zi
+ săptămână
+ secunde
+ minute
+ ore
+ zile
+ săptămâni
+ min
+ z
+ /U
+ g/U
+ Durată
+ Motiv
+ Anunț
+ Notă
+ Întrebare
+ Activitate fizică
+ Schimbare loc pompă
+ SMB
+ Bazală
+ Bolus
+ TDD
+ Greutate
diff --git a/core/src/main/res/values-ru-rRU/strings.xml b/core/src/main/res/values-ru-rRU/strings.xml
index 51b23371ee..6e3bcb1b92 100644
--- a/core/src/main/res/values-ru-rRU/strings.xml
+++ b/core/src/main/res/values-ru-rRU/strings.xml
@@ -122,7 +122,6 @@
%1$d мин
- %1$s∑:%2$.2fБол:%3$.2fБаз:%4$.2f]]>Проверка ГКОовещение
@@ -162,7 +161,7 @@
Ожидание результатаСупер микро болюс SMB
- \"%d г Необходимы дополнительные углеводы в течение %d минут\"
+ Необходимы дополнительные углеводы \"%d г в течение %d минут\"Статистиканакопительные TDD
diff --git a/core/src/main/res/values-sk-rSK/strings.xml b/core/src/main/res/values-sk-rSK/strings.xml
index 0f8eaf1405..6d94bd4433 100644
--- a/core/src/main/res/values-sk-rSK/strings.xml
+++ b/core/src/main/res/values-sk-rSK/strings.xml
@@ -122,7 +122,6 @@
%1$dmin
- %1$s: ∑: %2$.2f Bol: %3$.2f Baz: %4$.2f]]>Kontrola glykémieOznámenie
@@ -162,6 +161,7 @@
Čakanie na výsledokSMB
+ %dg dodatočných sacharidov vyžadovaných v priebehu %d minútŠtatistikyKumulatívny TDD
diff --git a/core/src/main/res/values-sv-rSE/strings.xml b/core/src/main/res/values-sv-rSE/strings.xml
index d0981235d8..28f5c83b0a 100644
--- a/core/src/main/res/values-sv-rSE/strings.xml
+++ b/core/src/main/res/values-sv-rSE/strings.xml
@@ -122,7 +122,8 @@
%1$d min
- %1$s: ∑: %2$.2f Bol: %3$.2f Bas: %4$.2f]]>
+ %1$s: ∑: %2$.2fU Bol: %3$.2fU Bas: %4$.2fU]]>
+ %1$s: ∑: %2$.2fU Bol: %3$.2fU Bas: %4$.2fU KH: %5$.0fg]]>BG-kontrollMeddelande
@@ -162,7 +163,7 @@
Väntar på resultatSMB
- \"%dg kolhydrater krävs inom %d minuter
+ %dg kolhydrater krävs inom %d minuterStatistikKumulativ TDD
diff --git a/core/src/main/res/values/colors.xml b/core/src/main/res/values/colors.xml
index 27e0e33010..d6def91fd7 100644
--- a/core/src/main/res/values/colors.xml
+++ b/core/src/main/res/values/colors.xml
@@ -23,6 +23,7 @@
#FF000000#FFFF5555#FF000000
+ #FFFF5555#C803A9F4
diff --git a/core/src/main/res/values/strings.xml b/core/src/main/res/values/strings.xml
index e893703cea..98001a1c4e 100644
--- a/core/src/main/res/values/strings.xml
+++ b/core/src/main/res/values/strings.xml
@@ -156,7 +156,8 @@
%1$dmin
- %1$s: ∑: %2$.2f Bol: %3$.2f Bas: %4$.2f]]>
+ %1$s: ∑: %2$.2fU Bol: %3$.2fU Bas: %4$.2fU]]>
+ %1$s: ∑: %2$.2fU Bol: %3$.2fU Bas: %4$.2fU Carbs: %5$.0fg]]>BG Check
diff --git a/dana/build.gradle b/dana/build.gradle
index 09205a9337..48f8c44cce 100644
--- a/dana/build.gradle
+++ b/dana/build.gradle
@@ -49,12 +49,14 @@ dependencies {
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:$coroutinesVersion"
implementation 'androidx.appcompat:appcompat:1.1.0'
- implementation 'androidx.core:core-ktx:1.2.0'
+ implementation "androidx.core:core-ktx:${coreVersion}"
implementation "androidx.preference:preference-ktx:1.1.1"
implementation "androidx.activity:activity-ktx:${activityVersion}"
implementation "io.reactivex.rxjava2:rxandroid:${rxandroid_version}"
+ implementation 'net.danlew:android.joda:2.10.6'
+
// Graphview cannot be upgraded
implementation "com.jjoe64:graphview:4.0.1"
diff --git a/dana/src/main/java/info/nightscout/androidaps/dana/DanaPump.kt b/dana/src/main/java/info/nightscout/androidaps/dana/DanaPump.kt
index e06f924215..175daea266 100644
--- a/dana/src/main/java/info/nightscout/androidaps/dana/DanaPump.kt
+++ b/dana/src/main/java/info/nightscout/androidaps/dana/DanaPump.kt
@@ -9,10 +9,13 @@ import info.nightscout.androidaps.logging.AAPSLogger
import info.nightscout.androidaps.logging.LTag
import info.nightscout.androidaps.utils.T
import info.nightscout.androidaps.utils.sharedPreferences.SP
+import org.joda.time.DateTime
+import org.joda.time.DateTimeZone
import org.json.JSONArray
import org.json.JSONException
import org.json.JSONObject
import java.text.DecimalFormat
+import java.util.concurrent.TimeUnit
import javax.inject.Inject
import javax.inject.Singleton
@@ -60,7 +63,13 @@ class DanaPump @Inject constructor(
}
fun setPumpTime(value: Long, zoneOffset: Int) {
- pumpTime = value + T.hours(zoneOffset.toLong()).msecs()
+ // Store time according to timezone in phone
+ val tz = DateTimeZone.getDefault()
+ val instant = DateTime.now().millis
+ val offsetInMilliseconds = tz.getOffset(instant).toLong()
+ val offset = TimeUnit.MILLISECONDS.toHours(offsetInMilliseconds)
+ pumpTime = value + T.hours(offset).msecs()
+ // but save zone in pump
this.zoneOffset = zoneOffset
}
diff --git a/dana/src/main/java/info/nightscout/androidaps/dana/activities/DanaHistoryActivity.kt b/dana/src/main/java/info/nightscout/androidaps/dana/activities/DanaHistoryActivity.kt
index 05dbba234c..78c2655dec 100644
--- a/dana/src/main/java/info/nightscout/androidaps/dana/activities/DanaHistoryActivity.kt
+++ b/dana/src/main/java/info/nightscout/androidaps/dana/activities/DanaHistoryActivity.kt
@@ -109,7 +109,7 @@ class DanaHistoryActivity : NoSplashAppCompatActivity() {
danar_history_spinner.adapter = ArrayAdapter(this, R.layout.spinner_centered, typeList)
danar_history_reload.setOnClickListener {
- val selected = danar_history_spinner.selectedItem as TypeList
+ val selected = danar_history_spinner.selectedItem as TypeList? ?: return@setOnClickListener
runOnUiThread {
danar_history_reload?.visibility = View.GONE
danar_history_status?.visibility = View.VISIBLE
@@ -126,8 +126,8 @@ class DanaHistoryActivity : NoSplashAppCompatActivity() {
})
}
danar_history_spinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
- override fun onItemSelected(parent: AdapterView<*>?, view: View, position: Int, id: Long) {
- val selected = danar_history_spinner?.selectedItem as TypeList? ?: return
+ override fun onItemSelected(parent: AdapterView<*>?, view: View?, position: Int, id: Long) {
+ val selected = typeList[position]
loadDataFromDB(selected.type)
showingType = selected.type
}
diff --git a/dana/src/main/res/layout/danar_fragment.xml b/dana/src/main/res/layout/danar_fragment.xml
index 2720862609..3eff537255 100644
--- a/dana/src/main/res/layout/danar_fragment.xml
+++ b/dana/src/main/res/layout/danar_fragment.xml
@@ -704,7 +704,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
- android:drawableTop="@drawable/icon_danarprofile"
+ android:drawableTop="@drawable/ic_danarprofile"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:text="@string/viewprofile" />
@@ -716,7 +716,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
- android:drawableTop="@drawable/icon_danarhistory"
+ android:drawableTop="@drawable/ic_danarhistory"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:text="@string/pumphistory" />
@@ -727,7 +727,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
- android:drawableTop="@drawable/icon_danarstats"
+ android:drawableTop="@drawable/ic_danarstats"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:text="@string/stats" />
@@ -738,7 +738,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
- android:drawableTop="@drawable/icon_danar_useropt"
+ android:drawableTop="@drawable/ic_danar_useropt"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:text="@string/danar_useroptions" />
diff --git a/dana/src/main/res/layout/danar_historyactivity.xml b/dana/src/main/res/layout/danar_historyactivity.xml
index 5f723d56ed..3d1771dde4 100644
--- a/dana/src/main/res/layout/danar_historyactivity.xml
+++ b/dana/src/main/res/layout/danar_historyactivity.xml
@@ -20,7 +20,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@string/pumphistory"
- android:src="@drawable/icon_danarhistory" />
+ android:src="@drawable/ic_danarhistory" />
diff --git a/dana/src/main/res/layout/danar_user_options_activity.xml b/dana/src/main/res/layout/danar_user_options_activity.xml
index d9078576e7..9996fa93d0 100644
--- a/dana/src/main/res/layout/danar_user_options_activity.xml
+++ b/dana/src/main/res/layout/danar_user_options_activity.xml
@@ -26,7 +26,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@string/danar_pump_settings"
- android:src="@drawable/icon_danar_useropt" />
+ android:src="@drawable/ic_danar_useropt" />
diff --git a/dana/src/main/res/values-bg-rBG/strings.xml b/dana/src/main/res/values-bg-rBG/strings.xml
index dfbc3f46c8..72d2e51a94 100644
--- a/dana/src/main/res/values-bg-rBG/strings.xml
+++ b/dana/src/main/res/values-bg-rBG/strings.xml
@@ -1,14 +1,115 @@
+ Сдвояване
+ Все още устройството не е намерено
+ Сдвояване - ОК
+ Времето за сдвояване изтече
+ Очаква сдвояване с помпа
+ DanaRS
+ Dana
+ Поддръжка за Dana Diabecare RS помпи
+ Превишавате макс болус
+ Грешка при команда
+ Скорост грешка
+ Нарушение на макс дневен инсулин
+ Стартирано: %1$.2fЕ Доставено: %2$.2fЕ Код на грешка: %3$s
+ Неправилна стойност
+ Задайте стъпка на базала 0.01 Е/чНулиране на сдвояването?
- Модел: %1$02X Протокол: %2$02X Код: %3$02X
+ %1$s\nМодел: %2$02X\nПротокол: %3$02X\nКод: %4$02X
+ Обработва се събитие
+ Разрешете удължените болуси в настройките на помпата
+ Доставен
+ Спрян
+ Неподдържан фърмуер на помпата
+ Грешка в промпата
+ Изтощена батерияДоставяне на по-малко от предварително зададена базал
+ Помпата е изключена
+ Батерията на помпата е изтощена
+ Запушване
+ Празен резервоарПроверете валБазал максДневния максимум
+ Предупреждение за измерване на КЗ
+ Оставащ инсулинПропуснат болусНевалидна информация при сдвояване. Нов опит
+ Получава статус на помпата
+ Получава статус на удължен болус
+ Получава болус статус
+ Получава статус на временен базал
+ Получава настройките на помпата
+ Получава времето на помпата
+ Голяма времева разлика
+ Голяма времева разлика: Помпата е изключена за повече от 1,5 часа. Моля, регулирайте ръчно времето на помпата и се уверете, че четенето на историята от помпата не води до неочаквано поведение. Ако е възможно, премахнете историята от помпата, преди да промените времето или да изключите затворения кръг за едно DIA след последното погрешно влизане в историята, но поне едно DIA отсега.
+ Моля първо свържете помпата с телефона от Bluetooth настройките
+ Близо до максмалния дневен инсулин
+ Стартира доставка на болус
+ Изчаква края на болуса. Остават %1$d сек.
+ Спира временен базал
+ Настойва удължен болус
+ Спира удължен болус
+ Обновява базални стойности
+ Настройва временен базал
+ Изчаква синхронизация на времето (%1$d сек)
+ Грешна парола
+ Грешна парола за помпата!
+ Аларми
+ Базален по часове
+ Болуси
+ Въглехидрати
+ Инсулин за деня
+ Грешки
+ КЗ
+ Презареждане
+ Спиране
+ Пълнене
+ Потребителски опции
+ Формат на времето
+ Превъртане при задъжане
+ Звуков сигнал при натискане на бутон
+ Тип аларма
+ Звукова
+ Вибрация
+ И двете
+ Включен екран за [seconds]
+ Подсветка [seconds]
+ Единици на КЗ
+ Изключване след [hours]
+ Минимален инсулин в резервоара [Units]
+ Запиши опциите в помпата
+ Поддръжка за Dana Diabecare R помпи
+ Поддръжка за корейски Dana Diabecare R помпи
+ Поддръжка за Dana Diabecare R помпи с обновен софтуер
+ DANA
+ Не е открит Bluetooth адаптер
+ Избраното устройство не е открито
+ Променете режима от U/d на U/h в помпата
+ DanaR Корейска
+ DanaR
+ Драйверът за помпата е коригиран
+ DanaRv2
+ Забрани EasyUI режим в помпата
+ Неуспешно задаване на базален профил
+ Bluetooh статус
+ IOB на помпата
+ Стъпка при базал
+ Стъпка при болус
+ Фърмуер
+ DanaR настройки
+ 12ч
+ 24ч
+ Вкл
+ Изкл
+ DanaR Bluetooth устройствоПарола на помпата (само v1)
+ Парола за помпата
+ Използвай удължени болуси при над >200%%
+ Показвай удължените болуси като %%
+ Скорост на болус
+ Избрана помпаЗаписвай смените на резервоарДобави \"Смяна на резервоар\" в НС, когато е открит в историятаЗаписвай смяна на канюла
diff --git a/dana/src/main/res/values-es-rES/strings.xml b/dana/src/main/res/values-es-rES/strings.xml
index 3ea04e700d..f2c9d14b44 100644
--- a/dana/src/main/res/values-es-rES/strings.xml
+++ b/dana/src/main/res/values-es-rES/strings.xml
@@ -1,2 +1,122 @@
-
+
+ Emparejando
+ Aparato no encontrado
+ Conexión OK
+ Tiempo de Vinculación agotado
+ Esperando para conectar con bomba
+ DanaRS
+ Dana
+ Integración de bombas de insulina de DANA Diabecare RS
+ Violación de bolo Max
+ Error de comando
+ Error de velocidad
+ Límite de insulina sobrepasado
+ Solicitado: %1$.2fU Entregado: %2$.2fU Código de error: %3$s
+ Valor no establecido correctamente
+ Ajustar paso basal a 0.01 U/h
+ ¿Restablecer información de emparejamiento?
+ %1$s\nModelo: %2$02X\nProtocol: %3$02X\nCódigo: %4$02X
+ Procesando evento
+ Habilitar bolos extendidos en bomba
+ Entregado
+ Detenido
+ Firmware de la bomba no soportado
+ Error de bomba
+ Batería Baja
+ Entregar menos de la tasa basal preestablecida
+ Bomba apagada
+ Batería de la bomba descargada
+ Oclusión
+ Reservorio vacío
+ Comprobar eje
+ Basal max
+ Máximo diario
+ Alerta de control de BG
+ Insulina restante en reservorio
+ Bolo perdido
+ Información de emparejamiento no válida. Solicitando un nuevo emparejamiento
+ Recibir estado de bomba
+ Recibiendo estado de bolo extendido
+ Recibiendo estado bolo
+ Recibiendo estado basal temporal
+ Recibiendo configuración de la bomba
+ Recibiendo hora bomba
+ Diferencia de tiempo grande
+ Gran diferencia de tiempo: \nLa bomba esta desincronizada más de 1,5 horas. \npor favor ajusta la hora manualmente en la bomba y asegúrate de que la lectura del histórico de la bomba no causa comportamiento inesperado. \nSi es posible, borra el historial de la bomba antes de cambiar la hora o desactiva el lazo cerrado durante el periodo DIA (duracion insulina activa) después del último registro erróneo pero mínimo durante el DIA a partir de ahora.
+ Por favor, empareje su bomba con su teléfono!
+ Alcanzando el limite de insulina diario
+ Iniciando bolo
+ Esperando finalización del bolo. Faltan %1$d seg.
+ Parando basal temporal
+ Iniciando bolo extendido
+ Parando bolo extendido
+ Actualizando dosis basales
+ Ajustando basal temporal
+ Esperando para sincronización (%1$d sec)
+ Contraseña incorrecta
+ ¡Contraseña de la bomba incorrecta!
+ Alarmas
+ Basal Horas
+ Bolos
+ Carbohidratos
+ Insulina Diaria
+ Errores
+ Glucosa
+ Llenar
+ Suspender
+ Cebado
+ Opciones de usuario
+ Mostrar formato de tiempo
+ Botones de desplazamiento
+ Señal sonora de pulsación
+ Alarma
+ Sonido
+ Vibrar
+ Ambos
+ Tiempo de encendido de LCD [seconds]
+ Tiempo de luz fondo encendida [seconds]
+ Unidades de glucosa
+ Apagar [hours]
+ Reservorio bajo [Units]
+ Guardar las opciones en la bomba
+ Integración de bombas de insulina de DANA Diabecare R
+ Integración de bombas de insulina DANA Diabecare R
+ Integración para bombas de insulina DANA Diabecare R con el firmware actualizado
+ DANA
+ No se encuentra adaptador Bluetooth
+ El dispositivo seleccionado no se encuentra
+ Cambio de modo de U/d a U/h en bomba
+ DanaR Korean
+ DanaR
+ Control de la bomba corregido
+ DanaRv2
+ Inhabilitar modo EasyUI en bomba
+ Error al activar perfil basal
+ Estado de bluetooth
+ Bomba IOB
+ Nivel base
+ Nivel bolo
+ Firmware
+ Ajustes de la bomba Dana
+ 12 h
+ 24 h
+ Activado
+ Desactivado
+ Dispositivo Bluetooth DanaR
+ Bomba de contraseña (v1 solamente)
+ Contraseña de la bomba
+ Usar bolos extendidos para >200%%
+ Visualizar bolo extendido como %%
+ Velocidad bolo
+ Bomba seleccionada
+ Registrar cambios de reservorio
+ Añadir evento \"Cambio de Insulina\" al portal de cuidados cuando se detecte en el historial
+ Registro de cambio de cánula
+ Añadir evento \"Cambio de Cánula\" al portal de cuidados cuando se detecte en el historial
+ PIN1
+ PIN2
+ Pulse Aceptar en la bomba\ny entre 2 números visualizados\nMantener la pantalla en la bomba ON pulsando el botón menos hasta que termine de introducir el código.
+ 1: (12 dígitos)
+ 2: (8 dígitos)
+
diff --git a/dana/src/main/res/values-lt-rLT/strings.xml b/dana/src/main/res/values-lt-rLT/strings.xml
index 3ea04e700d..bca4fcbf52 100644
--- a/dana/src/main/res/values-lt-rLT/strings.xml
+++ b/dana/src/main/res/values-lt-rLT/strings.xml
@@ -1,2 +1,122 @@
-
+
+ Sujungiama
+ Nerasta jokio prietaiso
+ Sujungta
+ Sujungimui skirtas laikas baigėsi
+ Laukiama ryšio su pompa
+ DanaRS
+ Dana
+ DANA Diabecare RS pompos integracija
+ Pažeistas maks boluso limitas
+ Komandos klaida
+ Greičio klaida
+ Pažeistas insulino dozės limitas
+ Įvesta: %1$.2fvv Suleista: %2$.2fvv Klaidos kodas: %3$s
+ Vertė nėra tinkamai nustatyta
+ Nustatyti bazės žingsnį 0.01 vv/val
+ Panaikinti sąsajos informaciją?
+ %1$s\nModelis: %2$02X\nProtokolas: %3$02X\nKodas: %4$02X
+ Apdorojama
+ Aktyvuoti ištęstinius bolusus pompoje
+ Suleista
+ Sustabdyta
+ Pompos programinės įrangos versija nepalaikoma
+ Pompos klaida
+ Senka baterija
+ Suleidžiama mažiau už nustatytą valandinę bazę
+ Pompa išsijungė
+ Pompos baterija išsikrovusi
+ Užsikimšimas
+ Rezervuaras tuščias
+ Patikrinti stūmoklį pompoje
+ Maks. valandinė bazė
+ Dienos maksimumas
+ Gliukozės kiekio kraujyje matavimo perspėjimas
+ Likusio insulino kiekis
+ Nesuleistas bolusas
+ Netinkama susiejimo informacija. Bandoma susieti iš naujo
+ Gaunamas pompos statusas
+ Gaunamas ištęstinio boluso statusas
+ Gaunamas boluso statusas
+ Gaunamas laikinos bazės statusas
+ Gaunami pompos nustatymai
+ Gaunamas pompos laikas
+ 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.
+ Atnaujinkite pompos ir telefono ryšį!
+ Artėja paros insulino limitas
+ Pradedamas bolusas
+ Laukiama boluso pabaigos. Liko %1$d s.
+ Laikinos bazės sustabdymas
+ Ištęsto boluso nustatymas
+ Ištęsto boluso sustabdymas
+ Bazė naujinama
+ Laikinos bazės nustatymas
+ Laukiama laiko sinchronizavimo (%1$d sek.)
+ Neteisingas slaptažodis
+ Neteisingas pompos slaptažodis!
+ Aliarmai
+ Valandinė bazė
+ Bolusai
+ AV
+ Paros insulinas
+ Klaidos
+ Gliukozė
+ Užpildymas
+ Sustabdyta
+ Užpildyti sistemą
+ Vartotojo parinktys
+ Rodyti laiko formatą
+ Mygtukų slinkties funkcija
+ Pypsėjimas spaudžiant mygtukus
+ Aliarmas
+ Garsas
+ Vibravimas
+ Abu
+ Ekrano aktyvumo laikas [seconds]
+ Ekrano apšvietimo laikas [seconds]
+ KG vienetai
+ Išjungimas [hours]
+ Žemas rezervuaro lygis [Units]
+ Išsaugoti nustatymus pompoje
+ 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
+ Bluetooth adapteris nerastas
+ Pasirinktas įrenginys nerastas
+ Pakeisti pompoje vv/d režimą į vv/val
+ DanaR Korean
+ DanaR
+ Pompos valdiklis pakoreguotas
+ DanaRv2
+ Išjungti pompos EasyUI režimą
+ Nepavyko nustatyti bazės profilio
+ Bluetooth statusas
+ Pompos AIO
+ Bazės žingsnis
+ Boluso žingsnis
+ Programinė įranga
+ Dana pompos nustatymai
+ 12h
+ 24h
+ Įjungti
+ Išjungti
+ DanaR Bluetooth įrenginys
+ Pompos slaptažodis (tik v1)
+ Pompos slaptažodis
+ Naudoti ištęstinį bolusą >200%%
+ Rodyti ištęstinį boliusą kaip %%
+ Boluso greitis
+ Pasirinkta pompa
+ Įrašyti rezervuaro keitimą
+ Įtraukti į terapijos skiltį įvykį „Insulino pakeitimas“, jei jis aptinkamas istorijoje
+ Įrašyti kaniulės pakeitimą
+ Įtraukti į terapijos skiltį įvykį „Kaniulės pakeitimas“, jei jis aptinkamas istorijoje
+ PIN1
+ PIN2
+ Paspauskite pompos mygtuką OK\n ir įveskite 2 rodomus skaičius\nĮjunkite pompos ekraną spausdami minuso mygtuką, kol baigsite įvesti kodą.
+ 1: (12 skaitmenų)
+ 2: (8 skaitmenys)
+
diff --git a/dana/src/main/res/values-nl-rNL/strings.xml b/dana/src/main/res/values-nl-rNL/strings.xml
index c6598c41dd..ac4438bf96 100644
--- a/dana/src/main/res/values-nl-rNL/strings.xml
+++ b/dana/src/main/res/values-nl-rNL/strings.xml
@@ -29,6 +29,7 @@
Pomp Batterij LeegAfsluitingReservoir leeg
+ Controleer aandrijfstangMax basaalMax per dagBloed glucose meting alarm
@@ -62,7 +63,7 @@
Dagtotaal insulineStoringGlucose
- Reservoirvullen
+ Reservoir vullenOnderbrekenVullenGebruikersopties
diff --git a/dana/src/main/res/values-pt-rBR/strings.xml b/dana/src/main/res/values-pt-rBR/strings.xml
index d641178465..756ea27a45 100644
--- a/dana/src/main/res/values-pt-rBR/strings.xml
+++ b/dana/src/main/res/values-pt-rBR/strings.xml
@@ -1,6 +1,6 @@
- A Emparelhar
+ A emparelharNenhum dispositivo encontrado até agoraEmparelhamento OKTempo emparelhamento excedido
@@ -12,57 +12,52 @@
Erro no comandoErro velocidadeTransgressão limite insulina
- Pedido: %1$.2fU Administrado: %2$.2fU Código Erro: %3$s
+ Pedido: %1$.2fU Entregue: %2$.2fU Código Erro: %3$sValor não definido corretamenteColoque o incremento da basal em 0.01 U/h
- Repor as informações de emparelhamento?
- %1$s\nModelo: %2$02X\nProtocolo: %3$02X\nCódigo: %4$02X
- A processar acção
- Habilitar bólus prolongado na bomba
- Administrado
+ Processando ação
+ Habilitar bolus estendido na bomba
+ EntregueParadoFirmware bomba não suportado
- Erro Bomba
+ Erro da BombaBateria fraca
- A administrar menos que a taxa de base predefinida
- Encerrar Bomba
+ Bomba desligadaBateria da Bomba DescarregadaOclusãoReservatório vazioAlerta medição da glicemiaNível de insulina restante
- Bólus não administrado
- Informações de emparelhamento inválidas. A solicitar novo emparelhamentoA obter estado bomba
- A procurar o estado do bólus prolongado
+ Procurando o status do bolus estendidoA obter estado bólusA obter o status da basal temporáriaA obter as definições da bombaA obter hora bombaGrande diferença Horária
- Grande diferença horária:\n A diferença de hora para a bomba é superior a 1.5h.\nPor favor ajuste manualmente a hora na bomba e certifique-se que a leitura do histórico da bomba não provoca problemas.\nSe possível apague o histórico da bomba antes de modificar a hora ou desabilite o loop durante toda a duração de acção da insulina (DIA) depois da ultima entrada no histórico da bomba ou mais um DIA desde o momento da correcção, qual delas seja a que mantenha o loop aberto durante mais tempo.
+ Grande diferença horária:\n A diferença de hora para a bomba é superior a 1.5h.\nPor favor ajuste manualmente a hora na bomba e certifique-se que a leitura do histórico da bomba não provoca problemas.\nSe possível apague o histórico da bomba antes de modificar a hora ou desabilite o loop durante toda a duração de ação da insulina DIA depois da ultima entrada no histórico da bomba ou mais um DIA desde o momento da correção, qual delas seja a que mantenha o loop aberto durante mais tempo.Emparelhe a sua bomba com o seu telefone!
- Aproximação do limite diário de insulina
- A iniciar administração de bólus
- A aguardar o final do bolus. Restam %1$d seg.
+ Aproximação do limite diario de insulina
+ A iniciar administração de bolus
+ A aguardar o final do bolus. Restam %1$d sec.A parar basal temp
- A configurar bólus prolongado
- A parar bólus prolongado
- A actualizar taxas das basais
+ Configurando bolus prolongado
+ Parando bolus prolongado
+ Atualizar valores das basaisDefinindo basal tempÀ espera da sincronização da hora (%1$d sec)Senha incorrectaSenha da bomba incorrecta!AlarmesHoras de Basal
- Bólus
- Hidratos de Carbono
+ Bolus
+ CarboidratosInsulina diáriaErrosGlicose
- Encher
+ ReabastecimentoSuspender
- Purgar
+ Purge/EnchaOpções do utilizadorFormato horaBotão rolamento
@@ -73,47 +68,35 @@
AmbosLCD na hora [segundos]Luz de fundo na hora [segundos]
- Unidades de Glicose
+ Unidades de GlucoseDesligar [horas]Reservatório baixo [Unidades]Gravar opções para a bombaIntegração para bombas DANA Diabecare RIntegração para bombas DANA Diabecare R Coreanas
- Integração para as bombas DANA Diabecare R com firmware actualizado
+ Integração para as bombas DANA Diabecare R com firmware atualizadoDANANenhum dispositivo bluetooth encontrado
- Dispositivo seleccionado não foi encontrado
+ Dispositivo selecionado não foi encontradoMudar de modo U/d para U/h na bombaDanaR CoreanaDanaRControlador bomba corrigidoDanaRv2
- Desactivar modo EasyUI na bomba
- Não foi possível configurar o perfil de basal
+ Desativar modo EasyUI na bomba
+ Não foi possivel configurar o perfil de basalEstado BluetoothIOB Bomba
- Incremento Basal
- Incremento Bólus
+ Valor da Basal
+ Incremento de bolusFirmwareConfigurações da bomba Dana
- 12h
- 24hLigadoDesligadoDispositivo Bluetooth DanaR
- Senha da bomba (apenas v1)Senha da bomba
- Usar bólus prolongado por >200%%
+ Usar bólus prolongado de >200%%Visualizar bólus prolongado como %%Velocidade BólusBomba seleccionada
- Registar mudança de reservatório
- Adicionar evento \"Mudança de Insulina\" ao careportal quando detectado no histórico
- Registar mudança de canula
- Adicionar evento \"Mudança Local Bomba\" ao careportal, quando detectado no histórico
- PIN1
- PIN2
- Pressione OK na bomba\ne digite os 2 números mostrados\nManter o visor da bomba ligado, pressionando o botão menos até que você termine a digitação do código.
- 1: (12 dígitos)
- 2: (8 dígitos)
diff --git a/dana/src/main/res/values-ro-rRO/strings.xml b/dana/src/main/res/values-ro-rRO/strings.xml
index 3ea04e700d..18b02bafb7 100644
--- a/dana/src/main/res/values-ro-rRO/strings.xml
+++ b/dana/src/main/res/values-ro-rRO/strings.xml
@@ -1,2 +1,45 @@
-
+
+ DanaRS
+ Dana
+ Livrat
+ Oprit
+ Ocluzie
+ Rezervor gol
+ Se oprește bazala temporară
+ Se oprește bolusul extins
+ Parolă greșită
+ Parola pompei greșită!
+ Alarme
+ Bolusuri
+ Carbohidrați
+ Erori
+ Glicemie
+ Reumplere
+ Suspendare
+ Amorsare
+ Alarmă
+ Sunet
+ Vibrație
+ Ambele
+ Salvați opțiunile în pompă
+ Integrare cu pompele DANA Diabcare R
+ DANA
+ DanaR din Coreea
+ DanaR
+ DanaRv2
+ Status Bluetooth
+ IOB din pompă
+ Pas bazală
+ Pas bolus
+ Firmware
+ Setări pompă Dana
+ 12h
+ 24h
+ Pornit
+ Oprit
+ PIN1
+ PIN2
+ 1: (12 cifre)
+ 2: (8 cifre)
+
diff --git a/danar/build.gradle b/danar/build.gradle
index 878641c87a..349db5dbad 100644
--- a/danar/build.gradle
+++ b/danar/build.gradle
@@ -51,7 +51,7 @@ dependencies {
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:$coroutinesVersion"
implementation 'androidx.appcompat:appcompat:1.1.0'
- implementation 'androidx.core:core-ktx:1.2.0'
+ implementation "androidx.core:core-ktx:${coreVersion}"
implementation "androidx.preference:preference-ktx:1.1.1"
implementation "androidx.activity:activity-ktx:${activityVersion}"
diff --git a/danar/src/main/java/info/nightscout/androidaps/danar/comm/MsgHistoryAll.kt b/danar/src/main/java/info/nightscout/androidaps/danar/comm/MsgHistoryAll.kt
index f7573d14c2..17b4d54d3e 100644
--- a/danar/src/main/java/info/nightscout/androidaps/danar/comm/MsgHistoryAll.kt
+++ b/danar/src/main/java/info/nightscout/androidaps/danar/comm/MsgHistoryAll.kt
@@ -17,8 +17,6 @@ open class MsgHistoryAll(
override fun handleMessage(bytes: ByteArray) {
val recordCode = intFromBuff(bytes, 0, 1).toByte()
val date = dateFromBuff(bytes, 1) // 3 bytes
- val datetime = dateTimeFromBuff(bytes, 1) // 5 bytes
- val datetimewihtsec = dateTimeSecFromBuff(bytes, 1) // 6 bytes
val dailyBasal = intFromBuff(bytes, 4, 2) * 0.01
val dailyBolus = intFromBuff(bytes, 6, 2) * 0.01
//val paramByte5 = intFromBuff(bytes, 4, 1).toByte()
@@ -32,6 +30,7 @@ open class MsgHistoryAll(
var messageType = ""
when (recordCode) {
info.nightscout.androidaps.dana.comm.RecordTypes.RECORD_TYPE_BOLUS -> {
+ val datetime = dateTimeFromBuff(bytes, 1) // 5 bytes
danaRHistoryRecord.recordDate = datetime
when (0xF0 and paramByte8.toInt()) {
0xA0 -> {
@@ -69,48 +68,56 @@ open class MsgHistoryAll(
info.nightscout.androidaps.dana.comm.RecordTypes.RECORD_TYPE_PRIME -> {
messageType += "prime"
+ val datetimewihtsec = dateTimeSecFromBuff(bytes, 1) // 6 bytes
danaRHistoryRecord.recordDate = datetimewihtsec
danaRHistoryRecord.recordValue = value * 0.01
}
info.nightscout.androidaps.dana.comm.RecordTypes.RECORD_TYPE_ERROR -> {
messageType += "error"
+ val datetimewihtsec = dateTimeSecFromBuff(bytes, 1) // 6 bytes
danaRHistoryRecord.recordDate = datetimewihtsec
danaRHistoryRecord.recordValue = value * 0.01
}
info.nightscout.androidaps.dana.comm.RecordTypes.RECORD_TYPE_REFILL -> {
messageType += "refill"
+ val datetimewihtsec = dateTimeSecFromBuff(bytes, 1) // 6 bytes
danaRHistoryRecord.recordDate = datetimewihtsec
danaRHistoryRecord.recordValue = value * 0.01
}
info.nightscout.androidaps.dana.comm.RecordTypes.RECORD_TYPE_BASALHOUR -> {
messageType += "basal hour"
+ val datetimewihtsec = dateTimeSecFromBuff(bytes, 1) // 6 bytes
danaRHistoryRecord.recordDate = datetimewihtsec
danaRHistoryRecord.recordValue = value * 0.01
}
info.nightscout.androidaps.dana.comm.RecordTypes.RECORD_TYPE_TB -> {
messageType += "tb"
+ val datetimewihtsec = dateTimeSecFromBuff(bytes, 1) // 6 bytes
danaRHistoryRecord.recordDate = datetimewihtsec
danaRHistoryRecord.recordValue = value * 0.01
}
info.nightscout.androidaps.dana.comm.RecordTypes.RECORD_TYPE_GLUCOSE -> {
messageType += "glucose"
+ val datetimewihtsec = dateTimeSecFromBuff(bytes, 1) // 6 bytes
danaRHistoryRecord.recordDate = datetimewihtsec
danaRHistoryRecord.recordValue = value
}
info.nightscout.androidaps.dana.comm.RecordTypes.RECORD_TYPE_CARBO -> {
messageType += "carbo"
+ val datetimewihtsec = dateTimeSecFromBuff(bytes, 1) // 6 bytes
danaRHistoryRecord.recordDate = datetimewihtsec
danaRHistoryRecord.recordValue = value
}
info.nightscout.androidaps.dana.comm.RecordTypes.RECORD_TYPE_ALARM -> {
messageType += "alarm"
+ val datetimewihtsec = dateTimeSecFromBuff(bytes, 1) // 6 bytes
danaRHistoryRecord.recordDate = datetimewihtsec
var strAlarm = "None"
when (paramByte8.toInt()) {
@@ -125,6 +132,7 @@ open class MsgHistoryAll(
info.nightscout.androidaps.dana.comm.RecordTypes.RECORD_TYPE_SUSPEND -> {
messageType += "suspend"
+ val datetimewihtsec = dateTimeSecFromBuff(bytes, 1) // 6 bytes
danaRHistoryRecord.recordDate = datetimewihtsec
var strRecordValue = "Off"
if (paramByte8.toInt() == 79) strRecordValue = "On"
diff --git a/danars/build.gradle b/danars/build.gradle
index 4e991b502d..e27dc5df75 100644
--- a/danars/build.gradle
+++ b/danars/build.gradle
@@ -50,7 +50,7 @@ dependencies {
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:$coroutinesVersion"
implementation 'androidx.appcompat:appcompat:1.1.0'
- implementation 'androidx.core:core-ktx:1.2.0'
+ implementation "androidx.core:core-ktx:${coreVersion}"
implementation "androidx.preference:preference-ktx:1.1.1"
implementation "androidx.activity:activity-ktx:${activityVersion}"
diff --git a/danars/src/main/java/info/nightscout/androidaps/danars/DanaRSPlugin.kt b/danars/src/main/java/info/nightscout/androidaps/danars/DanaRSPlugin.kt
index 01ef2637c3..7619c7515a 100644
--- a/danars/src/main/java/info/nightscout/androidaps/danars/DanaRSPlugin.kt
+++ b/danars/src/main/java/info/nightscout/androidaps/danars/DanaRSPlugin.kt
@@ -58,8 +58,7 @@ class DanaRSPlugin @Inject constructor(
private val danaPump: DanaPump,
private val detailedBolusInfoStorage: DetailedBolusInfoStorage,
private val fabricPrivacy: FabricPrivacy,
- private val dateUtil: DateUtil,
- private val config: ConfigInterface
+ private val dateUtil: DateUtil
) : PumpPluginBase(PluginDescription()
.mainType(PluginType.PUMP)
.fragmentClass(info.nightscout.androidaps.dana.DanaFragment::class.java.name)
diff --git a/danars/src/main/java/info/nightscout/androidaps/danars/services/BLEComm.kt b/danars/src/main/java/info/nightscout/androidaps/danars/services/BLEComm.kt
index 0ce9182f80..e3e0bc4db0 100644
--- a/danars/src/main/java/info/nightscout/androidaps/danars/services/BLEComm.kt
+++ b/danars/src/main/java/info/nightscout/androidaps/danars/services/BLEComm.kt
@@ -451,9 +451,6 @@ class BLEComm @Inject internal constructor(
// v3 2nd layer encryption
v3Encryption = true
danaPump.v3RSPump = true
- rxBus.send(EventNewNotification(Notification(Notification.UNSUPPORTED_FIRMWARE, resourceHelper.gs(R.string.unsupportedfirmware), Notification.URGENT)))
- disconnect("Wrong firmware")
- /*
val model = decryptedBuffer[5]
// val protocol = decryptedBuffer[7]
if (model == 0x05.toByte()) {
@@ -481,7 +478,6 @@ class BLEComm @Inject internal constructor(
val bytes: ByteArray = bleEncryption.getEncryptedPacket(BleEncryption.DANAR_PACKET__OPCODE_ENCRYPTION__GET_EASYMENU_CHECK, null, null)
writeCharacteristicNoResponse(uartWriteBTGattChar, bytes)
}
- */
// response PUMP : error status
} else if (decryptedBuffer.size == 6 && decryptedBuffer[2] == 'P'.toByte() && decryptedBuffer[3] == 'U'.toByte() && decryptedBuffer[4] == 'M'.toByte() && decryptedBuffer[5] == 'P'.toByte()) {
aapsLogger.debug(LTag.PUMPBTCOMM, "<<<<< " + "ENCRYPTION__PUMP_CHECK (PUMP)" + " " + DanaRS_Packet.toHexString(decryptedBuffer))
diff --git a/danars/src/main/java/info/nightscout/androidaps/danars/services/DanaRSService.kt b/danars/src/main/java/info/nightscout/androidaps/danars/services/DanaRSService.kt
index 469eb2188d..abe5f6333d 100644
--- a/danars/src/main/java/info/nightscout/androidaps/danars/services/DanaRSService.kt
+++ b/danars/src/main/java/info/nightscout/androidaps/danars/services/DanaRSService.kt
@@ -11,6 +11,7 @@ import dagger.android.HasAndroidInjector
import info.nightscout.androidaps.Constants
import info.nightscout.androidaps.activities.ErrorHelperActivity
import info.nightscout.androidaps.dana.DanaPump
+import info.nightscout.androidaps.dana.events.EventDanaRNewStatus
import info.nightscout.androidaps.danars.DanaRSPlugin
import info.nightscout.androidaps.danars.R
import info.nightscout.androidaps.danars.comm.*
@@ -153,12 +154,17 @@ class DanaRSService : DaggerService() {
// initial handshake was not successful
// de-initialize pump
danaPump.reset()
- rxBus.send(info.nightscout.androidaps.dana.events.EventDanaRNewStatus())
+ rxBus.send(EventDanaRNewStatus())
rxBus.send(EventInitializationChanged())
return
}
aapsLogger.debug(LTag.PUMPCOMM, "Pump time difference: $timeDiff seconds")
- if (abs(timeDiff) > 3) {
+ // phone timezone
+ val tz = DateTimeZone.getDefault()
+ val instant = DateTime.now().millis
+ val offsetInMilliseconds = tz.getOffset(instant).toLong()
+ val offset = TimeUnit.MILLISECONDS.toHours(offsetInMilliseconds).toInt()
+ if (abs(timeDiff) > 3 || danaPump.usingUTC && offset != danaPump.zoneOffset) {
if (abs(timeDiff) > 60 * 60 * 1.5) {
aapsLogger.debug(LTag.PUMPCOMM, "Pump time difference: $timeDiff seconds - large difference")
//If time-diff is very large, warn user until we can synchronize history readings properly
@@ -171,16 +177,12 @@ class DanaRSService : DaggerService() {
//de-initialize pump
danaPump.reset()
- rxBus.send(info.nightscout.androidaps.dana.events.EventDanaRNewStatus())
+ rxBus.send(EventDanaRNewStatus())
rxBus.send(EventInitializationChanged())
return
} else {
if (danaPump.usingUTC) {
- val tz = DateTimeZone.getDefault()
- val instant = DateTime.now().millis
- val offsetInMilliseconds = tz.getOffset(instant).toLong()
- val hours = TimeUnit.MILLISECONDS.toHours(offsetInMilliseconds).toInt()
- sendMessage(DanaRS_Packet_Option_Set_Pump_UTC_And_TimeZone(injector, DateUtil.now(), hours))
+ sendMessage(DanaRS_Packet_Option_Set_Pump_UTC_And_TimeZone(injector, DateUtil.now(), offset))
} else if (danaPump.protocol >= 6) { // can set seconds
sendMessage(DanaRS_Packet_Option_Set_Pump_Time(injector, DateUtil.now()))
} else {
@@ -195,7 +197,7 @@ class DanaRSService : DaggerService() {
}
}
loadEvents()
- rxBus.send(info.nightscout.androidaps.dana.events.EventDanaRNewStatus())
+ rxBus.send(EventDanaRNewStatus())
rxBus.send(EventInitializationChanged())
//NSUpload.uploadDeviceStatus();
if (danaPump.dailyTotalUnits > danaPump.maxDailyTotalUnits * Constants.dailyLimitWarning) {
diff --git a/icons/actions_cancelextbolus.svg b/icons/actions_cancelextbolus.svg
index 98c7fa503b..7deda488e6 100644
--- a/icons/actions_cancelextbolus.svg
+++ b/icons/actions_cancelextbolus.svg
@@ -1,6 +1,4 @@
-
-
diff --git a/wear/src/main/res/values-pt-rBR/strings.xml b/wear/src/main/res/values-pt-rBR/strings.xml
index 28339639d6..1390a92cc7 100644
--- a/wear/src/main/res/values-pt-rBR/strings.xml
+++ b/wear/src/main/res/values-pt-rBR/strings.xml
@@ -19,7 +19,7 @@
Lig.Desl.Vibrar no Bólus
- Unidades para Acções
+ Unidades para AçõesMostrar DataMostrar IOBMostrar COB
@@ -30,7 +30,7 @@
Mostrar Taxa BasalMostrar Estado LoopMostrar Glic.
- Mostrar Seta Direcção
+ Mostrar Seta DireçãoMostrar AtrásEscuroDestacar Basais
diff --git a/wear/src/main/res/values-ro-rRO/strings.xml b/wear/src/main/res/values-ro-rRO/strings.xml
index 3ea04e700d..75a59a0d4f 100644
--- a/wear/src/main/res/values-ro-rRO/strings.xml
+++ b/wear/src/main/res/values-ro-rRO/strings.xml
@@ -1,2 +1,16 @@
-
+
+ AAPS
+ AAPS
+ AAPS
+ AAPSv2
+ Sincronizare cu AAPS!
+ Pornit
+ Oprit
+ 1 oră
+ 2 ore
+ 3 ore
+ 4 ore
+ 5 ore
+ Implicit
+