Merge remote-tracking branch 'origin/dev' into feature/new-sms-command

# Conflicts:
#	app/src/test/java/info/nightscout/androidaps/interfaces/ConstraintsCheckerTest.kt
This commit is contained in:
piotrek 2022-12-09 19:11:11 +01:00
commit 12a9102915
584 changed files with 3719 additions and 3922 deletions

View file

@ -111,7 +111,7 @@ android {
defaultConfig { defaultConfig {
multiDexEnabled true multiDexEnabled true
versionCode 1500 versionCode 1500
version "3.1.0.3-dev-d" version "3.1.0.3-dev-e"
buildConfigField "String", "VERSION", '"' + version + '"' buildConfigField "String", "VERSION", '"' + version + '"'
buildConfigField "String", "BUILDVERSION", '"' + generateGitBuild() + '-' + generateDate() + '"' buildConfigField "String", "BUILDVERSION", '"' + generateGitBuild() + '-' + generateDate() + '"'
buildConfigField "String", "REMOTE", '"' + generateGitRemote() + '"' buildConfigField "String", "REMOTE", '"' + generateGitRemote() + '"'
@ -198,10 +198,12 @@ dependencies {
implementation project(':plugins:aps') implementation project(':plugins:aps')
implementation project(':plugins:automation') implementation project(':plugins:automation')
implementation project(':plugins:configuration') implementation project(':plugins:configuration')
implementation project(':plugins:constraints')
implementation project(':plugins:insulin')
implementation project(':plugins:main') implementation project(':plugins:main')
implementation project(':plugins:openhumans') implementation project(':plugins:openhumans')
implementation project(':plugins:sensitivity') implementation project(':plugins:sensitivity')
implementation project(':plugins:support') implementation project(':plugins:source')
implementation project(':plugins:sync') implementation project(':plugins:sync')
implementation project(':implementation') implementation project(':implementation')
implementation project(':database:entities') implementation project(':database:entities')
@ -217,10 +219,11 @@ dependencies {
implementation project(':pump:medtronic') implementation project(':pump:medtronic')
implementation project(':pump:pump-common') implementation project(':pump:pump-common')
implementation project(':pump:pump-core') implementation project(':pump:pump-core')
implementation project(':pump:rileylink')
implementation project(':pump:omnipod-common') implementation project(':pump:omnipod-common')
implementation project(':pump:omnipod-eros') implementation project(':pump:omnipod-eros')
implementation project(':pump:omnipod-dash') implementation project(':pump:omnipod-dash')
implementation project(':pump:rileylink')
implementation project(':pump:virtual')
implementation project(':workflow') implementation project(':workflow')
implementation fileTree(include: ['*.jar'], dir: 'libs') implementation fileTree(include: ['*.jar'], dir: 'libs')

View file

@ -132,7 +132,7 @@
</provider> </provider>
<service <service
android:name="info.nightscout.core.services.AlarmSoundService" android:name="info.nightscout.ui.services.AlarmSoundService"
android:enabled="true" android:enabled="true"
android:exported="true" /> android:exported="true" />
<uses-library <uses-library

View file

@ -28,6 +28,7 @@ import info.nightscout.automation.AutomationPlugin
import info.nightscout.configuration.maintenance.MaintenancePlugin import info.nightscout.configuration.maintenance.MaintenancePlugin
import info.nightscout.core.ui.dialogs.OKDialog import info.nightscout.core.ui.dialogs.OKDialog
import info.nightscout.implementation.plugin.PluginStore import info.nightscout.implementation.plugin.PluginStore
import info.nightscout.insulin.InsulinOrefFreePeakPlugin
import info.nightscout.interfaces.Config import info.nightscout.interfaces.Config
import info.nightscout.interfaces.nsclient.NSSettingsStatus import info.nightscout.interfaces.nsclient.NSSettingsStatus
import info.nightscout.interfaces.plugin.PluginBase import info.nightscout.interfaces.plugin.PluginBase
@ -47,22 +48,13 @@ import info.nightscout.plugins.general.autotune.AutotunePlugin
import info.nightscout.plugins.general.smsCommunicator.SmsCommunicatorPlugin import info.nightscout.plugins.general.smsCommunicator.SmsCommunicatorPlugin
import info.nightscout.plugins.general.wear.WearPlugin import info.nightscout.plugins.general.wear.WearPlugin
import info.nightscout.plugins.general.xdripStatusline.StatusLinePlugin import info.nightscout.plugins.general.xdripStatusline.StatusLinePlugin
import info.nightscout.plugins.insulin.InsulinOrefFreePeakPlugin
import info.nightscout.plugins.pump.virtual.VirtualPumpPlugin
import info.nightscout.plugins.source.AidexPlugin
import info.nightscout.plugins.source.DexcomPlugin
import info.nightscout.plugins.source.EversensePlugin
import info.nightscout.plugins.source.GlimpPlugin
import info.nightscout.plugins.source.GlunovoPlugin
import info.nightscout.plugins.source.IntelligoPlugin
import info.nightscout.plugins.source.PoctechPlugin
import info.nightscout.plugins.source.TomatoPlugin
import info.nightscout.plugins.sync.nsclient.NSClientPlugin import info.nightscout.plugins.sync.nsclient.NSClientPlugin
import info.nightscout.plugins.sync.nsclientV3.NSClientV3Plugin import info.nightscout.plugins.sync.nsclientV3.NSClientV3Plugin
import info.nightscout.plugins.sync.tidepool.TidepoolPlugin import info.nightscout.plugins.sync.tidepool.TidepoolPlugin
import info.nightscout.pump.combo.ComboPlugin import info.nightscout.pump.combo.ComboPlugin
import info.nightscout.pump.combov2.ComboV2Plugin import info.nightscout.pump.combov2.ComboV2Plugin
import info.nightscout.pump.diaconn.DiaconnG8Plugin import info.nightscout.pump.diaconn.DiaconnG8Plugin
import info.nightscout.pump.virtual.VirtualPumpPlugin
import info.nightscout.rx.bus.RxBus import info.nightscout.rx.bus.RxBus
import info.nightscout.rx.events.EventPreferenceChange import info.nightscout.rx.events.EventPreferenceChange
import info.nightscout.rx.events.EventRebuildTabs import info.nightscout.rx.events.EventRebuildTabs
@ -72,6 +64,14 @@ import info.nightscout.sensitivity.SensitivityWeightedAveragePlugin
import info.nightscout.shared.SafeParse import info.nightscout.shared.SafeParse
import info.nightscout.shared.interfaces.ResourceHelper import info.nightscout.shared.interfaces.ResourceHelper
import info.nightscout.shared.sharedPreferences.SP import info.nightscout.shared.sharedPreferences.SP
import info.nightscout.source.AidexPlugin
import info.nightscout.source.DexcomPlugin
import info.nightscout.source.EversensePlugin
import info.nightscout.source.GlimpPlugin
import info.nightscout.source.GlunovoPlugin
import info.nightscout.source.IntelligoPlugin
import info.nightscout.source.PoctechPlugin
import info.nightscout.source.TomatoPlugin
import javax.inject.Inject import javax.inject.Inject
class MyPreferenceFragment : PreferenceFragmentCompat(), OnSharedPreferenceChangeListener { class MyPreferenceFragment : PreferenceFragmentCompat(), OnSharedPreferenceChangeListener {

View file

@ -20,9 +20,10 @@ import info.nightscout.core.di.CoreModule
import info.nightscout.core.validators.di.ValidatorsModule import info.nightscout.core.validators.di.ValidatorsModule
import info.nightscout.database.impl.DatabaseModule import info.nightscout.database.impl.DatabaseModule
import info.nightscout.implementation.di.ImplementationModule import info.nightscout.implementation.di.ImplementationModule
import info.nightscout.insulin.di.InsulinModule
import info.nightscout.plugins.aps.di.ApsModule import info.nightscout.plugins.aps.di.ApsModule
import info.nightscout.plugins.constraints.di.PluginsConstraintsModule
import info.nightscout.plugins.di.PluginsModule import info.nightscout.plugins.di.PluginsModule
import info.nightscout.plugins.support.di.PluginsSupportModule
import info.nightscout.plugins.sync.di.SyncModule import info.nightscout.plugins.sync.di.SyncModule
import info.nightscout.pump.combo.di.ComboModule import info.nightscout.pump.combo.di.ComboModule
import info.nightscout.pump.combov2.di.ComboV2Module import info.nightscout.pump.combov2.di.ComboV2Module
@ -31,9 +32,11 @@ import info.nightscout.pump.dana.di.DanaHistoryModule
import info.nightscout.pump.dana.di.DanaModule import info.nightscout.pump.dana.di.DanaModule
import info.nightscout.pump.danars.di.DanaRSModule import info.nightscout.pump.danars.di.DanaRSModule
import info.nightscout.pump.diaconn.di.DiaconnG8Module import info.nightscout.pump.diaconn.di.DiaconnG8Module
import info.nightscout.pump.virtual.di.VirtualPumpModule
import info.nightscout.rx.di.RxModule import info.nightscout.rx.di.RxModule
import info.nightscout.shared.di.SharedModule import info.nightscout.shared.di.SharedModule
import info.nightscout.shared.impl.di.SharedImplModule import info.nightscout.shared.impl.di.SharedImplModule
import info.nightscout.source.di.SourceModule
import info.nightscout.ui.di.UiModule import info.nightscout.ui.di.UiModule
import info.nightscout.workflow.di.WorkflowModule import info.nightscout.workflow.di.WorkflowModule
import javax.inject.Singleton import javax.inject.Singleton
@ -55,6 +58,7 @@ import javax.inject.Singleton
CoreModule::class, CoreModule::class,
DatabaseModule::class, DatabaseModule::class,
ImplementationModule::class, ImplementationModule::class,
InsulinModule::class,
OpenHumansModule::class, OpenHumansModule::class,
PluginsModule::class, PluginsModule::class,
RxModule::class, RxModule::class,
@ -62,7 +66,8 @@ import javax.inject.Singleton
SharedImplModule::class, SharedImplModule::class,
UiModule::class, UiModule::class,
ValidatorsModule::class, ValidatorsModule::class,
PluginsSupportModule::class, PluginsConstraintsModule::class,
SourceModule::class,
SyncModule::class, SyncModule::class,
WorkflowModule::class, WorkflowModule::class,
@ -81,7 +86,8 @@ import javax.inject.Singleton
OmnipodDashModule::class, OmnipodDashModule::class,
OmnipodErosModule::class, OmnipodErosModule::class,
PumpCommonModule::class, PumpCommonModule::class,
RileyLinkModule::class RileyLinkModule::class,
VirtualPumpModule::class
] ]
) )
interface AppComponent : AndroidInjector<MainApp> { interface AppComponent : AndroidInjector<MainApp> {

View file

@ -7,13 +7,15 @@ import dagger.Module
import dagger.Provides import dagger.Provides
import dagger.android.HasAndroidInjector import dagger.android.HasAndroidInjector
import info.nightscout.androidaps.MainApp import info.nightscout.androidaps.MainApp
import info.nightscout.androidaps.implementations.UiInteractionImpl
import info.nightscout.androidaps.implementations.ConfigImpl import info.nightscout.androidaps.implementations.ConfigImpl
import info.nightscout.androidaps.implementations.InstantiatorImpl
import info.nightscout.androidaps.implementations.UiInteractionImpl
import info.nightscout.androidaps.workflow.CalculationWorkflowImpl import info.nightscout.androidaps.workflow.CalculationWorkflowImpl
import info.nightscout.androidaps.workflow.WorkerClassesImpl import info.nightscout.androidaps.workflow.WorkerClassesImpl
import info.nightscout.core.workflow.CalculationWorkflow import info.nightscout.core.workflow.CalculationWorkflow
import info.nightscout.interfaces.Config import info.nightscout.interfaces.Config
import info.nightscout.interfaces.plugin.PluginBase import info.nightscout.interfaces.plugin.PluginBase
import info.nightscout.interfaces.profile.Instantiator
import info.nightscout.interfaces.ui.UiInteraction import info.nightscout.interfaces.ui.UiInteraction
import info.nightscout.interfaces.workflow.WorkerClasses import info.nightscout.interfaces.workflow.WorkerClasses
@ -53,6 +55,8 @@ open class AppModule {
@Binds fun bindActivityNames(activityNames: UiInteractionImpl): UiInteraction @Binds fun bindActivityNames(activityNames: UiInteractionImpl): UiInteraction
@Binds fun bindWorkerClasses(workerClassesImpl: WorkerClassesImpl): WorkerClasses @Binds fun bindWorkerClasses(workerClassesImpl: WorkerClassesImpl): WorkerClasses
@Binds fun bindCalculationWorkflow(calculationWorkflow: CalculationWorkflowImpl): CalculationWorkflow @Binds fun bindCalculationWorkflow(calculationWorkflow: CalculationWorkflowImpl): CalculationWorkflow
@Binds fun bindInstantiator(instantiatorImpl: InstantiatorImpl): Instantiator
} }
} }

View file

@ -8,7 +8,6 @@ import info.nightscout.androidaps.danaRKorean.DanaRKoreanPlugin
import info.nightscout.androidaps.danaRv2.DanaRv2Plugin import info.nightscout.androidaps.danaRv2.DanaRv2Plugin
import info.nightscout.androidaps.danar.DanaRPlugin import info.nightscout.androidaps.danar.DanaRPlugin
import info.nightscout.androidaps.plugin.general.openhumans.OpenHumansUploaderPlugin import info.nightscout.androidaps.plugin.general.openhumans.OpenHumansUploaderPlugin
import info.nightscout.plugins.general.persistentNotification.PersistentNotificationPlugin
import info.nightscout.androidaps.plugins.pump.eopatch.EopatchPumpPlugin import info.nightscout.androidaps.plugins.pump.eopatch.EopatchPumpPlugin
import info.nightscout.androidaps.plugins.pump.insight.LocalInsightPlugin import info.nightscout.androidaps.plugins.pump.insight.LocalInsightPlugin
import info.nightscout.androidaps.plugins.pump.medtronic.MedtronicPumpPlugin import info.nightscout.androidaps.plugins.pump.medtronic.MedtronicPumpPlugin
@ -17,6 +16,10 @@ import info.nightscout.androidaps.plugins.pump.omnipod.eros.OmnipodErosPumpPlugi
import info.nightscout.automation.AutomationPlugin import info.nightscout.automation.AutomationPlugin
import info.nightscout.configuration.configBuilder.ConfigBuilderPlugin import info.nightscout.configuration.configBuilder.ConfigBuilderPlugin
import info.nightscout.configuration.maintenance.MaintenancePlugin import info.nightscout.configuration.maintenance.MaintenancePlugin
import info.nightscout.insulin.InsulinLyumjevPlugin
import info.nightscout.insulin.InsulinOrefFreePeakPlugin
import info.nightscout.insulin.InsulinOrefRapidActingPlugin
import info.nightscout.insulin.InsulinOrefUltraRapidActingPlugin
import info.nightscout.interfaces.plugin.PluginBase import info.nightscout.interfaces.plugin.PluginBase
import info.nightscout.plugins.aps.loop.LoopPlugin import info.nightscout.plugins.aps.loop.LoopPlugin
import info.nightscout.plugins.aps.openAPSAMA.OpenAPSAMAPlugin import info.nightscout.plugins.aps.openAPSAMA.OpenAPSAMAPlugin
@ -31,37 +34,34 @@ import info.nightscout.plugins.general.autotune.AutotunePlugin
import info.nightscout.plugins.general.dataBroadcaster.DataBroadcastPlugin import info.nightscout.plugins.general.dataBroadcaster.DataBroadcastPlugin
import info.nightscout.plugins.general.food.FoodPlugin import info.nightscout.plugins.general.food.FoodPlugin
import info.nightscout.plugins.general.overview.OverviewPlugin import info.nightscout.plugins.general.overview.OverviewPlugin
import info.nightscout.plugins.general.persistentNotification.PersistentNotificationPlugin
import info.nightscout.plugins.general.smsCommunicator.SmsCommunicatorPlugin import info.nightscout.plugins.general.smsCommunicator.SmsCommunicatorPlugin
import info.nightscout.plugins.general.themes.ThemeSwitcherPlugin import info.nightscout.plugins.general.themes.ThemeSwitcherPlugin
import info.nightscout.plugins.general.wear.WearPlugin import info.nightscout.plugins.general.wear.WearPlugin
import info.nightscout.plugins.general.xdripStatusline.StatusLinePlugin import info.nightscout.plugins.general.xdripStatusline.StatusLinePlugin
import info.nightscout.plugins.insulin.InsulinLyumjevPlugin
import info.nightscout.plugins.insulin.InsulinOrefFreePeakPlugin
import info.nightscout.plugins.insulin.InsulinOrefRapidActingPlugin
import info.nightscout.plugins.insulin.InsulinOrefUltraRapidActingPlugin
import info.nightscout.plugins.iob.iobCobCalculator.IobCobCalculatorPlugin import info.nightscout.plugins.iob.iobCobCalculator.IobCobCalculatorPlugin
import info.nightscout.plugins.profile.ProfilePlugin import info.nightscout.plugins.profile.ProfilePlugin
import info.nightscout.plugins.pump.virtual.VirtualPumpPlugin
import info.nightscout.plugins.source.AidexPlugin
import info.nightscout.plugins.source.DexcomPlugin
import info.nightscout.plugins.source.GlimpPlugin
import info.nightscout.plugins.source.GlunovoPlugin
import info.nightscout.plugins.source.IntelligoPlugin
import info.nightscout.plugins.source.MM640gPlugin
import info.nightscout.plugins.source.NSClientSourcePlugin
import info.nightscout.plugins.source.PoctechPlugin
import info.nightscout.plugins.source.RandomBgPlugin
import info.nightscout.plugins.source.TomatoPlugin
import info.nightscout.plugins.source.XdripPlugin
import info.nightscout.plugins.sync.nsclient.NSClientPlugin import info.nightscout.plugins.sync.nsclient.NSClientPlugin
import info.nightscout.plugins.sync.nsclientV3.NSClientV3Plugin import info.nightscout.plugins.sync.nsclientV3.NSClientV3Plugin
import info.nightscout.plugins.sync.tidepool.TidepoolPlugin import info.nightscout.plugins.sync.tidepool.TidepoolPlugin
import info.nightscout.pump.combo.ComboPlugin import info.nightscout.pump.combo.ComboPlugin
import info.nightscout.pump.combov2.ComboV2Plugin import info.nightscout.pump.combov2.ComboV2Plugin
import info.nightscout.pump.diaconn.DiaconnG8Plugin import info.nightscout.pump.diaconn.DiaconnG8Plugin
import info.nightscout.pump.virtual.VirtualPumpPlugin
import info.nightscout.sensitivity.SensitivityAAPSPlugin import info.nightscout.sensitivity.SensitivityAAPSPlugin
import info.nightscout.sensitivity.SensitivityOref1Plugin import info.nightscout.sensitivity.SensitivityOref1Plugin
import info.nightscout.sensitivity.SensitivityWeightedAveragePlugin import info.nightscout.sensitivity.SensitivityWeightedAveragePlugin
import info.nightscout.source.AidexPlugin
import info.nightscout.source.DexcomPlugin
import info.nightscout.source.GlimpPlugin
import info.nightscout.source.GlunovoPlugin
import info.nightscout.source.IntelligoPlugin
import info.nightscout.source.MM640gPlugin
import info.nightscout.source.NSClientSourcePlugin
import info.nightscout.source.PoctechPlugin
import info.nightscout.source.RandomBgPlugin
import info.nightscout.source.TomatoPlugin
import info.nightscout.source.XdripPlugin
import javax.inject.Qualifier import javax.inject.Qualifier
@Suppress("unused") @Suppress("unused")

View file

@ -0,0 +1,28 @@
package info.nightscout.androidaps.implementations
import dagger.Reusable
import dagger.android.HasAndroidInjector
import info.nightscout.implementation.profile.ProfileStoreObject
import info.nightscout.interfaces.aps.APSResult
import info.nightscout.interfaces.aps.AutosensData
import info.nightscout.interfaces.profile.Instantiator
import info.nightscout.interfaces.profile.ProfileStore
import info.nightscout.plugins.aps.APSResultObject
import info.nightscout.plugins.iob.iobCobCalculator.data.AutosensDataObject
import info.nightscout.shared.utils.DateUtil
import org.json.JSONObject
import javax.inject.Inject
@Reusable
class InstantiatorImpl @Inject constructor(
private val injector: HasAndroidInjector,
private val dateUtil: DateUtil
) : Instantiator {
override fun provideProfileStore(jsonObject: JSONObject): ProfileStore =
ProfileStoreObject(injector, jsonObject, dateUtil)
override fun provideAPSResultObject(): APSResult = APSResultObject(injector)
override fun provideAutosensDataObject(): AutosensData = AutosensDataObject(injector)
}

View file

@ -14,8 +14,8 @@ import info.nightscout.androidaps.activities.MyPreferenceFragment
import info.nightscout.androidaps.activities.PreferencesActivity import info.nightscout.androidaps.activities.PreferencesActivity
import info.nightscout.configuration.activities.SingleFragmentActivity import info.nightscout.configuration.activities.SingleFragmentActivity
import info.nightscout.core.events.EventNewNotification import info.nightscout.core.events.EventNewNotification
import info.nightscout.core.services.AlarmSoundService import info.nightscout.ui.services.AlarmSoundService
import info.nightscout.core.services.AlarmSoundServiceHelper import info.nightscout.ui.services.AlarmSoundServiceHelper
import info.nightscout.core.ui.toast.ToastUtils import info.nightscout.core.ui.toast.ToastUtils
import info.nightscout.interfaces.notifications.Notification import info.nightscout.interfaces.notifications.Notification
import info.nightscout.interfaces.nsclient.NSAlarm import info.nightscout.interfaces.nsclient.NSAlarm
@ -39,6 +39,7 @@ import info.nightscout.ui.dialogs.TempBasalDialog
import info.nightscout.ui.dialogs.TempTargetDialog import info.nightscout.ui.dialogs.TempTargetDialog
import info.nightscout.ui.dialogs.TreatmentDialog import info.nightscout.ui.dialogs.TreatmentDialog
import info.nightscout.ui.dialogs.WizardDialog import info.nightscout.ui.dialogs.WizardDialog
import info.nightscout.ui.widget.Widget
import javax.inject.Inject import javax.inject.Inject
class UiInteractionImpl @Inject constructor( class UiInteractionImpl @Inject constructor(
@ -67,6 +68,10 @@ class UiInteractionImpl @Inject constructor(
context.startActivity(i) context.startActivity(i)
} }
override fun updateWidget(context: Context) {
Widget.updateWidget(context)
}
override fun runWizardDialog(fragmentManager: FragmentManager, carbs: Int?, name: String?) { override fun runWizardDialog(fragmentManager: FragmentManager, carbs: Int?, name: String?) {
WizardDialog().also { dialog -> WizardDialog().also { dialog ->
dialog.arguments = Bundle().also { bundle -> dialog.arguments = Bundle().also { bundle ->

View file

@ -12,17 +12,17 @@ import info.nightscout.core.utils.extensions.copyString
import info.nightscout.core.utils.receivers.DataWorkerStorage import info.nightscout.core.utils.receivers.DataWorkerStorage
import info.nightscout.interfaces.receivers.Intents import info.nightscout.interfaces.receivers.Intents
import info.nightscout.plugins.general.smsCommunicator.SmsCommunicatorPlugin import info.nightscout.plugins.general.smsCommunicator.SmsCommunicatorPlugin
import info.nightscout.plugins.source.AidexPlugin
import info.nightscout.plugins.source.DexcomPlugin
import info.nightscout.plugins.source.EversensePlugin
import info.nightscout.plugins.source.GlimpPlugin
import info.nightscout.plugins.source.MM640gPlugin
import info.nightscout.plugins.source.PoctechPlugin
import info.nightscout.plugins.source.TomatoPlugin
import info.nightscout.plugins.source.XdripPlugin
import info.nightscout.rx.logging.AAPSLogger import info.nightscout.rx.logging.AAPSLogger
import info.nightscout.rx.logging.BundleLogger import info.nightscout.rx.logging.BundleLogger
import info.nightscout.rx.logging.LTag import info.nightscout.rx.logging.LTag
import info.nightscout.source.AidexPlugin
import info.nightscout.source.DexcomPlugin
import info.nightscout.source.EversensePlugin
import info.nightscout.source.GlimpPlugin
import info.nightscout.source.MM640gPlugin
import info.nightscout.source.PoctechPlugin
import info.nightscout.source.TomatoPlugin
import info.nightscout.source.XdripPlugin
import javax.inject.Inject import javax.inject.Inject
open class DataReceiver : DaggerBroadcastReceiver() { open class DataReceiver : DaggerBroadcastReceiver() {

View file

@ -3,7 +3,7 @@ package info.nightscout.androidaps.workflow
import info.nightscout.interfaces.workflow.WorkerClasses import info.nightscout.interfaces.workflow.WorkerClasses
import info.nightscout.plugins.general.food.FoodPlugin import info.nightscout.plugins.general.food.FoodPlugin
import info.nightscout.plugins.profile.ProfilePlugin import info.nightscout.plugins.profile.ProfilePlugin
import info.nightscout.plugins.source.NSClientSourcePlugin import info.nightscout.source.NSClientSourcePlugin
import javax.inject.Inject import javax.inject.Inject
class WorkerClassesImpl @Inject constructor(): WorkerClasses{ class WorkerClassesImpl @Inject constructor(): WorkerClasses{

View file

@ -46,7 +46,6 @@
<string name="authorizationfailed">Удостоверяването неуспешно</string> <string name="authorizationfailed">Удостоверяването неуспешно</string>
<string name="copytolocalprofile_invalid">Създаването на профила невъзможно. Профилът е невалиден.</string> <string name="copytolocalprofile_invalid">Създаването на профила невъзможно. Профилът е невалиден.</string>
<string name="cta_dont_kill_my_app_info">Не убивай приложението?</string> <string name="cta_dont_kill_my_app_info">Не убивай приложението?</string>
<string name="time_to_eat">Време за ядене!\nИзпълнете болус съветника и направете изчисления отново.</string>
<string name="fabric_upload_disabled">Качването на данни за проблеми е забранено!(Fabric)</string> <string name="fabric_upload_disabled">Качването на данни за проблеми е забранено!(Fabric)</string>
<string name="clear_filter">Премахни филтъра</string> <string name="clear_filter">Премахни филтъра</string>
<string name="cannula">Канюла</string> <string name="cannula">Канюла</string>

View file

@ -44,7 +44,6 @@
<string name="authorizationfailed">L\'autorització ha fallat</string> <string name="authorizationfailed">L\'autorització ha fallat</string>
<string name="copytolocalprofile_invalid">No s\'ha pogut crear el perfil local. Perfil no vàlid.</string> <string name="copytolocalprofile_invalid">No s\'ha pogut crear el perfil local. Perfil no vàlid.</string>
<string name="cta_dont_kill_my_app_info">No matar la meva app?</string> <string name="cta_dont_kill_my_app_info">No matar la meva app?</string>
<string name="time_to_eat">Hora de menjar!\nExecuteu l\'assistent de bolus i torneu a fer els càlculs.</string>
<string name="fabric_upload_disabled">Enviament de logs d\'error desactivat!</string> <string name="fabric_upload_disabled">Enviament de logs d\'error desactivat!</string>
<string name="clear_filter">Netejar filtres</string> <string name="clear_filter">Netejar filtres</string>
<string name="cannula">Cànula</string> <string name="cannula">Cànula</string>

View file

@ -46,7 +46,6 @@
<string name="authorizationfailed">Autorizace selhala</string> <string name="authorizationfailed">Autorizace selhala</string>
<string name="copytolocalprofile_invalid">Nelze vytvořit profil. Profil je neplatný.</string> <string name="copytolocalprofile_invalid">Nelze vytvořit profil. Profil je neplatný.</string>
<string name="cta_dont_kill_my_app_info">Nezabíjet mou aplikaci?</string> <string name="cta_dont_kill_my_app_info">Nezabíjet mou aplikaci?</string>
<string name="time_to_eat">Čas k jídlu!\nSpusťte Bolusovou kalkulačku a proveďte výpočet znovu.</string>
<string name="fabric_upload_disabled">Nahrávání protokolů o pádech zakázáno!</string> <string name="fabric_upload_disabled">Nahrávání protokolů o pádech zakázáno!</string>
<string name="clear_filter">Vymazat filtr</string> <string name="clear_filter">Vymazat filtr</string>
<string name="cannula">Kanyla</string> <string name="cannula">Kanyla</string>

View file

@ -46,7 +46,6 @@
<string name="authorizationfailed">Godkendelse mislykkedes</string> <string name="authorizationfailed">Godkendelse mislykkedes</string>
<string name="copytolocalprofile_invalid">Kunne ikke oprette profil. Profilen er ugyldig.</string> <string name="copytolocalprofile_invalid">Kunne ikke oprette profil. Profilen er ugyldig.</string>
<string name="cta_dont_kill_my_app_info">Luk ikke min app?</string> <string name="cta_dont_kill_my_app_info">Luk ikke min app?</string>
<string name="time_to_eat">Tid til at spise!\nKør Bolus guiden og lav beregning igen.</string>
<string name="fabric_upload_disabled">Upload af Crash logs deaktiveret!</string> <string name="fabric_upload_disabled">Upload af Crash logs deaktiveret!</string>
<string name="clear_filter">Nulstil filter</string> <string name="clear_filter">Nulstil filter</string>
<string name="cannula">Kanyle</string> <string name="cannula">Kanyle</string>

View file

@ -46,7 +46,6 @@
<string name="authorizationfailed">Autorisierung fehlgeschlagen</string> <string name="authorizationfailed">Autorisierung fehlgeschlagen</string>
<string name="copytolocalprofile_invalid">Profil kann nicht erstellt werden. Profil ist ungültig.</string> <string name="copytolocalprofile_invalid">Profil kann nicht erstellt werden. Profil ist ungültig.</string>
<string name="cta_dont_kill_my_app_info">Don\'t kill my app?</string> <string name="cta_dont_kill_my_app_info">Don\'t kill my app?</string>
<string name="time_to_eat">Zeit zum Essen!\nStarte den Bolus-Rechner und gib die KH ein. </string>
<string name="fabric_upload_disabled">Hochladen von Crash-Protokollen deaktiviert!</string> <string name="fabric_upload_disabled">Hochladen von Crash-Protokollen deaktiviert!</string>
<string name="clear_filter">Filter löschen</string> <string name="clear_filter">Filter löschen</string>
<string name="cannula">Kanüle</string> <string name="cannula">Kanüle</string>

View file

@ -46,7 +46,6 @@
<string name="authorizationfailed">Ha fallado la autorización</string> <string name="authorizationfailed">Ha fallado la autorización</string>
<string name="copytolocalprofile_invalid">No se puede crear el perfil. El perfil es inválido.</string> <string name="copytolocalprofile_invalid">No se puede crear el perfil. El perfil es inválido.</string>
<string name="cta_dont_kill_my_app_info">¿No matar mi aplicación?</string> <string name="cta_dont_kill_my_app_info">¿No matar mi aplicación?</string>
<string name="time_to_eat">¡Hora de comer!\nEjecutar el asistente de bolo y calcular de nuevo.</string>
<string name="fabric_upload_disabled">¡Carga de registros de errores desactivada!</string> <string name="fabric_upload_disabled">¡Carga de registros de errores desactivada!</string>
<string name="clear_filter">Borrar filtro</string> <string name="clear_filter">Borrar filtro</string>
<string name="cannula">Cánula</string> <string name="cannula">Cánula</string>

View file

@ -46,7 +46,6 @@
<string name="authorizationfailed">Echec de l\'authentification</string> <string name="authorizationfailed">Echec de l\'authentification</string>
<string name="copytolocalprofile_invalid">Impossible de créer le profil. Le profil est invalide.</string> <string name="copytolocalprofile_invalid">Impossible de créer le profil. Le profil est invalide.</string>
<string name="cta_dont_kill_my_app_info">Garder l\'appli en arrière plan ?</string> <string name="cta_dont_kill_my_app_info">Garder l\'appli en arrière plan ?</string>
<string name="time_to_eat">Il est temps de manger !\nExécutez l\'assistant Bolus et refaites le calcul.</string>
<string name="fabric_upload_disabled">Téléchargement logs crashs désactivé!</string> <string name="fabric_upload_disabled">Téléchargement logs crashs désactivé!</string>
<string name="clear_filter">Effacer le filtre</string> <string name="clear_filter">Effacer le filtre</string>
<string name="cannula">Canule</string> <string name="cannula">Canule</string>

View file

@ -46,7 +46,6 @@
<string name="authorizationfailed">Autorizzazione fallita</string> <string name="authorizationfailed">Autorizzazione fallita</string>
<string name="copytolocalprofile_invalid">Impossibile creare il profilo. Il profilo non è valido.</string> <string name="copytolocalprofile_invalid">Impossibile creare il profilo. Il profilo non è valido.</string>
<string name="cta_dont_kill_my_app_info">Non terminare l\'app?</string> <string name="cta_dont_kill_my_app_info">Non terminare l\'app?</string>
<string name="time_to_eat">Tempo di mangiare!\nEsegui il calcolatore e fai di nuovi i calcoli.</string>
<string name="fabric_upload_disabled">Caricamento log dei crash disabilitato!</string> <string name="fabric_upload_disabled">Caricamento log dei crash disabilitato!</string>
<string name="clear_filter">Cancella filtro</string> <string name="clear_filter">Cancella filtro</string>
<string name="cannula">Cannula</string> <string name="cannula">Cannula</string>

View file

@ -46,7 +46,6 @@
<string name="authorizationfailed">ההרשאה נכשלה</string> <string name="authorizationfailed">ההרשאה נכשלה</string>
<string name="copytolocalprofile_invalid">לא ניתן ליצור פרופיל מקומי. הפרופיל אינו חוקי.</string> <string name="copytolocalprofile_invalid">לא ניתן ליצור פרופיל מקומי. הפרופיל אינו חוקי.</string>
<string name="cta_dont_kill_my_app_info">איך לא להשבית את האפליקציה שלי?</string> <string name="cta_dont_kill_my_app_info">איך לא להשבית את האפליקציה שלי?</string>
<string name="time_to_eat">זמן לאכול!\nהפעילו את אשף הבולוסים וחשבו בולוס חדש.</string>
<string name="fabric_upload_disabled">העלאת רשומות קריסה מושבתת!</string> <string name="fabric_upload_disabled">העלאת רשומות קריסה מושבתת!</string>
<string name="clear_filter">נקה סינון</string> <string name="clear_filter">נקה סינון</string>
<string name="cannula">צינורית</string> <string name="cannula">צינורית</string>

View file

@ -43,7 +43,6 @@
<string name="chartmenu">차트 메뉴</string> <string name="chartmenu">차트 메뉴</string>
<string name="authorizationfailed">인증 실패</string> <string name="authorizationfailed">인증 실패</string>
<string name="cta_dont_kill_my_app_info">앱이 종료되지 않도록 합니다?</string> <string name="cta_dont_kill_my_app_info">앱이 종료되지 않도록 합니다?</string>
<string name="time_to_eat">식사할 시간입니다! \nBolus wizard를 켜고 다시 계산하십시오.</string>
<string name="fabric_upload_disabled">충돌 로그 업로드가 작동하지 않습니다.</string> <string name="fabric_upload_disabled">충돌 로그 업로드가 작동하지 않습니다.</string>
<string name="clear_filter">필터 지우기</string> <string name="clear_filter">필터 지우기</string>
<string name="cannula">캐뉼라</string> <string name="cannula">캐뉼라</string>

View file

@ -46,7 +46,6 @@
<string name="authorizationfailed">Autorizacija nepavyko</string> <string name="authorizationfailed">Autorizacija nepavyko</string>
<string name="copytolocalprofile_invalid">Nepavyksta sukurti profilio. Profilis neteisingas.</string> <string name="copytolocalprofile_invalid">Nepavyksta sukurti profilio. Profilis neteisingas.</string>
<string name="cta_dont_kill_my_app_info">Don\'t kill my app?</string> <string name="cta_dont_kill_my_app_info">Don\'t kill my app?</string>
<string name="time_to_eat">Laikas valgyti!\nĮjunkite Boluso patarėją ir atlikite skaičiavimą dar kartą.</string>
<string name="fabric_upload_disabled">Sutrikimų žurnalo įrašų įkėlimas išjungtas!</string> <string name="fabric_upload_disabled">Sutrikimų žurnalo įrašų įkėlimas išjungtas!</string>
<string name="clear_filter">Valyti filtrą</string> <string name="clear_filter">Valyti filtrą</string>
<string name="cannula">Kaniulė</string> <string name="cannula">Kaniulė</string>

View file

@ -46,7 +46,6 @@
<string name="authorizationfailed">Autorisatie mislukt</string> <string name="authorizationfailed">Autorisatie mislukt</string>
<string name="copytolocalprofile_invalid">Kan profiel niet aanmaken. Profiel is ongeldig.</string> <string name="copytolocalprofile_invalid">Kan profiel niet aanmaken. Profiel is ongeldig.</string>
<string name="cta_dont_kill_my_app_info">Don\'t kill my app?</string> <string name="cta_dont_kill_my_app_info">Don\'t kill my app?</string>
<string name="time_to_eat">Tijd om te eten!\nVoer de boluswizard opnieuw uit.</string>
<string name="fabric_upload_disabled">Upload van crashrapporten is uitgeschakeld!</string> <string name="fabric_upload_disabled">Upload van crashrapporten is uitgeschakeld!</string>
<string name="clear_filter">Verwijder filter</string> <string name="clear_filter">Verwijder filter</string>
<string name="cannula">Canule</string> <string name="cannula">Canule</string>

View file

@ -46,7 +46,6 @@
<string name="authorizationfailed">Autentisering feilet</string> <string name="authorizationfailed">Autentisering feilet</string>
<string name="copytolocalprofile_invalid">Klarte ikke å opprette profil. Profilen er ikke gyldig.</string> <string name="copytolocalprofile_invalid">Klarte ikke å opprette profil. Profilen er ikke gyldig.</string>
<string name="cta_dont_kill_my_app_info">Avslutte app?</string> <string name="cta_dont_kill_my_app_info">Avslutte app?</string>
<string name="time_to_eat">Nå må du spise!\Bruk bolus veiviseren og beregn på nytt.</string>
<string name="fabric_upload_disabled">Opplast av krasj logger er deaktivert!</string> <string name="fabric_upload_disabled">Opplast av krasj logger er deaktivert!</string>
<string name="clear_filter">Nullstill filtre</string> <string name="clear_filter">Nullstill filtre</string>
<string name="cannula">Kanyle</string> <string name="cannula">Kanyle</string>

View file

@ -44,7 +44,6 @@
<string name="authorizationfailed">Autoryzacja nie powiodła się</string> <string name="authorizationfailed">Autoryzacja nie powiodła się</string>
<string name="copytolocalprofile_invalid">Nie można utworzyć profilu. Profil jest nieprawidłowy.</string> <string name="copytolocalprofile_invalid">Nie można utworzyć profilu. Profil jest nieprawidłowy.</string>
<string name="cta_dont_kill_my_app_info">Nie zabij mojej aplikacji?</string> <string name="cta_dont_kill_my_app_info">Nie zabij mojej aplikacji?</string>
<string name="time_to_eat">Czas jeść!\nUruchom kreatora bolusa i zrób obliczenia ponownie.</string>
<string name="fabric_upload_disabled">Przesyłanie dzienników awarii jest wyłączone!</string> <string name="fabric_upload_disabled">Przesyłanie dzienników awarii jest wyłączone!</string>
<string name="clear_filter">Wyczyść filtr</string> <string name="clear_filter">Wyczyść filtr</string>
<string name="cannula">Kaniula</string> <string name="cannula">Kaniula</string>

View file

@ -46,7 +46,6 @@
<string name="authorizationfailed">Falha na autorização</string> <string name="authorizationfailed">Falha na autorização</string>
<string name="copytolocalprofile_invalid">Não foi possível criar o perfil. Perfil inválido.</string> <string name="copytolocalprofile_invalid">Não foi possível criar o perfil. Perfil inválido.</string>
<string name="cta_dont_kill_my_app_info">Não encerre meu aplicativo?</string> <string name="cta_dont_kill_my_app_info">Não encerre meu aplicativo?</string>
<string name="time_to_eat">Hora de comer!\nAbra o assistente de bolus e faça o cálculo novamente.</string>
<string name="fabric_upload_disabled">Envio de logs de erro desativado!</string> <string name="fabric_upload_disabled">Envio de logs de erro desativado!</string>
<string name="clear_filter">Limpar filtro</string> <string name="clear_filter">Limpar filtro</string>
<string name="cannula">Cânula</string> <string name="cannula">Cânula</string>

View file

@ -44,7 +44,6 @@
<string name="authorizationfailed">Falha na autorização</string> <string name="authorizationfailed">Falha na autorização</string>
<string name="copytolocalprofile_invalid">Não é possível criar o perfil. O perfil é inválido.</string> <string name="copytolocalprofile_invalid">Não é possível criar o perfil. O perfil é inválido.</string>
<string name="cta_dont_kill_my_app_info">Não encerre minha app?</string> <string name="cta_dont_kill_my_app_info">Não encerre minha app?</string>
<string name="time_to_eat">Hora de comer!\nExecutar assistente de Bólus e fazer cálculo novamente.</string>
<string name="fabric_upload_disabled">Envio de registos de erro desativado!</string> <string name="fabric_upload_disabled">Envio de registos de erro desativado!</string>
<string name="clear_filter">Limpar filtros</string> <string name="clear_filter">Limpar filtros</string>
<string name="cannula">Cânula</string> <string name="cannula">Cânula</string>

View file

@ -44,7 +44,6 @@
<string name="authorizationfailed">Autorizarea a eșuat</string> <string name="authorizationfailed">Autorizarea a eșuat</string>
<string name="copytolocalprofile_invalid">Nu se poate crea profilul. Profilul este invalid.</string> <string name="copytolocalprofile_invalid">Nu se poate crea profilul. Profilul este invalid.</string>
<string name="cta_dont_kill_my_app_info">Nu-mi opri aplicația?</string> <string name="cta_dont_kill_my_app_info">Nu-mi opri aplicația?</string>
<string name="time_to_eat">Timpul sa mănânci!\nRuleaza Calculatorul de Bolus pentru a face calculele din nou.</string>
<string name="fabric_upload_disabled">Încărcarea jurnalelor de erori este dezactivata!</string> <string name="fabric_upload_disabled">Încărcarea jurnalelor de erori este dezactivata!</string>
<string name="clear_filter">Șterge filtru</string> <string name="clear_filter">Șterge filtru</string>
<string name="cannula">Canula</string> <string name="cannula">Canula</string>

View file

@ -46,7 +46,6 @@
<string name="authorizationfailed">Ошибка авторизации</string> <string name="authorizationfailed">Ошибка авторизации</string>
<string name="copytolocalprofile_invalid">Не удается создать локальный профиль. Настройки профиля неправильны.</string> <string name="copytolocalprofile_invalid">Не удается создать локальный профиль. Настройки профиля неправильны.</string>
<string name="cta_dont_kill_my_app_info">Не закрывать приложение?</string> <string name="cta_dont_kill_my_app_info">Не закрывать приложение?</string>
<string name="time_to_eat">Пора есть!\nЗапустите помощник болюса снова для подсчета.</string>
<string name="fabric_upload_disabled">Загрузка журналов сбоя на сервер отключена!</string> <string name="fabric_upload_disabled">Загрузка журналов сбоя на сервер отключена!</string>
<string name="clear_filter">Очистить фильтр</string> <string name="clear_filter">Очистить фильтр</string>
<string name="cannula">Катетер помпы</string> <string name="cannula">Катетер помпы</string>

View file

@ -46,7 +46,6 @@
<string name="authorizationfailed">Autorizácia zlyhala</string> <string name="authorizationfailed">Autorizácia zlyhala</string>
<string name="copytolocalprofile_invalid">Nie je možné vytvoriť lokálny profil. Profil je neplatný.</string> <string name="copytolocalprofile_invalid">Nie je možné vytvoriť lokálny profil. Profil je neplatný.</string>
<string name="cta_dont_kill_my_app_info">Nepotláčať moju aplikáciu?</string> <string name="cta_dont_kill_my_app_info">Nepotláčať moju aplikáciu?</string>
<string name="time_to_eat">Čas na jedlo!\nSpustite Bolusovú kalkulačku a urobte výpočet znova.</string>
<string name="fabric_upload_disabled">Odosielanie protokolov o zlyhaní je zakázané!</string> <string name="fabric_upload_disabled">Odosielanie protokolov o zlyhaní je zakázané!</string>
<string name="clear_filter">Vyčistiť filter</string> <string name="clear_filter">Vyčistiť filter</string>
<string name="cannula">Kanyla</string> <string name="cannula">Kanyla</string>

View file

@ -44,7 +44,6 @@
<string name="authorizationfailed">Behörighetskontroll misslyckades</string> <string name="authorizationfailed">Behörighetskontroll misslyckades</string>
<string name="copytolocalprofile_invalid">Kan inte att skapa profilen. Profilen är felaktig.</string> <string name="copytolocalprofile_invalid">Kan inte att skapa profilen. Profilen är felaktig.</string>
<string name="cta_dont_kill_my_app_info">Döda inte min app?</string> <string name="cta_dont_kill_my_app_info">Döda inte min app?</string>
<string name="time_to_eat">Dags att äta!\nKör bolusguiden igen för ny beräkning.</string>
<string name="fabric_upload_disabled">Uppladdning av kraschloggar inaktiverad!</string> <string name="fabric_upload_disabled">Uppladdning av kraschloggar inaktiverad!</string>
<string name="clear_filter">Rensa filter</string> <string name="clear_filter">Rensa filter</string>
<string name="cannula">Kanyl</string> <string name="cannula">Kanyl</string>

View file

@ -46,7 +46,6 @@
<string name="authorizationfailed">Yetkilendirme başarısız oldu</string> <string name="authorizationfailed">Yetkilendirme başarısız oldu</string>
<string name="copytolocalprofile_invalid">Profil oluşturulamıyor. Profil geçersiz.</string> <string name="copytolocalprofile_invalid">Profil oluşturulamıyor. Profil geçersiz.</string>
<string name="cta_dont_kill_my_app_info">Uygulamamı devre dışı bırakma?</string> <string name="cta_dont_kill_my_app_info">Uygulamamı devre dışı bırakma?</string>
<string name="time_to_eat">Yemek zamanı!\nBolus sihirbazını çalıştırın ve yeniden hesaplama yapın.</string>
<string name="fabric_upload_disabled">Çökme günlükleri yükleme devre dışı bırakıldı!</string> <string name="fabric_upload_disabled">Çökme günlükleri yükleme devre dışı bırakıldı!</string>
<string name="clear_filter">Filtreyi temizle</string> <string name="clear_filter">Filtreyi temizle</string>
<string name="cannula">Kanül</string> <string name="cannula">Kanül</string>

View file

@ -46,7 +46,6 @@
<string name="authorizationfailed">授权失败</string> <string name="authorizationfailed">授权失败</string>
<string name="copytolocalprofile_invalid">无法创建配置文件。配置文件无效。</string> <string name="copytolocalprofile_invalid">无法创建配置文件。配置文件无效。</string>
<string name="cta_dont_kill_my_app_info">不要杀死我的应用程序?</string> <string name="cta_dont_kill_my_app_info">不要杀死我的应用程序?</string>
<string name="time_to_eat">吃饭时间到了!\n请运行大剂量向导然后进行计算。</string>
<string name="fabric_upload_disabled">已禁用崩溃日志上传!</string> <string name="fabric_upload_disabled">已禁用崩溃日志上传!</string>
<string name="clear_filter">清除筛选</string> <string name="clear_filter">清除筛选</string>
<string name="cannula">输注导管</string> <string name="cannula">输注导管</string>

View file

@ -79,7 +79,6 @@
<string name="authorizationfailed">Authorization failed</string> <string name="authorizationfailed">Authorization failed</string>
<string name="copytolocalprofile_invalid">Unable to create profile. Profile is invalid.</string> <string name="copytolocalprofile_invalid">Unable to create profile. Profile is invalid.</string>
<string name="cta_dont_kill_my_app_info">Don\'t kill my app?</string> <string name="cta_dont_kill_my_app_info">Don\'t kill my app?</string>
<string name="time_to_eat">Time to eat!\nRun Bolus wizard and do calculation again.</string>
<string name="fabric_upload_disabled">Crash logs upload disabled!</string> <string name="fabric_upload_disabled">Crash logs upload disabled!</string>
<string name="clear_filter">Clear filter</string> <string name="clear_filter">Clear filter</string>
<string name="cannula">Cannula</string> <string name="cannula">Cannula</string>

View file

@ -11,7 +11,6 @@ import info.nightscout.androidaps.insight.database.InsightDatabaseDao
import info.nightscout.androidaps.insight.database.InsightDbHelper import info.nightscout.androidaps.insight.database.InsightDbHelper
import info.nightscout.androidaps.plugins.pump.insight.LocalInsightPlugin import info.nightscout.androidaps.plugins.pump.insight.LocalInsightPlugin
import info.nightscout.database.impl.AppRepository import info.nightscout.database.impl.AppRepository
import info.nightscout.implementation.constraints.ConstraintsImpl
import info.nightscout.interfaces.ApsMode import info.nightscout.interfaces.ApsMode
import info.nightscout.implementation.iob.GlucoseStatusProviderImpl import info.nightscout.implementation.iob.GlucoseStatusProviderImpl
import info.nightscout.interfaces.bgQualityCheck.BgQualityCheck import info.nightscout.interfaces.bgQualityCheck.BgQualityCheck
@ -22,7 +21,7 @@ import info.nightscout.interfaces.maintenance.PrefFileListProvider
import info.nightscout.interfaces.plugin.ActivePlugin import info.nightscout.interfaces.plugin.ActivePlugin
import info.nightscout.interfaces.plugin.PluginBase import info.nightscout.interfaces.plugin.PluginBase
import info.nightscout.interfaces.plugin.PluginType import info.nightscout.interfaces.plugin.PluginType
import info.nightscout.interfaces.profile.ProfileInstantiator import info.nightscout.interfaces.profile.Instantiator
import info.nightscout.interfaces.profiling.Profiler import info.nightscout.interfaces.profiling.Profiler
import info.nightscout.interfaces.pump.DetailedBolusInfoStorage import info.nightscout.interfaces.pump.DetailedBolusInfoStorage
import info.nightscout.interfaces.pump.PumpEnactResult import info.nightscout.interfaces.pump.PumpEnactResult
@ -35,17 +34,18 @@ import info.nightscout.interfaces.utils.HardLimits
import info.nightscout.plugins.aps.openAPSAMA.OpenAPSAMAPlugin import info.nightscout.plugins.aps.openAPSAMA.OpenAPSAMAPlugin
import info.nightscout.plugins.aps.openAPSSMB.OpenAPSSMBPlugin import info.nightscout.plugins.aps.openAPSSMB.OpenAPSSMBPlugin
import info.nightscout.plugins.aps.openAPSSMBDynamicISF.OpenAPSSMBDynamicISFPlugin import info.nightscout.plugins.aps.openAPSSMBDynamicISF.OpenAPSSMBDynamicISFPlugin
import info.nightscout.plugins.constraints.ConstraintsImpl
import info.nightscout.plugins.constraints.objectives.ObjectivesPlugin import info.nightscout.plugins.constraints.objectives.ObjectivesPlugin
import info.nightscout.plugins.constraints.objectives.objectives.Objective import info.nightscout.plugins.constraints.objectives.objectives.Objective
import info.nightscout.plugins.constraints.safety.SafetyPlugin import info.nightscout.plugins.constraints.safety.SafetyPlugin
import info.nightscout.plugins.pump.virtual.VirtualPumpPlugin
import info.nightscout.plugins.source.GlimpPlugin
import info.nightscout.pump.combo.ComboPlugin import info.nightscout.pump.combo.ComboPlugin
import info.nightscout.pump.combo.ruffyscripter.RuffyScripter import info.nightscout.pump.combo.ruffyscripter.RuffyScripter
import info.nightscout.pump.dana.DanaPump import info.nightscout.pump.dana.DanaPump
import info.nightscout.pump.dana.R import info.nightscout.pump.dana.R
import info.nightscout.pump.dana.database.DanaHistoryDatabase import info.nightscout.pump.dana.database.DanaHistoryDatabase
import info.nightscout.pump.virtual.VirtualPumpPlugin
import info.nightscout.shared.sharedPreferences.SP import info.nightscout.shared.sharedPreferences.SP
import info.nightscout.source.GlimpPlugin
import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.Assertions
import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.BeforeEach
import org.junit.jupiter.api.Test import org.junit.jupiter.api.Test
@ -71,7 +71,7 @@ class ConstraintsCheckerTest : TestBaseWithProfile() {
@Mock lateinit var insightDatabaseDao: InsightDatabaseDao @Mock lateinit var insightDatabaseDao: InsightDatabaseDao
@Mock lateinit var ruffyScripter: RuffyScripter @Mock lateinit var ruffyScripter: RuffyScripter
@Mock lateinit var uiInteraction: UiInteraction @Mock lateinit var uiInteraction: UiInteraction
@Mock lateinit var profileInstantiator: ProfileInstantiator @Mock lateinit var instantiator: Instantiator
@Mock lateinit var danaHistoryDatabase: DanaHistoryDatabase @Mock lateinit var danaHistoryDatabase: DanaHistoryDatabase
@Mock lateinit var insightDatabase: InsightDatabase @Mock lateinit var insightDatabase: InsightDatabase
@Mock lateinit var bgQualityCheck: BgQualityCheck @Mock lateinit var bgQualityCheck: BgQualityCheck
@ -104,33 +104,33 @@ class ConstraintsCheckerTest : TestBaseWithProfile() {
@BeforeEach @BeforeEach
fun prepare() { fun prepare() {
`when`(rh.gs(info.nightscout.plugins.R.string.closed_loop_disabled_on_dev_branch)).thenReturn("Running dev version. Closed loop is disabled.") `when`(rh.gs(info.nightscout.plugins.constraints.R.string.closed_loop_disabled_on_dev_branch)).thenReturn("Running dev version. Closed loop is disabled.")
`when`(rh.gs(info.nightscout.plugins.R.string.closedmodedisabledinpreferences)).thenReturn("Closed loop mode disabled in preferences") `when`(rh.gs(info.nightscout.plugins.constraints.R.string.closedmodedisabledinpreferences)).thenReturn("Closed loop mode disabled in preferences")
`when`(rh.gs(info.nightscout.core.ui.R.string.no_valid_basal_rate)).thenReturn("No valid basal rate read from pump") `when`(rh.gs(info.nightscout.core.ui.R.string.no_valid_basal_rate)).thenReturn("No valid basal rate read from pump")
`when`(rh.gs(info.nightscout.plugins.aps.R.string.autosens_disabled_in_preferences)).thenReturn("Autosens disabled in preferences") `when`(rh.gs(info.nightscout.plugins.aps.R.string.autosens_disabled_in_preferences)).thenReturn("Autosens disabled in preferences")
`when`(rh.gs(info.nightscout.plugins.aps.R.string.smb_disabled_in_preferences)).thenReturn("SMB disabled in preferences") `when`(rh.gs(info.nightscout.plugins.aps.R.string.smb_disabled_in_preferences)).thenReturn("SMB disabled in preferences")
`when`(rh.gs(info.nightscout.core.ui.R.string.pumplimit)).thenReturn("pump limit") `when`(rh.gs(info.nightscout.core.ui.R.string.pumplimit)).thenReturn("pump limit")
`when`(rh.gs(info.nightscout.core.ui.R.string.itmustbepositivevalue)).thenReturn("it must be positive value") `when`(rh.gs(info.nightscout.core.ui.R.string.itmustbepositivevalue)).thenReturn("it must be positive value")
`when`(rh.gs(info.nightscout.plugins.R.string.maxvalueinpreferences)).thenReturn("max value in preferences") `when`(rh.gs(info.nightscout.plugins.constraints.R.string.maxvalueinpreferences)).thenReturn("max value in preferences")
`when`(rh.gs(info.nightscout.plugins.aps.R.string.max_basal_multiplier)).thenReturn("max basal multiplier") `when`(rh.gs(info.nightscout.plugins.aps.R.string.max_basal_multiplier)).thenReturn("max basal multiplier")
`when`(rh.gs(info.nightscout.plugins.aps.R.string.max_daily_basal_multiplier)).thenReturn("max daily basal multiplier") `when`(rh.gs(info.nightscout.plugins.aps.R.string.max_daily_basal_multiplier)).thenReturn("max daily basal multiplier")
`when`(rh.gs(info.nightscout.core.ui.R.string.pumplimit)).thenReturn("pump limit") `when`(rh.gs(info.nightscout.core.ui.R.string.pumplimit)).thenReturn("pump limit")
`when`(rh.gs(info.nightscout.core.ui.R.string.limitingbolus)).thenReturn("Limiting bolus to %.1f U because of %s") `when`(rh.gs(info.nightscout.core.ui.R.string.limitingbolus)).thenReturn("Limiting bolus to %.1f U because of %s")
`when`(rh.gs(info.nightscout.plugins.R.string.hardlimit)).thenReturn("hard limit") `when`(rh.gs(info.nightscout.plugins.constraints.R.string.hardlimit)).thenReturn("hard limit")
`when`(rh.gs(info.nightscout.core.utils.R.string.key_child)).thenReturn("child") `when`(rh.gs(info.nightscout.core.utils.R.string.key_child)).thenReturn("child")
`when`(rh.gs(info.nightscout.plugins.R.string.limitingcarbs)).thenReturn("Limiting carbs to %d g because of %s") `when`(rh.gs(info.nightscout.plugins.constraints.R.string.limitingcarbs)).thenReturn("Limiting carbs to %d g because of %s")
`when`(rh.gs(info.nightscout.plugins.aps.R.string.limiting_iob)).thenReturn("Limiting IOB to %.1f U because of %s") `when`(rh.gs(info.nightscout.plugins.aps.R.string.limiting_iob)).thenReturn("Limiting IOB to %.1f U because of %s")
`when`(rh.gs(info.nightscout.core.ui.R.string.limitingbasalratio)).thenReturn("Limiting max basal rate to %1\$.2f U/h because of %2\$s") `when`(rh.gs(info.nightscout.core.ui.R.string.limitingbasalratio)).thenReturn("Limiting max basal rate to %1\$.2f U/h because of %2\$s")
`when`(rh.gs(info.nightscout.core.ui.R.string.limitingpercentrate)).thenReturn("Limiting max percent rate to %1\$d%% because of %2\$s") `when`(rh.gs(info.nightscout.core.ui.R.string.limitingpercentrate)).thenReturn("Limiting max percent rate to %1\$d%% because of %2\$s")
`when`(rh.gs(info.nightscout.core.ui.R.string.itmustbepositivevalue)).thenReturn("it must be positive value") `when`(rh.gs(info.nightscout.core.ui.R.string.itmustbepositivevalue)).thenReturn("it must be positive value")
`when`(rh.gs(info.nightscout.plugins.R.string.smbnotallowedinopenloopmode)).thenReturn("SMB not allowed in open loop mode") `when`(rh.gs(info.nightscout.plugins.constraints.R.string.smbnotallowedinopenloopmode)).thenReturn("SMB not allowed in open loop mode")
`when`(rh.gs(info.nightscout.core.ui.R.string.pumplimit)).thenReturn("pump limit") `when`(rh.gs(info.nightscout.core.ui.R.string.pumplimit)).thenReturn("pump limit")
`when`(rh.gs(info.nightscout.plugins.R.string.smbalwaysdisabled)).thenReturn("SMB always and after carbs disabled because active BG source doesn\\'t support advanced filtering") `when`(rh.gs(info.nightscout.plugins.constraints.R.string.smbalwaysdisabled)).thenReturn("SMB always and after carbs disabled because active BG source doesn\\'t support advanced filtering")
`when`(rh.gs(info.nightscout.core.ui.R.string.limitingpercentrate)).thenReturn("Limiting max percent rate to %1\$d%% because of %2\$s") `when`(rh.gs(info.nightscout.core.ui.R.string.limitingpercentrate)).thenReturn("Limiting max percent rate to %1\$d%% because of %2\$s")
`when`(rh.gs(info.nightscout.core.ui.R.string.limitingbolus)).thenReturn("Limiting bolus to %1\$.1f U because of %2\$s") `when`(rh.gs(info.nightscout.core.ui.R.string.limitingbolus)).thenReturn("Limiting bolus to %1\$.1f U because of %2\$s")
`when`(rh.gs(info.nightscout.core.ui.R.string.limitingbasalratio)).thenReturn("Limiting max basal rate to %1\$.2f U/h because of %2\$s") `when`(rh.gs(info.nightscout.core.ui.R.string.limitingbasalratio)).thenReturn("Limiting max basal rate to %1\$.2f U/h because of %2\$s")
`when`(context.getString(info.nightscout.pump.combo.R.string.combo_pump_unsupported_operation)).thenReturn("Requested operation not supported by pump") `when`(context.getString(info.nightscout.pump.combo.R.string.combo_pump_unsupported_operation)).thenReturn("Requested operation not supported by pump")
`when`(rh.gs(info.nightscout.plugins.R.string.objectivenotstarted)).thenReturn("Objective %1\$d not started") `when`(rh.gs(info.nightscout.plugins.constraints.R.string.objectivenotstarted)).thenReturn("Objective %1\$d not started")
// RS constructor // RS constructor
`when`(sp.getString(R.string.key_danars_name, "")).thenReturn("") `when`(sp.getString(R.string.key_danars_name, "")).thenReturn("")
@ -146,7 +146,7 @@ class ConstraintsCheckerTest : TestBaseWithProfile() {
hardLimits = HardLimitsMock(sp, rh) hardLimits = HardLimitsMock(sp, rh)
insightDbHelper = InsightDbHelper(insightDatabaseDao) insightDbHelper = InsightDbHelper(insightDatabaseDao)
danaPump = DanaPump(aapsLogger, sp, dateUtil, profileInstantiator) danaPump = DanaPump(aapsLogger, sp, dateUtil, instantiator)
objectivesPlugin = ObjectivesPlugin(injector, aapsLogger, rh, activePlugin, sp, config) objectivesPlugin = ObjectivesPlugin(injector, aapsLogger, rh, activePlugin, sp, config)
comboPlugin = ComboPlugin(injector, aapsLogger, rxBus, rh, profileFunction, sp, commandQueue, pumpSync, dateUtil, ruffyScripter, uiInteraction) comboPlugin = ComboPlugin(injector, aapsLogger, rxBus, rh, profileFunction, sp, commandQueue, pumpSync, dateUtil, ruffyScripter, uiInteraction)
danaRPlugin = DanaRPlugin(injector, aapsLogger, aapsSchedulers, rxBus, context, rh, constraintChecker, activePlugin, sp, commandQueue, danaPump, dateUtil, fabricPrivacy, pumpSync, danaRPlugin = DanaRPlugin(injector, aapsLogger, aapsSchedulers, rxBus, context, rh, constraintChecker, activePlugin, sp, commandQueue, danaPump, dateUtil, fabricPrivacy, pumpSync,
@ -243,7 +243,8 @@ class ConstraintsCheckerTest : TestBaseWithProfile() {
hardLimits, hardLimits,
ConfigImpl(fileListProvider), ConfigImpl(fileListProvider),
iobCobCalculator, iobCobCalculator,
dateUtil dateUtil,
uiInteraction
) )
val constraintsPluginsList = ArrayList<PluginBase>() val constraintsPluginsList = ArrayList<PluginBase>()
constraintsPluginsList.add(safetyPlugin) constraintsPluginsList.add(safetyPlugin)

View file

@ -22,7 +22,7 @@ import info.nightscout.interfaces.receivers.ReceiverStatusStore
import info.nightscout.interfaces.ui.UiInteraction import info.nightscout.interfaces.ui.UiInteraction
import info.nightscout.plugins.aps.loop.LoopFragment import info.nightscout.plugins.aps.loop.LoopFragment
import info.nightscout.plugins.aps.loop.LoopPlugin import info.nightscout.plugins.aps.loop.LoopPlugin
import info.nightscout.plugins.pump.virtual.VirtualPumpPlugin import info.nightscout.pump.virtual.VirtualPumpPlugin
import info.nightscout.rx.bus.RxBus import info.nightscout.rx.bus.RxBus
import info.nightscout.shared.interfaces.ResourceHelper import info.nightscout.shared.interfaces.ResourceHelper
import info.nightscout.shared.sharedPreferences.SP import info.nightscout.shared.sharedPreferences.SP

View file

@ -15,14 +15,14 @@ import info.nightscout.interfaces.plugin.ActivePlugin
import info.nightscout.interfaces.plugin.PluginType import info.nightscout.interfaces.plugin.PluginType
import info.nightscout.interfaces.profiling.Profiler import info.nightscout.interfaces.profiling.Profiler
import info.nightscout.interfaces.pump.defs.PumpDescription import info.nightscout.interfaces.pump.defs.PumpDescription
import info.nightscout.interfaces.ui.UiInteraction
import info.nightscout.interfaces.utils.HardLimits import info.nightscout.interfaces.utils.HardLimits
import info.nightscout.plugins.R
import info.nightscout.plugins.aps.openAPSAMA.OpenAPSAMAPlugin import info.nightscout.plugins.aps.openAPSAMA.OpenAPSAMAPlugin
import info.nightscout.plugins.aps.openAPSSMB.OpenAPSSMBPlugin import info.nightscout.plugins.aps.openAPSSMB.OpenAPSSMBPlugin
import info.nightscout.plugins.constraints.safety.SafetyPlugin import info.nightscout.plugins.constraints.safety.SafetyPlugin
import info.nightscout.plugins.pump.virtual.VirtualPumpPlugin import info.nightscout.pump.virtual.VirtualPumpPlugin
import info.nightscout.plugins.source.GlimpPlugin
import info.nightscout.shared.sharedPreferences.SP import info.nightscout.shared.sharedPreferences.SP
import info.nightscout.source.GlimpPlugin
import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.Assertions
import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.BeforeEach
import org.junit.jupiter.api.Test import org.junit.jupiter.api.Test
@ -40,6 +40,7 @@ class SafetyPluginTest : TestBaseWithProfile() {
@Mock lateinit var repository: AppRepository @Mock lateinit var repository: AppRepository
@Mock lateinit var glucoseStatusProvider: GlucoseStatusProvider @Mock lateinit var glucoseStatusProvider: GlucoseStatusProvider
@Mock lateinit var bgQualityCheck: BgQualityCheck @Mock lateinit var bgQualityCheck: BgQualityCheck
@Mock lateinit var uiInteraction: UiInteraction
private lateinit var hardLimits: HardLimits private lateinit var hardLimits: HardLimits
private lateinit var safetyPlugin: SafetyPlugin private lateinit var safetyPlugin: SafetyPlugin
@ -51,24 +52,24 @@ class SafetyPluginTest : TestBaseWithProfile() {
@BeforeEach @BeforeEach
fun prepare() { fun prepare() {
`when`(rh.gs(R.string.hardlimit)).thenReturn("hard limit") `when`(rh.gs(info.nightscout.plugins.constraints.R.string.hardlimit)).thenReturn("hard limit")
`when`(rh.gs(info.nightscout.core.ui.R.string.itmustbepositivevalue)).thenReturn("it must be positive value") `when`(rh.gs(info.nightscout.core.ui.R.string.itmustbepositivevalue)).thenReturn("it must be positive value")
`when`(rh.gs(info.nightscout.core.ui.R.string.pumplimit)).thenReturn("pump limit") `when`(rh.gs(info.nightscout.core.ui.R.string.pumplimit)).thenReturn("pump limit")
`when`(rh.gs(R.string.maxvalueinpreferences)).thenReturn("max value in preferences") `when`(rh.gs(info.nightscout.plugins.constraints.R.string.maxvalueinpreferences)).thenReturn("max value in preferences")
`when`(rh.gs(info.nightscout.plugins.aps.R.string.max_daily_basal_multiplier)).thenReturn("max daily basal multiplier") `when`(rh.gs(info.nightscout.plugins.aps.R.string.max_daily_basal_multiplier)).thenReturn("max daily basal multiplier")
`when`(rh.gs(info.nightscout.plugins.aps.R.string.max_basal_multiplier)).thenReturn("max basal multiplier") `when`(rh.gs(info.nightscout.plugins.aps.R.string.max_basal_multiplier)).thenReturn("max basal multiplier")
`when`(rh.gs(info.nightscout.core.ui.R.string.limitingbolus)).thenReturn("Limiting bolus to %1\$.1f U because of %2\$s") `when`(rh.gs(info.nightscout.core.ui.R.string.limitingbolus)).thenReturn("Limiting bolus to %1\$.1f U because of %2\$s")
`when`(rh.gs(info.nightscout.core.ui.R.string.limitingbasalratio)).thenReturn("Limiting max basal rate to %1\$.2f U/h because of %2\$s") `when`(rh.gs(info.nightscout.core.ui.R.string.limitingbasalratio)).thenReturn("Limiting max basal rate to %1\$.2f U/h because of %2\$s")
`when`(rh.gs(info.nightscout.core.ui.R.string.limiting_iob)).thenReturn("Limiting IOB to %1\$.1f U because of %2\$s") `when`(rh.gs(info.nightscout.core.ui.R.string.limiting_iob)).thenReturn("Limiting IOB to %1\$.1f U because of %2\$s")
`when`(rh.gs(R.string.limitingcarbs)).thenReturn("Limiting carbs to %1\$d g because of %2\$s") `when`(rh.gs(info.nightscout.plugins.constraints.R.string.limitingcarbs)).thenReturn("Limiting carbs to %1\$d g because of %2\$s")
`when`(rh.gs(info.nightscout.core.ui.R.string.limitingpercentrate)).thenReturn("Limiting max percent rate to %1\$d%% because of %2\$s") `when`(rh.gs(info.nightscout.core.ui.R.string.limitingpercentrate)).thenReturn("Limiting max percent rate to %1\$d%% because of %2\$s")
`when`(rh.gs(R.string.pumpisnottempbasalcapable)).thenReturn("Pump is not temp basal capable") `when`(rh.gs(info.nightscout.plugins.constraints.R.string.pumpisnottempbasalcapable)).thenReturn("Pump is not temp basal capable")
`when`(rh.gs(info.nightscout.plugins.aps.R.string.increasing_max_basal)).thenReturn("Increasing max basal value because setting is lower than your max basal in profile") `when`(rh.gs(info.nightscout.plugins.aps.R.string.increasing_max_basal)).thenReturn("Increasing max basal value because setting is lower than your max basal in profile")
`when`(rh.gs(info.nightscout.plugins.aps.R.string.smb_disabled_in_preferences)).thenReturn("SMB disabled in preferences") `when`(rh.gs(info.nightscout.plugins.aps.R.string.smb_disabled_in_preferences)).thenReturn("SMB disabled in preferences")
`when`(rh.gs(R.string.closedmodedisabledinpreferences)).thenReturn("Closed loop mode disabled in preferences") `when`(rh.gs(info.nightscout.plugins.constraints.R.string.closedmodedisabledinpreferences)).thenReturn("Closed loop mode disabled in preferences")
`when`(rh.gs(R.string.closed_loop_disabled_on_dev_branch)).thenReturn("Running dev version. Closed loop is disabled.") `when`(rh.gs(info.nightscout.plugins.constraints.R.string.closed_loop_disabled_on_dev_branch)).thenReturn("Running dev version. Closed loop is disabled.")
`when`(rh.gs(R.string.smbalwaysdisabled)).thenReturn("SMB always and after carbs disabled because active BG source doesn\\'t support advanced filtering") `when`(rh.gs(info.nightscout.plugins.constraints.R.string.smbalwaysdisabled)).thenReturn("SMB always and after carbs disabled because active BG source doesn\\'t support advanced filtering")
`when`(rh.gs(R.string.smbnotallowedinopenloopmode)).thenReturn("SMB not allowed in open loop mode") `when`(rh.gs(info.nightscout.plugins.constraints.R.string.smbnotallowedinopenloopmode)).thenReturn("SMB not allowed in open loop mode")
`when`(rh.gs(info.nightscout.core.utils.R.string.key_child)).thenReturn("child") `when`(rh.gs(info.nightscout.core.utils.R.string.key_child)).thenReturn("child")
`when`(rh.gs(info.nightscout.core.ui.R.string.lowglucosesuspend)).thenReturn("Low Glucose Suspend") `when`(rh.gs(info.nightscout.core.ui.R.string.lowglucosesuspend)).thenReturn("Low Glucose Suspend")
@ -76,7 +77,7 @@ class SafetyPluginTest : TestBaseWithProfile() {
`when`(virtualPumpPlugin.pumpDescription).thenReturn(pumpDescription) `when`(virtualPumpPlugin.pumpDescription).thenReturn(pumpDescription)
`when`(config.APS).thenReturn(true) `when`(config.APS).thenReturn(true)
hardLimits = HardLimitsMock(sp, rh) hardLimits = HardLimitsMock(sp, rh)
safetyPlugin = SafetyPlugin(injector, aapsLogger, rh, sp, rxBus, constraintChecker, activePlugin, hardLimits, config, iobCobCalculator, dateUtil) safetyPlugin = SafetyPlugin(injector, aapsLogger, rh, sp, rxBus, constraintChecker, activePlugin, hardLimits, config, iobCobCalculator, dateUtil, uiInteraction)
openAPSAMAPlugin = OpenAPSAMAPlugin( openAPSAMAPlugin = OpenAPSAMAPlugin(
injector, aapsLogger, rxBus, constraintChecker, rh, profileFunction, context, activePlugin, iobCobCalculator, hardLimits, profiler, fabricPrivacy, injector, aapsLogger, rxBus, constraintChecker, rh, profileFunction, context, activePlugin, iobCobCalculator, hardLimits, profiler, fabricPrivacy,
dateUtil, repository, glucoseStatusProvider, sp dateUtil, repository, glucoseStatusProvider, sp

View file

@ -6,7 +6,7 @@ import info.nightscout.androidaps.TestBaseWithProfile
import info.nightscout.core.pump.toHtml import info.nightscout.core.pump.toHtml
import info.nightscout.interfaces.pump.PumpEnactResult import info.nightscout.interfaces.pump.PumpEnactResult
import info.nightscout.plugins.aps.loop.extensions.json import info.nightscout.plugins.aps.loop.extensions.json
import info.nightscout.plugins.extensions.toText import info.nightscout.pump.virtual.extensions.toText
import info.nightscout.plugins.sync.nsShared.extensions.log import info.nightscout.plugins.sync.nsShared.extensions.log
import org.json.JSONObject import org.json.JSONObject
import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.Assertions

View file

@ -1,4 +1,4 @@
package info.nightscout.plugins.insulin package info.nightscout.core.graph
import android.content.Context import android.content.Context
import android.graphics.Color import android.graphics.Color

View file

@ -1,14 +0,0 @@
package info.nightscout.interfaces
interface BolusTimer {
/**
* Create new Automation event to alarm when is time to bolus
*/
fun scheduleAutomationEventBolusReminder()
/**
* Remove Automation event
*/
fun removeAutomationEventBolusReminder()
}

View file

@ -1,21 +0,0 @@
package info.nightscout.interfaces
interface CarbTimer {
/**
* Generate reminder via [info.nightscout.androidaps.utils.TimerUtil]
*
* @param seconds seconds to the future
*/
fun scheduleTimeToEatReminder(seconds: Int)
/**
* Create new Automation event to alarm when is time to eat
*/
fun scheduleAutomationEventEatReminder()
/**
* Remove Automation event
*/
fun removeAutomationEventEatReminder()
}

View file

@ -0,0 +1,3 @@
package info.nightscout.interfaces.actions
interface Actions

View file

@ -8,6 +8,7 @@ import info.nightscout.interfaces.iob.IobTotal
import org.json.JSONObject import org.json.JSONObject
interface APSResult { interface APSResult {
var date: Long
var json: JSONObject? var json: JSONObject?
var reason: String var reason: String
var rate: Double var rate: Double

View file

@ -18,8 +18,13 @@ interface AutosensData {
var pastSensitivity: String var pastSensitivity: String
var deviation: Double var deviation: Double
var validDeviation: Boolean var validDeviation: Boolean
var activeCarbsList: MutableList<CarbsInPast>
var absorbed: Double
var carbsFromBolus: Double var carbsFromBolus: Double
var cob: Double var cob: Double
var bgi: Double
var delta: Double
var avgDelta: Double
var slopeFromMaxDeviation: Double var slopeFromMaxDeviation: Double
var slopeFromMinDeviation: Double var slopeFromMinDeviation: Double
var usedMinCarbsImpact: Double var usedMinCarbsImpact: Double
@ -37,4 +42,6 @@ interface AutosensData {
var autosensResult: AutosensResult var autosensResult: AutosensResult
fun cloneCarbsList(): MutableList<CarbsInPast> fun cloneCarbsList(): MutableList<CarbsInPast>
fun deductAbsorbedCarbs()
fun removeOldCarbs(toTime: Long, isAAPSOrWeighted: Boolean)
} }

View file

@ -1,6 +1,36 @@
package info.nightscout.interfaces.automation package info.nightscout.interfaces.automation
interface Automation { interface Automation {
fun userEvents(): List<AutomationEvent> fun userEvents(): List<AutomationEvent>
fun processEvent(someEvent: AutomationEvent) fun processEvent(someEvent: AutomationEvent)
/**
* Generate reminder via [info.nightscout.interfaces.utils.TimerUtil]
*
*/
fun scheduleAutomationEventBolusReminder()
/**
* Remove scheduled reminder from automations
*
*/
fun removeAutomationEventBolusReminder()
/**
* Generate reminder via [info.nightscout.interfaces.utils.TimerUtil]
*
* @param seconds seconds to the future
*/
fun scheduleTimeToEatReminder(seconds: Int)
/**
* Remove Automation event
*/
fun removeAutomationEventEatReminder()
/**
* Create new Automation event to alarm when is time to eat
*/
fun scheduleAutomationEventEatReminder()
} }

View file

@ -5,6 +5,7 @@ import info.nightscout.database.ValueWrapper
import info.nightscout.database.entities.Bolus import info.nightscout.database.entities.Bolus
import info.nightscout.database.entities.BolusCalculatorResult import info.nightscout.database.entities.BolusCalculatorResult
import info.nightscout.database.entities.Carbs import info.nightscout.database.entities.Carbs
import info.nightscout.database.entities.EffectiveProfileSwitch
import info.nightscout.database.entities.TemporaryTarget import info.nightscout.database.entities.TemporaryTarget
import info.nightscout.database.entities.UserEntry import info.nightscout.database.entities.UserEntry
import info.nightscout.interfaces.queue.Callback import info.nightscout.interfaces.queue.Callback
@ -20,4 +21,5 @@ interface PersistenceLayer {
fun getTemporaryTargetActiveAt(timestamp: Long): Single<ValueWrapper<TemporaryTarget>> fun getTemporaryTargetActiveAt(timestamp: Long): Single<ValueWrapper<TemporaryTarget>>
fun getUserEntryFilteredDataFromTime(timestamp: Long): Single<List<UserEntry>> fun getUserEntryFilteredDataFromTime(timestamp: Long): Single<List<UserEntry>>
fun getEffectiveProfileSwitchActiveAt(timestamp: Long): Single<ValueWrapper<EffectiveProfileSwitch>>
} }

View file

@ -0,0 +1,12 @@
package info.nightscout.interfaces.profile
import info.nightscout.interfaces.aps.APSResult
import info.nightscout.interfaces.aps.AutosensData
import org.json.JSONObject
interface Instantiator {
fun provideProfileStore(jsonObject: JSONObject): ProfileStore
fun provideAPSResultObject(): APSResult
fun provideAutosensDataObject(): AutosensData
}

View file

@ -1,7 +0,0 @@
package info.nightscout.interfaces.profile
import org.json.JSONObject
interface ProfileInstantiator {
fun storeInstance(jsonObject: JSONObject): ProfileStore
}

View file

@ -1,3 +1,8 @@
package info.nightscout.interfaces.source package info.nightscout.interfaces.source
interface DexcomBoyda interface DexcomBoyda {
fun isEnabled(): Boolean
fun requestPermissionIfNeeded()
fun findDexcomPackageName(): String?
}

View file

@ -0,0 +1,5 @@
package info.nightscout.interfaces.source
interface XDrip {
fun isEnabled(): Boolean
}

View file

@ -31,6 +31,9 @@ interface UiInteraction {
* @param soundId sound resource. if == 0 alarm is not started * @param soundId sound resource. if == 0 alarm is not started
*/ */
fun runAlarm(status: String, title: String, @RawRes soundId: Int = 0) fun runAlarm(status: String, title: String, @RawRes soundId: Int = 0)
fun updateWidget(context: Context)
fun runWizardDialog(fragmentManager: FragmentManager, carbs: Int? = null, name: String? = null) fun runWizardDialog(fragmentManager: FragmentManager, carbs: Int? = null, name: String? = null)
fun runLoopDialog(fragmentManager: FragmentManager, showOkCancel: Int) fun runLoopDialog(fragmentManager: FragmentManager, showOkCancel: Int)
fun runProfileSwitchDialog(fragmentManager: FragmentManager, profileName: String? = null) fun runProfileSwitchDialog(fragmentManager: FragmentManager, profileName: String? = null)

View file

@ -2,8 +2,6 @@ package info.nightscout.core.di
import dagger.Module import dagger.Module
import dagger.android.ContributesAndroidInjector import dagger.android.ContributesAndroidInjector
import info.nightscout.core.aps.APSResultObject
import info.nightscout.core.iob.iobCobCalculator.data.AutosensDataObject
import info.nightscout.core.wizard.BolusWizard import info.nightscout.core.wizard.BolusWizard
import info.nightscout.core.wizard.QuickWizardEntry import info.nightscout.core.wizard.QuickWizardEntry
import info.nightscout.interfaces.pump.PumpEnactResult import info.nightscout.interfaces.pump.PumpEnactResult
@ -13,8 +11,6 @@ import info.nightscout.interfaces.pump.PumpEnactResult
abstract class CoreDataClassesModule { abstract class CoreDataClassesModule {
@ContributesAndroidInjector abstract fun pumpEnactResultInjector(): PumpEnactResult @ContributesAndroidInjector abstract fun pumpEnactResultInjector(): PumpEnactResult
@ContributesAndroidInjector abstract fun apsResultInjector(): APSResultObject
@ContributesAndroidInjector abstract fun autosensDataInjector(): AutosensDataObject
@ContributesAndroidInjector abstract fun bolusWizardInjector(): BolusWizard @ContributesAndroidInjector abstract fun bolusWizardInjector(): BolusWizard
@ContributesAndroidInjector abstract fun quickWizardEntryInjector(): QuickWizardEntry @ContributesAndroidInjector abstract fun quickWizardEntryInjector(): QuickWizardEntry
} }

View file

@ -5,14 +5,11 @@ import android.os.Build
import android.telephony.SmsManager import android.telephony.SmsManager
import dagger.Module import dagger.Module
import dagger.Provides import dagger.Provides
import dagger.android.ContributesAndroidInjector
import info.nightscout.core.services.AlarmSoundService
@Module( @Module(
includes = [ includes = [
CoreDataClassesModule::class, CoreDataClassesModule::class,
PreferencesModule::class, PreferencesModule::class
ServicesModule::class
] ]
) )
open class CoreModule { open class CoreModule {

View file

@ -1,12 +0,0 @@
package info.nightscout.core.di
import dagger.Module
import dagger.android.ContributesAndroidInjector
import info.nightscout.core.services.AlarmSoundService
@Module
@Suppress("unused")
abstract class ServicesModule {
@ContributesAndroidInjector abstract fun contributesAlarmSoundService(): AlarmSoundService
}

View file

@ -1,2 +0,0 @@
package info.nightscout.core.profile

View file

@ -15,10 +15,9 @@ import info.nightscout.database.entities.TemporaryTarget
import info.nightscout.database.entities.UserEntry.Action import info.nightscout.database.entities.UserEntry.Action
import info.nightscout.database.entities.UserEntry.Sources import info.nightscout.database.entities.UserEntry.Sources
import info.nightscout.database.entities.ValueWithUnit import info.nightscout.database.entities.ValueWithUnit
import info.nightscout.interfaces.BolusTimer
import info.nightscout.interfaces.CarbTimer
import info.nightscout.interfaces.Config import info.nightscout.interfaces.Config
import info.nightscout.interfaces.aps.Loop import info.nightscout.interfaces.aps.Loop
import info.nightscout.interfaces.automation.Automation
import info.nightscout.interfaces.constraints.Constraint import info.nightscout.interfaces.constraints.Constraint
import info.nightscout.interfaces.constraints.Constraints import info.nightscout.interfaces.constraints.Constraints
import info.nightscout.interfaces.db.PersistenceLayer import info.nightscout.interfaces.db.PersistenceLayer
@ -69,8 +68,7 @@ class BolusWizard @Inject constructor(
@Inject lateinit var dateUtil: DateUtil @Inject lateinit var dateUtil: DateUtil
@Inject lateinit var config: Config @Inject lateinit var config: Config
@Inject lateinit var uel: UserEntryLogger @Inject lateinit var uel: UserEntryLogger
@Inject lateinit var carbTimer: CarbTimer @Inject lateinit var automation: Automation
@Inject lateinit var bolusTimer: BolusTimer
@Inject lateinit var glucoseStatusProvider: GlucoseStatusProvider @Inject lateinit var glucoseStatusProvider: GlucoseStatusProvider
@Inject lateinit var uiInteraction: UiInteraction @Inject lateinit var uiInteraction: UiInteraction
@Inject lateinit var persistenceLayer: PersistenceLayer @Inject lateinit var persistenceLayer: PersistenceLayer
@ -361,9 +359,9 @@ class BolusWizard @Inject constructor(
} }
accepted = true accepted = true
if (calculatedTotalInsulin > 0.0) if (calculatedTotalInsulin > 0.0)
bolusTimer.removeAutomationEventBolusReminder() automation.removeAutomationEventBolusReminder()
if (carbs > 0.0) if (carbs > 0.0)
carbTimer.removeAutomationEventEatReminder() automation.removeAutomationEventEatReminder()
if (sp.getBoolean(info.nightscout.core.ui.R.string.key_usebolusadvisor, false) && Profile.toMgdl(bg, profile.units) > 180 && carbs > 0 && carbTime >= 0) if (sp.getBoolean(info.nightscout.core.ui.R.string.key_usebolusadvisor, false) && Profile.toMgdl(bg, profile.units) > 180 && carbs > 0 && carbTime >= 0)
OKDialog.showYesNoCancel(ctx, rh.gs(info.nightscout.core.ui.R.string.bolus_advisor), rh.gs(info.nightscout.core.ui.R.string.bolus_advisor_message), OKDialog.showYesNoCancel(ctx, rh.gs(info.nightscout.core.ui.R.string.bolus_advisor), rh.gs(info.nightscout.core.ui.R.string.bolus_advisor_message),
{ bolusAdvisorProcessing(ctx) }, { bolusAdvisorProcessing(ctx) },
@ -402,7 +400,7 @@ class BolusWizard @Inject constructor(
if (!result.success) { if (!result.success) {
uiInteraction.runAlarm(result.comment, rh.gs(info.nightscout.core.ui.R.string.treatmentdeliveryerror), info.nightscout.core.ui.R.raw.boluserror) uiInteraction.runAlarm(result.comment, rh.gs(info.nightscout.core.ui.R.string.treatmentdeliveryerror), info.nightscout.core.ui.R.raw.boluserror)
} else } else
carbTimer.scheduleAutomationEventEatReminder() automation.scheduleAutomationEventEatReminder()
} }
}) })
} }
@ -494,7 +492,7 @@ class BolusWizard @Inject constructor(
bolusCalculatorResult?.let { persistenceLayer.insertOrUpdate(it) } bolusCalculatorResult?.let { persistenceLayer.insertOrUpdate(it) }
} }
if (useAlarm && carbs > 0 && carbTime > 0) { if (useAlarm && carbs > 0 && carbTime > 0) {
carbTimer.scheduleTimeToEatReminder(T.mins(carbTime.toLong()).secs().toInt()) automation.scheduleTimeToEatReminder(T.mins(carbTime.toLong()).secs().toInt())
} }
} }
}) })

View file

@ -0,0 +1,10 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="48dp"
android:height="48dp"
android:tint="?attr/defaultTextColor"
android:viewportWidth="24.0"
android:viewportHeight="24.0">
<path
android:fillColor="?attr/defaultTextColor"
android:pathData="M22,12l-4,-4v3H3v2h15v3z" />
</vector>

View file

Before

Width:  |  Height:  |  Size: 5.2 KiB

After

Width:  |  Height:  |  Size: 5.2 KiB

View file

Before

Width:  |  Height:  |  Size: 5.2 KiB

After

Width:  |  Height:  |  Size: 5.2 KiB

View file

Before

Width:  |  Height:  |  Size: 7.2 KiB

After

Width:  |  Height:  |  Size: 7.2 KiB

View file

Before

Width:  |  Height:  |  Size: 4.7 KiB

After

Width:  |  Height:  |  Size: 4.7 KiB

View file

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

View file

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

View file

Before

Width:  |  Height:  |  Size: 4.1 KiB

After

Width:  |  Height:  |  Size: 4.1 KiB

View file

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

View file

Before

Width:  |  Height:  |  Size: 7.4 KiB

After

Width:  |  Height:  |  Size: 7.4 KiB

View file

Before

Width:  |  Height:  |  Size: 7.4 KiB

After

Width:  |  Height:  |  Size: 7.4 KiB

View file

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 10 KiB

View file

Before

Width:  |  Height:  |  Size: 7 KiB

After

Width:  |  Height:  |  Size: 7 KiB

View file

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

View file

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

View file

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 17 KiB

View file

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

View file

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 18 KiB

View file

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 18 KiB

View file

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 26 KiB

View file

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 20 KiB

View file

@ -113,6 +113,7 @@
<string name="closedloop">Geslote lus</string> <string name="closedloop">Geslote lus</string>
<string name="openloop">Oop lus</string> <string name="openloop">Oop lus</string>
<string name="dia">DIA</string> <string name="dia">DIA</string>
<string name="virtualpump_uploadstatus_title">Oplaaistatus aan NS</string>
<!-- Protection--> <!-- Protection-->
<string name="wrongpassword">Verkeerde wagwoord</string> <string name="wrongpassword">Verkeerde wagwoord</string>
<!-- Profile--> <!-- Profile-->

View file

@ -138,6 +138,7 @@
<string name="dia">DIA</string> <string name="dia">DIA</string>
<string name="ic_short">И / Въгл</string> <string name="ic_short">И / Въгл</string>
<string name="isf_short">Чувств</string> <string name="isf_short">Чувств</string>
<string name="virtualpump_uploadstatus_title">Качва статуса в NS</string>
<!-- Protection--> <!-- Protection-->
<string name="wrongpassword">Грешна парола</string> <string name="wrongpassword">Грешна парола</string>
<string name="passwords_dont_match">Паролите не съвпадат</string> <string name="passwords_dont_match">Паролите не съвпадат</string>

View file

@ -137,6 +137,9 @@
<string name="dia">DIA (Durada de l\'Acció de la Insulina)</string> <string name="dia">DIA (Durada de l\'Acció de la Insulina)</string>
<string name="ic_short">IC</string> <string name="ic_short">IC</string>
<string name="isf_short">ISF</string> <string name="isf_short">ISF</string>
<string name="virtualpump_uploadstatus_title">Enviar estat a NS</string>
<string name="suspendloop_label">Llaç desactivat/aturat</string>
<string name="iob_label">Insulina \"a bord\" (IOB)</string>
<!-- Protection--> <!-- Protection-->
<string name="wrongpassword">Contrasenya incorrecta</string> <string name="wrongpassword">Contrasenya incorrecta</string>
<string name="passwords_dont_match">Les contrasenyes no coincideixen</string> <string name="passwords_dont_match">Les contrasenyes no coincideixen</string>

View file

@ -164,6 +164,9 @@
<string name="isf_short">ISF</string> <string name="isf_short">ISF</string>
<string name="canceling_tbr_failed">Rušení dočasného bazálu selhalo</string> <string name="canceling_tbr_failed">Rušení dočasného bazálu selhalo</string>
<string name="canceling_eb_failed">Zastavení prodlouženého bolusu selhalo</string> <string name="canceling_eb_failed">Zastavení prodlouženého bolusu selhalo</string>
<string name="virtualpump_uploadstatus_title">Nahrávat status do NS</string>
<string name="suspendloop_label">Zakázaná/pozastavená smyčka</string>
<string name="iob_label">Aktivní inzulín (IOB)</string>
<!-- Protection--> <!-- Protection-->
<string name="wrongpassword">Chybné heslo</string> <string name="wrongpassword">Chybné heslo</string>
<string name="wrongpin">Nesprávný PIN</string> <string name="wrongpin">Nesprávný PIN</string>

View file

@ -155,6 +155,9 @@
<string name="dia">DIA</string> <string name="dia">DIA</string>
<string name="ic_short">IC</string> <string name="ic_short">IC</string>
<string name="isf_short">ISF</string> <string name="isf_short">ISF</string>
<string name="virtualpump_uploadstatus_title">Upload status til NS</string>
<string name="suspendloop_label">Deaktiveret/Suspendéret Loop</string>
<string name="iob_label">Insulin om bord (IOB)</string>
<!-- Protection--> <!-- Protection-->
<string name="wrongpassword">Forkert kodeord</string> <string name="wrongpassword">Forkert kodeord</string>
<string name="wrongpin">Forkert pinkode</string> <string name="wrongpin">Forkert pinkode</string>

View file

@ -101,6 +101,7 @@
<string name="loading">Lade…</string> <string name="loading">Lade…</string>
<string name="notes_label">Notizen</string> <string name="notes_label">Notizen</string>
<string name="remove_button">Löschen</string> <string name="remove_button">Löschen</string>
<string name="add_new">Neu hinzufügen</string>
<string name="addnew_above">Neu oben hinzufügen</string> <string name="addnew_above">Neu oben hinzufügen</string>
<string name="wrong_pump_data">Daten kommen von einer anderen Pumpe. Wechsle den Pumpentreiber.</string> <string name="wrong_pump_data">Daten kommen von einer anderen Pumpe. Wechsle den Pumpentreiber.</string>
<string name="bg_label">BZ</string> <string name="bg_label">BZ</string>
@ -155,6 +156,9 @@
<string name="dia">DIA</string> <string name="dia">DIA</string>
<string name="ic_short">IC</string> <string name="ic_short">IC</string>
<string name="isf_short">ISF</string> <string name="isf_short">ISF</string>
<string name="virtualpump_uploadstatus_title">Status zu Nightscout hochladen</string>
<string name="suspendloop_label">Deaktiviere/Pausiere den Loop</string>
<string name="iob_label">Aktives Insulin (IOB)</string>
<!-- Protection--> <!-- Protection-->
<string name="wrongpassword">Falsches Passwort</string> <string name="wrongpassword">Falsches Passwort</string>
<string name="wrongpin">Falsche PIN</string> <string name="wrongpin">Falsche PIN</string>
@ -316,6 +320,7 @@
<string name="uel_export_settings">EINSTELLUNGEN EXPORTIEREN</string> <string name="uel_export_settings">EINSTELLUNGEN EXPORTIEREN</string>
<string name="uel_import_settings">EINSTELLUNGEN IMPORTIEREN</string> <string name="uel_import_settings">EINSTELLUNGEN IMPORTIEREN</string>
<string name="uel_reset_databases">DATENBANK ZURÜCKSETZEN</string> <string name="uel_reset_databases">DATENBANK ZURÜCKSETZEN</string>
<string name="uel_cleanup_databases">DATENBANKEN BEREINIGEN</string>
<string name="uel_export_databases">DATENBANK EXPORTIEREN</string> <string name="uel_export_databases">DATENBANK EXPORTIEREN</string>
<string name="uel_import_databases">DATENBANK IMPORTIEREN</string> <string name="uel_import_databases">DATENBANK IMPORTIEREN</string>
<string name="uel_otp_export">OTP EXPORT</string> <string name="uel_otp_export">OTP EXPORT</string>

View file

@ -116,6 +116,7 @@
<string name="closedloop">Κλειστό Κύκλωμα</string> <string name="closedloop">Κλειστό Κύκλωμα</string>
<string name="openloop">Ανοιχτό Κύκλωμα</string> <string name="openloop">Ανοιχτό Κύκλωμα</string>
<string name="lowglucosesuspend">Αναστολή Χαμηλής Γλυκόζης</string> <string name="lowglucosesuspend">Αναστολή Χαμηλής Γλυκόζης</string>
<string name="virtualpump_uploadstatus_title">Φόρτωση κατάστασης στο NS</string>
<!-- Protection--> <!-- Protection-->
<string name="wrongpassword">Λάθος κωδικός</string> <string name="wrongpassword">Λάθος κωδικός</string>
<!-- Profile--> <!-- Profile-->

View file

@ -164,6 +164,9 @@
<string name="isf_short">ISF</string> <string name="isf_short">ISF</string>
<string name="canceling_tbr_failed">Error cancelando la basal temporal</string> <string name="canceling_tbr_failed">Error cancelando la basal temporal</string>
<string name="canceling_eb_failed">Error cancelando el bolo extendido</string> <string name="canceling_eb_failed">Error cancelando el bolo extendido</string>
<string name="virtualpump_uploadstatus_title">Subir estado a Nightscout</string>
<string name="suspendloop_label">Desactiva/suspende el lazo</string>
<string name="iob_label">Insulina a bordo (IOB)</string>
<!-- Protection--> <!-- Protection-->
<string name="wrongpassword">Contraseña incorrecta</string> <string name="wrongpassword">Contraseña incorrecta</string>
<string name="wrongpin">Pin erróneo</string> <string name="wrongpin">Pin erróneo</string>

View file

@ -161,6 +161,9 @@
<string name="dia">DAI</string> <string name="dia">DAI</string>
<string name="ic_short">G/I</string> <string name="ic_short">G/I</string>
<string name="isf_short">SI</string> <string name="isf_short">SI</string>
<string name="virtualpump_uploadstatus_title">Remontée des informations vers NS</string>
<string name="suspendloop_label">Boucle désactivée/suspendue</string>
<string name="iob_label">Insuline Active (IA)</string>
<!-- Protection--> <!-- Protection-->
<string name="wrongpassword">Mot de passe incorrect</string> <string name="wrongpassword">Mot de passe incorrect</string>
<string name="wrongpin">Code PIN incorrect</string> <string name="wrongpin">Code PIN incorrect</string>

View file

@ -108,6 +108,7 @@
<string name="dia">DIA</string> <string name="dia">DIA</string>
<string name="ic_short">IC</string> <string name="ic_short">IC</string>
<string name="isf_short">ISF</string> <string name="isf_short">ISF</string>
<string name="virtualpump_uploadstatus_title">Prijenos statusa u NS</string>
<!-- Protection--> <!-- Protection-->
<string name="wrongpassword">Pogrešna lozinka</string> <string name="wrongpassword">Pogrešna lozinka</string>
<string name="wrongpin">Pogrešan PIN</string> <string name="wrongpin">Pogrešan PIN</string>

View file

@ -156,6 +156,9 @@
<string name="dia">DIA</string> <string name="dia">DIA</string>
<string name="ic_short">IC</string> <string name="ic_short">IC</string>
<string name="isf_short">ISF</string> <string name="isf_short">ISF</string>
<string name="virtualpump_uploadstatus_title">Carica stato in NS</string>
<string name="suspendloop_label">Loop disabilitato/sospeso</string>
<string name="iob_label">Insulina attiva (IOB)</string>
<!-- Protection--> <!-- Protection-->
<string name="wrongpassword">Password errata</string> <string name="wrongpassword">Password errata</string>
<string name="wrongpin">PIN errato</string> <string name="wrongpin">PIN errato</string>

View file

@ -156,6 +156,9 @@
<string name="dia">משך פעילות אינסולין</string> <string name="dia">משך פעילות אינסולין</string>
<string name="ic_short">IC</string> <string name="ic_short">IC</string>
<string name="isf_short">ISF</string> <string name="isf_short">ISF</string>
<string name="virtualpump_uploadstatus_title">טוען מצב ל-Nightscout</string>
<string name="suspendloop_label">השבתת \\ השהיית לולאה</string>
<string name="iob_label">אינסולין פעיל בגוף (IOB)</string>
<!-- Protection--> <!-- Protection-->
<string name="wrongpassword">סיסמה שגויה</string> <string name="wrongpassword">סיסמה שגויה</string>
<string name="wrongpin">קוד PIN שגוי</string> <string name="wrongpin">קוד PIN שגוי</string>

View file

@ -136,6 +136,9 @@
<string name="dia">DIA</string> <string name="dia">DIA</string>
<string name="ic_short">IC</string> <string name="ic_short">IC</string>
<string name="isf_short">ISF</string> <string name="isf_short">ISF</string>
<string name="virtualpump_uploadstatus_title">NS에 상태 업로드하기</string>
<string name="suspendloop_label">중지 또는 일시중지된 loop</string>
<string name="iob_label">활성 인슐린 (IOB)</string>
<!-- Protection--> <!-- Protection-->
<string name="wrongpassword">잘못된 비밀번호</string> <string name="wrongpassword">잘못된 비밀번호</string>
<string name="passwords_dont_match">비밀번호가 일치하지 않습니다.</string> <string name="passwords_dont_match">비밀번호가 일치하지 않습니다.</string>

View file

@ -141,6 +141,9 @@
<string name="dia">IVT</string> <string name="dia">IVT</string>
<string name="ic_short">IA</string> <string name="ic_short">IA</string>
<string name="isf_short">JIF</string> <string name="isf_short">JIF</string>
<string name="virtualpump_uploadstatus_title">Perduoti būsenos duomenis į NS</string>
<string name="suspendloop_label">Ciklas išjungtas/sustabdytas</string>
<string name="iob_label">Aktyvus insulinas organizme (AIO)</string>
<!-- Protection--> <!-- Protection-->
<string name="wrongpassword">Neteisingas slaptažodis</string> <string name="wrongpassword">Neteisingas slaptažodis</string>
<string name="passwords_dont_match">Slaptažodžiai nesutampa</string> <string name="passwords_dont_match">Slaptažodžiai nesutampa</string>

View file

@ -158,6 +158,9 @@
<string name="dia">DIA</string> <string name="dia">DIA</string>
<string name="ic_short">KH-ratio</string> <string name="ic_short">KH-ratio</string>
<string name="isf_short">ISF</string> <string name="isf_short">ISF</string>
<string name="virtualpump_uploadstatus_title">Upload status naar NS</string>
<string name="suspendloop_label">Uitgeschakelde/onderbroken loop</string>
<string name="iob_label">Insuline aan boord (IOB)</string>
<!-- Protection--> <!-- Protection-->
<string name="wrongpassword">Verkeerd wachtwoord</string> <string name="wrongpassword">Verkeerd wachtwoord</string>
<string name="wrongpin">Onjuiste PIN-code</string> <string name="wrongpin">Onjuiste PIN-code</string>

View file

@ -164,6 +164,9 @@
<string name="isf_short">ISF</string> <string name="isf_short">ISF</string>
<string name="canceling_tbr_failed">Kansellering av Temp Basal feilet</string> <string name="canceling_tbr_failed">Kansellering av Temp Basal feilet</string>
<string name="canceling_eb_failed">Kansellering av forlenget bolus feilet</string> <string name="canceling_eb_failed">Kansellering av forlenget bolus feilet</string>
<string name="virtualpump_uploadstatus_title">Last opp status til Nightscout</string>
<string name="suspendloop_label">Deaktiver/pause loop</string>
<string name="iob_label">Aktivt insulin (IOB)</string>
<!-- Protection--> <!-- Protection-->
<string name="wrongpassword">Feil passord</string> <string name="wrongpassword">Feil passord</string>
<string name="wrongpin">Feil PIN-kode</string> <string name="wrongpin">Feil PIN-kode</string>

View file

@ -141,6 +141,9 @@
<string name="dia">DIA</string> <string name="dia">DIA</string>
<string name="ic_short">IC</string> <string name="ic_short">IC</string>
<string name="isf_short">ISF</string> <string name="isf_short">ISF</string>
<string name="virtualpump_uploadstatus_title">Przesyłaj status do NS</string>
<string name="suspendloop_label">Wyłączona/zawieszona pętla</string>
<string name="iob_label">Aktywna insulina (IOB)</string>
<!-- Protection--> <!-- Protection-->
<string name="wrongpassword">Złe hasło</string> <string name="wrongpassword">Złe hasło</string>
<string name="passwords_dont_match">Hasła się nie zgadzają</string> <string name="passwords_dont_match">Hasła się nie zgadzają</string>

View file

@ -6,13 +6,26 @@
<string name="application_protection">Proteção Aplicação</string> <string name="application_protection">Proteção Aplicação</string>
<string name="bolus_protection">Proteção Bólus</string> <string name="bolus_protection">Proteção Bólus</string>
<string name="settings_password">Definições de senha</string> <string name="settings_password">Definições de senha</string>
<string name="settings_pin">Configurações do PIN</string>
<string name="application_password">Senha da aplicação</string> <string name="application_password">Senha da aplicação</string>
<string name="application_pin">PIN do Aplicativo</string>
<string name="bolus_password">Senha do bólus</string> <string name="bolus_password">Senha do bólus</string>
<string name="bolus_pin">Bolus PIN</string>
<string name="protection_timeout_title">PIN e senha de segurança</string>
<string name="protection_timeout_summary">Tempo até que a senha ou PIN sejam inseridos</string>
<string name="biometric">Biometria</string> <string name="biometric">Biometria</string>
<string name="custom_password">Senha personalizada</string> <string name="custom_password">Senha personalizada</string>
<string name="custom_pin">PIN personalizado</string>
<string name="noprotection">Sem proteção</string> <string name="noprotection">Sem proteção</string>
<string name="unsecure_fallback_biometric">Retorno Inseguro</string>
<string name="unsecure_fallback_descriotion_biometric">Para ser eficaz, a proteção biométrica precisa de uma senha mestra definida para a substituição.\n\nPor favor defina uma senha mestra!</string>
<string name="password_set">Senha foi definida!</string> <string name="password_set">Senha foi definida!</string>
<string name="pin_set">PIN definido!</string>
<string name="password_not_set">Senha não foi definida</string> <string name="password_not_set">Senha não foi definida</string>
<string name="pin_not_set">PIN não definido</string>
<string name="password_not_changed">Senha não foi alterada</string> <string name="password_not_changed">Senha não foi alterada</string>
<string name="pin_not_changed">PIN não alterado</string>
<string name="pin_cleared">PIN apagado!</string>
<string name="password_hint">Insira a senha aqui</string> <string name="password_hint">Insira a senha aqui</string>
<string name="pin_hint">Insira o PIN aqui</string>
</resources> </resources>

View file

@ -14,6 +14,7 @@
<string name="pump_base_basal_rate">%1$.2f U/h</string> <string name="pump_base_basal_rate">%1$.2f U/h</string>
<string name="pump_not_initialized_profile_not_set">Bomba não inicializada, perfil não definido!</string> <string name="pump_not_initialized_profile_not_set">Bomba não inicializada, perfil não definido!</string>
<string name="failed_update_basal_profile">Falha ao atualizar o perfil basal</string> <string name="failed_update_basal_profile">Falha ao atualizar o perfil basal</string>
<string name="bolus_delivered_successfully">Bolus %1$.2f U aplicado com sucesso</string>
<string name="no_valid_basal_rate">Nenhum valor de basal temporaria valido foi lido da bomba</string> <string name="no_valid_basal_rate">Nenhum valor de basal temporaria valido foi lido da bomba</string>
<string name="limiting_iob">A limitar IOB para %1$.1f U porque %2$s</string> <string name="limiting_iob">A limitar IOB para %1$.1f U porque %2$s</string>
<string name="loop_disabled">LOOP DESATIVADO POR RESTRIÇÕES</string> <string name="loop_disabled">LOOP DESATIVADO POR RESTRIÇÕES</string>
@ -46,6 +47,7 @@
<string name="success">Sucesso</string> <string name="success">Sucesso</string>
<string name="advancedsettings_title">Configurações Avançadas</string> <string name="advancedsettings_title">Configurações Avançadas</string>
<string name="extendedbolusdeliveryerror">Erro na entrega Bólus Estendido</string> <string name="extendedbolusdeliveryerror">Erro na entrega Bólus Estendido</string>
<string name="aps_mode_title">Modo APS</string>
<string name="extended_bolus">Bólus estendido</string> <string name="extended_bolus">Bólus estendido</string>
<string name="paused">Pausado</string> <string name="paused">Pausado</string>
<string name="tdd_total">DDT Total</string> <string name="tdd_total">DDT Total</string>
@ -60,6 +62,8 @@
<string name="please_wait">Por favor aguarde…</string> <string name="please_wait">Por favor aguarde…</string>
<string name="stop">Parar</string> <string name="stop">Parar</string>
<string name="carbs">Carbos</string> <string name="carbs">Carbos</string>
<string name="invalid_profile">Perfil inválido!</string>
<string name="no_profile_set">SEM PERFIL DEFINIDO</string>
<string name="active"><![CDATA[<Active>]]></string> <string name="active"><![CDATA[<Active>]]></string>
<string name="date">Data</string> <string name="date">Data</string>
<string name="units_label">Unidades</string> <string name="units_label">Unidades</string>
@ -149,6 +153,7 @@
<string name="treatments_wizard_basaliob_label">IOB Basal</string> <string name="treatments_wizard_basaliob_label">IOB Basal</string>
<string name="invalid">INVÁLIDO</string> <string name="invalid">INVÁLIDO</string>
<string name="login">Login</string> <string name="login">Login</string>
<string name="prime_fill">Purgar/Preencher</string>
<string name="overview_insulin_label">Insulina</string> <string name="overview_insulin_label">Insulina</string>
<string name="stoptemptarget">Parar Alvo Temp</string> <string name="stoptemptarget">Parar Alvo Temp</string>
<string name="closedloop">Loop Fechado</string> <string name="closedloop">Loop Fechado</string>
@ -157,6 +162,11 @@
<string name="dia">DIA</string> <string name="dia">DIA</string>
<string name="ic_short">IC</string> <string name="ic_short">IC</string>
<string name="isf_short">FSI</string> <string name="isf_short">FSI</string>
<string name="canceling_tbr_failed">Cancelamento do basal temporário falhou</string>
<string name="canceling_eb_failed">Falhou o cancelamento do bolus extendido</string>
<string name="virtualpump_uploadstatus_title">Enviar estado para NS</string>
<string name="suspendloop_label">Loop Desativado/Suspenso</string>
<string name="iob_label">Insulina ativa (IA)</string>
<!-- Protection--> <!-- Protection-->
<string name="wrongpassword">Senha incorreta</string> <string name="wrongpassword">Senha incorreta</string>
<string name="wrongpin">PIN incorreto</string> <string name="wrongpin">PIN incorreto</string>
@ -172,6 +182,7 @@
<!-- ProfileFunction--> <!-- ProfileFunction-->
<string name="startprofile">Iniciar perfil %1$d%% para %2$d min</string> <string name="startprofile">Iniciar perfil %1$d%% para %2$d min</string>
<!-- APSResult--> <!-- APSResult-->
<string name="cancel_temp">Cancelar basal temporário</string>
<string name="let_temp_basal_run">Deixa o basal temporário em andamento</string> <string name="let_temp_basal_run">Deixa o basal temporário em andamento</string>
<string name="rate">Rácio</string> <string name="rate">Rácio</string>
<string name="duration">Duração</string> <string name="duration">Duração</string>
@ -193,9 +204,12 @@
<string name="careportal_note_message">Observação: %1$s</string> <string name="careportal_note_message">Observação: %1$s</string>
<string name="careportal_question_message">Questão : %1$s</string> <string name="careportal_question_message">Questão : %1$s</string>
<string name="careportal_exercise_message">Exercício : %1$s</string> <string name="careportal_exercise_message">Exercício : %1$s</string>
<string name="careportal_pump_site_change">Alteração do local do cateter</string>
<string name="cgm_sensor_insert">Colocação do Sensor CGM</string>
<string name="careportal_cgmsensorstart">Início do Sensor CGM</string> <string name="careportal_cgmsensorstart">Início do Sensor CGM</string>
<string name="careportal_cgm_sensor_stop">Parar Sensor CGM</string> <string name="careportal_cgm_sensor_stop">Parar Sensor CGM</string>
<string name="careportal_dad_alert">Alerta D.A.D</string> <string name="careportal_dad_alert">Alerta D.A.D</string>
<string name="careportal_insulin_cartridge_change">Troca de Reservatório de Insulina</string>
<string name="careportal_profileswitch">Troca de Perfil</string> <string name="careportal_profileswitch">Troca de Perfil</string>
<string name="careportal_snackbolus">Bólus Lanche</string> <string name="careportal_snackbolus">Bólus Lanche</string>
<string name="careportal_mealbolus">Bólus Refeição</string> <string name="careportal_mealbolus">Bólus Refeição</string>
@ -205,6 +219,8 @@
<string name="careportal_tempbasalend">Fim do Basal Temp</string> <string name="careportal_tempbasalend">Fim do Basal Temp</string>
<string name="careportal_carbscorrection">Correção Carboidratos</string> <string name="careportal_carbscorrection">Correção Carboidratos</string>
<string name="careportal_openapsoffline">OpenAPS Offline</string> <string name="careportal_openapsoffline">OpenAPS Offline</string>
<string name="pump_battery_change">Troca de Bateria da Bomba</string>
<string name="temporary_target">Alvo Temporário</string>
<string name="careportal_temporarytargetvalue">Valor do Alvo Temporário</string> <string name="careportal_temporarytargetvalue">Valor do Alvo Temporário</string>
<string name="careportal_temporarytargetcancel">Cancelar alvo temporário</string> <string name="careportal_temporarytargetcancel">Cancelar alvo temporário</string>
<string name="boluswizard">Assistente de Bólus</string> <string name="boluswizard">Assistente de Bólus</string>
@ -233,6 +249,7 @@
<!-- CarbsReq--> <!-- CarbsReq-->
<string name="carbsreq">%1$d g de carboidratos necessários em %2$d minutos</string> <string name="carbsreq">%1$d g de carboidratos necessários em %2$d minutos</string>
<!-- TDDStatsActivity--> <!-- TDDStatsActivity-->
<string name="cumulative_tdd">Dose diária acumulada (TDD)</string>
<string name="expweight">Dose diária exponencialmente ponderada</string> <string name="expweight">Dose diária exponencialmente ponderada</string>
<string name="basalrate">Basal</string> <string name="basalrate">Basal</string>
<string name="bolus">Bólus</string> <string name="bolus">Bólus</string>
@ -431,9 +448,13 @@
<string name="urgent_alarm">Alarme Urgente</string> <string name="urgent_alarm">Alarme Urgente</string>
<string name="info">INFO</string> <string name="info">INFO</string>
<!-- BolusWizard --> <!-- BolusWizard -->
<string name="bolus_advisor">Assistente de bolus</string>
<string name="bolus_advisor_message">Sua glicemia está alta. Em vez de comer agora, é recomendado esperar por uma glicemia melhor. Quer fazer um bolus de correção agora e ser lembrado de quando for hora de comer? Neste caso, nenhum carboidrato será registrado e você deverá usar o assistente novamente quando lembrarmos você.</string>
<string name="cobvsiob">CA vs IA</string> <string name="cobvsiob">CA vs IA</string>
<string name="slowabsorptiondetected"><![CDATA[<font color=\'%1$s\'>!!!!! Absorção lenta de hidratos detectada: %2$d%% do tempo. Verifique o seu cálculo. COB pode estar sobreestimado, assim mais insulina pode ser dada !!!</font>]]></string> <string name="slowabsorptiondetected"><![CDATA[<font color=\'%1$s\'>!!!!! Absorção lenta de hidratos detectada: %2$d%% do tempo. Verifique o seu cálculo. COB pode estar sobreestimado, assim mais insulina pode ser dada !!!</font>]]></string>
<string name="partialboluswizard">Entregue esta parte do resultado do assistente de bólus [%]</string> <string name="partialboluswizard">Entregue esta parte do resultado do assistente de bólus [%]</string>
<string name="bolus_constraint_applied_warn">Restrição de bólus aplicada: %1$.2f U para %2$.2f U</string>
<string name="bolus_recorded_only">Bolus será apenas registrado (não administrado pela bomba)</string>
<string name="advisoralarm">Disparar alarme quando for a hora de comer</string> <string name="advisoralarm">Disparar alarme quando for a hora de comer</string>
<string name="no_action_selected">Nenhuma acção seleccionada, nada irá acontecer</string> <string name="no_action_selected">Nenhuma acção seleccionada, nada irá acontecer</string>
<string name="wizard_no_actual_bg">Nenhuma glicemia recente para base de cálculo!</string> <string name="wizard_no_actual_bg">Nenhuma glicemia recente para base de cálculo!</string>
@ -453,9 +474,15 @@
<string name="wizard_explain_tt_to">%1$s para %2$s</string> <string name="wizard_explain_tt_to">%1$s para %2$s</string>
<string name="wizard_pump_not_available">Nenhuma bomba disponível!</string> <string name="wizard_pump_not_available">Nenhuma bomba disponível!</string>
<!-- Preferences--> <!-- Preferences-->
<string name="child">Criança</string>
<string name="teenage">Adolescente</string> <string name="teenage">Adolescente</string>
<string name="adult">Adulto</string> <string name="adult">Adulto</string>
<string name="resistant_adult">Adulto resistente à insulina</string>
<string name="pregnant">Grávida</string> <string name="pregnant">Grávida</string>
<string name="patient_age_summary">Selecione o tipo de paciente para configurar os limites de segurança</string>
<string name="max_bolus_title">Máximo bolus permitido [U]</string>
<string name="max_carbs_title">Máximo de carbs permitidos [g]</string>
<string name="patient_type">Tipo de paciente</string>
<!-- Protection--> <!-- Protection-->
<string name="unlock_settings">Definições de desbloqueio</string> <string name="unlock_settings">Definições de desbloqueio</string>
<!-- Pumps --> <!-- Pumps -->

View file

@ -139,6 +139,9 @@
<string name="dia">DIA</string> <string name="dia">DIA</string>
<string name="ic_short">IHC</string> <string name="ic_short">IHC</string>
<string name="isf_short">FSI</string> <string name="isf_short">FSI</string>
<string name="virtualpump_uploadstatus_title">Enviar estado para NS</string>
<string name="suspendloop_label">Loop Desactivado/Suspenso</string>
<string name="iob_label">Insulina ativa (IA )</string>
<!-- Protection--> <!-- Protection-->
<string name="wrongpassword">Palavra-passe incorreta</string> <string name="wrongpassword">Palavra-passe incorreta</string>
<string name="passwords_dont_match">Palavras-passe não correspondem</string> <string name="passwords_dont_match">Palavras-passe não correspondem</string>

View file

@ -140,6 +140,9 @@
<string name="dia">DIA</string> <string name="dia">DIA</string>
<string name="ic_short">IC</string> <string name="ic_short">IC</string>
<string name="isf_short">ISF</string> <string name="isf_short">ISF</string>
<string name="virtualpump_uploadstatus_title">Trimitere status către NS</string>
<string name="suspendloop_label">Buclă dezactivată/suspendată</string>
<string name="iob_label">Insulină activă (IOB)</string>
<!-- Protection--> <!-- Protection-->
<string name="wrongpassword">Parola greșită</string> <string name="wrongpassword">Parola greșită</string>
<string name="passwords_dont_match">Parolele nu corespund</string> <string name="passwords_dont_match">Parolele nu corespund</string>

View file

@ -162,6 +162,9 @@
<string name="dia">Время действия инсулина DIA</string> <string name="dia">Время действия инсулина DIA</string>
<string name="ic_short">IC углкоэф ГУ/инс</string> <string name="ic_short">IC углкоэф ГУ/инс</string>
<string name="isf_short">ISF (чувствительность к инсулину)</string> <string name="isf_short">ISF (чувствительность к инсулину)</string>
<string name="virtualpump_uploadstatus_title">статус передачи данных в NS</string>
<string name="suspendloop_label">Отключенный/приостановленный цикл</string>
<string name="iob_label">Активный инсулин (IOB)</string>
<!-- Protection--> <!-- Protection-->
<string name="wrongpassword">Неверный пароль</string> <string name="wrongpassword">Неверный пароль</string>
<string name="wrongpin">Неверный PIN-код</string> <string name="wrongpin">Неверный PIN-код</string>

View file

@ -162,6 +162,9 @@
<string name="dia">DIA</string> <string name="dia">DIA</string>
<string name="ic_short">I:C</string> <string name="ic_short">I:C</string>
<string name="isf_short">ISF</string> <string name="isf_short">ISF</string>
<string name="virtualpump_uploadstatus_title">Nahrať stav do NS</string>
<string name="suspendloop_label">Deaktivovaný/pozastavený uzavretý okruh</string>
<string name="iob_label">Aktívny inzulín (IOB)</string>
<!-- Protection--> <!-- Protection-->
<string name="wrongpassword">Nesprávne heslo</string> <string name="wrongpassword">Nesprávne heslo</string>
<string name="wrongpin">Nesprávny PIN</string> <string name="wrongpin">Nesprávny PIN</string>

Some files were not shown because too many files have changed in this diff Show more