diff --git a/app/build.gradle b/app/build.gradle index 79d8cc32b9..25a419aac7 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -111,7 +111,7 @@ android { defaultConfig { multiDexEnabled true versionCode 1500 - version "3.1.0.3-dev-d" + version "3.1.0.3-dev-e" buildConfigField "String", "VERSION", '"' + version + '"' buildConfigField "String", "BUILDVERSION", '"' + generateGitBuild() + '-' + generateDate() + '"' buildConfigField "String", "REMOTE", '"' + generateGitRemote() + '"' @@ -198,10 +198,12 @@ dependencies { implementation project(':plugins:aps') implementation project(':plugins:automation') implementation project(':plugins:configuration') + implementation project(':plugins:constraints') + implementation project(':plugins:insulin') implementation project(':plugins:main') implementation project(':plugins:openhumans') implementation project(':plugins:sensitivity') - implementation project(':plugins:support') + implementation project(':plugins:source') implementation project(':plugins:sync') implementation project(':implementation') implementation project(':database:entities') @@ -217,10 +219,11 @@ dependencies { implementation project(':pump:medtronic') implementation project(':pump:pump-common') implementation project(':pump:pump-core') - implementation project(':pump:rileylink') implementation project(':pump:omnipod-common') implementation project(':pump:omnipod-eros') implementation project(':pump:omnipod-dash') + implementation project(':pump:rileylink') + implementation project(':pump:virtual') implementation project(':workflow') implementation fileTree(include: ['*.jar'], dir: 'libs') diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 7af9821bee..124d50535e 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -132,7 +132,7 @@ { diff --git a/app/src/main/java/info/nightscout/androidaps/di/AppModule.kt b/app/src/main/java/info/nightscout/androidaps/di/AppModule.kt index 1611893464..5c38128af0 100644 --- a/app/src/main/java/info/nightscout/androidaps/di/AppModule.kt +++ b/app/src/main/java/info/nightscout/androidaps/di/AppModule.kt @@ -7,13 +7,15 @@ import dagger.Module import dagger.Provides import dagger.android.HasAndroidInjector import info.nightscout.androidaps.MainApp -import info.nightscout.androidaps.implementations.UiInteractionImpl 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.WorkerClassesImpl import info.nightscout.core.workflow.CalculationWorkflow import info.nightscout.interfaces.Config import info.nightscout.interfaces.plugin.PluginBase +import info.nightscout.interfaces.profile.Instantiator import info.nightscout.interfaces.ui.UiInteraction import info.nightscout.interfaces.workflow.WorkerClasses @@ -53,6 +55,8 @@ open class AppModule { @Binds fun bindActivityNames(activityNames: UiInteractionImpl): UiInteraction @Binds fun bindWorkerClasses(workerClassesImpl: WorkerClassesImpl): WorkerClasses @Binds fun bindCalculationWorkflow(calculationWorkflow: CalculationWorkflowImpl): CalculationWorkflow + @Binds fun bindInstantiator(instantiatorImpl: InstantiatorImpl): Instantiator + } } diff --git a/app/src/main/java/info/nightscout/androidaps/di/PluginsListModule.kt b/app/src/main/java/info/nightscout/androidaps/di/PluginsListModule.kt index f3dded5cc3..868b3b5c5a 100644 --- a/app/src/main/java/info/nightscout/androidaps/di/PluginsListModule.kt +++ b/app/src/main/java/info/nightscout/androidaps/di/PluginsListModule.kt @@ -8,7 +8,6 @@ import info.nightscout.androidaps.danaRKorean.DanaRKoreanPlugin import info.nightscout.androidaps.danaRv2.DanaRv2Plugin import info.nightscout.androidaps.danar.DanaRPlugin 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.insight.LocalInsightPlugin 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.configuration.configBuilder.ConfigBuilderPlugin 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.plugins.aps.loop.LoopPlugin 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.food.FoodPlugin 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.themes.ThemeSwitcherPlugin import info.nightscout.plugins.general.wear.WearPlugin 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.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.nsclientV3.NSClientV3Plugin import info.nightscout.plugins.sync.tidepool.TidepoolPlugin import info.nightscout.pump.combo.ComboPlugin import info.nightscout.pump.combov2.ComboV2Plugin import info.nightscout.pump.diaconn.DiaconnG8Plugin +import info.nightscout.pump.virtual.VirtualPumpPlugin import info.nightscout.sensitivity.SensitivityAAPSPlugin import info.nightscout.sensitivity.SensitivityOref1Plugin 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 @Suppress("unused") diff --git a/app/src/main/java/info/nightscout/androidaps/implementations/InstantiatorImpl.kt b/app/src/main/java/info/nightscout/androidaps/implementations/InstantiatorImpl.kt new file mode 100644 index 0000000000..eaab048da7 --- /dev/null +++ b/app/src/main/java/info/nightscout/androidaps/implementations/InstantiatorImpl.kt @@ -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) +} \ No newline at end of file diff --git a/app/src/main/java/info/nightscout/androidaps/implementations/UiInteractionImpl.kt b/app/src/main/java/info/nightscout/androidaps/implementations/UiInteractionImpl.kt index a8f9c228ff..a258e0d1ab 100644 --- a/app/src/main/java/info/nightscout/androidaps/implementations/UiInteractionImpl.kt +++ b/app/src/main/java/info/nightscout/androidaps/implementations/UiInteractionImpl.kt @@ -14,8 +14,8 @@ import info.nightscout.androidaps.activities.MyPreferenceFragment import info.nightscout.androidaps.activities.PreferencesActivity import info.nightscout.configuration.activities.SingleFragmentActivity import info.nightscout.core.events.EventNewNotification -import info.nightscout.core.services.AlarmSoundService -import info.nightscout.core.services.AlarmSoundServiceHelper +import info.nightscout.ui.services.AlarmSoundService +import info.nightscout.ui.services.AlarmSoundServiceHelper import info.nightscout.core.ui.toast.ToastUtils import info.nightscout.interfaces.notifications.Notification 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.TreatmentDialog import info.nightscout.ui.dialogs.WizardDialog +import info.nightscout.ui.widget.Widget import javax.inject.Inject class UiInteractionImpl @Inject constructor( @@ -67,6 +68,10 @@ class UiInteractionImpl @Inject constructor( context.startActivity(i) } + override fun updateWidget(context: Context) { + Widget.updateWidget(context) + } + override fun runWizardDialog(fragmentManager: FragmentManager, carbs: Int?, name: String?) { WizardDialog().also { dialog -> dialog.arguments = Bundle().also { bundle -> diff --git a/app/src/main/java/info/nightscout/androidaps/receivers/DataReceiver.kt b/app/src/main/java/info/nightscout/androidaps/receivers/DataReceiver.kt index e459c0223c..1c681f7330 100644 --- a/app/src/main/java/info/nightscout/androidaps/receivers/DataReceiver.kt +++ b/app/src/main/java/info/nightscout/androidaps/receivers/DataReceiver.kt @@ -12,17 +12,17 @@ import info.nightscout.core.utils.extensions.copyString import info.nightscout.core.utils.receivers.DataWorkerStorage import info.nightscout.interfaces.receivers.Intents 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.BundleLogger 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 open class DataReceiver : DaggerBroadcastReceiver() { diff --git a/app/src/main/java/info/nightscout/androidaps/workflow/WorkerClassesImpl.kt b/app/src/main/java/info/nightscout/androidaps/workflow/WorkerClassesImpl.kt index b92c6549d0..80a696e6ce 100644 --- a/app/src/main/java/info/nightscout/androidaps/workflow/WorkerClassesImpl.kt +++ b/app/src/main/java/info/nightscout/androidaps/workflow/WorkerClassesImpl.kt @@ -3,7 +3,7 @@ package info.nightscout.androidaps.workflow import info.nightscout.interfaces.workflow.WorkerClasses import info.nightscout.plugins.general.food.FoodPlugin import info.nightscout.plugins.profile.ProfilePlugin -import info.nightscout.plugins.source.NSClientSourcePlugin +import info.nightscout.source.NSClientSourcePlugin import javax.inject.Inject class WorkerClassesImpl @Inject constructor(): WorkerClasses{ diff --git a/app/src/main/res/values-bg-rBG/strings.xml b/app/src/main/res/values-bg-rBG/strings.xml index 1a7db0dd5c..f42b91b134 100644 --- a/app/src/main/res/values-bg-rBG/strings.xml +++ b/app/src/main/res/values-bg-rBG/strings.xml @@ -46,7 +46,6 @@ Удостоверяването неуспешно Създаването на профила невъзможно. Профилът е невалиден. Не убивай приложението? - Време за ядене!\nИзпълнете болус съветника и направете изчисления отново. Качването на данни за проблеми е забранено!(Fabric) Премахни филтъра Канюла diff --git a/app/src/main/res/values-ca-rES/strings.xml b/app/src/main/res/values-ca-rES/strings.xml index 664addee47..9aa0159769 100644 --- a/app/src/main/res/values-ca-rES/strings.xml +++ b/app/src/main/res/values-ca-rES/strings.xml @@ -44,7 +44,6 @@ L\'autorització ha fallat No s\'ha pogut crear el perfil local. Perfil no vàlid. No matar la meva app? - Hora de menjar!\nExecuteu l\'assistent de bolus i torneu a fer els càlculs. Enviament de logs d\'error desactivat! Netejar filtres Cànula diff --git a/app/src/main/res/values-cs-rCZ/strings.xml b/app/src/main/res/values-cs-rCZ/strings.xml index 2345b42700..76402c65fb 100644 --- a/app/src/main/res/values-cs-rCZ/strings.xml +++ b/app/src/main/res/values-cs-rCZ/strings.xml @@ -46,7 +46,6 @@ Autorizace selhala Nelze vytvořit profil. Profil je neplatný. Nezabíjet mou aplikaci? - Čas k jídlu!\nSpusťte Bolusovou kalkulačku a proveďte výpočet znovu. Nahrávání protokolů o pádech zakázáno! Vymazat filtr Kanyla diff --git a/app/src/main/res/values-da-rDK/strings.xml b/app/src/main/res/values-da-rDK/strings.xml index 1db0beb3e9..f5d3a39f62 100644 --- a/app/src/main/res/values-da-rDK/strings.xml +++ b/app/src/main/res/values-da-rDK/strings.xml @@ -46,7 +46,6 @@ Godkendelse mislykkedes Kunne ikke oprette profil. Profilen er ugyldig. Luk ikke min app? - Tid til at spise!\nKør Bolus guiden og lav beregning igen. Upload af Crash logs deaktiveret! Nulstil filter Kanyle diff --git a/app/src/main/res/values-de-rDE/strings.xml b/app/src/main/res/values-de-rDE/strings.xml index 31c649effa..3d8646bd4f 100644 --- a/app/src/main/res/values-de-rDE/strings.xml +++ b/app/src/main/res/values-de-rDE/strings.xml @@ -46,7 +46,6 @@ Autorisierung fehlgeschlagen Profil kann nicht erstellt werden. Profil ist ungültig. Don\'t kill my app? - Zeit zum Essen!\nStarte den Bolus-Rechner und gib die KH ein. Hochladen von Crash-Protokollen deaktiviert! Filter löschen Kanüle diff --git a/app/src/main/res/values-es-rES/strings.xml b/app/src/main/res/values-es-rES/strings.xml index a832b3d914..93e3a6dfb3 100644 --- a/app/src/main/res/values-es-rES/strings.xml +++ b/app/src/main/res/values-es-rES/strings.xml @@ -46,7 +46,6 @@ Ha fallado la autorización No se puede crear el perfil. El perfil es inválido. ¿No matar mi aplicación? - ¡Hora de comer!\nEjecutar el asistente de bolo y calcular de nuevo. ¡Carga de registros de errores desactivada! Borrar filtro Cánula diff --git a/app/src/main/res/values-fr-rFR/strings.xml b/app/src/main/res/values-fr-rFR/strings.xml index f1a7419126..4dd1c84b24 100644 --- a/app/src/main/res/values-fr-rFR/strings.xml +++ b/app/src/main/res/values-fr-rFR/strings.xml @@ -46,7 +46,6 @@ Echec de l\'authentification Impossible de créer le profil. Le profil est invalide. Garder l\'appli en arrière plan ? - Il est temps de manger !\nExécutez l\'assistant Bolus et refaites le calcul. Téléchargement logs crashs désactivé! Effacer le filtre Canule diff --git a/app/src/main/res/values-it-rIT/strings.xml b/app/src/main/res/values-it-rIT/strings.xml index 6cea5dd5aa..ba4bf39d49 100644 --- a/app/src/main/res/values-it-rIT/strings.xml +++ b/app/src/main/res/values-it-rIT/strings.xml @@ -46,7 +46,6 @@ Autorizzazione fallita Impossibile creare il profilo. Il profilo non è valido. Non terminare l\'app? - Tempo di mangiare!\nEsegui il calcolatore e fai di nuovi i calcoli. Caricamento log dei crash disabilitato! Cancella filtro Cannula diff --git a/app/src/main/res/values-iw-rIL/strings.xml b/app/src/main/res/values-iw-rIL/strings.xml index ef523eb712..a07111a2a0 100644 --- a/app/src/main/res/values-iw-rIL/strings.xml +++ b/app/src/main/res/values-iw-rIL/strings.xml @@ -46,7 +46,6 @@ ההרשאה נכשלה לא ניתן ליצור פרופיל מקומי. הפרופיל אינו חוקי. איך לא להשבית את האפליקציה שלי? - זמן לאכול!\nהפעילו את אשף הבולוסים וחשבו בולוס חדש. העלאת רשומות קריסה מושבתת! נקה סינון צינורית diff --git a/app/src/main/res/values-ko-rKR/strings.xml b/app/src/main/res/values-ko-rKR/strings.xml index 6e2e601e50..eaf67357d2 100644 --- a/app/src/main/res/values-ko-rKR/strings.xml +++ b/app/src/main/res/values-ko-rKR/strings.xml @@ -43,7 +43,6 @@ 차트 메뉴 인증 실패 앱이 종료되지 않도록 합니다? - 식사할 시간입니다! \nBolus wizard를 켜고 다시 계산하십시오. 충돌 로그 업로드가 작동하지 않습니다. 필터 지우기 캐뉼라 diff --git a/app/src/main/res/values-lt-rLT/strings.xml b/app/src/main/res/values-lt-rLT/strings.xml index 5a1e454810..6954c628bf 100644 --- a/app/src/main/res/values-lt-rLT/strings.xml +++ b/app/src/main/res/values-lt-rLT/strings.xml @@ -46,7 +46,6 @@ Autorizacija nepavyko Nepavyksta sukurti profilio. Profilis neteisingas. Don\'t kill my app? - Laikas valgyti!\nĮjunkite Boluso patarėją ir atlikite skaičiavimą dar kartą. Sutrikimų žurnalo įrašų įkėlimas išjungtas! Valyti filtrą Kaniulė diff --git a/app/src/main/res/values-nl-rNL/strings.xml b/app/src/main/res/values-nl-rNL/strings.xml index fc3900a149..02e0b87228 100644 --- a/app/src/main/res/values-nl-rNL/strings.xml +++ b/app/src/main/res/values-nl-rNL/strings.xml @@ -46,7 +46,6 @@ Autorisatie mislukt Kan profiel niet aanmaken. Profiel is ongeldig. Don\'t kill my app? - Tijd om te eten!\nVoer de boluswizard opnieuw uit. Upload van crashrapporten is uitgeschakeld! Verwijder filter Canule diff --git a/app/src/main/res/values-no-rNO/strings.xml b/app/src/main/res/values-no-rNO/strings.xml index 1780e7999c..e556fd19ba 100644 --- a/app/src/main/res/values-no-rNO/strings.xml +++ b/app/src/main/res/values-no-rNO/strings.xml @@ -46,7 +46,6 @@ Autentisering feilet Klarte ikke å opprette profil. Profilen er ikke gyldig. Avslutte app? - Nå må du spise!\Bruk bolus veiviseren og beregn på nytt. Opplast av krasj logger er deaktivert! Nullstill filtre Kanyle diff --git a/app/src/main/res/values-pl-rPL/strings.xml b/app/src/main/res/values-pl-rPL/strings.xml index 32ab99571c..b400c4310d 100644 --- a/app/src/main/res/values-pl-rPL/strings.xml +++ b/app/src/main/res/values-pl-rPL/strings.xml @@ -44,7 +44,6 @@ Autoryzacja nie powiodła się Nie można utworzyć profilu. Profil jest nieprawidłowy. Nie zabij mojej aplikacji? - Czas jeść!\nUruchom kreatora bolusa i zrób obliczenia ponownie. Przesyłanie dzienników awarii jest wyłączone! Wyczyść filtr Kaniula diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index 06d026d264..7c1a2074f1 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -46,7 +46,6 @@ Falha na autorização Não foi possível criar o perfil. Perfil inválido. Não encerre meu aplicativo? - Hora de comer!\nAbra o assistente de bolus e faça o cálculo novamente. Envio de logs de erro desativado! Limpar filtro Cânula diff --git a/app/src/main/res/values-pt-rPT/strings.xml b/app/src/main/res/values-pt-rPT/strings.xml index e57116ad69..ab64e43735 100644 --- a/app/src/main/res/values-pt-rPT/strings.xml +++ b/app/src/main/res/values-pt-rPT/strings.xml @@ -44,7 +44,6 @@ Falha na autorização Não é possível criar o perfil. O perfil é inválido. Não encerre minha app? - Hora de comer!\nExecutar assistente de Bólus e fazer cálculo novamente. Envio de registos de erro desativado! Limpar filtros Cânula diff --git a/app/src/main/res/values-ro-rRO/strings.xml b/app/src/main/res/values-ro-rRO/strings.xml index 8a8aa9b8df..3ea8624597 100644 --- a/app/src/main/res/values-ro-rRO/strings.xml +++ b/app/src/main/res/values-ro-rRO/strings.xml @@ -44,7 +44,6 @@ Autorizarea a eșuat Nu se poate crea profilul. Profilul este invalid. Nu-mi opri aplicația? - Timpul sa mănânci!\nRuleaza Calculatorul de Bolus pentru a face calculele din nou. Încărcarea jurnalelor de erori este dezactivata! Șterge filtru Canula diff --git a/app/src/main/res/values-ru-rRU/strings.xml b/app/src/main/res/values-ru-rRU/strings.xml index 835b8abfe4..0c5dec9871 100644 --- a/app/src/main/res/values-ru-rRU/strings.xml +++ b/app/src/main/res/values-ru-rRU/strings.xml @@ -46,7 +46,6 @@ Ошибка авторизации Не удается создать локальный профиль. Настройки профиля неправильны. Не закрывать приложение? - Пора есть!\nЗапустите помощник болюса снова для подсчета. Загрузка журналов сбоя на сервер отключена! Очистить фильтр Катетер помпы diff --git a/app/src/main/res/values-sk-rSK/strings.xml b/app/src/main/res/values-sk-rSK/strings.xml index 6b908ff304..771d8a4f51 100644 --- a/app/src/main/res/values-sk-rSK/strings.xml +++ b/app/src/main/res/values-sk-rSK/strings.xml @@ -46,7 +46,6 @@ Autorizácia zlyhala Nie je možné vytvoriť lokálny profil. Profil je neplatný. Nepotláčať moju aplikáciu? - Čas na jedlo!\nSpustite Bolusovú kalkulačku a urobte výpočet znova. Odosielanie protokolov o zlyhaní je zakázané! Vyčistiť filter Kanyla diff --git a/app/src/main/res/values-sv-rSE/strings.xml b/app/src/main/res/values-sv-rSE/strings.xml index d4ac53d28c..d4f2f7f4cc 100644 --- a/app/src/main/res/values-sv-rSE/strings.xml +++ b/app/src/main/res/values-sv-rSE/strings.xml @@ -44,7 +44,6 @@ Behörighetskontroll misslyckades Kan inte att skapa profilen. Profilen är felaktig. Döda inte min app? - Dags att äta!\nKör bolusguiden igen för ny beräkning. Uppladdning av kraschloggar inaktiverad! Rensa filter Kanyl diff --git a/app/src/main/res/values-tr-rTR/strings.xml b/app/src/main/res/values-tr-rTR/strings.xml index db88fc05c8..e727c94fac 100644 --- a/app/src/main/res/values-tr-rTR/strings.xml +++ b/app/src/main/res/values-tr-rTR/strings.xml @@ -46,7 +46,6 @@ Yetkilendirme başarısız oldu Profil oluşturulamıyor. Profil geçersiz. Uygulamamı devre dışı bırakma? - Yemek zamanı!\nBolus sihirbazını çalıştırın ve yeniden hesaplama yapın. Çökme günlükleri yükleme devre dışı bırakıldı! Filtreyi temizle Kanül diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index d2b96a9b61..0a5b99d13e 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -46,7 +46,6 @@ 授权失败 无法创建配置文件。配置文件无效。 不要杀死我的应用程序? - 吃饭时间到了!\n请运行大剂量向导,然后进行计算。 已禁用崩溃日志上传! 清除筛选 输注导管 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 6450e854e0..854ed3570b 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -79,7 +79,6 @@ Authorization failed Unable to create profile. Profile is invalid. Don\'t kill my app? - Time to eat!\nRun Bolus wizard and do calculation again. Crash logs upload disabled! Clear filter Cannula diff --git a/app/src/test/java/info/nightscout/androidaps/interfaces/ConstraintsCheckerTest.kt b/app/src/test/java/info/nightscout/androidaps/interfaces/ConstraintsCheckerTest.kt index 206ddafa79..c743c3c716 100644 --- a/app/src/test/java/info/nightscout/androidaps/interfaces/ConstraintsCheckerTest.kt +++ b/app/src/test/java/info/nightscout/androidaps/interfaces/ConstraintsCheckerTest.kt @@ -11,7 +11,6 @@ import info.nightscout.androidaps.insight.database.InsightDatabaseDao import info.nightscout.androidaps.insight.database.InsightDbHelper import info.nightscout.androidaps.plugins.pump.insight.LocalInsightPlugin import info.nightscout.database.impl.AppRepository -import info.nightscout.implementation.constraints.ConstraintsImpl import info.nightscout.interfaces.ApsMode import info.nightscout.implementation.iob.GlucoseStatusProviderImpl 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.PluginBase 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.pump.DetailedBolusInfoStorage 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.openAPSSMB.OpenAPSSMBPlugin 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.objectives.Objective 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.ruffyscripter.RuffyScripter import info.nightscout.pump.dana.DanaPump import info.nightscout.pump.dana.R import info.nightscout.pump.dana.database.DanaHistoryDatabase +import info.nightscout.pump.virtual.VirtualPumpPlugin import info.nightscout.shared.sharedPreferences.SP +import info.nightscout.source.GlimpPlugin import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test @@ -71,7 +71,7 @@ class ConstraintsCheckerTest : TestBaseWithProfile() { @Mock lateinit var insightDatabaseDao: InsightDatabaseDao @Mock lateinit var ruffyScripter: RuffyScripter @Mock lateinit var uiInteraction: UiInteraction - @Mock lateinit var profileInstantiator: ProfileInstantiator + @Mock lateinit var instantiator: Instantiator @Mock lateinit var danaHistoryDatabase: DanaHistoryDatabase @Mock lateinit var insightDatabase: InsightDatabase @Mock lateinit var bgQualityCheck: BgQualityCheck @@ -104,33 +104,33 @@ class ConstraintsCheckerTest : TestBaseWithProfile() { @BeforeEach 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.R.string.closedmodedisabledinpreferences)).thenReturn("Closed loop mode disabled in preferences") + `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.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.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.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.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_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.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.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.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.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.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.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`(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 `when`(sp.getString(R.string.key_danars_name, "")).thenReturn("") @@ -146,7 +146,7 @@ class ConstraintsCheckerTest : TestBaseWithProfile() { hardLimits = HardLimitsMock(sp, rh) insightDbHelper = InsightDbHelper(insightDatabaseDao) - danaPump = DanaPump(aapsLogger, sp, dateUtil, profileInstantiator) + danaPump = DanaPump(aapsLogger, sp, dateUtil, instantiator) objectivesPlugin = ObjectivesPlugin(injector, aapsLogger, rh, activePlugin, sp, config) 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, @@ -243,7 +243,8 @@ class ConstraintsCheckerTest : TestBaseWithProfile() { hardLimits, ConfigImpl(fileListProvider), iobCobCalculator, - dateUtil + dateUtil, + uiInteraction ) val constraintsPluginsList = ArrayList() constraintsPluginsList.add(safetyPlugin) diff --git a/app/src/test/java/info/nightscout/androidaps/plugins/aps/loop/LoopPluginTest.kt b/app/src/test/java/info/nightscout/androidaps/plugins/aps/loop/LoopPluginTest.kt index fefb05d9b3..06d7be6bb6 100644 --- a/app/src/test/java/info/nightscout/androidaps/plugins/aps/loop/LoopPluginTest.kt +++ b/app/src/test/java/info/nightscout/androidaps/plugins/aps/loop/LoopPluginTest.kt @@ -22,7 +22,7 @@ import info.nightscout.interfaces.receivers.ReceiverStatusStore import info.nightscout.interfaces.ui.UiInteraction import info.nightscout.plugins.aps.loop.LoopFragment 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.shared.interfaces.ResourceHelper import info.nightscout.shared.sharedPreferences.SP diff --git a/app/src/test/java/info/nightscout/androidaps/plugins/safety/SafetyPluginTest.kt b/app/src/test/java/info/nightscout/androidaps/plugins/safety/SafetyPluginTest.kt index 852eb5a0b2..d15f8835d0 100644 --- a/app/src/test/java/info/nightscout/androidaps/plugins/safety/SafetyPluginTest.kt +++ b/app/src/test/java/info/nightscout/androidaps/plugins/safety/SafetyPluginTest.kt @@ -15,14 +15,14 @@ import info.nightscout.interfaces.plugin.ActivePlugin import info.nightscout.interfaces.plugin.PluginType import info.nightscout.interfaces.profiling.Profiler import info.nightscout.interfaces.pump.defs.PumpDescription +import info.nightscout.interfaces.ui.UiInteraction import info.nightscout.interfaces.utils.HardLimits -import info.nightscout.plugins.R import info.nightscout.plugins.aps.openAPSAMA.OpenAPSAMAPlugin import info.nightscout.plugins.aps.openAPSSMB.OpenAPSSMBPlugin import info.nightscout.plugins.constraints.safety.SafetyPlugin -import info.nightscout.plugins.pump.virtual.VirtualPumpPlugin -import info.nightscout.plugins.source.GlimpPlugin +import info.nightscout.pump.virtual.VirtualPumpPlugin import info.nightscout.shared.sharedPreferences.SP +import info.nightscout.source.GlimpPlugin import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test @@ -40,6 +40,7 @@ class SafetyPluginTest : TestBaseWithProfile() { @Mock lateinit var repository: AppRepository @Mock lateinit var glucoseStatusProvider: GlucoseStatusProvider @Mock lateinit var bgQualityCheck: BgQualityCheck + @Mock lateinit var uiInteraction: UiInteraction private lateinit var hardLimits: HardLimits private lateinit var safetyPlugin: SafetyPlugin @@ -51,24 +52,24 @@ class SafetyPluginTest : TestBaseWithProfile() { @BeforeEach 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.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_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.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(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(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.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(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(R.string.smbnotallowedinopenloopmode)).thenReturn("SMB not allowed in open loop mode") + `when`(rh.gs(info.nightscout.plugins.constraints.R.string.closedmodedisabledinpreferences)).thenReturn("Closed loop mode disabled in preferences") + `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.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.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.ui.R.string.lowglucosesuspend)).thenReturn("Low Glucose Suspend") @@ -76,7 +77,7 @@ class SafetyPluginTest : TestBaseWithProfile() { `when`(virtualPumpPlugin.pumpDescription).thenReturn(pumpDescription) `when`(config.APS).thenReturn(true) 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( injector, aapsLogger, rxBus, constraintChecker, rh, profileFunction, context, activePlugin, iobCobCalculator, hardLimits, profiler, fabricPrivacy, dateUtil, repository, glucoseStatusProvider, sp diff --git a/app/src/test/java/info/nightscout/androidaps/pump/PumpEnactResultTest.kt b/app/src/test/java/info/nightscout/androidaps/pump/PumpEnactResultTest.kt index 30c579d7b8..70a588210d 100644 --- a/app/src/test/java/info/nightscout/androidaps/pump/PumpEnactResultTest.kt +++ b/app/src/test/java/info/nightscout/androidaps/pump/PumpEnactResultTest.kt @@ -6,7 +6,7 @@ import info.nightscout.androidaps.TestBaseWithProfile import info.nightscout.core.pump.toHtml import info.nightscout.interfaces.pump.PumpEnactResult 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 org.json.JSONObject import org.junit.jupiter.api.Assertions diff --git a/plugins/main/src/main/java/info/nightscout/plugins/insulin/ActivityGraph.kt b/core/graph/src/main/java/info/nightscout/core/graph/ActivityGraph.kt similarity index 98% rename from plugins/main/src/main/java/info/nightscout/plugins/insulin/ActivityGraph.kt rename to core/graph/src/main/java/info/nightscout/core/graph/ActivityGraph.kt index beb9055f23..9f887ea40f 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/insulin/ActivityGraph.kt +++ b/core/graph/src/main/java/info/nightscout/core/graph/ActivityGraph.kt @@ -1,4 +1,4 @@ -package info.nightscout.plugins.insulin +package info.nightscout.core.graph import android.content.Context import android.graphics.Color diff --git a/core/interfaces/src/main/java/info/nightscout/interfaces/BolusTimer.kt b/core/interfaces/src/main/java/info/nightscout/interfaces/BolusTimer.kt deleted file mode 100644 index 2ac46cc560..0000000000 --- a/core/interfaces/src/main/java/info/nightscout/interfaces/BolusTimer.kt +++ /dev/null @@ -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() -} \ No newline at end of file diff --git a/core/interfaces/src/main/java/info/nightscout/interfaces/CarbTimer.kt b/core/interfaces/src/main/java/info/nightscout/interfaces/CarbTimer.kt deleted file mode 100644 index b7c472a775..0000000000 --- a/core/interfaces/src/main/java/info/nightscout/interfaces/CarbTimer.kt +++ /dev/null @@ -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() -} \ No newline at end of file diff --git a/core/interfaces/src/main/java/info/nightscout/interfaces/actions/Actions.kt b/core/interfaces/src/main/java/info/nightscout/interfaces/actions/Actions.kt new file mode 100644 index 0000000000..5aea890d62 --- /dev/null +++ b/core/interfaces/src/main/java/info/nightscout/interfaces/actions/Actions.kt @@ -0,0 +1,3 @@ +package info.nightscout.interfaces.actions + +interface Actions \ No newline at end of file diff --git a/core/interfaces/src/main/java/info/nightscout/interfaces/aps/APSResult.kt b/core/interfaces/src/main/java/info/nightscout/interfaces/aps/APSResult.kt index 5d5a747290..e3b4882fc0 100644 --- a/core/interfaces/src/main/java/info/nightscout/interfaces/aps/APSResult.kt +++ b/core/interfaces/src/main/java/info/nightscout/interfaces/aps/APSResult.kt @@ -8,6 +8,7 @@ import info.nightscout.interfaces.iob.IobTotal import org.json.JSONObject interface APSResult { + var date: Long var json: JSONObject? var reason: String var rate: Double diff --git a/core/interfaces/src/main/java/info/nightscout/interfaces/aps/AutosensData.kt b/core/interfaces/src/main/java/info/nightscout/interfaces/aps/AutosensData.kt index c28b9d0a31..b3f9f4abcb 100644 --- a/core/interfaces/src/main/java/info/nightscout/interfaces/aps/AutosensData.kt +++ b/core/interfaces/src/main/java/info/nightscout/interfaces/aps/AutosensData.kt @@ -18,8 +18,13 @@ interface AutosensData { var pastSensitivity: String var deviation: Double var validDeviation: Boolean + var activeCarbsList: MutableList + var absorbed: Double var carbsFromBolus: Double var cob: Double + var bgi: Double + var delta: Double + var avgDelta: Double var slopeFromMaxDeviation: Double var slopeFromMinDeviation: Double var usedMinCarbsImpact: Double @@ -37,4 +42,6 @@ interface AutosensData { var autosensResult: AutosensResult fun cloneCarbsList(): MutableList + fun deductAbsorbedCarbs() + fun removeOldCarbs(toTime: Long, isAAPSOrWeighted: Boolean) } \ No newline at end of file diff --git a/core/interfaces/src/main/java/info/nightscout/interfaces/automation/Automation.kt b/core/interfaces/src/main/java/info/nightscout/interfaces/automation/Automation.kt index 9f26a97cda..4ad566d6c1 100644 --- a/core/interfaces/src/main/java/info/nightscout/interfaces/automation/Automation.kt +++ b/core/interfaces/src/main/java/info/nightscout/interfaces/automation/Automation.kt @@ -1,6 +1,36 @@ package info.nightscout.interfaces.automation interface Automation { + fun userEvents(): List 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() } \ No newline at end of file diff --git a/core/interfaces/src/main/java/info/nightscout/interfaces/db/PersistenceLayer.kt b/core/interfaces/src/main/java/info/nightscout/interfaces/db/PersistenceLayer.kt index 6e79d87efb..265dfd1e38 100644 --- a/core/interfaces/src/main/java/info/nightscout/interfaces/db/PersistenceLayer.kt +++ b/core/interfaces/src/main/java/info/nightscout/interfaces/db/PersistenceLayer.kt @@ -5,6 +5,7 @@ import info.nightscout.database.ValueWrapper import info.nightscout.database.entities.Bolus import info.nightscout.database.entities.BolusCalculatorResult import info.nightscout.database.entities.Carbs +import info.nightscout.database.entities.EffectiveProfileSwitch import info.nightscout.database.entities.TemporaryTarget import info.nightscout.database.entities.UserEntry import info.nightscout.interfaces.queue.Callback @@ -20,4 +21,5 @@ interface PersistenceLayer { fun getTemporaryTargetActiveAt(timestamp: Long): Single> fun getUserEntryFilteredDataFromTime(timestamp: Long): Single> + fun getEffectiveProfileSwitchActiveAt(timestamp: Long): Single> } \ No newline at end of file diff --git a/core/interfaces/src/main/java/info/nightscout/interfaces/profile/Instantiator.kt b/core/interfaces/src/main/java/info/nightscout/interfaces/profile/Instantiator.kt new file mode 100644 index 0000000000..e4d88b4eb6 --- /dev/null +++ b/core/interfaces/src/main/java/info/nightscout/interfaces/profile/Instantiator.kt @@ -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 +} \ No newline at end of file diff --git a/core/interfaces/src/main/java/info/nightscout/interfaces/profile/ProfileInstantiator.kt b/core/interfaces/src/main/java/info/nightscout/interfaces/profile/ProfileInstantiator.kt deleted file mode 100644 index 6537cb1862..0000000000 --- a/core/interfaces/src/main/java/info/nightscout/interfaces/profile/ProfileInstantiator.kt +++ /dev/null @@ -1,7 +0,0 @@ -package info.nightscout.interfaces.profile - -import org.json.JSONObject - -interface ProfileInstantiator { - fun storeInstance(jsonObject: JSONObject): ProfileStore -} \ No newline at end of file diff --git a/core/interfaces/src/main/java/info/nightscout/interfaces/source/DexcomBoyda.kt b/core/interfaces/src/main/java/info/nightscout/interfaces/source/DexcomBoyda.kt index e786103b4a..0b4c4cb0bc 100644 --- a/core/interfaces/src/main/java/info/nightscout/interfaces/source/DexcomBoyda.kt +++ b/core/interfaces/src/main/java/info/nightscout/interfaces/source/DexcomBoyda.kt @@ -1,3 +1,8 @@ package info.nightscout.interfaces.source -interface DexcomBoyda \ No newline at end of file +interface DexcomBoyda { + + fun isEnabled(): Boolean + fun requestPermissionIfNeeded() + fun findDexcomPackageName(): String? +} \ No newline at end of file diff --git a/core/interfaces/src/main/java/info/nightscout/interfaces/source/XDrip.kt b/core/interfaces/src/main/java/info/nightscout/interfaces/source/XDrip.kt new file mode 100644 index 0000000000..efa60ce74f --- /dev/null +++ b/core/interfaces/src/main/java/info/nightscout/interfaces/source/XDrip.kt @@ -0,0 +1,5 @@ +package info.nightscout.interfaces.source + +interface XDrip { + fun isEnabled(): Boolean +} \ No newline at end of file diff --git a/core/interfaces/src/main/java/info/nightscout/interfaces/ui/UiInteraction.kt b/core/interfaces/src/main/java/info/nightscout/interfaces/ui/UiInteraction.kt index 3638508369..e2867cb3da 100644 --- a/core/interfaces/src/main/java/info/nightscout/interfaces/ui/UiInteraction.kt +++ b/core/interfaces/src/main/java/info/nightscout/interfaces/ui/UiInteraction.kt @@ -31,6 +31,9 @@ interface UiInteraction { * @param soundId sound resource. if == 0 alarm is not started */ 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 runLoopDialog(fragmentManager: FragmentManager, showOkCancel: Int) fun runProfileSwitchDialog(fragmentManager: FragmentManager, profileName: String? = null) diff --git a/core/main/src/main/java/info/nightscout/core/di/CoreDataClassesModule.kt b/core/main/src/main/java/info/nightscout/core/di/CoreDataClassesModule.kt index d5e6d5431d..e94b388f44 100644 --- a/core/main/src/main/java/info/nightscout/core/di/CoreDataClassesModule.kt +++ b/core/main/src/main/java/info/nightscout/core/di/CoreDataClassesModule.kt @@ -2,8 +2,6 @@ package info.nightscout.core.di import dagger.Module 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.QuickWizardEntry import info.nightscout.interfaces.pump.PumpEnactResult @@ -13,8 +11,6 @@ import info.nightscout.interfaces.pump.PumpEnactResult abstract class CoreDataClassesModule { @ContributesAndroidInjector abstract fun pumpEnactResultInjector(): PumpEnactResult - @ContributesAndroidInjector abstract fun apsResultInjector(): APSResultObject - @ContributesAndroidInjector abstract fun autosensDataInjector(): AutosensDataObject @ContributesAndroidInjector abstract fun bolusWizardInjector(): BolusWizard @ContributesAndroidInjector abstract fun quickWizardEntryInjector(): QuickWizardEntry } diff --git a/core/main/src/main/java/info/nightscout/core/di/CoreModule.kt b/core/main/src/main/java/info/nightscout/core/di/CoreModule.kt index 627e0d0f24..5d49cc0571 100644 --- a/core/main/src/main/java/info/nightscout/core/di/CoreModule.kt +++ b/core/main/src/main/java/info/nightscout/core/di/CoreModule.kt @@ -5,14 +5,11 @@ import android.os.Build import android.telephony.SmsManager import dagger.Module import dagger.Provides -import dagger.android.ContributesAndroidInjector -import info.nightscout.core.services.AlarmSoundService @Module( includes = [ CoreDataClassesModule::class, - PreferencesModule::class, - ServicesModule::class + PreferencesModule::class ] ) open class CoreModule { diff --git a/core/main/src/main/java/info/nightscout/core/di/ServicesModule.kt b/core/main/src/main/java/info/nightscout/core/di/ServicesModule.kt deleted file mode 100644 index 3debe1c342..0000000000 --- a/core/main/src/main/java/info/nightscout/core/di/ServicesModule.kt +++ /dev/null @@ -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 -} \ No newline at end of file diff --git a/core/main/src/main/java/info/nightscout/core/profile/ProfileStoreObject.kt b/core/main/src/main/java/info/nightscout/core/profile/ProfileStoreObject.kt deleted file mode 100644 index d857c4eab2..0000000000 --- a/core/main/src/main/java/info/nightscout/core/profile/ProfileStoreObject.kt +++ /dev/null @@ -1,2 +0,0 @@ -package info.nightscout.core.profile - diff --git a/core/main/src/main/java/info/nightscout/core/wizard/BolusWizard.kt b/core/main/src/main/java/info/nightscout/core/wizard/BolusWizard.kt index 49182208cf..201d36ea78 100644 --- a/core/main/src/main/java/info/nightscout/core/wizard/BolusWizard.kt +++ b/core/main/src/main/java/info/nightscout/core/wizard/BolusWizard.kt @@ -15,10 +15,9 @@ import info.nightscout.database.entities.TemporaryTarget import info.nightscout.database.entities.UserEntry.Action import info.nightscout.database.entities.UserEntry.Sources 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.aps.Loop +import info.nightscout.interfaces.automation.Automation import info.nightscout.interfaces.constraints.Constraint import info.nightscout.interfaces.constraints.Constraints import info.nightscout.interfaces.db.PersistenceLayer @@ -69,8 +68,7 @@ class BolusWizard @Inject constructor( @Inject lateinit var dateUtil: DateUtil @Inject lateinit var config: Config @Inject lateinit var uel: UserEntryLogger - @Inject lateinit var carbTimer: CarbTimer - @Inject lateinit var bolusTimer: BolusTimer + @Inject lateinit var automation: Automation @Inject lateinit var glucoseStatusProvider: GlucoseStatusProvider @Inject lateinit var uiInteraction: UiInteraction @Inject lateinit var persistenceLayer: PersistenceLayer @@ -361,9 +359,9 @@ class BolusWizard @Inject constructor( } accepted = true if (calculatedTotalInsulin > 0.0) - bolusTimer.removeAutomationEventBolusReminder() + automation.removeAutomationEventBolusReminder() 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) 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) }, @@ -402,7 +400,7 @@ class BolusWizard @Inject constructor( if (!result.success) { uiInteraction.runAlarm(result.comment, rh.gs(info.nightscout.core.ui.R.string.treatmentdeliveryerror), info.nightscout.core.ui.R.raw.boluserror) } else - carbTimer.scheduleAutomationEventEatReminder() + automation.scheduleAutomationEventEatReminder() } }) } @@ -494,7 +492,7 @@ class BolusWizard @Inject constructor( bolusCalculatorResult?.let { persistenceLayer.insertOrUpdate(it) } } if (useAlarm && carbs > 0 && carbTime > 0) { - carbTimer.scheduleTimeToEatReminder(T.mins(carbTime.toLong()).secs().toInt()) + automation.scheduleTimeToEatReminder(T.mins(carbTime.toLong()).secs().toInt()) } } }) diff --git a/core/main/src/main/res/drawable/ic_graduation.xml b/core/ui/src/main/res/drawable/ic_graduation.xml similarity index 100% rename from core/main/src/main/res/drawable/ic_graduation.xml rename to core/ui/src/main/res/drawable/ic_graduation.xml diff --git a/core/ui/src/main/res/drawable/ic_trending_flat_white_48dp.xml b/core/ui/src/main/res/drawable/ic_trending_flat_white_48dp.xml new file mode 100644 index 0000000000..616da59765 --- /dev/null +++ b/core/ui/src/main/res/drawable/ic_trending_flat_white_48dp.xml @@ -0,0 +1,10 @@ + + + diff --git a/ui/src/main/res/mipmap-hdpi/ic_launcher.png b/core/ui/src/main/res/mipmap-hdpi/ic_launcher.png similarity index 100% rename from ui/src/main/res/mipmap-hdpi/ic_launcher.png rename to core/ui/src/main/res/mipmap-hdpi/ic_launcher.png diff --git a/ui/src/main/res/mipmap-hdpi/ic_launcher_round.png b/core/ui/src/main/res/mipmap-hdpi/ic_launcher_round.png similarity index 100% rename from ui/src/main/res/mipmap-hdpi/ic_launcher_round.png rename to core/ui/src/main/res/mipmap-hdpi/ic_launcher_round.png diff --git a/ui/src/main/res/mipmap-hdpi/ic_pumpcontrol.png b/core/ui/src/main/res/mipmap-hdpi/ic_pumpcontrol.png similarity index 100% rename from ui/src/main/res/mipmap-hdpi/ic_pumpcontrol.png rename to core/ui/src/main/res/mipmap-hdpi/ic_pumpcontrol.png diff --git a/ui/src/main/res/mipmap-hdpi/ic_yellowowl.png b/core/ui/src/main/res/mipmap-hdpi/ic_yellowowl.png similarity index 100% rename from ui/src/main/res/mipmap-hdpi/ic_yellowowl.png rename to core/ui/src/main/res/mipmap-hdpi/ic_yellowowl.png diff --git a/ui/src/main/res/mipmap-mdpi/ic_launcher.png b/core/ui/src/main/res/mipmap-mdpi/ic_launcher.png similarity index 100% rename from ui/src/main/res/mipmap-mdpi/ic_launcher.png rename to core/ui/src/main/res/mipmap-mdpi/ic_launcher.png diff --git a/ui/src/main/res/mipmap-mdpi/ic_launcher_round.png b/core/ui/src/main/res/mipmap-mdpi/ic_launcher_round.png similarity index 100% rename from ui/src/main/res/mipmap-mdpi/ic_launcher_round.png rename to core/ui/src/main/res/mipmap-mdpi/ic_launcher_round.png diff --git a/ui/src/main/res/mipmap-mdpi/ic_pumpcontrol.png b/core/ui/src/main/res/mipmap-mdpi/ic_pumpcontrol.png similarity index 100% rename from ui/src/main/res/mipmap-mdpi/ic_pumpcontrol.png rename to core/ui/src/main/res/mipmap-mdpi/ic_pumpcontrol.png diff --git a/ui/src/main/res/mipmap-mdpi/ic_yellowowl.png b/core/ui/src/main/res/mipmap-mdpi/ic_yellowowl.png similarity index 100% rename from ui/src/main/res/mipmap-mdpi/ic_yellowowl.png rename to core/ui/src/main/res/mipmap-mdpi/ic_yellowowl.png diff --git a/ui/src/main/res/mipmap-xhdpi/ic_launcher.png b/core/ui/src/main/res/mipmap-xhdpi/ic_launcher.png similarity index 100% rename from ui/src/main/res/mipmap-xhdpi/ic_launcher.png rename to core/ui/src/main/res/mipmap-xhdpi/ic_launcher.png diff --git a/ui/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/core/ui/src/main/res/mipmap-xhdpi/ic_launcher_round.png similarity index 100% rename from ui/src/main/res/mipmap-xhdpi/ic_launcher_round.png rename to core/ui/src/main/res/mipmap-xhdpi/ic_launcher_round.png diff --git a/ui/src/main/res/mipmap-xhdpi/ic_pumpcontrol.png b/core/ui/src/main/res/mipmap-xhdpi/ic_pumpcontrol.png similarity index 100% rename from ui/src/main/res/mipmap-xhdpi/ic_pumpcontrol.png rename to core/ui/src/main/res/mipmap-xhdpi/ic_pumpcontrol.png diff --git a/ui/src/main/res/mipmap-xhdpi/ic_yellowowl.png b/core/ui/src/main/res/mipmap-xhdpi/ic_yellowowl.png similarity index 100% rename from ui/src/main/res/mipmap-xhdpi/ic_yellowowl.png rename to core/ui/src/main/res/mipmap-xhdpi/ic_yellowowl.png diff --git a/ui/src/main/res/mipmap-xxhdpi/ic_launcher.png b/core/ui/src/main/res/mipmap-xxhdpi/ic_launcher.png similarity index 100% rename from ui/src/main/res/mipmap-xxhdpi/ic_launcher.png rename to core/ui/src/main/res/mipmap-xxhdpi/ic_launcher.png diff --git a/ui/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/core/ui/src/main/res/mipmap-xxhdpi/ic_launcher_round.png similarity index 100% rename from ui/src/main/res/mipmap-xxhdpi/ic_launcher_round.png rename to core/ui/src/main/res/mipmap-xxhdpi/ic_launcher_round.png diff --git a/ui/src/main/res/mipmap-xxhdpi/ic_pumpcontrol.png b/core/ui/src/main/res/mipmap-xxhdpi/ic_pumpcontrol.png similarity index 100% rename from ui/src/main/res/mipmap-xxhdpi/ic_pumpcontrol.png rename to core/ui/src/main/res/mipmap-xxhdpi/ic_pumpcontrol.png diff --git a/ui/src/main/res/mipmap-xxhdpi/ic_yellowowl.png b/core/ui/src/main/res/mipmap-xxhdpi/ic_yellowowl.png similarity index 100% rename from ui/src/main/res/mipmap-xxhdpi/ic_yellowowl.png rename to core/ui/src/main/res/mipmap-xxhdpi/ic_yellowowl.png diff --git a/ui/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/core/ui/src/main/res/mipmap-xxxhdpi/ic_launcher.png similarity index 100% rename from ui/src/main/res/mipmap-xxxhdpi/ic_launcher.png rename to core/ui/src/main/res/mipmap-xxxhdpi/ic_launcher.png diff --git a/ui/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/core/ui/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png similarity index 100% rename from ui/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png rename to core/ui/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png diff --git a/ui/src/main/res/mipmap-xxxhdpi/ic_pumpcontrol.png b/core/ui/src/main/res/mipmap-xxxhdpi/ic_pumpcontrol.png similarity index 100% rename from ui/src/main/res/mipmap-xxxhdpi/ic_pumpcontrol.png rename to core/ui/src/main/res/mipmap-xxxhdpi/ic_pumpcontrol.png diff --git a/ui/src/main/res/mipmap-xxxhdpi/ic_yellowowl.png b/core/ui/src/main/res/mipmap-xxxhdpi/ic_yellowowl.png similarity index 100% rename from ui/src/main/res/mipmap-xxxhdpi/ic_yellowowl.png rename to core/ui/src/main/res/mipmap-xxxhdpi/ic_yellowowl.png diff --git a/core/ui/src/main/res/values-af-rZA/strings.xml b/core/ui/src/main/res/values-af-rZA/strings.xml index b034c45d97..f4a299a001 100644 --- a/core/ui/src/main/res/values-af-rZA/strings.xml +++ b/core/ui/src/main/res/values-af-rZA/strings.xml @@ -113,6 +113,7 @@ Geslote lus Oop lus DIA + Oplaaistatus aan NS Verkeerde wagwoord diff --git a/core/ui/src/main/res/values-bg-rBG/strings.xml b/core/ui/src/main/res/values-bg-rBG/strings.xml index e5ccf673f8..dec4c15896 100644 --- a/core/ui/src/main/res/values-bg-rBG/strings.xml +++ b/core/ui/src/main/res/values-bg-rBG/strings.xml @@ -138,6 +138,7 @@ DIA И / Въгл Чувств + Качва статуса в NS Грешна парола Паролите не съвпадат diff --git a/core/ui/src/main/res/values-ca-rES/strings.xml b/core/ui/src/main/res/values-ca-rES/strings.xml index 27c09850c3..77a503114a 100644 --- a/core/ui/src/main/res/values-ca-rES/strings.xml +++ b/core/ui/src/main/res/values-ca-rES/strings.xml @@ -137,6 +137,9 @@ DIA (Durada de l\'Acció de la Insulina) IC ISF + Enviar estat a NS + Llaç desactivat/aturat + Insulina \"a bord\" (IOB) Contrasenya incorrecta Les contrasenyes no coincideixen diff --git a/core/ui/src/main/res/values-cs-rCZ/strings.xml b/core/ui/src/main/res/values-cs-rCZ/strings.xml index 00eefa7fca..359b8c7e08 100644 --- a/core/ui/src/main/res/values-cs-rCZ/strings.xml +++ b/core/ui/src/main/res/values-cs-rCZ/strings.xml @@ -164,6 +164,9 @@ ISF Rušení dočasného bazálu selhalo Zastavení prodlouženého bolusu selhalo + Nahrávat status do NS + Zakázaná/pozastavená smyčka + Aktivní inzulín (IOB) Chybné heslo Nesprávný PIN diff --git a/core/ui/src/main/res/values-da-rDK/strings.xml b/core/ui/src/main/res/values-da-rDK/strings.xml index 1957375bfb..914927f484 100644 --- a/core/ui/src/main/res/values-da-rDK/strings.xml +++ b/core/ui/src/main/res/values-da-rDK/strings.xml @@ -155,6 +155,9 @@ DIA IC ISF + Upload status til NS + Deaktiveret/Suspendéret Loop + Insulin om bord (IOB) Forkert kodeord Forkert pinkode diff --git a/core/ui/src/main/res/values-de-rDE/strings.xml b/core/ui/src/main/res/values-de-rDE/strings.xml index 977918bf6c..09a8cd1872 100644 --- a/core/ui/src/main/res/values-de-rDE/strings.xml +++ b/core/ui/src/main/res/values-de-rDE/strings.xml @@ -101,6 +101,7 @@ Lade… Notizen Löschen + Neu hinzufügen Neu oben hinzufügen Daten kommen von einer anderen Pumpe. Wechsle den Pumpentreiber. BZ @@ -155,6 +156,9 @@ DIA IC ISF + Status zu Nightscout hochladen + Deaktiviere/Pausiere den Loop + Aktives Insulin (IOB) Falsches Passwort Falsche PIN @@ -316,6 +320,7 @@ EINSTELLUNGEN EXPORTIEREN EINSTELLUNGEN IMPORTIEREN DATENBANK ZURÜCKSETZEN + DATENBANKEN BEREINIGEN DATENBANK EXPORTIEREN DATENBANK IMPORTIEREN OTP EXPORT diff --git a/core/ui/src/main/res/values-el-rGR/strings.xml b/core/ui/src/main/res/values-el-rGR/strings.xml index 56ad6faf47..c4df755597 100644 --- a/core/ui/src/main/res/values-el-rGR/strings.xml +++ b/core/ui/src/main/res/values-el-rGR/strings.xml @@ -116,6 +116,7 @@ Κλειστό Κύκλωμα Ανοιχτό Κύκλωμα Αναστολή Χαμηλής Γλυκόζης + Φόρτωση κατάστασης στο NS Λάθος κωδικός diff --git a/core/ui/src/main/res/values-es-rES/strings.xml b/core/ui/src/main/res/values-es-rES/strings.xml index ca6539ff4b..e246d677e8 100644 --- a/core/ui/src/main/res/values-es-rES/strings.xml +++ b/core/ui/src/main/res/values-es-rES/strings.xml @@ -164,6 +164,9 @@ ISF Error cancelando la basal temporal Error cancelando el bolo extendido + Subir estado a Nightscout + Desactiva/suspende el lazo + Insulina a bordo (IOB) Contraseña incorrecta Pin erróneo diff --git a/core/ui/src/main/res/values-fr-rFR/strings.xml b/core/ui/src/main/res/values-fr-rFR/strings.xml index 5253d3c963..4e0d6017eb 100644 --- a/core/ui/src/main/res/values-fr-rFR/strings.xml +++ b/core/ui/src/main/res/values-fr-rFR/strings.xml @@ -161,6 +161,9 @@ DAI G/I SI + Remontée des informations vers NS + Boucle désactivée/suspendue + Insuline Active (IA) Mot de passe incorrect Code PIN incorrect diff --git a/core/ui/src/main/res/values-hr-rHR/strings.xml b/core/ui/src/main/res/values-hr-rHR/strings.xml index d54ebac72f..8fe1732817 100644 --- a/core/ui/src/main/res/values-hr-rHR/strings.xml +++ b/core/ui/src/main/res/values-hr-rHR/strings.xml @@ -108,6 +108,7 @@ DIA IC ISF + Prijenos statusa u NS Pogrešna lozinka Pogrešan PIN diff --git a/core/ui/src/main/res/values-it-rIT/strings.xml b/core/ui/src/main/res/values-it-rIT/strings.xml index 62fa0720ce..5867022486 100644 --- a/core/ui/src/main/res/values-it-rIT/strings.xml +++ b/core/ui/src/main/res/values-it-rIT/strings.xml @@ -156,6 +156,9 @@ DIA IC ISF + Carica stato in NS + Loop disabilitato/sospeso + Insulina attiva (IOB) Password errata PIN errato diff --git a/core/ui/src/main/res/values-iw-rIL/strings.xml b/core/ui/src/main/res/values-iw-rIL/strings.xml index 25f8fac1f6..c99a6fcdea 100644 --- a/core/ui/src/main/res/values-iw-rIL/strings.xml +++ b/core/ui/src/main/res/values-iw-rIL/strings.xml @@ -156,6 +156,9 @@ משך פעילות אינסולין IC ISF + טוען מצב ל-Nightscout + השבתת \\ השהיית לולאה + אינסולין פעיל בגוף (IOB) סיסמה שגויה קוד PIN שגוי diff --git a/core/ui/src/main/res/values-ko-rKR/strings.xml b/core/ui/src/main/res/values-ko-rKR/strings.xml index 6f44561f90..e6c511e6c5 100644 --- a/core/ui/src/main/res/values-ko-rKR/strings.xml +++ b/core/ui/src/main/res/values-ko-rKR/strings.xml @@ -136,6 +136,9 @@ DIA IC ISF + NS에 상태 업로드하기 + 중지 또는 일시중지된 loop + 활성 인슐린 (IOB) 잘못된 비밀번호 비밀번호가 일치하지 않습니다. diff --git a/core/ui/src/main/res/values-lt-rLT/strings.xml b/core/ui/src/main/res/values-lt-rLT/strings.xml index a247458036..e88c71198a 100644 --- a/core/ui/src/main/res/values-lt-rLT/strings.xml +++ b/core/ui/src/main/res/values-lt-rLT/strings.xml @@ -141,6 +141,9 @@ IVT IA JIF + Perduoti būsenos duomenis į NS + Ciklas išjungtas/sustabdytas + Aktyvus insulinas organizme (AIO) Neteisingas slaptažodis Slaptažodžiai nesutampa diff --git a/core/ui/src/main/res/values-nl-rNL/strings.xml b/core/ui/src/main/res/values-nl-rNL/strings.xml index feaa7500a1..001d79204d 100644 --- a/core/ui/src/main/res/values-nl-rNL/strings.xml +++ b/core/ui/src/main/res/values-nl-rNL/strings.xml @@ -158,6 +158,9 @@ DIA KH-ratio ISF + Upload status naar NS + Uitgeschakelde/onderbroken loop + Insuline aan boord (IOB) Verkeerd wachtwoord Onjuiste PIN-code diff --git a/core/ui/src/main/res/values-no-rNO/strings.xml b/core/ui/src/main/res/values-no-rNO/strings.xml index cc59c713bb..c26b75ec52 100644 --- a/core/ui/src/main/res/values-no-rNO/strings.xml +++ b/core/ui/src/main/res/values-no-rNO/strings.xml @@ -164,6 +164,9 @@ ISF Kansellering av Temp Basal feilet Kansellering av forlenget bolus feilet + Last opp status til Nightscout + Deaktiver/pause loop + Aktivt insulin (IOB) Feil passord Feil PIN-kode diff --git a/core/ui/src/main/res/values-pl-rPL/strings.xml b/core/ui/src/main/res/values-pl-rPL/strings.xml index 029f265d00..0899124568 100644 --- a/core/ui/src/main/res/values-pl-rPL/strings.xml +++ b/core/ui/src/main/res/values-pl-rPL/strings.xml @@ -141,6 +141,9 @@ DIA IC ISF + Przesyłaj status do NS + Wyłączona/zawieszona pętla + Aktywna insulina (IOB) Złe hasło Hasła się nie zgadzają diff --git a/core/ui/src/main/res/values-pt-rBR/protection.xml b/core/ui/src/main/res/values-pt-rBR/protection.xml index 272d4c10ba..86522c3e44 100644 --- a/core/ui/src/main/res/values-pt-rBR/protection.xml +++ b/core/ui/src/main/res/values-pt-rBR/protection.xml @@ -6,13 +6,26 @@ Proteção Aplicação Proteção Bólus Definições de senha + Configurações do PIN Senha da aplicação + PIN do Aplicativo Senha do bólus + Bolus PIN + PIN e senha de segurança + Tempo até que a senha ou PIN sejam inseridos Biometria Senha personalizada + PIN personalizado Sem proteção + Retorno Inseguro + 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! Senha foi definida! + PIN definido! Senha não foi definida + PIN não definido Senha não foi alterada + PIN não alterado + PIN apagado! Insira a senha aqui + Insira o PIN aqui diff --git a/core/ui/src/main/res/values-pt-rBR/strings.xml b/core/ui/src/main/res/values-pt-rBR/strings.xml index 7a5a500da2..add6078c4b 100644 --- a/core/ui/src/main/res/values-pt-rBR/strings.xml +++ b/core/ui/src/main/res/values-pt-rBR/strings.xml @@ -14,6 +14,7 @@ %1$.2f U/h Bomba não inicializada, perfil não definido! Falha ao atualizar o perfil basal + Bolus %1$.2f U aplicado com sucesso Nenhum valor de basal temporaria valido foi lido da bomba A limitar IOB para %1$.1f U porque %2$s LOOP DESATIVADO POR RESTRIÇÕES @@ -46,6 +47,7 @@ Sucesso Configurações Avançadas Erro na entrega Bólus Estendido + Modo APS Bólus estendido Pausado DDT Total @@ -60,6 +62,8 @@ Por favor aguarde… Parar Carbos + Perfil inválido! + SEM PERFIL DEFINIDO ]]> Data Unidades @@ -149,6 +153,7 @@ IOB Basal INVÁLIDO Login + Purgar/Preencher Insulina Parar Alvo Temp Loop Fechado @@ -157,6 +162,11 @@ DIA IC FSI + Cancelamento do basal temporário falhou + Falhou o cancelamento do bolus extendido + Enviar estado para NS + Loop Desativado/Suspenso + Insulina ativa (IA) Senha incorreta PIN incorreto @@ -172,6 +182,7 @@ Iniciar perfil %1$d%% para %2$d min + Cancelar basal temporário Deixa o basal temporário em andamento Rácio Duração @@ -193,9 +204,12 @@ Observação: %1$s Questão : %1$s Exercício : %1$s + Alteração do local do cateter + Colocação do Sensor CGM Início do Sensor CGM Parar Sensor CGM Alerta D.A.D + Troca de Reservatório de Insulina Troca de Perfil Bólus Lanche Bólus Refeição @@ -205,6 +219,8 @@ Fim do Basal Temp Correção Carboidratos OpenAPS Offline + Troca de Bateria da Bomba + Alvo Temporário Valor do Alvo Temporário Cancelar alvo temporário Assistente de Bólus @@ -233,6 +249,7 @@ %1$d g de carboidratos necessários em %2$d minutos + Dose diária acumulada (TDD) Dose diária exponencialmente ponderada Basal Bólus @@ -431,9 +448,13 @@ Alarme Urgente INFO + Assistente de bolus + 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ê. CA vs IA !!!!! 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 !!!]]> Entregue esta parte do resultado do assistente de bólus [%] + Restrição de bólus aplicada: %1$.2f U para %2$.2f U + Bolus será apenas registrado (não administrado pela bomba) Disparar alarme quando for a hora de comer Nenhuma acção seleccionada, nada irá acontecer Nenhuma glicemia recente para base de cálculo! @@ -453,9 +474,15 @@ %1$s para %2$s Nenhuma bomba disponível! + Criança Adolescente Adulto + Adulto resistente à insulina Grávida + Selecione o tipo de paciente para configurar os limites de segurança + Máximo bolus permitido [U] + Máximo de carbs permitidos [g] + Tipo de paciente Definições de desbloqueio diff --git a/core/ui/src/main/res/values-pt-rPT/strings.xml b/core/ui/src/main/res/values-pt-rPT/strings.xml index 3918c63e3c..2261b66379 100644 --- a/core/ui/src/main/res/values-pt-rPT/strings.xml +++ b/core/ui/src/main/res/values-pt-rPT/strings.xml @@ -139,6 +139,9 @@ DIA IHC FSI + Enviar estado para NS + Loop Desactivado/Suspenso + Insulina ativa (IA ) Palavra-passe incorreta Palavras-passe não correspondem diff --git a/core/ui/src/main/res/values-ro-rRO/strings.xml b/core/ui/src/main/res/values-ro-rRO/strings.xml index db4936ab40..cae13b03b8 100644 --- a/core/ui/src/main/res/values-ro-rRO/strings.xml +++ b/core/ui/src/main/res/values-ro-rRO/strings.xml @@ -140,6 +140,9 @@ DIA IC ISF + Trimitere status către NS + Buclă dezactivată/suspendată + Insulină activă (IOB) Parola greșită Parolele nu corespund diff --git a/core/ui/src/main/res/values-ru-rRU/strings.xml b/core/ui/src/main/res/values-ru-rRU/strings.xml index 113c3e0715..90bb6dbab1 100644 --- a/core/ui/src/main/res/values-ru-rRU/strings.xml +++ b/core/ui/src/main/res/values-ru-rRU/strings.xml @@ -162,6 +162,9 @@ Время действия инсулина DIA IC углкоэф ГУ/инс ISF (чувствительность к инсулину) + статус передачи данных в NS + Отключенный/приостановленный цикл + Активный инсулин (IOB) Неверный пароль Неверный PIN-код diff --git a/core/ui/src/main/res/values-sk-rSK/strings.xml b/core/ui/src/main/res/values-sk-rSK/strings.xml index 547f6a389b..d49b2f6c1f 100644 --- a/core/ui/src/main/res/values-sk-rSK/strings.xml +++ b/core/ui/src/main/res/values-sk-rSK/strings.xml @@ -162,6 +162,9 @@ DIA I:C ISF + Nahrať stav do NS + Deaktivovaný/pozastavený uzavretý okruh + Aktívny inzulín (IOB) Nesprávne heslo Nesprávny PIN diff --git a/core/ui/src/main/res/values-sv-rSE/strings.xml b/core/ui/src/main/res/values-sv-rSE/strings.xml index 44781af85c..595d802f63 100644 --- a/core/ui/src/main/res/values-sv-rSE/strings.xml +++ b/core/ui/src/main/res/values-sv-rSE/strings.xml @@ -153,6 +153,9 @@ Duration IC ISF + Ladda upp status till Nightscout + Inaktiverad/pausad loop + Aktivt Insulin (IOB) Fel lösenord Lösenorden stämmer inte överens diff --git a/core/ui/src/main/res/values-tr-rTR/strings.xml b/core/ui/src/main/res/values-tr-rTR/strings.xml index b15948f734..4f04e95b60 100644 --- a/core/ui/src/main/res/values-tr-rTR/strings.xml +++ b/core/ui/src/main/res/values-tr-rTR/strings.xml @@ -160,6 +160,9 @@ İES IC Karbonhidrat İnsülin Oranı IDF İnsülin Duyarlılık Faktörü + Nightscout\'a durum aktar + Döngüyü Devre Dışı bırakma/Askıya alma + Aktif İnsülin (AİNS) Hatalı parola Yanlış PIN diff --git a/core/ui/src/main/res/values-zh-rCN/strings.xml b/core/ui/src/main/res/values-zh-rCN/strings.xml index f75e73850b..1c13a48a4c 100644 --- a/core/ui/src/main/res/values-zh-rCN/strings.xml +++ b/core/ui/src/main/res/values-zh-rCN/strings.xml @@ -154,6 +154,9 @@ DIA IC ISF + 将状态上传到 NS + 禁用/暂停闭环 + 活性胰岛素(IOB) 密码错误 PIN 码错误 diff --git a/core/ui/src/main/res/values/strings.xml b/core/ui/src/main/res/values/strings.xml index ab131ced6f..fff892689b 100644 --- a/core/ui/src/main/res/values/strings.xml +++ b/core/ui/src/main/res/values/strings.xml @@ -165,6 +165,9 @@ ISF Canceling of temporary basal failed Canceling of extended bolus failed + Upload status to NS + Disabled/Suspended loop + Insulin on Board (IOB) Wrong password diff --git a/core/utils/build.gradle b/core/utils/build.gradle index a56b9a2250..dbc2e82c6f 100644 --- a/core/utils/build.gradle +++ b/core/utils/build.gradle @@ -22,7 +22,7 @@ dependencies { implementation project(':app-wear-shared:shared') //Firebase - api platform('com.google.firebase:firebase-bom:31.1.0') + api platform('com.google.firebase:firebase-bom:31.1.1') api "com.google.firebase:firebase-analytics-ktx" api "com.google.firebase:firebase-crashlytics-ktx" // StatsActivity not in use now diff --git a/core/main/src/main/java/info/nightscout/core/extensions/JSONObjectExt.kt b/core/utils/src/main/java/info/nightscout/core/utils/extensions/JSONObjectExt.kt similarity index 100% rename from core/main/src/main/java/info/nightscout/core/extensions/JSONObjectExt.kt rename to core/utils/src/main/java/info/nightscout/core/utils/extensions/JSONObjectExt.kt diff --git a/core/utils/src/main/res/values/keys.xml b/core/utils/src/main/res/values/keys.xml index 0625a13e03..8377c4b5d7 100644 --- a/core/utils/src/main/res/values/keys.xml +++ b/core/utils/src/main/res/values/keys.xml @@ -145,5 +145,8 @@ protection_timeout ObjectivesLoopUsed ObjectivesmanualEnacts + ObjectivesActionsUsed + ObjectivesScaleUsed + virtualpump_uploadstatus \ No newline at end of file diff --git a/crowdin.yml b/crowdin.yml index f74a364df2..a68389e204 100644 --- a/crowdin.yml +++ b/crowdin.yml @@ -11,24 +11,28 @@ files: translation: /plugins/aps/src/main/res/values-%android_code%/strings.xml - source: /plugins/main/src/main/res/values/strings.xml translation: /plugins/main/src/main/res/values-%android_code%/strings.xml - - source: /plugins/main/src/main/res/values/exam.xml - translation: /plugins/main/src/main/res/values-%android_code%/%original_file_name% - - source: /plugins/main/src/main/res/values/objectives.xml - translation: /plugins/main/src/main/res/values-%android_code%/%original_file_name% + - source: /plugins/constraints/src/main/res/values/exam.xml + translation: /plugins/constraints/src/main/res/values-%android_code%/%original_file_name% + - source: /plugins/constraints/src/main/res/values/objectives.xml + translation: /plugins/constraints/src/main/res/values-%android_code%/%original_file_name% - source: /plugins/automation/src/main/res/values/strings.xml translation: /plugins/automation/src/main/res/values-%android_code%/strings.xml - source: /plugins/openhumans/src/main/res/values/strings.xml translation: /plugins/openhumans/src/main/res/values-%android_code%/strings.xml - source: /plugins/sensitivity/src/main/res/values/strings.xml translation: /plugins/sensitivity/src/main/res/values-%android_code%/strings.xml + - source: /plugins/source/src/main/res/values/strings.xml + translation: /plugins/source/src/main/res/values-%android_code%/strings.xml + - source: /plugins/insulin/src/main/res/values/strings.xml + translation: /plugins/insulin/src/main/res/values-%android_code%/strings.xml - source: /plugins/configuration/src/main/res/values/strings.xml translation: /plugins/configuration/src/main/res/values-%android_code%/strings.xml - source: /plugins/sync/src/main/res/values/strings.xml translation: /plugins/sync/src/main/res/values-%android_code%/strings.xml translate_attributes: 0 content_segmentation: 0 - - source: /plugins/support/src/main/res/values/strings.xml - translation: /plugins/support/src/main/res/values-%android_code%/strings.xml + - source: /plugins/constraints/src/main/res/values/strings.xml + translation: /plugins/constraints/src/main/res/values-%android_code%/strings.xml - source: /core/graph/src/main/res/values/strings.xml translation: /core/graph/src/main/res/values-%android_code%/strings.xml - source: /core/interfaces/src/main/res/values/strings.xml @@ -69,6 +73,8 @@ files: translation: /pump/omnipod-eros/src/main/res/values-%android_code%/strings.xml - source: /pump/rileylink/src/main/res/values/strings.xml translation: /pump/rileylink/src/main/res/values-%android_code%/strings.xml + - source: /pump/virtual/src/main/res/values/strings.xml + translation: /pump/virtual/src/main/res/values-%android_code%/strings.xml - source: /insight/src/main/res/values/strings.xml translation: /insight/src/main/res/values-%android_code%/strings.xml - source: /insight/src/main/res/values/alert_codes.xml diff --git a/implementation/build.gradle b/implementation/build.gradle index 867e1cd101..a4c72a5c4d 100644 --- a/implementation/build.gradle +++ b/implementation/build.gradle @@ -19,14 +19,12 @@ dependencies { implementation project(':app-wear-shared:shared') implementation project(':database:entities') implementation project(':database:impl') - implementation project(':plugins:automation') implementation project(':core:main') implementation project(':core:graph') implementation project(':core:graphview') implementation project(':core:interfaces') implementation project(':core:ui') implementation project(':core:utils') - implementation project(':ui') // Protection api 'androidx.biometric:biometric:1.1.0' diff --git a/implementation/src/main/java/info/nightscout/implementation/BolusTimerImpl.kt b/implementation/src/main/java/info/nightscout/implementation/BolusTimerImpl.kt deleted file mode 100644 index 0e54ea7dbf..0000000000 --- a/implementation/src/main/java/info/nightscout/implementation/BolusTimerImpl.kt +++ /dev/null @@ -1,55 +0,0 @@ -package info.nightscout.implementation - -import dagger.android.HasAndroidInjector -import info.nightscout.automation.AutomationEventObject -import info.nightscout.automation.AutomationPlugin -import info.nightscout.automation.actions.ActionAlarm -import info.nightscout.automation.elements.Comparator -import info.nightscout.automation.elements.InputDelta -import info.nightscout.automation.triggers.TriggerBg -import info.nightscout.automation.triggers.TriggerConnector -import info.nightscout.automation.triggers.TriggerDelta -import info.nightscout.interfaces.BolusTimer -import info.nightscout.interfaces.GlucoseUnit -import info.nightscout.shared.interfaces.ResourceHelper -import java.text.DecimalFormat -import javax.inject.Inject -import javax.inject.Singleton - -@Singleton -class BolusTimerImpl @Inject constructor( - private val injector: HasAndroidInjector, - private val rh: ResourceHelper, - private val automationPlugin: AutomationPlugin, -) : BolusTimer { - - override fun scheduleAutomationEventBolusReminder() { - val event = AutomationEventObject(injector).apply { - title = rh.gs(info.nightscout.core.ui.R.string.bolus_reminder) - readOnly = true - systemAction = true - autoRemove = true - trigger = TriggerConnector(injector, TriggerConnector.Type.AND).apply { - - // Bg above 70 mgdl and delta positive mgdl - list.add(TriggerBg(injector, 70.0, GlucoseUnit.MGDL, Comparator.Compare.IS_EQUAL_OR_GREATER)) - list.add( - TriggerDelta( - injector, InputDelta(rh, 0.0, -360.0, 360.0, 1.0, DecimalFormat("0"), InputDelta.DeltaType.DELTA), GlucoseUnit.MGDL, Comparator.Compare - .IS_GREATER - ) - ) - } - actions.add(ActionAlarm(injector, rh.gs(R.string.time_to_bolus))) - } - - automationPlugin.addIfNotExists(event) - } - - override fun removeAutomationEventBolusReminder() { - val event = AutomationEventObject(injector).apply { - title = rh.gs(info.nightscout.core.ui.R.string.bolus_reminder) - } - automationPlugin.removeIfExists(event) - } -} \ No newline at end of file diff --git a/implementation/src/main/java/info/nightscout/implementation/CarbTimerImpl.kt b/implementation/src/main/java/info/nightscout/implementation/CarbTimerImpl.kt deleted file mode 100644 index 0ca958cf65..0000000000 --- a/implementation/src/main/java/info/nightscout/implementation/CarbTimerImpl.kt +++ /dev/null @@ -1,102 +0,0 @@ -package info.nightscout.implementation - -import dagger.android.HasAndroidInjector -import info.nightscout.automation.AutomationEventObject -import info.nightscout.automation.AutomationPlugin -import info.nightscout.automation.actions.ActionAlarm -import info.nightscout.automation.elements.Comparator -import info.nightscout.automation.elements.InputDelta -import info.nightscout.automation.triggers.TriggerBg -import info.nightscout.automation.triggers.TriggerConnector -import info.nightscout.automation.triggers.TriggerDelta -import info.nightscout.interfaces.CarbTimer -import info.nightscout.interfaces.GlucoseUnit -import info.nightscout.interfaces.utils.TimerUtil -import info.nightscout.shared.interfaces.ResourceHelper -import java.text.DecimalFormat -import javax.inject.Inject -import javax.inject.Singleton - -@Singleton -class CarbTimerImpl @Inject constructor( - private val injector: HasAndroidInjector, - private val rh: ResourceHelper, - private val automationPlugin: AutomationPlugin, - private val timerUtil: TimerUtil -) : CarbTimer { - - /** - * Generate reminder via [info.nightscout.androidaps.utils.TimerUtil] - * - * @param seconds seconds to the future - */ - override fun scheduleTimeToEatReminder(seconds: Int) = - timerUtil.scheduleReminder(seconds, rh.gs(R.string.time_to_eat)) - - /** - * Create new Automation event to alarm when is time to eat - */ - override fun scheduleAutomationEventEatReminder() { - val event = AutomationEventObject(injector).apply { - title = rh.gs(info.nightscout.core.ui.R.string.bolus_advisor) - readOnly = true - systemAction = true - autoRemove = true - trigger = TriggerConnector(injector, TriggerConnector.Type.OR).apply { - - // Bg under 180 mgdl and dropping by 15 mgdl - list.add(TriggerConnector(injector, TriggerConnector.Type.AND).apply { - list.add(TriggerBg(injector, 180.0, GlucoseUnit.MGDL, Comparator.Compare.IS_LESSER)) - list.add(TriggerDelta(injector, InputDelta(rh, -15.0, -360.0, 360.0, 1.0, DecimalFormat("0"), InputDelta.DeltaType.DELTA), GlucoseUnit.MGDL, Comparator.Compare.IS_EQUAL_OR_LESSER)) - list.add( - TriggerDelta( - injector, - InputDelta(rh, -8.0, -360.0, 360.0, 1.0, DecimalFormat("0"), InputDelta.DeltaType.SHORT_AVERAGE), - GlucoseUnit.MGDL, - Comparator.Compare.IS_EQUAL_OR_LESSER - ) - ) - }) - // Bg under 160 mgdl and dropping by 9 mgdl - list.add(TriggerConnector(injector, TriggerConnector.Type.AND).apply { - list.add(TriggerBg(injector, 160.0, GlucoseUnit.MGDL, Comparator.Compare.IS_LESSER)) - list.add(TriggerDelta(injector, InputDelta(rh, -9.0, -360.0, 360.0, 1.0, DecimalFormat("0"), InputDelta.DeltaType.DELTA), GlucoseUnit.MGDL, Comparator.Compare.IS_EQUAL_OR_LESSER)) - list.add( - TriggerDelta( - injector, - InputDelta(rh, -5.0, -360.0, 360.0, 1.0, DecimalFormat("0"), InputDelta.DeltaType.SHORT_AVERAGE), - GlucoseUnit.MGDL, - Comparator.Compare.IS_EQUAL_OR_LESSER - ) - ) - }) - // Bg under 145 mgdl and dropping - list.add(TriggerConnector(injector, TriggerConnector.Type.AND).apply { - list.add(TriggerBg(injector, 145.0, GlucoseUnit.MGDL, Comparator.Compare.IS_LESSER)) - list.add(TriggerDelta(injector, InputDelta(rh, 0.0, -360.0, 360.0, 1.0, DecimalFormat("0"), InputDelta.DeltaType.DELTA), GlucoseUnit.MGDL, Comparator.Compare.IS_EQUAL_OR_LESSER)) - list.add( - TriggerDelta( - injector, - InputDelta(rh, 0.0, -360.0, 360.0, 1.0, DecimalFormat("0"), InputDelta.DeltaType.SHORT_AVERAGE), - GlucoseUnit.MGDL, - Comparator.Compare.IS_EQUAL_OR_LESSER - ) - ) - }) - } - actions.add(ActionAlarm(injector, rh.gs(R.string.time_to_eat))) - } - - automationPlugin.addIfNotExists(event) - } - - /** - * Remove Automation event - */ - override fun removeAutomationEventEatReminder() { - val event = AutomationEventObject(injector).apply { - title = rh.gs(info.nightscout.core.ui.R.string.bolus_advisor) - } - automationPlugin.removeIfExists(event) - } -} \ No newline at end of file diff --git a/implementation/src/main/java/info/nightscout/implementation/db/CompatDBHelper.kt b/implementation/src/main/java/info/nightscout/implementation/db/CompatDBHelper.kt index 6c3b5034fb..56515fb76f 100644 --- a/implementation/src/main/java/info/nightscout/implementation/db/CompatDBHelper.kt +++ b/implementation/src/main/java/info/nightscout/implementation/db/CompatDBHelper.kt @@ -13,6 +13,7 @@ import info.nightscout.database.entities.TemporaryBasal import info.nightscout.database.entities.TemporaryTarget import info.nightscout.database.entities.TherapyEvent import info.nightscout.database.impl.AppRepository +import info.nightscout.interfaces.ui.UiInteraction import info.nightscout.rx.bus.RxBus import info.nightscout.rx.events.EventEffectiveProfileSwitchChanged import info.nightscout.rx.events.EventExtendedBolusChange @@ -27,24 +28,24 @@ import info.nightscout.rx.events.EventTherapyEventChange import info.nightscout.rx.events.EventTreatmentChange import info.nightscout.rx.logging.AAPSLogger import info.nightscout.rx.logging.LTag -import info.nightscout.ui.widget.Widget import io.reactivex.rxjava3.disposables.Disposable import javax.inject.Inject import javax.inject.Singleton @Singleton class CompatDBHelper @Inject constructor( - val aapsLogger: AAPSLogger, - val repository: AppRepository, - val rxBus: RxBus, - val context: Context + private val aapsLogger: AAPSLogger, + private val repository: AppRepository, + private val rxBus: RxBus, + private val context: Context, + private val uiInteraction: UiInteraction ) { fun dbChangeDisposable(): Disposable = repository .changeObservable() .doOnSubscribe { rxBus.send(EventNewBG(null)) - Widget.updateWidget(context) + uiInteraction.updateWidget(context) } .subscribe { /** @@ -57,7 +58,7 @@ class CompatDBHelper @Inject constructor( it.filterIsInstance().maxByOrNull { gv -> gv.timestamp }?.let { gv -> aapsLogger.debug(LTag.DATABASE, "Firing EventNewBg $gv") rxBus.send(EventNewBG(gv.timestamp)) - Widget.updateWidget(context) + uiInteraction.updateWidget(context) newestGlucoseValue = gv } it.filterIsInstance().minOfOrNull { gv -> gv.timestamp }?.let { timestamp -> diff --git a/implementation/src/main/java/info/nightscout/implementation/db/PersistenceLayerImpl.kt b/implementation/src/main/java/info/nightscout/implementation/db/PersistenceLayerImpl.kt index a66b479b59..6b99d9a8ca 100644 --- a/implementation/src/main/java/info/nightscout/implementation/db/PersistenceLayerImpl.kt +++ b/implementation/src/main/java/info/nightscout/implementation/db/PersistenceLayerImpl.kt @@ -6,6 +6,7 @@ import info.nightscout.database.ValueWrapper import info.nightscout.database.entities.Bolus import info.nightscout.database.entities.BolusCalculatorResult import info.nightscout.database.entities.Carbs +import info.nightscout.database.entities.EffectiveProfileSwitch import info.nightscout.database.entities.TemporaryTarget import info.nightscout.database.entities.UserEntry import info.nightscout.database.impl.AppRepository @@ -68,4 +69,5 @@ class PersistenceLayerImpl @Inject constructor( override fun getTemporaryTargetActiveAt(timestamp: Long): Single> = repository.getTemporaryTargetActiveAt(timestamp) override fun getUserEntryFilteredDataFromTime(timestamp: Long): Single> = repository.getUserEntryFilteredDataFromTime(timestamp) + override fun getEffectiveProfileSwitchActiveAt(timestamp: Long): Single> = repository.getEffectiveProfileSwitchActiveAt(timestamp) } diff --git a/implementation/src/main/java/info/nightscout/implementation/di/ImplementationModule.kt b/implementation/src/main/java/info/nightscout/implementation/di/ImplementationModule.kt index cf5844835e..5a665df59c 100644 --- a/implementation/src/main/java/info/nightscout/implementation/di/ImplementationModule.kt +++ b/implementation/src/main/java/info/nightscout/implementation/di/ImplementationModule.kt @@ -4,8 +4,6 @@ import dagger.Binds import dagger.Module import dagger.android.ContributesAndroidInjector import info.nightscout.core.graph.OverviewData -import info.nightscout.implementation.BolusTimerImpl -import info.nightscout.implementation.CarbTimerImpl import info.nightscout.implementation.DefaultValueHelperImpl import info.nightscout.implementation.HardLimitsImpl import info.nightscout.implementation.LocalAlertUtilsImpl @@ -14,14 +12,12 @@ import info.nightscout.implementation.TrendCalculatorImpl import info.nightscout.implementation.UserEntryLoggerImpl import info.nightscout.implementation.XDripBroadcastImpl import info.nightscout.implementation.androidNotification.NotificationHolderImpl -import info.nightscout.implementation.constraints.ConstraintsImpl import info.nightscout.implementation.db.PersistenceLayerImpl import info.nightscout.implementation.iob.GlucoseStatusProviderImpl import info.nightscout.implementation.logging.LoggerUtilsImpl import info.nightscout.implementation.overview.OverviewDataImpl import info.nightscout.implementation.plugin.PluginStore import info.nightscout.implementation.profile.ProfileFunctionImpl -import info.nightscout.implementation.profile.ProfileInstantiatorImpl import info.nightscout.implementation.profile.ProfileStoreObject import info.nightscout.implementation.profiling.ProfilerImpl import info.nightscout.implementation.protection.PasswordCheckImpl @@ -41,13 +37,10 @@ import info.nightscout.implementation.stats.TddCalculatorImpl import info.nightscout.implementation.stats.TirCalculatorImpl import info.nightscout.implementation.storage.FileStorage import info.nightscout.implementation.userEntry.UserEntryPresentationHelperImpl -import info.nightscout.interfaces.BolusTimer -import info.nightscout.interfaces.CarbTimer import info.nightscout.interfaces.LocalAlertUtils import info.nightscout.interfaces.NotificationHolder import info.nightscout.interfaces.Translator import info.nightscout.interfaces.XDripBroadcast -import info.nightscout.interfaces.constraints.Constraints import info.nightscout.interfaces.db.PersistenceLayer import info.nightscout.interfaces.iob.GlucoseStatusProvider import info.nightscout.interfaces.logging.LoggerUtils @@ -55,7 +48,6 @@ import info.nightscout.interfaces.logging.UserEntryLogger import info.nightscout.interfaces.plugin.ActivePlugin import info.nightscout.interfaces.profile.DefaultValueHelper import info.nightscout.interfaces.profile.ProfileFunction -import info.nightscout.interfaces.profile.ProfileInstantiator import info.nightscout.interfaces.profiling.Profiler import info.nightscout.interfaces.protection.PasswordCheck import info.nightscout.interfaces.protection.ProtectionCheck @@ -106,7 +98,6 @@ abstract class ImplementationModule { @Binds fun bindWarnColors(warnColorsImpl: WarnColorsImpl): WarnColors @Binds fun bindHardLimits(hardLimitsImpl: HardLimitsImpl): HardLimits @Binds fun bindResourceHelper(resourceHelperImpl: ResourceHelperImpl): ResourceHelper - @Binds fun bindProfileStoreInstantiator(profileStoreInstantiatorImpl: ProfileInstantiatorImpl): ProfileInstantiator @Binds fun bindBlePreCheck(blePreCheckImpl: BlePreCheckImpl): BlePreCheck @Binds fun bindTrendCalculatorInterface(trendCalculator: TrendCalculatorImpl): TrendCalculator @@ -115,13 +106,10 @@ abstract class ImplementationModule { @Binds fun bindDexcomTirCalculatorInterface(dexcomTirCalculator: DexcomTirCalculatorImpl): DexcomTirCalculator @Binds fun bindPumpSyncInterface(pumpSyncImplementation: PumpSyncImplementation): PumpSync @Binds fun bindXDripBroadcastInterface(xDripBroadcastImpl: XDripBroadcastImpl): XDripBroadcast - @Binds fun bindCarbTimerInterface(carbTimer: CarbTimerImpl): CarbTimer - @Binds fun bindBolusTimerInterface(bolusTimer: BolusTimerImpl): BolusTimer @Binds fun bindLocalAlertUtilsInterface(localAlertUtils: LocalAlertUtilsImpl): LocalAlertUtils @Binds fun bindIconsProviderInterface(iconsProvider: IconsProviderImplementation): IconsProvider @Binds fun bindNotificationHolderInterface(notificationHolder: NotificationHolderImpl): NotificationHolder @Binds fun bindCommandQueue(commandQueue: CommandQueueImplementation): CommandQueue - @Binds fun bindsConstraints(constraintsImpl: ConstraintsImpl): Constraints @Binds fun bindsProfileFunction(profileFunctionImpl: ProfileFunctionImpl): ProfileFunction @Binds fun bindsStorage(fileStorage: FileStorage): Storage @Binds fun bindsReceiverStatusStore(receiverStatusStoreImpl: ReceiverStatusStoreImpl): ReceiverStatusStore diff --git a/implementation/src/main/java/info/nightscout/implementation/profile/ProfileInstantiatorImpl.kt b/implementation/src/main/java/info/nightscout/implementation/profile/ProfileInstantiatorImpl.kt deleted file mode 100644 index e801af2193..0000000000 --- a/implementation/src/main/java/info/nightscout/implementation/profile/ProfileInstantiatorImpl.kt +++ /dev/null @@ -1,17 +0,0 @@ -package info.nightscout.implementation.profile - -import dagger.android.HasAndroidInjector -import info.nightscout.interfaces.profile.ProfileInstantiator -import info.nightscout.interfaces.profile.ProfileStore -import info.nightscout.shared.utils.DateUtil -import org.json.JSONObject -import javax.inject.Inject - -class ProfileInstantiatorImpl @Inject constructor( - private val injector: HasAndroidInjector, - private val dateUtil: DateUtil -): ProfileInstantiator { - - override fun storeInstance(jsonObject: JSONObject): ProfileStore = - ProfileStoreObject(injector, jsonObject, dateUtil) -} \ No newline at end of file diff --git a/implementation/src/main/java/info/nightscout/implementation/resources/IconsProviderImplementation.kt b/implementation/src/main/java/info/nightscout/implementation/resources/IconsProviderImplementation.kt index e4c735fb6a..b252cb654c 100644 --- a/implementation/src/main/java/info/nightscout/implementation/resources/IconsProviderImplementation.kt +++ b/implementation/src/main/java/info/nightscout/implementation/resources/IconsProviderImplementation.kt @@ -11,9 +11,9 @@ class IconsProviderImplementation @Inject constructor(private val config: Config override fun getIcon(): Int = when { - config.NSCLIENT -> info.nightscout.ui.R.mipmap.ic_yellowowl - config.PUMPCONTROL -> info.nightscout.ui.R.mipmap.ic_pumpcontrol - else -> info.nightscout.ui.R.mipmap.ic_launcher + config.NSCLIENT -> info.nightscout.core.ui.R.mipmap.ic_yellowowl + config.PUMPCONTROL -> info.nightscout.core.ui.R.mipmap.ic_pumpcontrol + else -> info.nightscout.core.ui.R.mipmap.ic_launcher } override fun getNotificationIcon(): Int = diff --git a/implementation/src/main/java/info/nightscout/implementation/userEntry/UserEntryPresentationHelperImpl.kt b/implementation/src/main/java/info/nightscout/implementation/userEntry/UserEntryPresentationHelperImpl.kt index c39b5ede07..e3b0417edd 100644 --- a/implementation/src/main/java/info/nightscout/implementation/userEntry/UserEntryPresentationHelperImpl.kt +++ b/implementation/src/main/java/info/nightscout/implementation/userEntry/UserEntryPresentationHelperImpl.kt @@ -81,7 +81,7 @@ class UserEntryPresentationHelperImpl @Inject constructor( Sources.Maintenance -> info.nightscout.core.ui.R.drawable.ic_maintenance Sources.NSClient -> info.nightscout.core.ui.R.drawable.ic_nightscout_syncs Sources.NSProfile -> R.drawable.ic_nightscout_profile - Sources.Objectives -> R.drawable.ic_graduation + Sources.Objectives -> info.nightscout.core.ui.R.drawable.ic_graduation Sources.Pump -> info.nightscout.core.ui.R.drawable.ic_generic_icon Sources.Dana -> info.nightscout.core.ui.R.drawable.ic_danars_128 Sources.DanaR -> info.nightscout.core.ui.R.drawable.ic_danars_128 diff --git a/implementation/src/main/res/values-bg-rBG/strings.xml b/implementation/src/main/res/values-bg-rBG/strings.xml index 053c3762b7..626a596679 100644 --- a/implementation/src/main/res/values-bg-rBG/strings.xml +++ b/implementation/src/main/res/values-bg-rBG/strings.xml @@ -3,8 +3,6 @@ xDrip+ не е инсталиран Калибрацията е изпратена към xDrip+ КЗ - Време е за ядене - Време е за болус!\nВключи болус съветника и направи изчисление отново. Командата се изпълнява в момента Базалните стойности са под минимума. Не е зададен профил! Разрешение diff --git a/implementation/src/main/res/values-ca-rES/strings.xml b/implementation/src/main/res/values-ca-rES/strings.xml index 477ec540ed..e52c6270fc 100644 --- a/implementation/src/main/res/values-ca-rES/strings.xml +++ b/implementation/src/main/res/values-ca-rES/strings.xml @@ -3,8 +3,6 @@ xDrip+ no instal·lat Calibració enviada a xDrip+ Glucèmia - Hora de menjar - Hora d’aplicar bolus!\nExecuteu l\'assistent de bolus i torneu a fer els càlculs. Ordre executant-se ara mateix Valor de basal per sota del mínim. Perfil no definit! Permís diff --git a/implementation/src/main/res/values-cs-rCZ/strings.xml b/implementation/src/main/res/values-cs-rCZ/strings.xml index 618307654f..eeaa565d54 100644 --- a/implementation/src/main/res/values-cs-rCZ/strings.xml +++ b/implementation/src/main/res/values-cs-rCZ/strings.xml @@ -3,8 +3,6 @@ xDrip+ není nainstalován Kalibrace odeslána do xDripu+ Gly - Čas k jídlu - Čas na bolus!\nSpusťte Bolusovou kalkulačku a proveďte výpočet znovu. Příkaz je právě prováděn Hodnota bazálu pod povoleným minimem. Nenastaveno! Povolení diff --git a/implementation/src/main/res/values-da-rDK/strings.xml b/implementation/src/main/res/values-da-rDK/strings.xml index 8e92f5775d..bbbf8750dd 100644 --- a/implementation/src/main/res/values-da-rDK/strings.xml +++ b/implementation/src/main/res/values-da-rDK/strings.xml @@ -3,8 +3,6 @@ xDrip+ ikke installeret Kalibrering sendt til xDrip+ BG - Tid til at spise - Tid til bolus!\nKør Bolus-guiden og lav beregningen igen. Kommando udføres lige nu Basal værdi under minimum. Profil ikke angivet! Tilladelse diff --git a/implementation/src/main/res/values-de-rDE/strings.xml b/implementation/src/main/res/values-de-rDE/strings.xml index d65647d9d3..5c4bd725c7 100644 --- a/implementation/src/main/res/values-de-rDE/strings.xml +++ b/implementation/src/main/res/values-de-rDE/strings.xml @@ -3,8 +3,6 @@ xDrip+ nicht installiert Kalibrierung an xDrip+ gesendet+ BZ - Zeit zum Essen - Zeit für den nächsten Bolus!\nFühre den Bolus-Assistenten aus, um die Berechnung erneut durchzuführen. Befehl wird zurzeit ausgeführt Wert der Basalrate unter Minimum. Profil nicht gesetzt! Berechtigung diff --git a/implementation/src/main/res/values-es-rES/strings.xml b/implementation/src/main/res/values-es-rES/strings.xml index f26267d73c..fdcd036346 100644 --- a/implementation/src/main/res/values-es-rES/strings.xml +++ b/implementation/src/main/res/values-es-rES/strings.xml @@ -3,8 +3,6 @@ xDrip+ no se encuentra instalado Calibración enviada a xDrip+ BG - Hora de comer - ¡Hora de comer!\nEjecutar el asistente de bolo y calcular de nuevo. Orden se esta efectuando en este momento Valor basal por debajo del mínimo. Perfil no establecido. Permiso diff --git a/implementation/src/main/res/values-fr-rFR/strings.xml b/implementation/src/main/res/values-fr-rFR/strings.xml index 67e5c10fc9..58811711e8 100644 --- a/implementation/src/main/res/values-fr-rFR/strings.xml +++ b/implementation/src/main/res/values-fr-rFR/strings.xml @@ -3,8 +3,6 @@ xDrip+ n\'est pas installé Étalonnage envoyé à xDrip+ Gly - Il est temps de manger - Il est temps de faire le bolus !\nExécutez l\'Assistant et faites de nouveau le calcul. Commande exécutée à l\'instant Le débit Basal est inférieur au minimum autorisé. Profil non accepté ! Autorisation diff --git a/implementation/src/main/res/values-hr-rHR/strings.xml b/implementation/src/main/res/values-hr-rHR/strings.xml index 920aa62f37..105a2e32eb 100644 --- a/implementation/src/main/res/values-hr-rHR/strings.xml +++ b/implementation/src/main/res/values-hr-rHR/strings.xml @@ -3,8 +3,6 @@ xDrip+ nije instaliran Kalibracija poslana na xDrip+ GUK - Vrijeme za jelo - Vrijeme je za bolus!\nPokrenite čarobnjak za bolus i ponovite izračun. Naredba se izvršava upravo sada Bazalna vrijednost ispod minimuma. Profil nije postavljen! Dozvola diff --git a/implementation/src/main/res/values-hu-rHU/strings.xml b/implementation/src/main/res/values-hu-rHU/strings.xml index b943c52e03..7b0ced20c0 100644 --- a/implementation/src/main/res/values-hu-rHU/strings.xml +++ b/implementation/src/main/res/values-hu-rHU/strings.xml @@ -2,7 +2,6 @@ xDrip+ nincs telepítve VC - Ideje enni Alacsony Magas diff --git a/implementation/src/main/res/values-it-rIT/strings.xml b/implementation/src/main/res/values-it-rIT/strings.xml index 4d40d46a57..4d146e6414 100644 --- a/implementation/src/main/res/values-it-rIT/strings.xml +++ b/implementation/src/main/res/values-it-rIT/strings.xml @@ -3,7 +3,6 @@ xDrip+ non installato Calibrazione inviata a xDrip+ BG - Tempo di fare un bolo!\nEsegui il calcolatore e fai di nuovi i calcoli. Il comando sarà eseguito ora Valore basale inferiore al minimo. Profilo non impostato! Autorizzazione diff --git a/implementation/src/main/res/values-iw-rIL/strings.xml b/implementation/src/main/res/values-iw-rIL/strings.xml index a9e70d1725..a53bab2a40 100644 --- a/implementation/src/main/res/values-iw-rIL/strings.xml +++ b/implementation/src/main/res/values-iw-rIL/strings.xml @@ -3,8 +3,6 @@ xDrip+ אינו מותקן כיול נשלח ל-xDrip+ BG - זמן לאכול - זמן להזריק בולוס!\nהשתמשו במחשבון וחשבו מחדש. הפקודה מבוצעת כעת ערך הבסיס מתחת למינימום. פרופיל אינו מוגדר! הרשאה diff --git a/implementation/src/main/res/values-ko-rKR/strings.xml b/implementation/src/main/res/values-ko-rKR/strings.xml index 57f9ab29de..72fe956529 100644 --- a/implementation/src/main/res/values-ko-rKR/strings.xml +++ b/implementation/src/main/res/values-ko-rKR/strings.xml @@ -3,7 +3,6 @@ xDrip+가 설치되지 않았습니다 보정이 xDrip으로 전송되었습니다+ 혈당 - 식사할 시간 명령을 지금 실행합니다. Basal값이 최소값 이하입니다. 프로파일이 설정되지 않습니다! 권한 diff --git a/implementation/src/main/res/values-lt-rLT/strings.xml b/implementation/src/main/res/values-lt-rLT/strings.xml index 5ce414e2c2..af293a1316 100644 --- a/implementation/src/main/res/values-lt-rLT/strings.xml +++ b/implementation/src/main/res/values-lt-rLT/strings.xml @@ -3,8 +3,6 @@ xDrip+ neįdiegta Kalibracija nusiųsta į xDrip+ KG - Laikas valgyti - Laikas bolusui!\nĮjunkite Skaičiuotuvą ir pakartokite skaičiavimus. Komanda vykdoma Valandinės bazės vertė mažesnė už minimalią. Profilis nenustatytas! Leidimas diff --git a/implementation/src/main/res/values-nl-rNL/strings.xml b/implementation/src/main/res/values-nl-rNL/strings.xml index bccd5c6419..09e67b5431 100644 --- a/implementation/src/main/res/values-nl-rNL/strings.xml +++ b/implementation/src/main/res/values-nl-rNL/strings.xml @@ -3,8 +3,6 @@ xDrip+ niet geïnstalleerd Kalibratie verzonden naar xDrip+ BG - Tijd om te eten - Tijd om te bolussen!\nVoer de boluswizard uit en maak de berekening opnieuw. Opdracht wordt nu uitgevoerd Basaalwaarde onder minimum. Profiel niet ingesteld! Toestemming diff --git a/implementation/src/main/res/values-no-rNO/strings.xml b/implementation/src/main/res/values-no-rNO/strings.xml index 78cbec0a4b..12bfa0f41b 100644 --- a/implementation/src/main/res/values-no-rNO/strings.xml +++ b/implementation/src/main/res/values-no-rNO/strings.xml @@ -3,8 +3,6 @@ xDrip+ ikke installert Kalibrering er sendt til xDrip+ BS - Nå må du spise - Tid for bolus!\nStart bolus-veiviser og gjør beregning på nytt. Kommandoen utføres akkurat nå Basalverdi under minimum. Profilen settes ikke! Tillatelse diff --git a/implementation/src/main/res/values-pl-rPL/strings.xml b/implementation/src/main/res/values-pl-rPL/strings.xml index 816d781504..01697b1533 100644 --- a/implementation/src/main/res/values-pl-rPL/strings.xml +++ b/implementation/src/main/res/values-pl-rPL/strings.xml @@ -3,8 +3,6 @@ xDrip+ nie zainstalowany Kalibracja przesłana do xDrip+ BG - Czas na jedzenie - Czas na bolus!\nUruchom Kalkulator bolusa aby ponownie wykonać obliczenia. Polecenie jest teraz wykonywane Wartość bazy poniżej minimum. Nie ustawiono profilu! Uprawnienia diff --git a/implementation/src/main/res/values-pt-rBR/strings.xml b/implementation/src/main/res/values-pt-rBR/strings.xml index f2767da327..cedd2a45c0 100644 --- a/implementation/src/main/res/values-pt-rBR/strings.xml +++ b/implementation/src/main/res/values-pt-rBR/strings.xml @@ -3,8 +3,6 @@ xDrip+ não está instalado Calibração enviada para o xDrip+ GLIC - Hora de comer - Hora do bolus!\nAbra o assistente de bolus e faça o cálculo novamente. Comando será executado agora Valor da basal abaixo do mínimo. Perfil não definido! Permissão diff --git a/implementation/src/main/res/values-pt-rPT/strings.xml b/implementation/src/main/res/values-pt-rPT/strings.xml index c54dab06f6..17e7004db1 100644 --- a/implementation/src/main/res/values-pt-rPT/strings.xml +++ b/implementation/src/main/res/values-pt-rPT/strings.xml @@ -3,8 +3,6 @@ xDrip+ não está instalado Calibração enviada para xDrip+ GLIC - Hora de comer - Hora de fazer o bólus!\nExecute o assistente de bólus e faça o cálculo novamente. Comando será executado agora Valor da basal abaixo do mínimo. Perfil não definido! Permissão diff --git a/implementation/src/main/res/values-ro-rRO/strings.xml b/implementation/src/main/res/values-ro-rRO/strings.xml index 15656fca6b..9b05ddf2a9 100644 --- a/implementation/src/main/res/values-ro-rRO/strings.xml +++ b/implementation/src/main/res/values-ro-rRO/strings.xml @@ -3,8 +3,6 @@ xDrip+ nu este instalat. Calibrare trimisă către xDrip+ Gl - Timpul sa mănânci - Timpul sa faci bolus!\nRuleaza Calculatorul de Bolus pentru a face calculele din nou. Se execută comanda chiar acum Valoarea bazalei este sub minimul permis. Profilul nu este setat! Permisiune diff --git a/implementation/src/main/res/values-ru-rRU/strings.xml b/implementation/src/main/res/values-ru-rRU/strings.xml index fdf3b00b2e..f0ed2effbf 100644 --- a/implementation/src/main/res/values-ru-rRU/strings.xml +++ b/implementation/src/main/res/values-ru-rRU/strings.xml @@ -3,8 +3,6 @@ xdrip+ не установлен Калибровка отправлена на xDrip+ ГК - Пора есть - Пора дать болюс!\nЗапустите помощник болюса и повторите расчет. Команда выполняется значение базала ниже минимума. профиль не создан! Права доступа diff --git a/implementation/src/main/res/values-sk-rSK/strings.xml b/implementation/src/main/res/values-sk-rSK/strings.xml index dfb4deef39..9aca0897f2 100644 --- a/implementation/src/main/res/values-sk-rSK/strings.xml +++ b/implementation/src/main/res/values-sk-rSK/strings.xml @@ -3,8 +3,6 @@ xDrip+ nie je nainštalovaný Kalibrácia odoslaná do xDrip+ Glykémia - Čas na jedlo - Čas na bolus!\nSpustite Bolusovú kalkulačku a urobte výpočet znova. Príkaz sa práve vykonáva Hodnota bazálu pod povoleným minimom. Profil nenastavený! Povolenie diff --git a/implementation/src/main/res/values-sv-rSE/strings.xml b/implementation/src/main/res/values-sv-rSE/strings.xml index 9cb53165f8..3896d8c132 100644 --- a/implementation/src/main/res/values-sv-rSE/strings.xml +++ b/implementation/src/main/res/values-sv-rSE/strings.xml @@ -3,8 +3,6 @@ xDrip+ inte installerat Kalibrering skickad till xDrip+ BG - Dags att äta - Dags för bolus!\nKör Bolusguiden och gör beräkningar igen. Kommando körs just nu Basal understiger miniminivå. Profilen sattes inte. Behörighet diff --git a/implementation/src/main/res/values-tr-rTR/strings.xml b/implementation/src/main/res/values-tr-rTR/strings.xml index 7cdb7e4005..a8372bce29 100644 --- a/implementation/src/main/res/values-tr-rTR/strings.xml +++ b/implementation/src/main/res/values-tr-rTR/strings.xml @@ -3,8 +3,6 @@ xDrip+ uygulaması yüklenmemiş Kalibrasyon xDrip+ a gönderildi - Yemek zamanı - Bolus zamanı!\nBolus sihirbazını çalıştırın ve yeniden hesaplama yapın. Komut şu anda çalıştırıldı Bazal değer minimumun altında. Profil ayarlanmadı! Yetki diff --git a/implementation/src/main/res/values-zh-rCN/strings.xml b/implementation/src/main/res/values-zh-rCN/strings.xml index 7d9b1e84cd..2c1ec08e5b 100644 --- a/implementation/src/main/res/values-zh-rCN/strings.xml +++ b/implementation/src/main/res/values-zh-rCN/strings.xml @@ -3,8 +3,6 @@ 没有安装xDrip+ 校准发送到 xDrip+ 血糖 - 吃饭时间 - 输注胰岛素时间到了!\n请运行大剂量向导,然后再次进行计算。 现在命令被执行了 基础率值低于泵支持的最小值。配置文件没有设定 权限 diff --git a/implementation/src/main/res/values/strings.xml b/implementation/src/main/res/values/strings.xml index d89f8e5c41..6df0df72ce 100644 --- a/implementation/src/main/res/values/strings.xml +++ b/implementation/src/main/res/values/strings.xml @@ -5,8 +5,6 @@ BG - Time to eat - Time to bolus!\nRun Bolus wizard and do calculation again. Command is executed right now Basal value below minimum. Profile not set! Permission diff --git a/implementation/src/test/java/info/nightscout/implementation/queue/CommandQueueImplementationTest.kt b/implementation/src/test/java/info/nightscout/implementation/queue/CommandQueueImplementationTest.kt index 0df16d3d8d..aaaa6657ce 100644 --- a/implementation/src/test/java/info/nightscout/implementation/queue/CommandQueueImplementationTest.kt +++ b/implementation/src/test/java/info/nightscout/implementation/queue/CommandQueueImplementationTest.kt @@ -85,7 +85,7 @@ class CommandQueueImplementationTest : TestBaseWithProfile() { } - val injector = HasAndroidInjector { + private val injector = HasAndroidInjector { AndroidInjector { if (it is Command) { it.aapsLogger = aapsLogger diff --git a/core/main/src/main/java/info/nightscout/core/aps/APSResultObject.kt b/plugins/aps/src/main/java/info/nightscout/plugins/aps/APSResultObject.kt similarity index 98% rename from core/main/src/main/java/info/nightscout/core/aps/APSResultObject.kt rename to plugins/aps/src/main/java/info/nightscout/plugins/aps/APSResultObject.kt index 1914d740f7..1e86c69c53 100644 --- a/core/main/src/main/java/info/nightscout/core/aps/APSResultObject.kt +++ b/plugins/aps/src/main/java/info/nightscout/plugins/aps/APSResultObject.kt @@ -1,9 +1,10 @@ -package info.nightscout.core.aps +package info.nightscout.plugins.aps import android.text.Spanned import dagger.android.HasAndroidInjector import info.nightscout.core.extensions.convertedToAbsolute import info.nightscout.core.extensions.convertedToPercent +import info.nightscout.core.ui.R import info.nightscout.database.entities.GlucoseValue import info.nightscout.interfaces.aps.APSResult import info.nightscout.interfaces.constraints.Constraint @@ -14,7 +15,7 @@ import info.nightscout.interfaces.plugin.ActivePlugin import info.nightscout.interfaces.profile.ProfileFunction import info.nightscout.interfaces.pump.defs.PumpDescription import info.nightscout.interfaces.utils.DecimalFormatter -import info.nightscout.interfaces.utils.HtmlHelper.fromHtml +import info.nightscout.interfaces.utils.HtmlHelper import info.nightscout.rx.logging.AAPSLogger import info.nightscout.rx.logging.LTag import info.nightscout.shared.interfaces.ResourceHelper @@ -41,7 +42,7 @@ open class APSResultObject @Inject constructor(val injector: HasAndroidInjector) @Inject lateinit var rh: ResourceHelper @Inject lateinit var dateUtil: DateUtil - var date: Long = 0 + override var date: Long = 0 override var reason: String = "" override var rate = 0.0 override var percent = 0 @@ -116,11 +117,11 @@ open class APSResultObject @Inject constructor(val injector: HasAndroidInjector) // reason ret += "" + rh.gs(info.nightscout.core.ui.R.string.reason) + ": " + reason.replace("<", "<").replace(">", ">") - return fromHtml(ret) + return HtmlHelper.fromHtml(ret) } return if (isCarbsRequired) { - fromHtml(carbsRequiredText) - } else fromHtml(rh.gs(info.nightscout.core.ui.R.string.nochangerequested)) + HtmlHelper.fromHtml(carbsRequiredText) + } else HtmlHelper.fromHtml(rh.gs(R.string.nochangerequested)) } override fun newAndClone(injector: HasAndroidInjector): APSResult { diff --git a/plugins/aps/src/main/java/info/nightscout/plugins/aps/di/ApsModule.kt b/plugins/aps/src/main/java/info/nightscout/plugins/aps/di/ApsModule.kt index 305571b652..db2efe7902 100644 --- a/plugins/aps/src/main/java/info/nightscout/plugins/aps/di/ApsModule.kt +++ b/plugins/aps/src/main/java/info/nightscout/plugins/aps/di/ApsModule.kt @@ -3,8 +3,10 @@ package info.nightscout.plugins.aps.di import dagger.Binds import dagger.Module import dagger.android.ContributesAndroidInjector +import info.nightscout.interfaces.aps.APSResult import info.nightscout.interfaces.aps.Loop import info.nightscout.interfaces.autotune.Autotune +import info.nightscout.plugins.aps.APSResultObject import info.nightscout.plugins.aps.OpenAPSFragment import info.nightscout.plugins.aps.loop.LoopPlugin import info.nightscout.plugins.general.autotune.AutotunePlugin @@ -22,6 +24,7 @@ import info.nightscout.plugins.general.autotune.AutotunePlugin abstract class ApsModule { @ContributesAndroidInjector abstract fun contributesOpenAPSFragment(): OpenAPSFragment + @ContributesAndroidInjector abstract fun apsResultInjector(): APSResultObject @Module interface Bindings { diff --git a/plugins/aps/src/main/java/info/nightscout/plugins/aps/di/LoopModule.kt b/plugins/aps/src/main/java/info/nightscout/plugins/aps/di/LoopModule.kt index e827400c1c..d04bee6705 100644 --- a/plugins/aps/src/main/java/info/nightscout/plugins/aps/di/LoopModule.kt +++ b/plugins/aps/src/main/java/info/nightscout/plugins/aps/di/LoopModule.kt @@ -2,10 +2,12 @@ package info.nightscout.plugins.aps.di import dagger.Module import dagger.android.ContributesAndroidInjector +import info.nightscout.plugins.aps.loop.CarbSuggestionReceiver +import info.nightscout.plugins.aps.loop.LoopFragment @Module @Suppress("unused") abstract class LoopModule { - @ContributesAndroidInjector abstract fun contributesLoopFragment(): info.nightscout.plugins.aps.loop.LoopFragment - @ContributesAndroidInjector abstract fun contributesCarbSuggestionReceiver(): info.nightscout.plugins.aps.loop.CarbSuggestionReceiver + @ContributesAndroidInjector abstract fun contributesLoopFragment(): LoopFragment + @ContributesAndroidInjector abstract fun contributesCarbSuggestionReceiver(): CarbSuggestionReceiver } \ No newline at end of file diff --git a/plugins/aps/src/main/java/info/nightscout/plugins/aps/openAPSAMA/DetermineBasalAdapterAMAJS.kt b/plugins/aps/src/main/java/info/nightscout/plugins/aps/openAPSAMA/DetermineBasalAdapterAMAJS.kt index 34c6253160..e65441e276 100644 --- a/plugins/aps/src/main/java/info/nightscout/plugins/aps/openAPSAMA/DetermineBasalAdapterAMAJS.kt +++ b/plugins/aps/src/main/java/info/nightscout/plugins/aps/openAPSAMA/DetermineBasalAdapterAMAJS.kt @@ -1,7 +1,7 @@ package info.nightscout.plugins.aps.openAPSAMA import dagger.android.HasAndroidInjector -import info.nightscout.core.aps.APSResultObject +import info.nightscout.plugins.aps.APSResultObject import info.nightscout.core.extensions.convertedToAbsolute import info.nightscout.core.extensions.getPassedDurationToTimeInMinutes import info.nightscout.core.extensions.plannedRemainingMinutes diff --git a/plugins/aps/src/main/java/info/nightscout/plugins/aps/openAPSAMA/DetermineBasalResultAMA.kt b/plugins/aps/src/main/java/info/nightscout/plugins/aps/openAPSAMA/DetermineBasalResultAMA.kt index e79082c38a..46560190a0 100644 --- a/plugins/aps/src/main/java/info/nightscout/plugins/aps/openAPSAMA/DetermineBasalResultAMA.kt +++ b/plugins/aps/src/main/java/info/nightscout/plugins/aps/openAPSAMA/DetermineBasalResultAMA.kt @@ -1,7 +1,7 @@ package info.nightscout.plugins.aps.openAPSAMA import dagger.android.HasAndroidInjector -import info.nightscout.core.aps.APSResultObject +import info.nightscout.plugins.aps.APSResultObject import info.nightscout.rx.logging.LTag import org.json.JSONException import org.json.JSONObject diff --git a/plugins/aps/src/main/java/info/nightscout/plugins/aps/openAPSSMB/DetermineBasalAdapterSMBJS.kt b/plugins/aps/src/main/java/info/nightscout/plugins/aps/openAPSSMB/DetermineBasalAdapterSMBJS.kt index 2adf294d8a..c882fc9e8f 100644 --- a/plugins/aps/src/main/java/info/nightscout/plugins/aps/openAPSSMB/DetermineBasalAdapterSMBJS.kt +++ b/plugins/aps/src/main/java/info/nightscout/plugins/aps/openAPSSMB/DetermineBasalAdapterSMBJS.kt @@ -1,7 +1,7 @@ package info.nightscout.plugins.aps.openAPSSMB import dagger.android.HasAndroidInjector -import info.nightscout.core.aps.APSResultObject +import info.nightscout.plugins.aps.APSResultObject import info.nightscout.core.extensions.convertedToAbsolute import info.nightscout.core.extensions.getPassedDurationToTimeInMinutes import info.nightscout.core.extensions.plannedRemainingMinutes diff --git a/plugins/aps/src/main/java/info/nightscout/plugins/aps/openAPSSMB/DetermineBasalResultSMB.kt b/plugins/aps/src/main/java/info/nightscout/plugins/aps/openAPSSMB/DetermineBasalResultSMB.kt index 446b09a952..6fa9f3d375 100644 --- a/plugins/aps/src/main/java/info/nightscout/plugins/aps/openAPSSMB/DetermineBasalResultSMB.kt +++ b/plugins/aps/src/main/java/info/nightscout/plugins/aps/openAPSSMB/DetermineBasalResultSMB.kt @@ -1,7 +1,7 @@ package info.nightscout.plugins.aps.openAPSSMB import dagger.android.HasAndroidInjector -import info.nightscout.core.aps.APSResultObject +import info.nightscout.plugins.aps.APSResultObject import info.nightscout.interfaces.aps.VariableSensitivityResult import info.nightscout.rx.logging.LTag import org.json.JSONException diff --git a/plugins/aps/src/main/java/info/nightscout/plugins/general/autotune/AutotuneFragment.kt b/plugins/aps/src/main/java/info/nightscout/plugins/general/autotune/AutotuneFragment.kt index e66b5db497..2bfd3b5e14 100644 --- a/plugins/aps/src/main/java/info/nightscout/plugins/general/autotune/AutotuneFragment.kt +++ b/plugins/aps/src/main/java/info/nightscout/plugins/general/autotune/AutotuneFragment.kt @@ -30,7 +30,7 @@ import info.nightscout.interfaces.logging.UserEntryLogger import info.nightscout.interfaces.plugin.ActivePlugin import info.nightscout.interfaces.profile.Profile import info.nightscout.interfaces.profile.ProfileFunction -import info.nightscout.interfaces.profile.ProfileInstantiator +import info.nightscout.interfaces.profile.Instantiator import info.nightscout.interfaces.profile.ProfileStore import info.nightscout.interfaces.ui.UiInteraction import info.nightscout.interfaces.utils.MidnightTime @@ -70,7 +70,7 @@ class AutotuneFragment : DaggerFragment() { @Inject lateinit var injector: HasAndroidInjector @Inject lateinit var aapsSchedulers: AapsSchedulers @Inject lateinit var uiInteraction: UiInteraction - @Inject lateinit var profileInstantiator: ProfileInstantiator + @Inject lateinit var instantiator: Instantiator private var disposable: CompositeDisposable = CompositeDisposable() private var handler = Handler(HandlerThread(this::class.simpleName + "Handler").also { it.start() }.looper) @@ -97,7 +97,7 @@ class AutotuneFragment : DaggerFragment() { if (autotunePlugin.lastNbDays.isEmpty()) autotunePlugin.lastNbDays = sp.getInt(info.nightscout.core.utils.R.string.key_autotune_default_tune_days, 5).toString() val defaultValue = sp.getInt(info.nightscout.core.utils.R.string.key_autotune_default_tune_days, 5).toDouble() - profileStore = activePlugin.activeProfileSource.profile ?: profileInstantiator.storeInstance(JSONObject()) + profileStore = activePlugin.activeProfileSource.profile ?: instantiator.provideProfileStore(JSONObject()) profileName = if (binding.profileList.text.toString() == rh.gs(info.nightscout.core.ui.R.string.active)) "" else binding.profileList.text.toString() profileFunction.getProfile()?.let { currentProfile -> profile = ATProfile(profileStore.getSpecificProfile(profileName)?.let { ProfileSealed.Pure(it) } ?: currentProfile, LocalInsulin(""), injector) @@ -295,7 +295,7 @@ class AutotuneFragment : DaggerFragment() { @Synchronized private fun updateGui() { _binding ?: return - profileStore = activePlugin.activeProfileSource.profile ?: profileInstantiator.storeInstance(JSONObject()) + profileStore = activePlugin.activeProfileSource.profile ?: instantiator.provideProfileStore(JSONObject()) profileName = if (binding.profileList.text.toString() == rh.gs(info.nightscout.core.ui.R.string.active)) "" else binding.profileList.text.toString() profileFunction.getProfile()?.let { currentProfile -> profile = ATProfile(profileStore.getSpecificProfile(profileName)?.let { ProfileSealed.Pure(it) } ?: currentProfile, LocalInsulin(""), injector) diff --git a/plugins/aps/src/main/java/info/nightscout/plugins/general/autotune/AutotunePlugin.kt b/plugins/aps/src/main/java/info/nightscout/plugins/general/autotune/AutotunePlugin.kt index 35349cc00d..50c4ab61c2 100644 --- a/plugins/aps/src/main/java/info/nightscout/plugins/general/autotune/AutotunePlugin.kt +++ b/plugins/aps/src/main/java/info/nightscout/plugins/general/autotune/AutotunePlugin.kt @@ -16,7 +16,7 @@ import info.nightscout.interfaces.plugin.PluginDescription import info.nightscout.interfaces.plugin.PluginType import info.nightscout.interfaces.profile.Profile import info.nightscout.interfaces.profile.ProfileFunction -import info.nightscout.interfaces.profile.ProfileInstantiator +import info.nightscout.interfaces.profile.Instantiator import info.nightscout.interfaces.utils.JsonHelper import info.nightscout.interfaces.utils.MidnightTime import info.nightscout.plugins.aps.R @@ -61,7 +61,7 @@ class AutotunePlugin @Inject constructor( private val config: Config, private val uel: UserEntryLogger, aapsLogger: AAPSLogger, - private val profileInstantiator: ProfileInstantiator + private val instantiator: Instantiator ) : PluginBase( PluginDescription() .mainType(PluginType.GENERAL) @@ -325,7 +325,7 @@ class AutotunePlugin @Inject constructor( if (newProfile == null) return val profilePlugin = activePlugin.activeProfileSource val circadian = sp.getBoolean(info.nightscout.core.utils.R.string.key_autotune_circadian_ic_isf, false) - val profileStore = activePlugin.activeProfileSource.profile ?: profileInstantiator.storeInstance(JSONObject()) + val profileStore = activePlugin.activeProfileSource.profile ?: instantiator.provideProfileStore(JSONObject()) val profileList: ArrayList = profileStore.getProfileList() var indexLocalProfile = -1 for (p in profileList.indices) diff --git a/plugins/aps/src/main/java/info/nightscout/plugins/general/autotune/data/ATProfile.kt b/plugins/aps/src/main/java/info/nightscout/plugins/general/autotune/data/ATProfile.kt index d6ecea8797..f8b139736a 100644 --- a/plugins/aps/src/main/java/info/nightscout/plugins/general/autotune/data/ATProfile.kt +++ b/plugins/aps/src/main/java/info/nightscout/plugins/general/autotune/data/ATProfile.kt @@ -12,7 +12,7 @@ import info.nightscout.interfaces.insulin.Insulin import info.nightscout.interfaces.plugin.ActivePlugin import info.nightscout.interfaces.profile.Profile import info.nightscout.interfaces.profile.ProfileFunction -import info.nightscout.interfaces.profile.ProfileInstantiator +import info.nightscout.interfaces.profile.Instantiator import info.nightscout.interfaces.profile.ProfileStore import info.nightscout.interfaces.profile.PureProfile import info.nightscout.interfaces.utils.Round @@ -38,7 +38,7 @@ class ATProfile(profile: Profile, var localInsulin: LocalInsulin, val injector: @Inject lateinit var config: Config @Inject lateinit var rxBus: RxBus @Inject lateinit var rh: ResourceHelper - @Inject lateinit var profileInstantiator: ProfileInstantiator + @Inject lateinit var instantiator: Instantiator var profile: ProfileSealed var circadianProfile: ProfileSealed @@ -179,7 +179,7 @@ class ATProfile(profile: Profile, var localInsulin: LocalInsulin, val injector: json.put("defaultProfile", profilename) json.put("store", store) json.put("startDate", dateUtil.toISOAsUTC(dateUtil.now())) - profileStore = profileInstantiator.storeInstance(json) + profileStore = instantiator.provideProfileStore(json) } catch (e: JSONException) { } return profileStore diff --git a/plugins/aps/src/test/java/info/nightscout/androidaps/TestBaseWithProfile.kt b/plugins/aps/src/test/java/info/nightscout/androidaps/TestBaseWithProfile.kt index ef46cbe7e0..7e219660cf 100644 --- a/plugins/aps/src/test/java/info/nightscout/androidaps/TestBaseWithProfile.kt +++ b/plugins/aps/src/test/java/info/nightscout/androidaps/TestBaseWithProfile.kt @@ -38,6 +38,7 @@ open class TestBaseWithProfile : TestBase() { @Mock lateinit var context: Context lateinit var dateUtil: DateUtil + lateinit var testPumpPlugin: TestPumpPlugin val rxBus = RxBus(aapsSchedulers, aapsLogger) val profileInjector = HasAndroidInjector { AndroidInjector { } } @@ -56,6 +57,8 @@ open class TestBaseWithProfile : TestBase() { dateUtil = Mockito.spy(DateUtil(context)) `when`(dateUtil.now()).thenReturn(1656358822000) validProfile = ProfileSealed.Pure(pureProfileFromJson(JSONObject(validProfileJSON), dateUtil)!!) + testPumpPlugin = TestPumpPlugin(profileInjector) + `when`(activePluginProvider.activePump).thenReturn(testPumpPlugin) effectiveProfileSwitch = EffectiveProfileSwitch( timestamp = dateUtil.now(), basalBlocks = validProfile.basalBlocks, diff --git a/core/main/src/test/java/info/nightscout/androidaps/plugins/aps/loop/APSResultTest.kt b/plugins/aps/src/test/java/info/nightscout/plugins/aps/loop/APSResultTest.kt similarity index 84% rename from core/main/src/test/java/info/nightscout/androidaps/plugins/aps/loop/APSResultTest.kt rename to plugins/aps/src/test/java/info/nightscout/plugins/aps/loop/APSResultTest.kt index 758c2260de..f747c1a22d 100644 --- a/core/main/src/test/java/info/nightscout/androidaps/plugins/aps/loop/APSResultTest.kt +++ b/plugins/aps/src/test/java/info/nightscout/plugins/aps/loop/APSResultTest.kt @@ -1,17 +1,16 @@ -package info.nightscout.androidaps.plugins.aps.loop +package info.nightscout.plugins.aps.loop import dagger.android.AndroidInjector import dagger.android.HasAndroidInjector import info.nightscout.androidaps.TestBaseWithProfile -import info.nightscout.core.aps.APSResultObject import info.nightscout.database.entities.TemporaryBasal import info.nightscout.interfaces.aps.APSResult import info.nightscout.interfaces.constraints.Constraint import info.nightscout.interfaces.constraints.Constraints -import info.nightscout.interfaces.iob.IobCobCalculator import info.nightscout.interfaces.pump.defs.PumpType import info.nightscout.interfaces.utils.JsonHelper.safeGetDouble -import org.junit.Assert +import info.nightscout.shared.sharedPreferences.SP +import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test import org.mockito.ArgumentMatchers @@ -21,7 +20,7 @@ import org.mockito.Mockito.`when` class APSResultTest : TestBaseWithProfile() { @Mock lateinit var constraints: Constraints - @Mock lateinit var iobCobCalculator: IobCobCalculator + @Mock lateinit var sp: SP private val injector = HasAndroidInjector { AndroidInjector { } } @@ -55,7 +54,7 @@ class APSResultTest : TestBaseWithProfile() { @Test fun changeRequestedTest() { - val apsResult = APSResultObject { AndroidInjector { } } + val apsResult = info.nightscout.plugins.aps.APSResultObject { AndroidInjector { } } .also { it.aapsLogger = aapsLogger it.constraintChecker = constraints @@ -76,21 +75,21 @@ class APSResultTest : TestBaseWithProfile() { closedLoopEnabled.set(aapsLogger, true) `when`(iobCobCalculator.getTempBasalIncludingConvertedExtended(ArgumentMatchers.anyLong())).thenReturn(null) apsResult.tempBasalRequested(false) - Assert.assertEquals(false, apsResult.isChangeRequested) + Assertions.assertEquals(false, apsResult.isChangeRequested) apsResult.tempBasalRequested(true).percent(200).duration(30) - Assert.assertEquals(true, apsResult.isChangeRequested) + Assertions.assertEquals(true, apsResult.isChangeRequested) // open loop closedLoopEnabled.set(aapsLogger, false) // no change requested `when`(iobCobCalculator.getTempBasalIncludingConvertedExtended(ArgumentMatchers.anyLong())).thenReturn(null) apsResult.tempBasalRequested(false) - Assert.assertEquals(false, apsResult.isChangeRequested) + Assertions.assertEquals(false, apsResult.isChangeRequested) // request 100% when no temp is running `when`(iobCobCalculator.getTempBasalIncludingConvertedExtended(ArgumentMatchers.anyLong())).thenReturn(null) apsResult.tempBasalRequested(true).percent(100).duration(30) - Assert.assertEquals(false, apsResult.isChangeRequested) + Assertions.assertEquals(false, apsResult.isChangeRequested) // request equal temp `when`(iobCobCalculator.getTempBasalIncludingConvertedExtended(ArgumentMatchers.anyLong())).thenReturn( @@ -103,7 +102,7 @@ class APSResultTest : TestBaseWithProfile() { ) ) apsResult.tempBasalRequested(true).percent(70).duration(30) - Assert.assertEquals(false, apsResult.isChangeRequested) + Assertions.assertEquals(false, apsResult.isChangeRequested) // request zero temp `when`(iobCobCalculator.getTempBasalIncludingConvertedExtended(ArgumentMatchers.anyLong())).thenReturn( @@ -116,7 +115,7 @@ class APSResultTest : TestBaseWithProfile() { ) ) apsResult.tempBasalRequested(true).percent(0).duration(30) - Assert.assertEquals(true, apsResult.isChangeRequested) + Assertions.assertEquals(true, apsResult.isChangeRequested) // request high temp `when`(iobCobCalculator.getTempBasalIncludingConvertedExtended(ArgumentMatchers.anyLong())).thenReturn( @@ -129,7 +128,7 @@ class APSResultTest : TestBaseWithProfile() { ) ) apsResult.tempBasalRequested(true).percent(200).duration(30) - Assert.assertEquals(true, apsResult.isChangeRequested) + Assertions.assertEquals(true, apsResult.isChangeRequested) // request slightly different temp `when`(iobCobCalculator.getTempBasalIncludingConvertedExtended(ArgumentMatchers.anyLong())).thenReturn( @@ -142,7 +141,7 @@ class APSResultTest : TestBaseWithProfile() { ) ) apsResult.tempBasalRequested(true).percent(80).duration(30) - Assert.assertEquals(false, apsResult.isChangeRequested) + Assertions.assertEquals(false, apsResult.isChangeRequested) // request different temp `when`(iobCobCalculator.getTempBasalIncludingConvertedExtended(ArgumentMatchers.anyLong())).thenReturn( @@ -155,7 +154,7 @@ class APSResultTest : TestBaseWithProfile() { ) ) apsResult.tempBasalRequested(true).percent(120).duration(30) - Assert.assertEquals(true, apsResult.isChangeRequested) + Assertions.assertEquals(true, apsResult.isChangeRequested) // it should work with absolute temps too // request different temp @@ -169,7 +168,7 @@ class APSResultTest : TestBaseWithProfile() { ) ) apsResult.tempBasalRequested(true).percent(100).duration(30) - Assert.assertEquals(false, apsResult.isChangeRequested) + Assertions.assertEquals(false, apsResult.isChangeRequested) `when`(iobCobCalculator.getTempBasalIncludingConvertedExtended(ArgumentMatchers.anyLong())).thenReturn( TemporaryBasal( timestamp = 0, @@ -180,7 +179,7 @@ class APSResultTest : TestBaseWithProfile() { ) ) apsResult.tempBasalRequested(true).percent(50).duration(30) - Assert.assertEquals(true, apsResult.isChangeRequested) + Assertions.assertEquals(true, apsResult.isChangeRequested) // **** ABSOLUTE pump **** testPumpPlugin.pumpDescription.fillFor(PumpType.MEDTRONIC_515_715) // U/h based @@ -191,7 +190,7 @@ class APSResultTest : TestBaseWithProfile() { // request 100% when no temp is running `when`(iobCobCalculator.getTempBasalIncludingConvertedExtended(ArgumentMatchers.anyLong())).thenReturn(null) apsResult.tempBasalRequested(true).rate(1.0).duration(30) - Assert.assertEquals(false, apsResult.isChangeRequested) + Assertions.assertEquals(false, apsResult.isChangeRequested) // request equal temp `when`(iobCobCalculator.getTempBasalIncludingConvertedExtended(ArgumentMatchers.anyLong())).thenReturn( @@ -204,7 +203,7 @@ class APSResultTest : TestBaseWithProfile() { ) ) apsResult.tempBasalRequested(true).rate(2.0).duration(30) - Assert.assertEquals(false, apsResult.isChangeRequested) + Assertions.assertEquals(false, apsResult.isChangeRequested) `when`(iobCobCalculator.getTempBasalIncludingConvertedExtended(ArgumentMatchers.anyLong())).thenReturn( TemporaryBasal( timestamp = 0, @@ -215,7 +214,7 @@ class APSResultTest : TestBaseWithProfile() { ) ) apsResult.tempBasalRequested(true).rate(2.0).duration(30) - Assert.assertEquals(false, apsResult.isChangeRequested) + Assertions.assertEquals(false, apsResult.isChangeRequested) // request zero temp `when`(iobCobCalculator.getTempBasalIncludingConvertedExtended(ArgumentMatchers.anyLong())).thenReturn( @@ -228,7 +227,7 @@ class APSResultTest : TestBaseWithProfile() { ) ) apsResult.tempBasalRequested(true).rate(0.0).duration(30) - Assert.assertEquals(true, apsResult.isChangeRequested) + Assertions.assertEquals(true, apsResult.isChangeRequested) // request high temp `when`(iobCobCalculator.getTempBasalIncludingConvertedExtended(ArgumentMatchers.anyLong())).thenReturn( @@ -241,7 +240,7 @@ class APSResultTest : TestBaseWithProfile() { ) ) apsResult.tempBasalRequested(true).rate(35.0).duration(30) - Assert.assertEquals(true, apsResult.isChangeRequested) + Assertions.assertEquals(true, apsResult.isChangeRequested) // request slightly different temp `when`(iobCobCalculator.getTempBasalIncludingConvertedExtended(ArgumentMatchers.anyLong())).thenReturn( @@ -254,7 +253,7 @@ class APSResultTest : TestBaseWithProfile() { ) ) apsResult.tempBasalRequested(true).rate(1.2).duration(30) - Assert.assertEquals(false, apsResult.isChangeRequested) + Assertions.assertEquals(false, apsResult.isChangeRequested) // request different temp `when`(iobCobCalculator.getTempBasalIncludingConvertedExtended(ArgumentMatchers.anyLong())).thenReturn( @@ -267,7 +266,7 @@ class APSResultTest : TestBaseWithProfile() { ) ) apsResult.tempBasalRequested(true).rate(1.5).duration(30) - Assert.assertEquals(true, apsResult.isChangeRequested) + Assertions.assertEquals(true, apsResult.isChangeRequested) // it should work with percent temps too // request different temp @@ -281,7 +280,7 @@ class APSResultTest : TestBaseWithProfile() { ) ) apsResult.tempBasalRequested(true).rate(1.1).duration(30) - Assert.assertEquals(false, apsResult.isChangeRequested) + Assertions.assertEquals(false, apsResult.isChangeRequested) `when`(iobCobCalculator.getTempBasalIncludingConvertedExtended(ArgumentMatchers.anyLong())).thenReturn( TemporaryBasal( timestamp = 0, @@ -292,11 +291,11 @@ class APSResultTest : TestBaseWithProfile() { ) ) apsResult.tempBasalRequested(true).rate(0.5).duration(30) - Assert.assertEquals(true, apsResult.isChangeRequested) + Assertions.assertEquals(true, apsResult.isChangeRequested) } @Test fun cloneTest() { - val apsResult = APSResultObject { AndroidInjector { } } + val apsResult = info.nightscout.plugins.aps.APSResultObject { AndroidInjector { } } .also { it.aapsLogger = aapsLogger it.constraintChecker = constraints @@ -308,12 +307,12 @@ class APSResultTest : TestBaseWithProfile() { } apsResult.rate(10.0) val apsResult2 = apsResult.newAndClone(injector) - Assert.assertEquals(apsResult.rate, apsResult2.rate, 0.0) + Assertions.assertEquals(apsResult.rate, apsResult2.rate, 0.0) } @Test fun jsonTest() { closedLoopEnabled.set(aapsLogger, true) - val apsResult = APSResultObject { AndroidInjector { } } + val apsResult = info.nightscout.plugins.aps.APSResultObject { AndroidInjector { } } .also { it.aapsLogger = aapsLogger it.constraintChecker = constraints @@ -324,9 +323,9 @@ class APSResultTest : TestBaseWithProfile() { it.rh = rh } apsResult.rate(20.0).tempBasalRequested(true) - Assert.assertEquals(20.0, safeGetDouble(apsResult.json(), "rate"), 0.0) + Assertions.assertEquals(20.0, safeGetDouble(apsResult.json(), "rate"), 0.0) apsResult.rate(20.0).tempBasalRequested(false) - Assert.assertEquals(false, apsResult.json()?.has("rate")) + Assertions.assertEquals(false, apsResult.json()?.has("rate")) } @BeforeEach diff --git a/plugins/automation/build.gradle b/plugins/automation/build.gradle index 304374ca9c..c1b50cd96f 100644 --- a/plugins/automation/build.gradle +++ b/plugins/automation/build.gradle @@ -28,6 +28,7 @@ dependencies { implementation project(':core:interfaces') testImplementation project(':implementation') + testImplementation project(':plugins:main') api "androidx.constraintlayout:constraintlayout:$constraintlayout_version" api "com.google.android.gms:play-services-location:$play_services_location_version" diff --git a/plugins/automation/src/main/java/info/nightscout/automation/AutomationPlugin.kt b/plugins/automation/src/main/java/info/nightscout/automation/AutomationPlugin.kt index 7a19ef89ea..996345a787 100644 --- a/plugins/automation/src/main/java/info/nightscout/automation/AutomationPlugin.kt +++ b/plugins/automation/src/main/java/info/nightscout/automation/AutomationPlugin.kt @@ -17,6 +17,8 @@ import info.nightscout.automation.actions.ActionSendSMS import info.nightscout.automation.actions.ActionStartTempTarget import info.nightscout.automation.actions.ActionStopProcessing import info.nightscout.automation.actions.ActionStopTempTarget +import info.nightscout.automation.elements.Comparator +import info.nightscout.automation.elements.InputDelta import info.nightscout.automation.events.EventAutomationDataChanged import info.nightscout.automation.events.EventAutomationUpdateGui import info.nightscout.automation.events.EventLocationChange @@ -41,6 +43,7 @@ import info.nightscout.automation.triggers.TriggerTimeRange import info.nightscout.automation.triggers.TriggerWifiSsid import info.nightscout.core.utils.fabric.FabricPrivacy import info.nightscout.interfaces.Config +import info.nightscout.interfaces.GlucoseUnit import info.nightscout.interfaces.aps.Loop import info.nightscout.interfaces.automation.Automation import info.nightscout.interfaces.automation.AutomationEvent @@ -50,6 +53,7 @@ import info.nightscout.interfaces.plugin.PluginBase import info.nightscout.interfaces.plugin.PluginDescription import info.nightscout.interfaces.plugin.PluginType import info.nightscout.interfaces.queue.Callback +import info.nightscout.interfaces.utils.TimerUtil import info.nightscout.rx.AapsSchedulers import info.nightscout.rx.bus.RxBus import info.nightscout.rx.events.EventBTChange @@ -67,6 +71,7 @@ import io.reactivex.rxjava3.kotlin.plusAssign import org.json.JSONArray import org.json.JSONException import org.json.JSONObject +import java.text.DecimalFormat import java.util.Collections import javax.inject.Inject import javax.inject.Singleton @@ -87,7 +92,8 @@ class AutomationPlugin @Inject constructor( private val config: Config, private val locationServiceHelper: LocationServiceHelper, private val dateUtil: DateUtil, - private val activePlugin: ActivePlugin + private val activePlugin: ActivePlugin, + private val timerUtil: TimerUtil ) : PluginBase( PluginDescription() .mainType(PluginType.GENERAL) @@ -402,4 +408,109 @@ class AutomationPlugin @Inject constructor( TriggerBTDevice(injector), ) } + + /** + * Generate reminder via [info.nightscout.interfaces.utils.TimerUtil] + * + * @param seconds seconds to the future + */ + override fun scheduleTimeToEatReminder(seconds: Int) = + timerUtil.scheduleReminder(seconds, rh.gs(R.string.time_to_eat)) + + /** + * Create new Automation event to alarm when is time to eat + */ + override fun scheduleAutomationEventEatReminder() { + val event = AutomationEventObject(injector).apply { + title = rh.gs(info.nightscout.core.ui.R.string.bolus_advisor) + readOnly = true + systemAction = true + autoRemove = true + trigger = TriggerConnector(injector, TriggerConnector.Type.OR).apply { + + // Bg under 180 mgdl and dropping by 15 mgdl + list.add(TriggerConnector(injector, TriggerConnector.Type.AND).apply { + list.add(TriggerBg(injector, 180.0, GlucoseUnit.MGDL, Comparator.Compare.IS_LESSER)) + list.add(TriggerDelta(injector, InputDelta(rh, -15.0, -360.0, 360.0, 1.0, DecimalFormat("0"), InputDelta.DeltaType.DELTA), GlucoseUnit.MGDL, Comparator.Compare.IS_EQUAL_OR_LESSER)) + list.add( + TriggerDelta( + injector, + InputDelta(rh, -8.0, -360.0, 360.0, 1.0, DecimalFormat("0"), InputDelta.DeltaType.SHORT_AVERAGE), + GlucoseUnit.MGDL, + Comparator.Compare.IS_EQUAL_OR_LESSER + ) + ) + }) + // Bg under 160 mgdl and dropping by 9 mgdl + list.add(TriggerConnector(injector, TriggerConnector.Type.AND).apply { + list.add(TriggerBg(injector, 160.0, GlucoseUnit.MGDL, Comparator.Compare.IS_LESSER)) + list.add(TriggerDelta(injector, InputDelta(rh, -9.0, -360.0, 360.0, 1.0, DecimalFormat("0"), InputDelta.DeltaType.DELTA), GlucoseUnit.MGDL, Comparator.Compare.IS_EQUAL_OR_LESSER)) + list.add( + TriggerDelta( + injector, + InputDelta(rh, -5.0, -360.0, 360.0, 1.0, DecimalFormat("0"), InputDelta.DeltaType.SHORT_AVERAGE), + GlucoseUnit.MGDL, + Comparator.Compare.IS_EQUAL_OR_LESSER + ) + ) + }) + // Bg under 145 mgdl and dropping + list.add(TriggerConnector(injector, TriggerConnector.Type.AND).apply { + list.add(TriggerBg(injector, 145.0, GlucoseUnit.MGDL, Comparator.Compare.IS_LESSER)) + list.add(TriggerDelta(injector, InputDelta(rh, 0.0, -360.0, 360.0, 1.0, DecimalFormat("0"), InputDelta.DeltaType.DELTA), GlucoseUnit.MGDL, Comparator.Compare.IS_EQUAL_OR_LESSER)) + list.add( + TriggerDelta( + injector, + InputDelta(rh, 0.0, -360.0, 360.0, 1.0, DecimalFormat("0"), InputDelta.DeltaType.SHORT_AVERAGE), + GlucoseUnit.MGDL, + Comparator.Compare.IS_EQUAL_OR_LESSER + ) + ) + }) + } + actions.add(ActionAlarm(injector, rh.gs(R.string.time_to_eat))) + } + + addIfNotExists(event) + } + + /** + * Remove Automation event + */ + override fun removeAutomationEventEatReminder() { + val event = AutomationEventObject(injector).apply { + title = rh.gs(info.nightscout.core.ui.R.string.bolus_advisor) + } + removeIfExists(event) + } + + override fun scheduleAutomationEventBolusReminder() { + val event = AutomationEventObject(injector).apply { + title = rh.gs(info.nightscout.core.ui.R.string.bolus_reminder) + readOnly = true + systemAction = true + autoRemove = true + trigger = TriggerConnector(injector, TriggerConnector.Type.AND).apply { + + // Bg above 70 mgdl and delta positive mgdl + list.add(TriggerBg(injector, 70.0, GlucoseUnit.MGDL, Comparator.Compare.IS_EQUAL_OR_GREATER)) + list.add( + TriggerDelta( + injector, InputDelta(rh, 0.0, -360.0, 360.0, 1.0, DecimalFormat("0"), InputDelta.DeltaType.DELTA), GlucoseUnit.MGDL, Comparator.Compare + .IS_GREATER + ) + ) + } + actions.add(ActionAlarm(injector, rh.gs(R.string.time_to_bolus))) + } + + addIfNotExists(event) + } + + override fun removeAutomationEventBolusReminder() { + val event = AutomationEventObject(injector).apply { + title = rh.gs(info.nightscout.core.ui.R.string.bolus_reminder) + } + removeIfExists(event) + } } diff --git a/plugins/automation/src/main/res/values-af-rZA/strings.xml b/plugins/automation/src/main/res/values-af-rZA/strings.xml index 6071a92bd3..d2cba784db 100644 --- a/plugins/automation/src/main/res/values-af-rZA/strings.xml +++ b/plugins/automation/src/main/res/values-af-rZA/strings.xml @@ -87,4 +87,5 @@ Snellers: Vereistes: + diff --git a/plugins/automation/src/main/res/values-bg-rBG/strings.xml b/plugins/automation/src/main/res/values-bg-rBG/strings.xml index e6a790c349..2e8f09e316 100644 --- a/plugins/automation/src/main/res/values-bg-rBG/strings.xml +++ b/plugins/automation/src/main/res/values-bg-rBG/strings.xml @@ -117,4 +117,6 @@ П С Н + + Време е за болус!\nВключи болус съветника и направи изчисление отново. diff --git a/plugins/automation/src/main/res/values-ca-rES/strings.xml b/plugins/automation/src/main/res/values-ca-rES/strings.xml index da4005636f..9bc7028faa 100644 --- a/plugins/automation/src/main/res/values-ca-rES/strings.xml +++ b/plugins/automation/src/main/res/values-ca-rES/strings.xml @@ -117,4 +117,6 @@ Dv Ds Dg + + Hora d’aplicar bolus!\nExecuteu l\'assistent de bolus i torneu a fer els càlculs. diff --git a/plugins/automation/src/main/res/values-cs-rCZ/strings.xml b/plugins/automation/src/main/res/values-cs-rCZ/strings.xml index 42e3c7c566..3d2f3e84ab 100644 --- a/plugins/automation/src/main/res/values-cs-rCZ/strings.xml +++ b/plugins/automation/src/main/res/values-cs-rCZ/strings.xml @@ -126,4 +126,7 @@ So Ne + + Čas k jídlu!\nSpusťte Bolusovou kalkulačku a proveďte výpočet znovu. + Čas na bolus!\nSpusťte Bolusovou kalkulačku a proveďte výpočet znovu. diff --git a/plugins/automation/src/main/res/values-da-rDK/strings.xml b/plugins/automation/src/main/res/values-da-rDK/strings.xml index 5f965468d2..8dd3478e8c 100644 --- a/plugins/automation/src/main/res/values-da-rDK/strings.xml +++ b/plugins/automation/src/main/res/values-da-rDK/strings.xml @@ -126,4 +126,6 @@ Fr + + Tid til bolus!\nKør Bolus-guiden og lav beregningen igen. diff --git a/plugins/automation/src/main/res/values-de-rDE/strings.xml b/plugins/automation/src/main/res/values-de-rDE/strings.xml index 401e8fb630..d7468ab9bf 100644 --- a/plugins/automation/src/main/res/values-de-rDE/strings.xml +++ b/plugins/automation/src/main/res/values-de-rDE/strings.xml @@ -126,4 +126,6 @@ Fr Sa So + + Zeit für den nächsten Bolus!\nFühre den Bolus-Assistenten aus, um die Berechnung erneut durchzuführen. diff --git a/plugins/automation/src/main/res/values-el-rGR/strings.xml b/plugins/automation/src/main/res/values-el-rGR/strings.xml index 0a64d4244e..3639370d1a 100644 --- a/plugins/automation/src/main/res/values-el-rGR/strings.xml +++ b/plugins/automation/src/main/res/values-el-rGR/strings.xml @@ -88,4 +88,5 @@ Ενεργοποιήσεις: Προϋποθέσεις: + diff --git a/plugins/automation/src/main/res/values-es-rES/strings.xml b/plugins/automation/src/main/res/values-es-rES/strings.xml index 355310430c..0955fe90a1 100644 --- a/plugins/automation/src/main/res/values-es-rES/strings.xml +++ b/plugins/automation/src/main/res/values-es-rES/strings.xml @@ -126,4 +126,7 @@ V S D + + ¡Hora de comer!\nEjecuta el asistente de bolo y calcula de nuevo. + ¡Hora de comer!\nEjecutar el asistente de bolo y calcular de nuevo. diff --git a/plugins/automation/src/main/res/values-fr-rFR/strings.xml b/plugins/automation/src/main/res/values-fr-rFR/strings.xml index 3d4d01bafd..f93499276f 100644 --- a/plugins/automation/src/main/res/values-fr-rFR/strings.xml +++ b/plugins/automation/src/main/res/values-fr-rFR/strings.xml @@ -126,4 +126,6 @@ V S D + + Il est temps de faire le bolus !\nExécutez l\'Assistant et faites de nouveau le calcul. diff --git a/plugins/automation/src/main/res/values-ga-rIE/strings.xml b/plugins/automation/src/main/res/values-ga-rIE/strings.xml index 7460b5a67a..64389c84ce 100644 --- a/plugins/automation/src/main/res/values-ga-rIE/strings.xml +++ b/plugins/automation/src/main/res/values-ga-rIE/strings.xml @@ -17,4 +17,5 @@ Riamh Gníomh: + diff --git a/plugins/automation/src/main/res/values-hr-rHR/strings.xml b/plugins/automation/src/main/res/values-hr-rHR/strings.xml index 8146812719..a9e556cff8 100644 --- a/plugins/automation/src/main/res/values-hr-rHR/strings.xml +++ b/plugins/automation/src/main/res/values-hr-rHR/strings.xml @@ -13,4 +13,6 @@ Pe Su Ne + + Vrijeme je za bolus!\nPokrenite čarobnjak za bolus i ponovite izračun. diff --git a/plugins/automation/src/main/res/values-hu-rHU/strings.xml b/plugins/automation/src/main/res/values-hu-rHU/strings.xml index 94dc40020d..54989ab1ed 100644 --- a/plugins/automation/src/main/res/values-hu-rHU/strings.xml +++ b/plugins/automation/src/main/res/values-hu-rHU/strings.xml @@ -26,4 +26,5 @@ Feladat neve SZERK + diff --git a/plugins/automation/src/main/res/values-it-rIT/strings.xml b/plugins/automation/src/main/res/values-it-rIT/strings.xml index 3a5f9103b5..996a86be31 100644 --- a/plugins/automation/src/main/res/values-it-rIT/strings.xml +++ b/plugins/automation/src/main/res/values-it-rIT/strings.xml @@ -126,4 +126,6 @@ V S D + + Tempo di fare un bolo!\nEsegui il calcolatore e fai di nuovi i calcoli. diff --git a/plugins/automation/src/main/res/values-iw-rIL/strings.xml b/plugins/automation/src/main/res/values-iw-rIL/strings.xml index 8f86752a1e..c91d3d325a 100644 --- a/plugins/automation/src/main/res/values-iw-rIL/strings.xml +++ b/plugins/automation/src/main/res/values-iw-rIL/strings.xml @@ -126,4 +126,6 @@ ו\' ש\' א\' + + זמן להזריק בולוס!\nהשתמשו במחשבון וחשבו מחדש. diff --git a/plugins/automation/src/main/res/values-ja-rJP/strings.xml b/plugins/automation/src/main/res/values-ja-rJP/strings.xml index 2a4513dffb..49a964a9e8 100644 --- a/plugins/automation/src/main/res/values-ja-rJP/strings.xml +++ b/plugins/automation/src/main/res/values-ja-rJP/strings.xml @@ -2,4 +2,5 @@ デルタ + diff --git a/plugins/automation/src/main/res/values-ko-rKR/strings.xml b/plugins/automation/src/main/res/values-ko-rKR/strings.xml index f4fe1d9b87..6ae81d9407 100644 --- a/plugins/automation/src/main/res/values-ko-rKR/strings.xml +++ b/plugins/automation/src/main/res/values-ko-rKR/strings.xml @@ -111,4 +111,5 @@ + diff --git a/plugins/automation/src/main/res/values-lt-rLT/strings.xml b/plugins/automation/src/main/res/values-lt-rLT/strings.xml index dc5742b296..4c9e4b76fd 100644 --- a/plugins/automation/src/main/res/values-lt-rLT/strings.xml +++ b/plugins/automation/src/main/res/values-lt-rLT/strings.xml @@ -119,4 +119,6 @@ Pn Š S + + Laikas bolusui!\nĮjunkite Skaičiuotuvą ir pakartokite skaičiavimus. diff --git a/plugins/automation/src/main/res/values-nl-rNL/strings.xml b/plugins/automation/src/main/res/values-nl-rNL/strings.xml index dba944f584..1b09437c7a 100644 --- a/plugins/automation/src/main/res/values-nl-rNL/strings.xml +++ b/plugins/automation/src/main/res/values-nl-rNL/strings.xml @@ -126,4 +126,6 @@ F S S + + Tijd om te bolussen!\nVoer de boluswizard uit en maak de berekening opnieuw. diff --git a/plugins/automation/src/main/res/values-no-rNO/strings.xml b/plugins/automation/src/main/res/values-no-rNO/strings.xml index c61bf347d3..07adfb90c3 100644 --- a/plugins/automation/src/main/res/values-no-rNO/strings.xml +++ b/plugins/automation/src/main/res/values-no-rNO/strings.xml @@ -126,4 +126,7 @@ F L S + + Nå må du spise!\nBruk bolus-veiviser og gjør beregning på nytt. + Tid for bolus!\nStart bolus-veiviser og gjør beregning på nytt. diff --git a/plugins/automation/src/main/res/values-pl-rPL/strings.xml b/plugins/automation/src/main/res/values-pl-rPL/strings.xml index b4060b648d..b2aa7f7531 100644 --- a/plugins/automation/src/main/res/values-pl-rPL/strings.xml +++ b/plugins/automation/src/main/res/values-pl-rPL/strings.xml @@ -122,4 +122,6 @@ P S N + + Czas na bolus!\nUruchom Kalkulator bolusa aby ponownie wykonać obliczenia. diff --git a/plugins/automation/src/main/res/values-pt-rBR/strings.xml b/plugins/automation/src/main/res/values-pt-rBR/strings.xml index 8e021ba8fc..43c664df79 100644 --- a/plugins/automation/src/main/res/values-pt-rBR/strings.xml +++ b/plugins/automation/src/main/res/values-pt-rBR/strings.xml @@ -126,4 +126,6 @@ 6a Sáb Dom + + Hora do bolus!\nAbra o assistente de bolus e faça o cálculo novamente. diff --git a/plugins/automation/src/main/res/values-pt-rPT/strings.xml b/plugins/automation/src/main/res/values-pt-rPT/strings.xml index f4771665f5..83970b1316 100644 --- a/plugins/automation/src/main/res/values-pt-rPT/strings.xml +++ b/plugins/automation/src/main/res/values-pt-rPT/strings.xml @@ -117,4 +117,6 @@ Se Sa D + + Hora de fazer o bólus!\nExecute o assistente de bólus e faça o cálculo novamente. diff --git a/plugins/automation/src/main/res/values-ro-rRO/strings.xml b/plugins/automation/src/main/res/values-ro-rRO/strings.xml index 2736a14a20..fc3fd75f29 100644 --- a/plugins/automation/src/main/res/values-ro-rRO/strings.xml +++ b/plugins/automation/src/main/res/values-ro-rRO/strings.xml @@ -119,4 +119,6 @@ V S D + + Timpul sa faci bolus!\nRuleaza Calculatorul de Bolus pentru a face calculele din nou. diff --git a/plugins/automation/src/main/res/values-ru-rRU/strings.xml b/plugins/automation/src/main/res/values-ru-rRU/strings.xml index 2362aa54e9..94eb511d5d 100644 --- a/plugins/automation/src/main/res/values-ru-rRU/strings.xml +++ b/plugins/automation/src/main/res/values-ru-rRU/strings.xml @@ -126,4 +126,6 @@ Пт Сб Вс + + Пора дать болюс!\nЗапустите помощник болюса и повторите расчет. diff --git a/plugins/automation/src/main/res/values-sk-rSK/strings.xml b/plugins/automation/src/main/res/values-sk-rSK/strings.xml index 6ed3b36e83..bc2f95cded 100644 --- a/plugins/automation/src/main/res/values-sk-rSK/strings.xml +++ b/plugins/automation/src/main/res/values-sk-rSK/strings.xml @@ -126,4 +126,6 @@ Pi So Ne + + Čas na bolus!\nSpustite Bolusovú kalkulačku a urobte výpočet znova. diff --git a/plugins/automation/src/main/res/values-sr-rCS/strings.xml b/plugins/automation/src/main/res/values-sr-rCS/strings.xml index e6bafe046d..b73b1e1ef6 100644 --- a/plugins/automation/src/main/res/values-sr-rCS/strings.xml +++ b/plugins/automation/src/main/res/values-sr-rCS/strings.xml @@ -2,4 +2,5 @@ Delta + diff --git a/plugins/automation/src/main/res/values-sv-rSE/strings.xml b/plugins/automation/src/main/res/values-sv-rSE/strings.xml index 66e28d04e2..aa0e8d2e4b 100644 --- a/plugins/automation/src/main/res/values-sv-rSE/strings.xml +++ b/plugins/automation/src/main/res/values-sv-rSE/strings.xml @@ -117,4 +117,6 @@ F L S + + Dags för bolus!\nKör Bolusguiden och gör beräkningar igen. diff --git a/plugins/automation/src/main/res/values-tr-rTR/strings.xml b/plugins/automation/src/main/res/values-tr-rTR/strings.xml index d3994580c3..66d19eade8 100644 --- a/plugins/automation/src/main/res/values-tr-rTR/strings.xml +++ b/plugins/automation/src/main/res/values-tr-rTR/strings.xml @@ -126,4 +126,6 @@ Cum Cmt Paz + + Bolus zamanı!\nBolus sihirbazını çalıştırın ve yeniden hesaplama yapın. diff --git a/plugins/automation/src/main/res/values-zh-rCN/strings.xml b/plugins/automation/src/main/res/values-zh-rCN/strings.xml index 2ba9c3f206..80659e0799 100644 --- a/plugins/automation/src/main/res/values-zh-rCN/strings.xml +++ b/plugins/automation/src/main/res/values-zh-rCN/strings.xml @@ -125,4 +125,6 @@ 周五 周六 周日 + + 输注胰岛素时间到了!\n请运行大剂量向导,然后再次进行计算。 diff --git a/plugins/automation/src/main/res/values/strings.xml b/plugins/automation/src/main/res/values/strings.xml index 377a27bc7b..7764be8f19 100644 --- a/plugins/automation/src/main/res/values/strings.xml +++ b/plugins/automation/src/main/res/values/strings.xml @@ -131,4 +131,8 @@ S S + + Time to eat!\nRun Bolus wizard and do calculation again. + Time to bolus!\nRun Bolus wizard and do calculation again. + \ No newline at end of file diff --git a/implementation/src/test/java/info/nightscout/implementation/BolusTimerImplTest.kt b/plugins/automation/src/test/java/info/nightscout/automation/BolusTimerImplTest.kt similarity index 71% rename from implementation/src/test/java/info/nightscout/implementation/BolusTimerImplTest.kt rename to plugins/automation/src/test/java/info/nightscout/automation/BolusTimerImplTest.kt index 8a97bad30a..799a48864d 100644 --- a/implementation/src/test/java/info/nightscout/implementation/BolusTimerImplTest.kt +++ b/plugins/automation/src/test/java/info/nightscout/automation/BolusTimerImplTest.kt @@ -1,10 +1,9 @@ -package info.nightscout.implementation +package info.nightscout.automation import android.content.Context import dagger.android.AndroidInjector import dagger.android.HasAndroidInjector import info.nightscout.androidaps.TestBase -import info.nightscout.automation.AutomationPlugin import info.nightscout.automation.services.LocationServiceHelper import info.nightscout.automation.triggers.Trigger import info.nightscout.core.utils.fabric.FabricPrivacy @@ -14,16 +13,17 @@ import info.nightscout.interfaces.aps.Loop import info.nightscout.interfaces.constraints.Constraints import info.nightscout.interfaces.plugin.ActivePlugin import info.nightscout.interfaces.profile.ProfileFunction +import info.nightscout.interfaces.utils.TimerUtil import info.nightscout.rx.bus.RxBus import info.nightscout.shared.interfaces.ResourceHelper import info.nightscout.shared.sharedPreferences.SP import info.nightscout.shared.utils.DateUtil -import org.junit.Assert +import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test +import org.mockito.ArgumentMatchers.anyInt import org.mockito.Mock -import org.mockito.Mockito.anyInt -import org.mockito.Mockito.`when` +import org.mockito.Mockito class BolusTimerImplTest : TestBase() { @@ -38,6 +38,7 @@ class BolusTimerImplTest : TestBase() { @Mock lateinit var locationServiceHelper: LocationServiceHelper @Mock lateinit var activePlugin: ActivePlugin @Mock lateinit var profileFunction: ProfileFunction + @Mock lateinit var timerUtil: TimerUtil private val injector = HasAndroidInjector { AndroidInjector { @@ -50,23 +51,22 @@ class BolusTimerImplTest : TestBase() { private lateinit var dateUtil: DateUtil private lateinit var automationPlugin: AutomationPlugin - private lateinit var sut: BolusTimerImpl @BeforeEach fun init() { - `when`(rh.gs(anyInt())).thenReturn("") - `when`(profileFunction.getUnits()).thenReturn(GlucoseUnit.MGDL) + Mockito.`when`(rh.gs(anyInt())).thenReturn("") + Mockito.`when`(profileFunction.getUnits()).thenReturn(GlucoseUnit.MGDL) dateUtil = DateUtil(context) - automationPlugin = AutomationPlugin(injector, rh, context, sp, fabricPrivacy, loop, rxBus, constraintChecker, aapsLogger, aapsSchedulers, config, locationServiceHelper, dateUtil, activePlugin) - sut = BolusTimerImpl(injector, rh, automationPlugin) + automationPlugin = AutomationPlugin(injector, rh, context, sp, fabricPrivacy, loop, rxBus, constraintChecker, aapsLogger, aapsSchedulers, config, locationServiceHelper, dateUtil, + activePlugin, timerUtil) } @Test fun doTest() { - Assert.assertEquals(0, automationPlugin.size()) - sut.scheduleAutomationEventBolusReminder() - Assert.assertEquals(1, automationPlugin.size()) - sut.removeAutomationEventBolusReminder() - Assert.assertEquals(0, automationPlugin.size()) + Assertions.assertEquals(0, automationPlugin.size()) + automationPlugin.scheduleAutomationEventBolusReminder() + Assertions.assertEquals(1, automationPlugin.size()) + automationPlugin.removeAutomationEventBolusReminder() + Assertions.assertEquals(0, automationPlugin.size()) } } \ No newline at end of file diff --git a/implementation/src/test/java/info/nightscout/implementation/CarbTimerImplTest.kt b/plugins/automation/src/test/java/info/nightscout/automation/CarbTimerImplTest.kt similarity index 73% rename from implementation/src/test/java/info/nightscout/implementation/CarbTimerImplTest.kt rename to plugins/automation/src/test/java/info/nightscout/automation/CarbTimerImplTest.kt index 87d82e2961..00bb7d4451 100644 --- a/implementation/src/test/java/info/nightscout/implementation/CarbTimerImplTest.kt +++ b/plugins/automation/src/test/java/info/nightscout/automation/CarbTimerImplTest.kt @@ -1,10 +1,9 @@ -package info.nightscout.implementation +package info.nightscout.automation import android.content.Context import dagger.android.AndroidInjector import dagger.android.HasAndroidInjector import info.nightscout.androidaps.TestBase -import info.nightscout.automation.AutomationPlugin import info.nightscout.automation.services.LocationServiceHelper import info.nightscout.automation.triggers.Trigger import info.nightscout.core.utils.fabric.FabricPrivacy @@ -19,14 +18,13 @@ import info.nightscout.rx.bus.RxBus import info.nightscout.shared.interfaces.ResourceHelper import info.nightscout.shared.sharedPreferences.SP import info.nightscout.shared.utils.DateUtil -import org.junit.Assert +import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test +import org.mockito.ArgumentMatchers.any +import org.mockito.ArgumentMatchers.anyInt import org.mockito.Mock import org.mockito.Mockito -import org.mockito.Mockito.any -import org.mockito.Mockito.anyInt -import org.mockito.Mockito.`when` class CarbTimerImplTest : TestBase() { @@ -54,27 +52,26 @@ class CarbTimerImplTest : TestBase() { private lateinit var timerUtil: TimerUtil private lateinit var automationPlugin: AutomationPlugin - private lateinit var sut: CarbTimerImpl @BeforeEach fun init() { - `when`(rh.gs(anyInt())).thenReturn("") - `when`(profileFunction.getUnits()).thenReturn(GlucoseUnit.MGDL) + Mockito.`when`(rh.gs(anyInt())).thenReturn("") + Mockito.`when`(profileFunction.getUnits()).thenReturn(GlucoseUnit.MGDL) dateUtil = DateUtil(context) timerUtil = TimerUtil(context) - automationPlugin = AutomationPlugin(injector, rh, context, sp, fabricPrivacy, loop, rxBus, constraintChecker, aapsLogger, aapsSchedulers, config, locationServiceHelper, dateUtil, activePlugin) - sut = CarbTimerImpl(injector, rh, automationPlugin, timerUtil) + automationPlugin = AutomationPlugin(injector, rh, context, sp, fabricPrivacy, loop, rxBus, constraintChecker, aapsLogger, aapsSchedulers, config, locationServiceHelper, dateUtil, + activePlugin, timerUtil) } @Test fun doTest() { - Assert.assertEquals(0, automationPlugin.size()) - sut.scheduleAutomationEventEatReminder() - Assert.assertEquals(1, automationPlugin.size()) - sut.removeAutomationEventEatReminder() - Assert.assertEquals(0, automationPlugin.size()) + Assertions.assertEquals(0, automationPlugin.size()) + automationPlugin.scheduleAutomationEventEatReminder() + Assertions.assertEquals(1, automationPlugin.size()) + automationPlugin.removeAutomationEventEatReminder() + Assertions.assertEquals(0, automationPlugin.size()) - sut.scheduleTimeToEatReminder(1) + automationPlugin.scheduleTimeToEatReminder(1) Mockito.verify(context, Mockito.times(1)).startActivity(any()) } } \ No newline at end of file diff --git a/plugins/automation/src/test/java/info/nightscout/automation/actions/ActionsTestBase.kt b/plugins/automation/src/test/java/info/nightscout/automation/actions/ActionsTestBase.kt index f286296d47..f4dc4bb946 100644 --- a/plugins/automation/src/test/java/info/nightscout/automation/actions/ActionsTestBase.kt +++ b/plugins/automation/src/test/java/info/nightscout/automation/actions/ActionsTestBase.kt @@ -75,6 +75,7 @@ ActionsTestBase : TestBaseWithProfile() { runningConfiguration: RunningConfiguration, version: String ): DeviceStatus? = null + override fun setPluginEnabled(type: PluginType, newState: Boolean) {} } diff --git a/plugins/automation/src/test/java/info/nightscout/automation/triggers/TriggerAutosensValueTest.kt b/plugins/automation/src/test/java/info/nightscout/automation/triggers/TriggerAutosensValueTest.kt index e059d38390..7ed8250f79 100644 --- a/plugins/automation/src/test/java/info/nightscout/automation/triggers/TriggerAutosensValueTest.kt +++ b/plugins/automation/src/test/java/info/nightscout/automation/triggers/TriggerAutosensValueTest.kt @@ -3,9 +3,9 @@ package info.nightscout.automation.triggers import com.google.common.base.Optional import info.nightscout.automation.R import info.nightscout.automation.elements.Comparator -import info.nightscout.core.iob.iobCobCalculator.data.AutosensDataObject +import info.nightscout.plugins.iob.iobCobCalculator.data.AutosensDataObject import org.json.JSONObject -import org.junit.Assert +import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test import org.mockito.ArgumentMatchers @@ -22,53 +22,53 @@ class TriggerAutosensValueTest : TriggerTestBase() { var t = TriggerAutosensValue(injector) t.autosens.value = 110.0 t.comparator.value = Comparator.Compare.IS_EQUAL - Assert.assertEquals(110.0, t.autosens.value, 0.01) - Assert.assertEquals(Comparator.Compare.IS_EQUAL, t.comparator.value) - Assert.assertFalse(t.shouldRun()) + Assertions.assertEquals(110.0, t.autosens.value, 0.01) + Assertions.assertEquals(Comparator.Compare.IS_EQUAL, t.comparator.value) + Assertions.assertFalse(t.shouldRun()) t = TriggerAutosensValue(injector) t.autosens.value = 100.0 t.comparator.value = Comparator.Compare.IS_EQUAL - Assert.assertEquals(100.0, t.autosens.value, 0.01) - Assert.assertTrue(t.shouldRun()) + Assertions.assertEquals(100.0, t.autosens.value, 0.01) + Assertions.assertTrue(t.shouldRun()) t = TriggerAutosensValue(injector) t.autosens.value = 50.0 t.comparator.value = Comparator.Compare.IS_EQUAL_OR_GREATER - Assert.assertTrue(t.shouldRun()) + Assertions.assertTrue(t.shouldRun()) t = TriggerAutosensValue(injector) t.autosens.value = 310.0 t.comparator.value = Comparator.Compare.IS_EQUAL_OR_LESSER - Assert.assertTrue(t.shouldRun()) + Assertions.assertTrue(t.shouldRun()) t = TriggerAutosensValue(injector) t.autosens.value = 420.0 t.comparator.value = Comparator.Compare.IS_EQUAL - Assert.assertFalse(t.shouldRun()) + Assertions.assertFalse(t.shouldRun()) t = TriggerAutosensValue(injector) t.autosens.value = 390.0 t.comparator.value = Comparator.Compare.IS_EQUAL_OR_LESSER - Assert.assertTrue(t.shouldRun()) + Assertions.assertTrue(t.shouldRun()) t = TriggerAutosensValue(injector) t.autosens.value = 390.0 t.comparator.value = Comparator.Compare.IS_EQUAL_OR_GREATER - Assert.assertFalse(t.shouldRun()) + Assertions.assertFalse(t.shouldRun()) t = TriggerAutosensValue(injector) t.autosens.value = 20.0 t.comparator.value = Comparator.Compare.IS_EQUAL_OR_GREATER - Assert.assertTrue(t.shouldRun()) + Assertions.assertTrue(t.shouldRun()) t = TriggerAutosensValue(injector) t.autosens.value = 390.0 t.comparator.value = Comparator.Compare.IS_EQUAL_OR_LESSER - Assert.assertTrue(t.shouldRun()) + Assertions.assertTrue(t.shouldRun()) `when`(autosensDataStore.getLastAutosensData(anyObject(), anyObject(), anyObject())).thenReturn(AutosensDataObject(injector)) t = TriggerAutosensValue(injector) t.autosens.value = 80.0 t.comparator.value = Comparator.Compare.IS_EQUAL_OR_LESSER - Assert.assertFalse(t.shouldRun()) + Assertions.assertFalse(t.shouldRun()) // Test autosensData == null and Comparator == IS_NOT_AVAILABLE `when`(autosensDataStore.getLastAutosensData(anyObject(), anyObject(), anyObject())).thenReturn(null) t = TriggerAutosensValue(injector) t.comparator.value = Comparator.Compare.IS_NOT_AVAILABLE - Assert.assertTrue(t.shouldRun()) + Assertions.assertTrue(t.shouldRun()) } @Test @@ -77,8 +77,8 @@ class TriggerAutosensValueTest : TriggerTestBase() { t.autosens.value = 213.0 t.comparator.value = Comparator.Compare.IS_EQUAL_OR_LESSER val t1 = t.duplicate() as TriggerAutosensValue - Assert.assertEquals(213.0, t1.autosens.value, 0.01) - Assert.assertEquals(Comparator.Compare.IS_EQUAL_OR_LESSER, t.comparator.value) + Assertions.assertEquals(213.0, t1.autosens.value, 0.01) + Assertions.assertEquals(Comparator.Compare.IS_EQUAL_OR_LESSER, t.comparator.value) } private var asJson = "{\"data\":{\"comparator\":\"IS_EQUAL\",\"value\":410},\"type\":\"TriggerAutosensValue\"}" @@ -88,7 +88,7 @@ class TriggerAutosensValueTest : TriggerTestBase() { val t = TriggerAutosensValue(injector) t.autosens.value = 410.0 t.comparator.value = Comparator.Compare.IS_EQUAL - Assert.assertEquals(asJson, t.toJSON()) + Assertions.assertEquals(asJson, t.toJSON()) } @Test @@ -97,12 +97,12 @@ class TriggerAutosensValueTest : TriggerTestBase() { t.autosens.value = 410.0 t.comparator.value = Comparator.Compare.IS_EQUAL val t2 = TriggerDummy(injector).instantiate(JSONObject(t.toJSON())) as TriggerAutosensValue - Assert.assertEquals(Comparator.Compare.IS_EQUAL, t2.comparator.value) - Assert.assertEquals(410.0, t2.autosens.value, 0.01) + Assertions.assertEquals(Comparator.Compare.IS_EQUAL, t2.comparator.value) + Assertions.assertEquals(410.0, t2.autosens.value, 0.01) } @Test fun iconTest() { - Assert.assertEquals(Optional.of(R.drawable.ic_as), TriggerAutosensValue(injector).icon()) + Assertions.assertEquals(Optional.of(R.drawable.ic_as), TriggerAutosensValue(injector).icon()) } @BeforeEach diff --git a/plugins/support/.gitignore b/plugins/constraints/.gitignore similarity index 100% rename from plugins/support/.gitignore rename to plugins/constraints/.gitignore diff --git a/plugins/support/build.gradle b/plugins/constraints/build.gradle similarity index 89% rename from plugins/support/build.gradle rename to plugins/constraints/build.gradle index 628361f6ae..84ee406dd7 100644 --- a/plugins/support/build.gradle +++ b/plugins/constraints/build.gradle @@ -12,7 +12,7 @@ apply from: "${project.rootDir}/core/main/test_dependencies.gradle" apply from: "${project.rootDir}/core/main/allopen_dependencies.gradle" apply from: "${project.rootDir}/core/main/jacoco_global.gradle" android { - namespace 'info.nightscout.plugins.support' + namespace 'info.nightscout.plugins.constraints' } dependencies { @@ -20,6 +20,7 @@ dependencies { implementation project(':core:interfaces') implementation project(':core:ui') implementation project(':core:utils') + implementation project(':core:validators') implementation project(':database:entities') // Phone checker diff --git a/plugins/support/consumer-rules.pro b/plugins/constraints/consumer-rules.pro similarity index 100% rename from plugins/support/consumer-rules.pro rename to plugins/constraints/consumer-rules.pro diff --git a/plugins/support/proguard-rules.pro b/plugins/constraints/proguard-rules.pro similarity index 100% rename from plugins/support/proguard-rules.pro rename to plugins/constraints/proguard-rules.pro diff --git a/plugins/constraints/src/main/AndroidManifest.xml b/plugins/constraints/src/main/AndroidManifest.xml new file mode 100644 index 0000000000..44008a4332 --- /dev/null +++ b/plugins/constraints/src/main/AndroidManifest.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/implementation/src/main/java/info/nightscout/implementation/constraints/ConstraintsImpl.kt b/plugins/constraints/src/main/java/info/nightscout/plugins/constraints/ConstraintsImpl.kt similarity index 99% rename from implementation/src/main/java/info/nightscout/implementation/constraints/ConstraintsImpl.kt rename to plugins/constraints/src/main/java/info/nightscout/plugins/constraints/ConstraintsImpl.kt index c589264403..923619063e 100644 --- a/implementation/src/main/java/info/nightscout/implementation/constraints/ConstraintsImpl.kt +++ b/plugins/constraints/src/main/java/info/nightscout/plugins/constraints/ConstraintsImpl.kt @@ -1,4 +1,4 @@ -package info.nightscout.implementation.constraints +package info.nightscout.plugins.constraints import info.nightscout.interfaces.constraints.Constraint import info.nightscout.interfaces.constraints.Constraints diff --git a/plugins/support/src/main/java/info/nightscout/plugins/constraints/bgQualityCheck/BgQualityCheckPlugin.kt b/plugins/constraints/src/main/java/info/nightscout/plugins/constraints/bgQualityCheck/BgQualityCheckPlugin.kt similarity index 99% rename from plugins/support/src/main/java/info/nightscout/plugins/constraints/bgQualityCheck/BgQualityCheckPlugin.kt rename to plugins/constraints/src/main/java/info/nightscout/plugins/constraints/bgQualityCheck/BgQualityCheckPlugin.kt index 769c318936..744c215204 100644 --- a/plugins/support/src/main/java/info/nightscout/plugins/constraints/bgQualityCheck/BgQualityCheckPlugin.kt +++ b/plugins/constraints/src/main/java/info/nightscout/plugins/constraints/bgQualityCheck/BgQualityCheckPlugin.kt @@ -12,7 +12,7 @@ import info.nightscout.interfaces.plugin.PluginBase import info.nightscout.interfaces.plugin.PluginDescription import info.nightscout.interfaces.plugin.PluginType import info.nightscout.interfaces.source.DexcomBoyda -import info.nightscout.plugins.support.R +import info.nightscout.plugins.constraints.R import info.nightscout.rx.AapsSchedulers import info.nightscout.rx.bus.RxBus import info.nightscout.rx.events.EventBucketedDataCreated diff --git a/plugins/constraints/src/main/java/info/nightscout/plugins/constraints/di/ObjectivesModule.kt b/plugins/constraints/src/main/java/info/nightscout/plugins/constraints/di/ObjectivesModule.kt new file mode 100644 index 0000000000..00cc3d6825 --- /dev/null +++ b/plugins/constraints/src/main/java/info/nightscout/plugins/constraints/di/ObjectivesModule.kt @@ -0,0 +1,25 @@ +package info.nightscout.plugins.constraints.di + +import dagger.Module +import dagger.android.ContributesAndroidInjector + +@Module +@Suppress("unused") +abstract class ObjectivesModule { + + @ContributesAndroidInjector abstract fun contributesObjectivesFragment(): info.nightscout.plugins.constraints.objectives.ObjectivesFragment + @ContributesAndroidInjector abstract fun contributesObjectivesExamDialog(): info.nightscout.plugins.constraints.objectives.activities.ObjectivesExamDialog + @ContributesAndroidInjector abstract fun contributesNtpProgressDialog(): info.nightscout.plugins.constraints.objectives.dialogs.NtpProgressDialog + + @ContributesAndroidInjector abstract fun objectiveInjector(): info.nightscout.plugins.constraints.objectives.objectives.Objective + @ContributesAndroidInjector abstract fun objective0Injector(): info.nightscout.plugins.constraints.objectives.objectives.Objective0 + @ContributesAndroidInjector abstract fun objective1Injector(): info.nightscout.plugins.constraints.objectives.objectives.Objective1 + @ContributesAndroidInjector abstract fun objective2Injector(): info.nightscout.plugins.constraints.objectives.objectives.Objective2 + @ContributesAndroidInjector abstract fun objective3Injector(): info.nightscout.plugins.constraints.objectives.objectives.Objective3 + @ContributesAndroidInjector abstract fun objective4Injector(): info.nightscout.plugins.constraints.objectives.objectives.Objective4 + @ContributesAndroidInjector abstract fun objective5Injector(): info.nightscout.plugins.constraints.objectives.objectives.Objective5 + @ContributesAndroidInjector abstract fun objective6Injector(): info.nightscout.plugins.constraints.objectives.objectives.Objective6 + @ContributesAndroidInjector abstract fun objective7Injector(): info.nightscout.plugins.constraints.objectives.objectives.Objective7 + @ContributesAndroidInjector abstract fun objective9Injector(): info.nightscout.plugins.constraints.objectives.objectives.Objective9 + @ContributesAndroidInjector abstract fun objective10Injector(): info.nightscout.plugins.constraints.objectives.objectives.Objective10 +} \ No newline at end of file diff --git a/plugins/support/src/main/java/info/nightscout/plugins/support/di/PluginsSupportModule.kt b/plugins/constraints/src/main/java/info/nightscout/plugins/constraints/di/PluginsConstraintsModule.kt similarity index 64% rename from plugins/support/src/main/java/info/nightscout/plugins/support/di/PluginsSupportModule.kt rename to plugins/constraints/src/main/java/info/nightscout/plugins/constraints/di/PluginsConstraintsModule.kt index 17ed884fd1..c3da1e525a 100644 --- a/plugins/support/src/main/java/info/nightscout/plugins/support/di/PluginsSupportModule.kt +++ b/plugins/constraints/src/main/java/info/nightscout/plugins/constraints/di/PluginsConstraintsModule.kt @@ -1,25 +1,28 @@ -package info.nightscout.plugins.support.di +package info.nightscout.plugins.constraints.di import dagger.Binds import dagger.Module import info.nightscout.interfaces.bgQualityCheck.BgQualityCheck +import info.nightscout.interfaces.constraints.Constraints import info.nightscout.interfaces.versionChecker.VersionCheckerUtils import info.nightscout.plugins.constraints.bgQualityCheck.BgQualityCheckPlugin import info.nightscout.plugins.constraints.versionChecker.VersionCheckerUtilsImpl @Module( includes = [ - PluginsSupportModule.Bindings::class + PluginsConstraintsModule.Bindings::class, + ObjectivesModule::class ] ) @Suppress("unused") -abstract class PluginsSupportModule { +abstract class PluginsConstraintsModule { @Module interface Bindings { @Binds fun bindProcessedDeviceStatusData(versionCheckerUtils: VersionCheckerUtilsImpl): VersionCheckerUtils @Binds fun bindBgQualityCheck(bgQualityCheck: BgQualityCheckPlugin): BgQualityCheck + @Binds fun bindsConstraints(constraintsImpl: info.nightscout.plugins.constraints.ConstraintsImpl): Constraints } } \ No newline at end of file diff --git a/plugins/support/src/main/java/info/nightscout/plugins/constraints/dstHelper/DstHelperPlugin.kt b/plugins/constraints/src/main/java/info/nightscout/plugins/constraints/dstHelper/DstHelperPlugin.kt similarity index 98% rename from plugins/support/src/main/java/info/nightscout/plugins/constraints/dstHelper/DstHelperPlugin.kt rename to plugins/constraints/src/main/java/info/nightscout/plugins/constraints/dstHelper/DstHelperPlugin.kt index 67c7d4350b..ba7293a6ee 100644 --- a/plugins/support/src/main/java/info/nightscout/plugins/constraints/dstHelper/DstHelperPlugin.kt +++ b/plugins/constraints/src/main/java/info/nightscout/plugins/constraints/dstHelper/DstHelperPlugin.kt @@ -9,7 +9,7 @@ import info.nightscout.interfaces.plugin.ActivePlugin import info.nightscout.interfaces.plugin.PluginBase import info.nightscout.interfaces.plugin.PluginDescription import info.nightscout.interfaces.plugin.PluginType -import info.nightscout.plugins.support.R +import info.nightscout.plugins.constraints.R import info.nightscout.rx.logging.AAPSLogger import info.nightscout.rx.logging.LTag import info.nightscout.shared.interfaces.ResourceHelper diff --git a/plugins/main/src/main/java/info/nightscout/plugins/constraints/objectives/ObjectivesFragment.kt b/plugins/constraints/src/main/java/info/nightscout/plugins/constraints/objectives/ObjectivesFragment.kt similarity index 98% rename from plugins/main/src/main/java/info/nightscout/plugins/constraints/objectives/ObjectivesFragment.kt rename to plugins/constraints/src/main/java/info/nightscout/plugins/constraints/objectives/ObjectivesFragment.kt index 09086dbdb7..4988d893d3 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/constraints/objectives/ObjectivesFragment.kt +++ b/plugins/constraints/src/main/java/info/nightscout/plugins/constraints/objectives/ObjectivesFragment.kt @@ -24,13 +24,13 @@ import info.nightscout.database.entities.ValueWithUnit import info.nightscout.interfaces.logging.UserEntryLogger import info.nightscout.interfaces.receivers.ReceiverStatusStore import info.nightscout.interfaces.utils.HtmlHelper -import info.nightscout.plugins.R +import info.nightscout.plugins.constraints.R +import info.nightscout.plugins.constraints.databinding.ObjectivesFragmentBinding +import info.nightscout.plugins.constraints.databinding.ObjectivesItemBinding import info.nightscout.plugins.constraints.objectives.activities.ObjectivesExamDialog import info.nightscout.plugins.constraints.objectives.dialogs.NtpProgressDialog import info.nightscout.plugins.constraints.objectives.events.EventObjectivesUpdateGui import info.nightscout.plugins.constraints.objectives.objectives.Objective.ExamTask -import info.nightscout.plugins.databinding.ObjectivesFragmentBinding -import info.nightscout.plugins.databinding.ObjectivesItemBinding import info.nightscout.rx.AapsSchedulers import info.nightscout.rx.bus.RxBus import info.nightscout.rx.events.EventNtpStatus diff --git a/plugins/main/src/main/java/info/nightscout/plugins/constraints/objectives/ObjectivesPlugin.kt b/plugins/constraints/src/main/java/info/nightscout/plugins/constraints/objectives/ObjectivesPlugin.kt similarity index 95% rename from plugins/main/src/main/java/info/nightscout/plugins/constraints/objectives/ObjectivesPlugin.kt rename to plugins/constraints/src/main/java/info/nightscout/plugins/constraints/objectives/ObjectivesPlugin.kt index 87bac53864..5495d609a6 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/constraints/objectives/ObjectivesPlugin.kt +++ b/plugins/constraints/src/main/java/info/nightscout/plugins/constraints/objectives/ObjectivesPlugin.kt @@ -15,7 +15,7 @@ import info.nightscout.interfaces.plugin.ActivePlugin import info.nightscout.interfaces.plugin.PluginBase import info.nightscout.interfaces.plugin.PluginDescription import info.nightscout.interfaces.plugin.PluginType -import info.nightscout.plugins.R +import info.nightscout.plugins.constraints.R import info.nightscout.plugins.constraints.objectives.objectives.Objective import info.nightscout.plugins.constraints.objectives.objectives.Objective0 import info.nightscout.plugins.constraints.objectives.objectives.Objective1 @@ -47,7 +47,7 @@ class ObjectivesPlugin @Inject constructor( .fragmentClass(ObjectivesFragment::class.qualifiedName) .alwaysEnabled(config.APS) .showInList(config.APS) - .pluginIcon(info.nightscout.core.main.R.drawable.ic_graduation) + .pluginIcon(info.nightscout.core.ui.R.drawable.ic_graduation) .pluginName(info.nightscout.core.ui.R.string.objectives) .shortName(R.string.objectives_shortname) .description(R.string.description_objectives), @@ -91,9 +91,9 @@ class ObjectivesPlugin @Inject constructor( sp.putBoolean(info.nightscout.core.utils.R.string.key_objectiveusedisconnect, false) sp.putBoolean(info.nightscout.core.utils.R.string.key_objectiveusereconnect, false) sp.putBoolean(info.nightscout.core.utils.R.string.key_objectiveusetemptarget, false) - sp.putBoolean(R.string.key_objectiveuseactions, false) + sp.putBoolean(info.nightscout.core.utils.R.string.key_objectiveuseactions, false) sp.putBoolean(info.nightscout.core.utils.R.string.key_objectiveuseloop, false) - sp.putBoolean(R.string.key_objectiveusescale, false) + sp.putBoolean(info.nightscout.core.utils.R.string.key_objectiveusescale, false) } fun allPriorAccomplished(position: Int): Boolean { diff --git a/plugins/main/src/main/java/info/nightscout/plugins/constraints/objectives/SntpClient.kt b/plugins/constraints/src/main/java/info/nightscout/plugins/constraints/objectives/SntpClient.kt similarity index 100% rename from plugins/main/src/main/java/info/nightscout/plugins/constraints/objectives/SntpClient.kt rename to plugins/constraints/src/main/java/info/nightscout/plugins/constraints/objectives/SntpClient.kt diff --git a/plugins/main/src/main/java/info/nightscout/plugins/constraints/objectives/activities/ObjectivesExamDialog.kt b/plugins/constraints/src/main/java/info/nightscout/plugins/constraints/objectives/activities/ObjectivesExamDialog.kt similarity index 97% rename from plugins/main/src/main/java/info/nightscout/plugins/constraints/objectives/activities/ObjectivesExamDialog.kt rename to plugins/constraints/src/main/java/info/nightscout/plugins/constraints/objectives/activities/ObjectivesExamDialog.kt index 12ff59c4a6..3ac4ebfdda 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/constraints/objectives/activities/ObjectivesExamDialog.kt +++ b/plugins/constraints/src/main/java/info/nightscout/plugins/constraints/objectives/activities/ObjectivesExamDialog.kt @@ -6,12 +6,12 @@ import android.view.View import android.view.ViewGroup import dagger.android.support.DaggerDialogFragment import info.nightscout.core.ui.toast.ToastUtils -import info.nightscout.plugins.R +import info.nightscout.plugins.constraints.R +import info.nightscout.plugins.constraints.databinding.ObjectivesExamFragmentBinding import info.nightscout.plugins.constraints.objectives.events.EventObjectivesUpdateGui import info.nightscout.plugins.constraints.objectives.objectives.Objective import info.nightscout.plugins.constraints.objectives.objectives.Objective.ExamTask import info.nightscout.plugins.constraints.objectives.objectives.Objective.Option -import info.nightscout.plugins.databinding.ObjectivesExamFragmentBinding import info.nightscout.rx.bus.RxBus import info.nightscout.shared.interfaces.ResourceHelper import info.nightscout.shared.utils.DateUtil diff --git a/plugins/main/src/main/java/info/nightscout/plugins/constraints/objectives/dialogs/NtpProgressDialog.kt b/plugins/constraints/src/main/java/info/nightscout/plugins/constraints/objectives/dialogs/NtpProgressDialog.kt similarity index 97% rename from plugins/main/src/main/java/info/nightscout/plugins/constraints/objectives/dialogs/NtpProgressDialog.kt rename to plugins/constraints/src/main/java/info/nightscout/plugins/constraints/objectives/dialogs/NtpProgressDialog.kt index 57ccf39b78..0c8b0738e8 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/constraints/objectives/dialogs/NtpProgressDialog.kt +++ b/plugins/constraints/src/main/java/info/nightscout/plugins/constraints/objectives/dialogs/NtpProgressDialog.kt @@ -7,7 +7,7 @@ import android.view.View import android.view.ViewGroup import dagger.android.support.DaggerDialogFragment import info.nightscout.core.utils.fabric.FabricPrivacy -import info.nightscout.plugins.databinding.DialogNtpProgressBinding +import info.nightscout.plugins.constraints.databinding.DialogNtpProgressBinding import info.nightscout.rx.AapsSchedulers import info.nightscout.rx.bus.RxBus import info.nightscout.rx.events.EventNtpStatus diff --git a/plugins/main/src/main/java/info/nightscout/plugins/constraints/objectives/events/EventObjectivesUpdateGui.kt b/plugins/constraints/src/main/java/info/nightscout/plugins/constraints/objectives/events/EventObjectivesUpdateGui.kt similarity index 100% rename from plugins/main/src/main/java/info/nightscout/plugins/constraints/objectives/events/EventObjectivesUpdateGui.kt rename to plugins/constraints/src/main/java/info/nightscout/plugins/constraints/objectives/events/EventObjectivesUpdateGui.kt diff --git a/plugins/main/src/main/java/info/nightscout/plugins/constraints/objectives/objectives/Objective.kt b/plugins/constraints/src/main/java/info/nightscout/plugins/constraints/objectives/objectives/Objective.kt similarity index 99% rename from plugins/main/src/main/java/info/nightscout/plugins/constraints/objectives/objectives/Objective.kt rename to plugins/constraints/src/main/java/info/nightscout/plugins/constraints/objectives/objectives/Objective.kt index 2997e5205a..1240acc248 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/constraints/objectives/objectives/Objective.kt +++ b/plugins/constraints/src/main/java/info/nightscout/plugins/constraints/objectives/objectives/Objective.kt @@ -7,7 +7,7 @@ import android.widget.TextView import androidx.annotation.StringRes import androidx.fragment.app.FragmentActivity import dagger.android.HasAndroidInjector -import info.nightscout.plugins.R +import info.nightscout.plugins.constraints.R import info.nightscout.shared.interfaces.ResourceHelper import info.nightscout.shared.sharedPreferences.SP import info.nightscout.shared.utils.DateUtil diff --git a/plugins/main/src/main/java/info/nightscout/plugins/constraints/objectives/objectives/Objective0.kt b/plugins/constraints/src/main/java/info/nightscout/plugins/constraints/objectives/objectives/Objective0.kt similarity index 80% rename from plugins/main/src/main/java/info/nightscout/plugins/constraints/objectives/objectives/Objective0.kt rename to plugins/constraints/src/main/java/info/nightscout/plugins/constraints/objectives/objectives/Objective0.kt index d9cf32069d..d995f6e897 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/constraints/objectives/objectives/Objective0.kt +++ b/plugins/constraints/src/main/java/info/nightscout/plugins/constraints/objectives/objectives/Objective0.kt @@ -2,20 +2,20 @@ package info.nightscout.plugins.constraints.objectives.objectives import dagger.android.HasAndroidInjector import info.nightscout.database.ValueWrapper -import info.nightscout.database.impl.AppRepository import info.nightscout.interfaces.aps.Loop +import info.nightscout.interfaces.db.PersistenceLayer import info.nightscout.interfaces.iob.IobCobCalculator import info.nightscout.interfaces.plugin.ActivePlugin import info.nightscout.interfaces.plugin.PluginBase -import info.nightscout.plugins.R -import info.nightscout.plugins.pump.virtual.VirtualPumpPlugin +import info.nightscout.interfaces.pump.VirtualPump +import info.nightscout.plugins.constraints.R import javax.inject.Inject class Objective0(injector: HasAndroidInjector) : Objective(injector, "config", R.string.objectives_0_objective, R.string.objectives_0_gate) { @Inject lateinit var activePlugin: ActivePlugin - @Inject lateinit var virtualPumpPlugin: VirtualPumpPlugin - @Inject lateinit var repository: AppRepository + @Inject lateinit var virtualPumpPlugin: VirtualPump + @Inject lateinit var persistenceLayer: PersistenceLayer @Inject lateinit var loop: Loop @Inject lateinit var iobCobCalculator: IobCobCalculator @@ -30,9 +30,9 @@ class Objective0(injector: HasAndroidInjector) : Objective(injector, "config", R return activePlugin.firstActiveSync?.hasWritePermission == true } }) - tasks.add(object : Task(this, R.string.virtualpump_uploadstatus_title) { + tasks.add(object : Task(this, info.nightscout.core.ui.R.string.virtualpump_uploadstatus_title) { override fun isCompleted(): Boolean { - return sp.getBoolean(R.string.key_virtual_pump_upload_status, false) + return sp.getBoolean(info.nightscout.core.utils.R.string.key_virtual_pump_upload_status, false) } override fun shouldBeIgnored(): Boolean { @@ -62,7 +62,7 @@ class Objective0(injector: HasAndroidInjector) : Objective(injector, "config", R }) tasks.add(object : Task(this, info.nightscout.core.ui.R.string.activate_profile) { override fun isCompleted(): Boolean { - return repository.getEffectiveProfileSwitchActiveAt(dateUtil.now()).blockingGet() is ValueWrapper.Existing + return persistenceLayer.getEffectiveProfileSwitchActiveAt(dateUtil.now()).blockingGet() is ValueWrapper.Existing } }) } diff --git a/plugins/main/src/main/java/info/nightscout/plugins/constraints/objectives/objectives/Objective1.kt b/plugins/constraints/src/main/java/info/nightscout/plugins/constraints/objectives/objectives/Objective1.kt similarity index 76% rename from plugins/main/src/main/java/info/nightscout/plugins/constraints/objectives/objectives/Objective1.kt rename to plugins/constraints/src/main/java/info/nightscout/plugins/constraints/objectives/objectives/Objective1.kt index bc396d2757..63f9fee48c 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/constraints/objectives/objectives/Objective1.kt +++ b/plugins/constraints/src/main/java/info/nightscout/plugins/constraints/objectives/objectives/Objective1.kt @@ -1,13 +1,17 @@ package info.nightscout.plugins.constraints.objectives.objectives import dagger.android.HasAndroidInjector -import info.nightscout.plugins.R -import info.nightscout.plugins.general.actions.ActionsPlugin +import info.nightscout.interfaces.actions.Actions +import info.nightscout.interfaces.plugin.ActivePlugin +import info.nightscout.interfaces.plugin.PluginBase +import info.nightscout.plugins.constraints.R import javax.inject.Inject class Objective1 @Inject constructor(injector: HasAndroidInjector) : Objective(injector, "usage", R.string.objectives_usage_objective, R.string.objectives_usage_gate) { - @Inject lateinit var actionsPlugin: ActionsPlugin + @Inject lateinit var activePlugin: ActivePlugin + val actionsPlugin: PluginBase + get() = activePlugin.getSpecificPluginsListByInterface(Actions::class.java)[0] init { tasks.add(object : Task(this, R.string.objectives_useprofileswitch) { @@ -32,7 +36,7 @@ class Objective1 @Inject constructor(injector: HasAndroidInjector) : Objective(i }.hint(Hint(R.string.usetemptarget_hint))) tasks.add(object : Task(this, R.string.objectives_useactions) { override fun isCompleted(): Boolean { - return sp.getBoolean(R.string.key_objectiveuseactions, false) && actionsPlugin.isEnabled() && actionsPlugin.isFragmentVisible() + return sp.getBoolean(info.nightscout.core.utils.R.string.key_objectiveuseactions, false) && actionsPlugin.isEnabled() && actionsPlugin.isFragmentVisible() } }.hint(Hint(R.string.useaction_hint))) tasks.add(object : Task(this, R.string.objectives_useloop) { @@ -42,7 +46,7 @@ class Objective1 @Inject constructor(injector: HasAndroidInjector) : Objective(i }.hint(Hint(R.string.useaction_hint))) tasks.add(object : Task(this, R.string.objectives_usescale) { override fun isCompleted(): Boolean { - return sp.getBoolean(R.string.key_objectiveusescale, false) + return sp.getBoolean(info.nightscout.core.utils.R.string.key_objectiveusescale, false) } }.hint(Hint(R.string.usescale_hint))) } diff --git a/plugins/main/src/main/java/info/nightscout/plugins/constraints/objectives/objectives/Objective10.kt b/plugins/constraints/src/main/java/info/nightscout/plugins/constraints/objectives/objectives/Objective10.kt similarity index 89% rename from plugins/main/src/main/java/info/nightscout/plugins/constraints/objectives/objectives/Objective10.kt rename to plugins/constraints/src/main/java/info/nightscout/plugins/constraints/objectives/objectives/Objective10.kt index 45e9375d78..191a39e3af 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/constraints/objectives/objectives/Objective10.kt +++ b/plugins/constraints/src/main/java/info/nightscout/plugins/constraints/objectives/objectives/Objective10.kt @@ -1,7 +1,7 @@ package info.nightscout.plugins.constraints.objectives.objectives import dagger.android.HasAndroidInjector -import info.nightscout.plugins.R +import info.nightscout.plugins.constraints.R import info.nightscout.shared.utils.T class Objective10(injector: HasAndroidInjector) : Objective(injector, "auto", R.string.objectives_auto_objective, R.string.objectives_auto_gate) { diff --git a/plugins/main/src/main/java/info/nightscout/plugins/constraints/objectives/objectives/Objective2.kt b/plugins/constraints/src/main/java/info/nightscout/plugins/constraints/objectives/objectives/Objective2.kt similarity index 98% rename from plugins/main/src/main/java/info/nightscout/plugins/constraints/objectives/objectives/Objective2.kt rename to plugins/constraints/src/main/java/info/nightscout/plugins/constraints/objectives/objectives/Objective2.kt index 827870976b..d4df12668a 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/constraints/objectives/objectives/Objective2.kt +++ b/plugins/constraints/src/main/java/info/nightscout/plugins/constraints/objectives/objectives/Objective2.kt @@ -1,7 +1,7 @@ package info.nightscout.plugins.constraints.objectives.objectives import dagger.android.HasAndroidInjector -import info.nightscout.plugins.R +import info.nightscout.plugins.constraints.R @Suppress("SpellCheckingInspection") class Objective2(injector: HasAndroidInjector) : Objective(injector, "exam", R.string.objectives_exam_objective, R.string.objectives_exam_gate) { @@ -172,7 +172,7 @@ class Objective2(injector: HasAndroidInjector) : Objective(injector, "exam", R.s .option(Option(R.string.wronginsulin_prime, true)) .option(Option(R.string.wrongcarbs_donothing, false)) ) - tasks.add(ExamTask(this, R.string.iob_label, R.string.blank, "iob") + tasks.add(ExamTask(this, info.nightscout.core.ui.R.string.iob_label, R.string.blank, "iob") .option(Option(R.string.iob_value, true)) .option(Option(R.string.iob_hightemp, false)) .option(Option(R.string.iob_negiob, true)) diff --git a/plugins/main/src/main/java/info/nightscout/plugins/constraints/objectives/objectives/Objective3.kt b/plugins/constraints/src/main/java/info/nightscout/plugins/constraints/objectives/objectives/Objective3.kt similarity index 96% rename from plugins/main/src/main/java/info/nightscout/plugins/constraints/objectives/objectives/Objective3.kt rename to plugins/constraints/src/main/java/info/nightscout/plugins/constraints/objectives/objectives/Objective3.kt index 8ca5e8334c..d2b7c83a1c 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/constraints/objectives/objectives/Objective3.kt +++ b/plugins/constraints/src/main/java/info/nightscout/plugins/constraints/objectives/objectives/Objective3.kt @@ -2,7 +2,7 @@ package info.nightscout.plugins.constraints.objectives.objectives import dagger.android.HasAndroidInjector import info.nightscout.interfaces.plugin.ActivePlugin -import info.nightscout.plugins.R +import info.nightscout.plugins.constraints.R import info.nightscout.shared.utils.T import javax.inject.Inject diff --git a/plugins/main/src/main/java/info/nightscout/plugins/constraints/objectives/objectives/Objective4.kt b/plugins/constraints/src/main/java/info/nightscout/plugins/constraints/objectives/objectives/Objective4.kt similarity index 86% rename from plugins/main/src/main/java/info/nightscout/plugins/constraints/objectives/objectives/Objective4.kt rename to plugins/constraints/src/main/java/info/nightscout/plugins/constraints/objectives/objectives/Objective4.kt index 1871038194..83f6ec9603 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/constraints/objectives/objectives/Objective4.kt +++ b/plugins/constraints/src/main/java/info/nightscout/plugins/constraints/objectives/objectives/Objective4.kt @@ -1,7 +1,7 @@ package info.nightscout.plugins.constraints.objectives.objectives import dagger.android.HasAndroidInjector -import info.nightscout.plugins.R +import info.nightscout.plugins.constraints.R @Suppress("SpellCheckingInspection") class Objective4(injector: HasAndroidInjector) : Objective(injector, "maxbasal", R.string.objectives_maxbasal_objective, R.string.objectives_maxbasal_gate) \ No newline at end of file diff --git a/plugins/main/src/main/java/info/nightscout/plugins/constraints/objectives/objectives/Objective5.kt b/plugins/constraints/src/main/java/info/nightscout/plugins/constraints/objectives/objectives/Objective5.kt similarity index 95% rename from plugins/main/src/main/java/info/nightscout/plugins/constraints/objectives/objectives/Objective5.kt rename to plugins/constraints/src/main/java/info/nightscout/plugins/constraints/objectives/objectives/Objective5.kt index 35b5024cc0..3ce315df93 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/constraints/objectives/objectives/Objective5.kt +++ b/plugins/constraints/src/main/java/info/nightscout/plugins/constraints/objectives/objectives/Objective5.kt @@ -2,7 +2,7 @@ package info.nightscout.plugins.constraints.objectives.objectives import dagger.android.HasAndroidInjector import info.nightscout.interfaces.constraints.Constraint -import info.nightscout.plugins.R +import info.nightscout.plugins.constraints.R import info.nightscout.plugins.constraints.safety.SafetyPlugin import info.nightscout.shared.utils.T import javax.inject.Inject diff --git a/plugins/main/src/main/java/info/nightscout/plugins/constraints/objectives/objectives/Objective6.kt b/plugins/constraints/src/main/java/info/nightscout/plugins/constraints/objectives/objectives/Objective6.kt similarity index 96% rename from plugins/main/src/main/java/info/nightscout/plugins/constraints/objectives/objectives/Objective6.kt rename to plugins/constraints/src/main/java/info/nightscout/plugins/constraints/objectives/objectives/Objective6.kt index 6e170a93aa..e70f85ddb4 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/constraints/objectives/objectives/Objective6.kt +++ b/plugins/constraints/src/main/java/info/nightscout/plugins/constraints/objectives/objectives/Objective6.kt @@ -3,7 +3,7 @@ package info.nightscout.plugins.constraints.objectives.objectives import dagger.android.HasAndroidInjector import info.nightscout.interfaces.ApsMode import info.nightscout.interfaces.constraints.Constraints -import info.nightscout.plugins.R +import info.nightscout.plugins.constraints.R import info.nightscout.shared.utils.T import javax.inject.Inject diff --git a/plugins/main/src/main/java/info/nightscout/plugins/constraints/objectives/objectives/Objective7.kt b/plugins/constraints/src/main/java/info/nightscout/plugins/constraints/objectives/objectives/Objective7.kt similarity index 89% rename from plugins/main/src/main/java/info/nightscout/plugins/constraints/objectives/objectives/Objective7.kt rename to plugins/constraints/src/main/java/info/nightscout/plugins/constraints/objectives/objectives/Objective7.kt index 4ace165453..6893df0814 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/constraints/objectives/objectives/Objective7.kt +++ b/plugins/constraints/src/main/java/info/nightscout/plugins/constraints/objectives/objectives/Objective7.kt @@ -1,7 +1,7 @@ package info.nightscout.plugins.constraints.objectives.objectives import dagger.android.HasAndroidInjector -import info.nightscout.plugins.R +import info.nightscout.plugins.constraints.R import info.nightscout.shared.utils.T class Objective7(injector: HasAndroidInjector) : Objective(injector, "autosens", R.string.objectives_autosens_objective, R.string.objectives_autosens_gate) { diff --git a/plugins/main/src/main/java/info/nightscout/plugins/constraints/objectives/objectives/Objective9.kt b/plugins/constraints/src/main/java/info/nightscout/plugins/constraints/objectives/objectives/Objective9.kt similarity index 89% rename from plugins/main/src/main/java/info/nightscout/plugins/constraints/objectives/objectives/Objective9.kt rename to plugins/constraints/src/main/java/info/nightscout/plugins/constraints/objectives/objectives/Objective9.kt index 3031f9d283..340e451162 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/constraints/objectives/objectives/Objective9.kt +++ b/plugins/constraints/src/main/java/info/nightscout/plugins/constraints/objectives/objectives/Objective9.kt @@ -1,7 +1,7 @@ package info.nightscout.plugins.constraints.objectives.objectives import dagger.android.HasAndroidInjector -import info.nightscout.plugins.R +import info.nightscout.plugins.constraints.R import info.nightscout.shared.utils.T class Objective9(injector: HasAndroidInjector) : Objective(injector, "smb", R.string.objectives_smb_objective, R.string.objectives_smb_gate) { diff --git a/plugins/main/src/main/java/info/nightscout/plugins/constraints/objectives/objectives/SntpClient.kt b/plugins/constraints/src/main/java/info/nightscout/plugins/constraints/objectives/objectives/SntpClient.kt similarity index 100% rename from plugins/main/src/main/java/info/nightscout/plugins/constraints/objectives/objectives/SntpClient.kt rename to plugins/constraints/src/main/java/info/nightscout/plugins/constraints/objectives/objectives/SntpClient.kt diff --git a/plugins/support/src/main/java/info/nightscout/plugins/constraints/phoneChecker/PhoneCheckerPlugin.kt b/plugins/constraints/src/main/java/info/nightscout/plugins/constraints/phoneChecker/PhoneCheckerPlugin.kt similarity index 97% rename from plugins/support/src/main/java/info/nightscout/plugins/constraints/phoneChecker/PhoneCheckerPlugin.kt rename to plugins/constraints/src/main/java/info/nightscout/plugins/constraints/phoneChecker/PhoneCheckerPlugin.kt index 351738d076..689bdd57a0 100644 --- a/plugins/support/src/main/java/info/nightscout/plugins/constraints/phoneChecker/PhoneCheckerPlugin.kt +++ b/plugins/constraints/src/main/java/info/nightscout/plugins/constraints/phoneChecker/PhoneCheckerPlugin.kt @@ -8,7 +8,7 @@ import info.nightscout.interfaces.constraints.Constraints import info.nightscout.interfaces.plugin.PluginBase import info.nightscout.interfaces.plugin.PluginDescription import info.nightscout.interfaces.plugin.PluginType -import info.nightscout.plugins.support.R +import info.nightscout.plugins.constraints.R import info.nightscout.rx.logging.AAPSLogger import info.nightscout.shared.interfaces.ResourceHelper import javax.inject.Inject diff --git a/plugins/main/src/main/java/info/nightscout/plugins/constraints/safety/SafetyPlugin.kt b/plugins/constraints/src/main/java/info/nightscout/plugins/constraints/safety/SafetyPlugin.kt similarity index 97% rename from plugins/main/src/main/java/info/nightscout/plugins/constraints/safety/SafetyPlugin.kt rename to plugins/constraints/src/main/java/info/nightscout/plugins/constraints/safety/SafetyPlugin.kt index 7d5d20cb0c..47782f0581 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/constraints/safety/SafetyPlugin.kt +++ b/plugins/constraints/src/main/java/info/nightscout/plugins/constraints/safety/SafetyPlugin.kt @@ -1,7 +1,6 @@ package info.nightscout.plugins.constraints.safety import dagger.android.HasAndroidInjector -import info.nightscout.core.events.EventNewNotification import info.nightscout.core.extensions.putDouble import info.nightscout.core.extensions.putInt import info.nightscout.core.extensions.putString @@ -21,10 +20,11 @@ import info.nightscout.interfaces.plugin.PluginDescription import info.nightscout.interfaces.plugin.PluginType import info.nightscout.interfaces.profile.Profile import info.nightscout.interfaces.pump.defs.PumpDescription +import info.nightscout.interfaces.ui.UiInteraction import info.nightscout.interfaces.utils.DecimalFormatter import info.nightscout.interfaces.utils.HardLimits import info.nightscout.interfaces.utils.Round -import info.nightscout.plugins.R +import info.nightscout.plugins.constraints.R import info.nightscout.rx.bus.RxBus import info.nightscout.rx.logging.AAPSLogger import info.nightscout.shared.interfaces.ResourceHelper @@ -46,7 +46,8 @@ class SafetyPlugin @Inject constructor( private val hardLimits: HardLimits, private val config: Config, private val iobCobCalculator: IobCobCalculator, - private val dateUtil: DateUtil + private val dateUtil: DateUtil, + private val uiInteraction: UiInteraction ) : PluginBase( PluginDescription() .mainType(PluginType.CONSTRAINTS) @@ -71,8 +72,7 @@ class SafetyPlugin @Inject constructor( if (mode == ApsMode.OPEN) value.set(aapsLogger, false, rh.gs(R.string.closedmodedisabledinpreferences), this) if (!config.isEngineeringModeOrRelease()) { if (value.value()) { - val n = Notification(Notification.TOAST_ALARM, rh.gs(R.string.closed_loop_disabled_on_dev_branch), Notification.NORMAL) - rxBus.send(EventNewNotification(n)) + uiInteraction.addNotification(Notification.TOAST_ALARM, rh.gs(R.string.closed_loop_disabled_on_dev_branch), Notification.NORMAL) } value.set(aapsLogger, false, rh.gs(R.string.closed_loop_disabled_on_dev_branch), this) } diff --git a/plugins/support/src/main/java/info/nightscout/plugins/constraints/signatureVerifier/SignatureVerifierPlugin.kt b/plugins/constraints/src/main/java/info/nightscout/plugins/constraints/signatureVerifier/SignatureVerifierPlugin.kt similarity index 99% rename from plugins/support/src/main/java/info/nightscout/plugins/constraints/signatureVerifier/SignatureVerifierPlugin.kt rename to plugins/constraints/src/main/java/info/nightscout/plugins/constraints/signatureVerifier/SignatureVerifierPlugin.kt index 6283c3c6bb..6aaff96f09 100644 --- a/plugins/support/src/main/java/info/nightscout/plugins/constraints/signatureVerifier/SignatureVerifierPlugin.kt +++ b/plugins/constraints/src/main/java/info/nightscout/plugins/constraints/signatureVerifier/SignatureVerifierPlugin.kt @@ -12,7 +12,7 @@ import info.nightscout.interfaces.plugin.PluginBase import info.nightscout.interfaces.plugin.PluginDescription import info.nightscout.interfaces.plugin.PluginType import info.nightscout.interfaces.ui.UiInteraction -import info.nightscout.plugins.support.R +import info.nightscout.plugins.constraints.R import info.nightscout.rx.logging.AAPSLogger import info.nightscout.shared.interfaces.ResourceHelper import info.nightscout.shared.sharedPreferences.SP diff --git a/plugins/support/src/main/java/info/nightscout/plugins/constraints/storage/StorageConstraintPlugin.kt b/plugins/constraints/src/main/java/info/nightscout/plugins/constraints/storage/StorageConstraintPlugin.kt similarity index 98% rename from plugins/support/src/main/java/info/nightscout/plugins/constraints/storage/StorageConstraintPlugin.kt rename to plugins/constraints/src/main/java/info/nightscout/plugins/constraints/storage/StorageConstraintPlugin.kt index 801b43c4c2..7fbc119539 100644 --- a/plugins/support/src/main/java/info/nightscout/plugins/constraints/storage/StorageConstraintPlugin.kt +++ b/plugins/constraints/src/main/java/info/nightscout/plugins/constraints/storage/StorageConstraintPlugin.kt @@ -12,7 +12,7 @@ import info.nightscout.interfaces.plugin.PluginBase import info.nightscout.interfaces.plugin.PluginDescription import info.nightscout.interfaces.plugin.PluginType import info.nightscout.interfaces.ui.UiInteraction -import info.nightscout.plugins.support.R +import info.nightscout.plugins.constraints.R import info.nightscout.rx.logging.AAPSLogger import info.nightscout.rx.logging.LTag import info.nightscout.shared.interfaces.ResourceHelper diff --git a/plugins/support/src/main/java/info/nightscout/plugins/constraints/versionChecker/VersionCheckerPlugin.kt b/plugins/constraints/src/main/java/info/nightscout/plugins/constraints/versionChecker/VersionCheckerPlugin.kt similarity index 99% rename from plugins/support/src/main/java/info/nightscout/plugins/constraints/versionChecker/VersionCheckerPlugin.kt rename to plugins/constraints/src/main/java/info/nightscout/plugins/constraints/versionChecker/VersionCheckerPlugin.kt index 0022644fb1..47b67fa3ab 100644 --- a/plugins/support/src/main/java/info/nightscout/plugins/constraints/versionChecker/VersionCheckerPlugin.kt +++ b/plugins/constraints/src/main/java/info/nightscout/plugins/constraints/versionChecker/VersionCheckerPlugin.kt @@ -10,7 +10,7 @@ import info.nightscout.interfaces.plugin.PluginDescription import info.nightscout.interfaces.plugin.PluginType import info.nightscout.interfaces.ui.UiInteraction import info.nightscout.interfaces.versionChecker.VersionCheckerUtils -import info.nightscout.plugins.support.R +import info.nightscout.plugins.constraints.R import info.nightscout.rx.bus.RxBus import info.nightscout.rx.logging.AAPSLogger import info.nightscout.shared.interfaces.ResourceHelper diff --git a/plugins/support/src/main/java/info/nightscout/plugins/constraints/versionChecker/VersionCheckerUtilsImpl.kt b/plugins/constraints/src/main/java/info/nightscout/plugins/constraints/versionChecker/VersionCheckerUtilsImpl.kt similarity index 99% rename from plugins/support/src/main/java/info/nightscout/plugins/constraints/versionChecker/VersionCheckerUtilsImpl.kt rename to plugins/constraints/src/main/java/info/nightscout/plugins/constraints/versionChecker/VersionCheckerUtilsImpl.kt index 2996bf6562..c688ec10d9 100644 --- a/plugins/support/src/main/java/info/nightscout/plugins/constraints/versionChecker/VersionCheckerUtilsImpl.kt +++ b/plugins/constraints/src/main/java/info/nightscout/plugins/constraints/versionChecker/VersionCheckerUtilsImpl.kt @@ -8,7 +8,7 @@ import info.nightscout.interfaces.notifications.Notification import info.nightscout.interfaces.receivers.ReceiverStatusStore import info.nightscout.interfaces.ui.UiInteraction import info.nightscout.interfaces.versionChecker.VersionCheckerUtils -import info.nightscout.plugins.support.R +import info.nightscout.plugins.constraints.R import info.nightscout.rx.logging.AAPSLogger import info.nightscout.rx.logging.LTag import info.nightscout.shared.interfaces.ResourceHelper diff --git a/plugins/support/src/main/res/drawable/ic_baseline_trending_flat_24.xml b/plugins/constraints/src/main/res/drawable/ic_baseline_trending_flat_24.xml similarity index 100% rename from plugins/support/src/main/res/drawable/ic_baseline_trending_flat_24.xml rename to plugins/constraints/src/main/res/drawable/ic_baseline_trending_flat_24.xml diff --git a/plugins/support/src/main/res/drawable/ic_baseline_warning_24_red.xml b/plugins/constraints/src/main/res/drawable/ic_baseline_warning_24_red.xml similarity index 100% rename from plugins/support/src/main/res/drawable/ic_baseline_warning_24_red.xml rename to plugins/constraints/src/main/res/drawable/ic_baseline_warning_24_red.xml diff --git a/plugins/support/src/main/res/drawable/ic_baseline_warning_24_yellow.xml b/plugins/constraints/src/main/res/drawable/ic_baseline_warning_24_yellow.xml similarity index 100% rename from plugins/support/src/main/res/drawable/ic_baseline_warning_24_yellow.xml rename to plugins/constraints/src/main/res/drawable/ic_baseline_warning_24_yellow.xml diff --git a/plugins/main/src/main/res/layout/dialog_ntp_progress.xml b/plugins/constraints/src/main/res/layout/dialog_ntp_progress.xml similarity index 100% rename from plugins/main/src/main/res/layout/dialog_ntp_progress.xml rename to plugins/constraints/src/main/res/layout/dialog_ntp_progress.xml diff --git a/plugins/main/src/main/res/layout/objectives_exam_fragment.xml b/plugins/constraints/src/main/res/layout/objectives_exam_fragment.xml similarity index 98% rename from plugins/main/src/main/res/layout/objectives_exam_fragment.xml rename to plugins/constraints/src/main/res/layout/objectives_exam_fragment.xml index d4a0f4d59b..6e1334a7da 100644 --- a/plugins/main/src/main/res/layout/objectives_exam_fragment.xml +++ b/plugins/constraints/src/main/res/layout/objectives_exam_fragment.xml @@ -4,7 +4,7 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" - tools:context="constraints.objectives.activities.ObjectivesExamDialog"> + tools:context=".constraints.objectives.activities.ObjectivesExamDialog"> + + Wat is waar oor DIA? + https://androidaps.readthedocs.io/en/latest/EN/Configuration/Config-Builder.html?#insulin + https://androidaps.readthedocs.io/en/latest/EN/Usage/temptarget.html + Watter profiel kan gebruik en ingestel word van lyn af? + Onderwerp: Aflyn Profiel + NS-Profiel kan gebruik word, maar nie ingestel. + https://androidaps.readthedocs.io/en/latest/EN/Configuration/Config-Builder.html#profile + Wat moet gedoen word wanneer pomp ontkoppel word? + https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#other-settings + https://androidaps.readthedocs.io/en/latest/EN/Usage/ExportImportSettings.html + https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#what-emergency-equipment-is-recommended-to-take-with-me + Wat moet gedoen word as CGM data raserig is? + https://androidaps.readthedocs.io/en/latest/EN/Usage/Smoothing-Blood-Glucose-Data-in-xDrip.html#smoothing-blood-glucose-data + https://androidaps.readthedocs.io/en/latest/EN/Usage/temptarget.html#activity-temp-target + \'n Google-rekening. + \'n Github rekening. + \'n Slimhorlosie. + https://androidaps.readthedocs.io/en/latest/EN/Usage/Profiles.html?highlight=profile%20switch#profile-switch + diff --git a/plugins/main/src/main/res/values-af-rZA/objectives.xml b/plugins/constraints/src/main/res/values-af-rZA/objectives.xml similarity index 100% rename from plugins/main/src/main/res/values-af-rZA/objectives.xml rename to plugins/constraints/src/main/res/values-af-rZA/objectives.xml diff --git a/plugins/constraints/src/main/res/values-af-rZA/strings.xml b/plugins/constraints/src/main/res/values-af-rZA/strings.xml new file mode 100644 index 0000000000..960ad5f64e --- /dev/null +++ b/plugins/constraints/src/main/res/values-af-rZA/strings.xml @@ -0,0 +1,29 @@ + + + + + + + + + + Beperk koolhidrate tot %1$d g agv %2$s + Pomp is nie tydelike basale bekwame + Geslote lus modus in voorkeure gedeaktiveer + Veranderende ontwikkelende weergawe. Geslote lus is gedeaktiveerd. + SMB is altyd na koolhidrate versper omdat aktiewe BG bron nie gevorderde filter ondersteun nie + SMB nie toegelaat in open lus modus + maks waarde in voorkeure + harde limiet + Behandelings veiligheid + + Nog nie voltooi nie + Tydsverloop + Maksimum IAB behoorlik gestel + BG beskikbaar vanaf geselekteerde bron + Lus geaktiveer + APS gekies + Geslote modus geaktiveer + OBJ + Onderrig program + diff --git a/plugins/main/src/main/res/values-bg-rBG/exam.xml b/plugins/constraints/src/main/res/values-bg-rBG/exam.xml similarity index 100% rename from plugins/main/src/main/res/values-bg-rBG/exam.xml rename to plugins/constraints/src/main/res/values-bg-rBG/exam.xml diff --git a/plugins/main/src/main/res/values-bg-rBG/objectives.xml b/plugins/constraints/src/main/res/values-bg-rBG/objectives.xml similarity index 100% rename from plugins/main/src/main/res/values-bg-rBG/objectives.xml rename to plugins/constraints/src/main/res/values-bg-rBG/objectives.xml diff --git a/plugins/constraints/src/main/res/values-bg-rBG/strings.xml b/plugins/constraints/src/main/res/values-bg-rBG/strings.xml new file mode 100644 index 0000000000..55a4248b4d --- /dev/null +++ b/plugins/constraints/src/main/res/values-bg-rBG/strings.xml @@ -0,0 +1,33 @@ + + + + + + + + + + Ограничаване на въглехидрати до %1$d гр. поради %2$s + Помпата не поддържа временен базал + Затворения кръг е забранен в настройките + Използвате dev версия. Затворения кръг е недостъпен за Вас. + Затворен цикъл е недостъпен поради стартиран Удължен болус + SMB \"винаги включен\" и \"след въглехидрати\" е забранен, защото е активен източник на КЗ, който не поддържа необходимата филтрация + SMB не е позволен в режим Отворен кръг + макс. стойност в настройките + твърд лимит + Настройки на сигурността + + Все още не сме неприключили + Изминало време + Максимален IOB е зададен правилно + Има данни за КЗ от избрания източник + APS разрешен + Избран APS + APS - Затворен кръг е позволен + Цел + Разучаване на програмата + Искате ли да нулирате прогреса си? + Изчисти приключение + Изчисти стартираните + diff --git a/plugins/main/src/main/res/values-ca-rES/exam.xml b/plugins/constraints/src/main/res/values-ca-rES/exam.xml similarity index 98% rename from plugins/main/src/main/res/values-ca-rES/exam.xml rename to plugins/constraints/src/main/res/values-ca-rES/exam.xml index 5246dd2fa2..514d2315d1 100644 --- a/plugins/main/src/main/res/values-ca-rES/exam.xml +++ b/plugins/constraints/src/main/res/values-ca-rES/exam.xml @@ -55,7 +55,6 @@ Deixar l\'objectiu glucèmic com està. Esperar que la glucèmia baixi per sota del vostre objectiu temporal d\'hipoglucèmia i llavors prendre 15g de carbohidrats d\'acció ràpida. https://androidaps.readthedocs.io/en/latest/EN/Usage/temptarget.html#activity-temp-target - Llaç desactivat/aturat Rebo insulina quan el llaç està desactivat/aturat? Sí, la insulina basal es continua lliurant. No, s\'atura el lliurament d\'insulina. @@ -99,8 +98,6 @@ Preguntant a la clínica on us porten la diabetis o a la vostra endocrinòloga. https://androidaps.readthedocs.io/en/latest/EN/Installing-AndroidAPS/Update-to-new-version.html#troubleshooting https://www.facebook.com/groups/AndroidAPSUsers/ - https://discord.gg/4fQUWHZ4Mw - Plugins d\'insulina Quina insulina s\'ha de fer servir amb el plugin Ultra-Rapid Oref? Fiasp® NovoRapid®/Novolog® @@ -113,7 +110,6 @@ L\'enregistrament d\'un canvi de cànula restableix la ràtio Autosens, deixant-lo de nou a un 100%. Algunes de les opcions de plugins es poden configurar segons rangs horaris que poden ser definits per l\'usuari. https://androidaps.readthedocs.io/en/latest/EN/Configuration/Sensitivity-detection-and-COB.html - https://androidaps.readthedocs.io/en/latest/Usage/Open-APS-features.html?highlight=Autosens#autosens Errors d\'entrada de carbohidrats Què cal fer si feu una entrada incorrecta de carbohidrats? Elimineu la entrada incorrecta a Tractaments i introduïu el valor correcte de carbohidrats. @@ -123,7 +119,6 @@ Què cal fer si rebeu menys insulina de la que suggereix l\'historial de la bomba, p.ex. degut a una oclusió, a una cànula que no funciona o un oblit de reconnexió de la bomba després d\'una dutxa? Eliminar dades d\'insulina del portal de cures Nightscout per eliminar-les de l\'historial de la bomba. Lliurar un bolus amb part de la insulina que falta utilitzant una jeringa/ploma o el menú d\'encebat. - Insulina \"a bord\" (IOB) El valor d\'IOB es veu afectat per les basals temporals lliurades. Una basal temporal alta no serà lliurada si la glucèmia està per sota de l\'objectiu. Un valor d\'IOB negatiu durant un període de temps important i en absència d\'exercici físic suggereix que el vostre perfil és massa \"fort\" i necessiteu menys insulina en la vostra configuració. diff --git a/plugins/main/src/main/res/values-ca-rES/objectives.xml b/plugins/constraints/src/main/res/values-ca-rES/objectives.xml similarity index 100% rename from plugins/main/src/main/res/values-ca-rES/objectives.xml rename to plugins/constraints/src/main/res/values-ca-rES/objectives.xml diff --git a/plugins/constraints/src/main/res/values-ca-rES/strings.xml b/plugins/constraints/src/main/res/values-ca-rES/strings.xml new file mode 100644 index 0000000000..e9bb0c21b8 --- /dev/null +++ b/plugins/constraints/src/main/res/values-ca-rES/strings.xml @@ -0,0 +1,33 @@ + + + + + + + + + + Limitant carbs a %1$d g a causa de %2$s + La bomba no té la funcionalitat de basals temporals + Mode llaç tancat desactivat a la configuració + Executant versió de desenvolupament. Llaç tancat no disponible. + Llaç tancat desactivat degut a bolus estès actiu + Les funcions \"SMB sempre\" i \"SMB després de carbohidrats\" estan desactivades pq la font de glucèmia no fa filtrat avançat + SMB no permès en mode llaç obert + valor màxim a la configuració + límit estricte + Seguretat tractaments + + No finalitzat encara + Temps transcorregut + Màx IOB correctament configurada + Glucèmia disponible des de la font seleccionada + Llaç activat + APS seleccionat + Llaç tancat activat + OBJ + Programa d\'aprenentatge + Voleu reiniciar l\'objectiu? Podeu perdre el vostre progrés. + Cancel·lar finalització + Cancel·lar inici + diff --git a/plugins/main/src/main/res/values-cs-rCZ/exam.xml b/plugins/constraints/src/main/res/values-cs-rCZ/exam.xml similarity index 99% rename from plugins/main/src/main/res/values-cs-rCZ/exam.xml rename to plugins/constraints/src/main/res/values-cs-rCZ/exam.xml index f9a9292403..f0732757a8 100644 --- a/plugins/main/src/main/res/values-cs-rCZ/exam.xml +++ b/plugins/constraints/src/main/res/values-cs-rCZ/exam.xml @@ -59,7 +59,6 @@ Nechte svůj cíl glykémie beze změny. Počkejte, dokud glykémie neklesne pod Váš dočasný cíl hypoglykémie a pak snězte15 g rychlých sacharidů. https://androidaps.readthedocs.io/en/latest/CROWDIN/cs/Usage/temptarget.html#docasny-cil-pri-pohybove-aktivite - Zakázaná/pozastavená smyčka Dostávám inzulín, když je smyčka zakázána/pozastavena? Ano, bazální inzulín se dále dodává. Ne, podávání inzulínu je zastaveno. @@ -149,7 +148,6 @@ Nastavením profilu na 150 % dojde k prodloužení doby absorpce sacharidů Nastavením profilu na 150 % dojde ke zkrácení doby absorpce sacharidů Nastavení profilu na 150% neovlivní vypočtenou absorpci sacharidů - Aktivní inzulín (IOB) Hodnota IOB je ovlivněna vydanými dočasnými bazály. Vysoký dočasný bazál nebude spuštěn, pokud je Vaše glykémie nižší než cíl. Negativní IOB po značnou dobu bez cvičení naznačuje, že váš profil je příliš \"silný\" a ve vašem profilu je potřeba méně inzulínu. diff --git a/plugins/main/src/main/res/values-cs-rCZ/objectives.xml b/plugins/constraints/src/main/res/values-cs-rCZ/objectives.xml similarity index 100% rename from plugins/main/src/main/res/values-cs-rCZ/objectives.xml rename to plugins/constraints/src/main/res/values-cs-rCZ/objectives.xml diff --git a/plugins/constraints/src/main/res/values-cs-rCZ/strings.xml b/plugins/constraints/src/main/res/values-cs-rCZ/strings.xml new file mode 100644 index 0000000000..5356c4ed95 --- /dev/null +++ b/plugins/constraints/src/main/res/values-cs-rCZ/strings.xml @@ -0,0 +1,53 @@ + + + + + Změna letního času za méně než 24 hodin + Změna letního času za méně než 3 hodiny – Uzavřená smyčka zastavena + + Uvolněte alespoň %1$d MB z vnitřního úložiště! Smyčka zakázána! + + stará verze + velmi stará verze + Platnost aplikace vypršela + Nová verze je dostupná minimálně %1$d dní! Přepnutí na ochranu před nízkou glykémií po %2$d dnech, vypnutí smyčky po %3$d dnech + Zjistili jsme, že používáte neplatnou verzi, smyčka zakázána! + Verze %1$s je k dispozici + Platnost verze %1$s vyprší dne %2$s + + + Použita přepočítaná data + Glykémie je příliš blízko:\n%1$s\n%2$s + přepočítáno + zdvojené záznamy + Neměnná data. Pravděpodobně jsou neplatná + + Prodloužený bolus omezen na %1$.1f U z důvodu %2$s + Sacharidy omezeny na %1$d g: %2$s + Pumpa nepodporuje dočasné bazály + Uzavřená smyčka zakázána v nastavení + Běží DEV verze. Uzavřená smyčka je zakázána. + Uzavřená smyčka je zastavena kvůli běžícímu prodlouženému bolusu + \"SMB vždy\" a \"po jídle\" zakázáno protože zdroj glykémie nepodporuje rozšířené filtrování + SBM není povoleno v otevřené smyčce + maximální hodnota v nastavení + pevný limit + Bezpečnost zadání ošetřeni + + Hotovo, gratulujeme! + Nedokončeno + Čas + Maximální IOB nastaveno správně + Glykémie dostupné z vybraného zdroje + Služba synchronizace má oprávnění k zápisu + Smyčka povolena + APS vybráno + Uzavřená smyčka povolena + CÍLE + Výukový program + Chcete resetovat začátek cíle? Můžete přijít o svůj pokrok. + Další + Zpět + Vymazat dokončeno + Vymazat start + diff --git a/plugins/main/src/main/res/values-da-rDK/exam.xml b/plugins/constraints/src/main/res/values-da-rDK/exam.xml similarity index 99% rename from plugins/main/src/main/res/values-da-rDK/exam.xml rename to plugins/constraints/src/main/res/values-da-rDK/exam.xml index 80b7c1e5dd..4adb828d08 100644 --- a/plugins/main/src/main/res/values-da-rDK/exam.xml +++ b/plugins/constraints/src/main/res/values-da-rDK/exam.xml @@ -59,7 +59,6 @@ Lad dit blodsukker være uændret. Vent, til blodsukkeret falder under din midlertidige hypo-basal, og spis 15g hurtigt virkende kulhydrater. https://androidaps.readthedocs.io/en/latest/EN/Usage/temptarget.html#activity-temp-target - Deaktiveret/Suspendéret Loop Modtager jeg insulin, når Loop er deaktiveret/suspenderet? Ja, basal insulin fortsætter med at blive levereret. Nej, levering af insulin er stoppet. @@ -109,7 +108,6 @@ https://androidaps.readthedocs.io/en/latest/EN/Installing-AndroidAPS/Update-to-new-version.html#troubleshooting https://www.facebook.com/groups/AndroidAPSUsers/ https://discord.gg/4fQUWHZ4Mw - Insulin Plugins Hvilken insulin skal du bruge sammen med Ultra-Rapid Oref-pluginnet? Fiasp® NovoRapid®/Novolog® @@ -149,7 +147,6 @@ Ved indstilling af profil til 150%, vil kulhydrater være længere tid om at absorberes Ved indstilling af profil til 150%, vil kulhydrater være kortere tid om at absorberes Ved indstilling af profil til 150%, påvirkes absorbering af beregnet kulhydrat ikke - Insulin om bord (IOB) IOB-værdi påvirkes af midlertidige basaler. Høj midlertidlig basal vil ikke blive givet, når dit blodsukker er under målet. Negative IOB i en længere periode uden motion tyder på, at din profil er for stærk, og at der er behov for mindre insulin i dine indstillinger. diff --git a/plugins/main/src/main/res/values-da-rDK/objectives.xml b/plugins/constraints/src/main/res/values-da-rDK/objectives.xml similarity index 100% rename from plugins/main/src/main/res/values-da-rDK/objectives.xml rename to plugins/constraints/src/main/res/values-da-rDK/objectives.xml diff --git a/plugins/constraints/src/main/res/values-da-rDK/strings.xml b/plugins/constraints/src/main/res/values-da-rDK/strings.xml new file mode 100644 index 0000000000..05ae83b335 --- /dev/null +++ b/plugins/constraints/src/main/res/values-da-rDK/strings.xml @@ -0,0 +1,33 @@ + + + + + + + + + + Begrænser kulhydrater til %1$d g på grund af %2$s + Pumpe er ikke egnet til midlertidig basal + Lukket loop tilstand deaktiveret i præferencer + Kører dev version. Lukket loop er deaktiveret. + Lukket loop deaktiveret på grund af kørsel af forlænget bolus + SMB altid og efter kulhydrater deaktiveret, fordi den aktive BS kilde ikke understøtter avanceret filtrering + SMB er ikke tilladt i åben loop mode + max værdi i præferencer + hård grænse + Behandlings sikkerhed + + Ikke afsluttet endnu + Tid forløbet + Maksimal IOB sat korrekt + BS tilgængelig fra valgte kilde + Loop aktiveret + APS valgt + Lukket tilstand aktiveret + OBJ + Oplæringsprogram + Vil du nulstille objektiv start? Du kan miste dine fremskridt. + Ryd færdigt + Ryd startet + diff --git a/plugins/main/src/main/res/values-de-rDE/exam.xml b/plugins/constraints/src/main/res/values-de-rDE/exam.xml similarity index 98% rename from plugins/main/src/main/res/values-de-rDE/exam.xml rename to plugins/constraints/src/main/res/values-de-rDE/exam.xml index a2a18e2baa..670ac4c7f2 100644 --- a/plugins/main/src/main/res/values-de-rDE/exam.xml +++ b/plugins/constraints/src/main/res/values-de-rDE/exam.xml @@ -20,6 +20,8 @@ Nichts, da kein Insulin abgegeben wird, wenn die Pumpe physisch getrennt ist. Unterbricht die Insulinzufuhr nicht, wenn die Pumpe physikalisch verbunden bleibt. https://androidaps.readthedocs.io/en/latest/CROWDIN/de/Getting-Started/FAQ.html#andere-einstellungen + AAPS-Einstellungen + AAPS-Einstellungen Welches ist die empfohlene Vorgehensweise, um ein Backup Deiner Einstellungen zu erstellen? Du brauchst Deine Einstellungen nicht zu exportieren, sofern Du Dir diese notierst. Exportiere die Einstellungen nach Abschluss eines Objectives (Ziels). @@ -51,7 +53,6 @@ Lasse Dein Blutzuckerziel unverändert. Warte, bis die Blutglukose unter das temporäre Hypoziel abfällt und esse dann 15 g schnell wirkende Kohlenhydrate. https://androidaps.readthedocs.io/en/latest/CROWDIN/de/Usage/temptarget.html#aktivitaten-temp-target - Deaktiviere/Pausiere den Loop Bekomme ich Insulin, wenn der Loop deaktiviert/pausiert ist? Ja, Basalinsulin wird weiter abgegeben. Nein, die Insulinabgabe ist gestoppt. @@ -79,8 +80,10 @@ Voraussetzungen Überprüfte und belastbare Profileinstellungen (ISF, I:C Verhältnis, Basalraten, DIA etc.). Ein kompatibles Android-Gerät (z.B. Handy, Android-Uhr oder Tablet). + AAPS benötigt eine Internetverbindung, um im Closed Loop laufen zu können. Ein unterstütztes CGM und eine passende App, um Blutzuckerwerte auf dem Gerät zu erhalten. https://androidaps.readthedocs.io/en/latest/CROWDIN/de/Module/module.html + Aktualisiere AAPS Kreuze alle richtigen Antworten an. Du musst Git auf Deinem Computer installiert und konfiguriert haben. Du solltest den Speicherort des Keystores speichern und immer den gleichen Signaturschlüssel für Updates verwenden wie für die vorherige Installation. @@ -88,11 +91,11 @@ Wenn Du Schwierigkeiten beim Erstellen der apk hast, kannst Du eine apk installieren, die von einem Freund erstellt wurde. https://androidaps.readthedocs.io/en/latest/CROWDIN/de/Installing-AndroidAPS/Update-to-new-version.html Problembehandlung + Wo können Sie nach Hilfe bei AAPS suchen? Du solltest Deine Diabetesklinik / Deinen Diabetologen fragen. https://androidaps.readthedocs.io/en/latest/CROWDIN/de/Installing-AndroidAPS/Update-to-new-version.html#problembehandlung https://www.facebook.com/groups/loopedDE/ https://discord.gg/4fQUWHZ4Mw - Insulin-Plugins Welches Insulin kann mit dem Ultra-Rapid-Oref-Plugin verwendet werden? Fiasp® NovoRapid®/Novolog® @@ -128,7 +131,6 @@ Die Einstellung des Profils auf 150% verlängert die Zeit für Kohlenhydrataufnahme Die Einstellung des Profils auf 150% verkürzt die Zeit für Kohlenhydrataufnahme Die Einstellung des Profils auf 150% verändert die Zeit für die Kohlenhydrataufnahme nicht - Aktives Insulin (IOB) IOB wird von den abgegebenen temporären Basalraten beeinflusst. Eine hohe temporäre Basalrate wird nicht abgegeben, wenn der BZ unterhalb des Zielwerts liegt. Ein negativer IOB über einen längeren Zeitraum bei fehlender Bewegung deutet darauf hin, dass Dein Profil zu stark ist und weniger Insulin in Deinen Einstellungen benötigt wird. diff --git a/plugins/main/src/main/res/values-de-rDE/objectives.xml b/plugins/constraints/src/main/res/values-de-rDE/objectives.xml similarity index 100% rename from plugins/main/src/main/res/values-de-rDE/objectives.xml rename to plugins/constraints/src/main/res/values-de-rDE/objectives.xml diff --git a/plugins/constraints/src/main/res/values-de-rDE/strings.xml b/plugins/constraints/src/main/res/values-de-rDE/strings.xml new file mode 100644 index 0000000000..871093f4f9 --- /dev/null +++ b/plugins/constraints/src/main/res/values-de-rDE/strings.xml @@ -0,0 +1,32 @@ + + + + + + + + + + Begrenze Kohlenhydrate auf %1$d g wegen %2$s + Pumpe verfügt nicht über temporäre Basalraten + Closed-Loop-Modus in den Einstellungen deaktiviert + Entwickler-Version, Closed Loop ist nicht verfügbar. + Closed Loop wegen Verzögerungsbolus unterbrochen + SMB wird immer und nach Kohlenhydraten deaktiviert, weil die aktive BZ-Quelle keine geeignete Filterung der Werte unterstützt. + SMB sind im Open Loop Modus nicht erlaubt + Max. Wert in den Einstellungen + festem Grenzwert + Sicherheitseinstellungen der Behandlungen + + Verstrichene Zeit + Maximales IOB richtig gesetzt + BZ verfügbar von gewählter Quelle + Loop aktiviert + APS ausgewählt + Closed mode aktiviert + ZIEL + Das Programm kennenlernen + Möchtest Du den Start der Ziele zurücksetzen? Du verlierst Deine Fortschritte. + Ziel erneut öffnen + Ziel neu starten + diff --git a/plugins/main/src/main/res/values-el-rGR/exam.xml b/plugins/constraints/src/main/res/values-el-rGR/exam.xml similarity index 83% rename from plugins/main/src/main/res/values-el-rGR/exam.xml rename to plugins/constraints/src/main/res/values-el-rGR/exam.xml index fe556808fa..fdce573d26 100644 --- a/plugins/main/src/main/res/values-el-rGR/exam.xml +++ b/plugins/constraints/src/main/res/values-el-rGR/exam.xml @@ -2,7 +2,6 @@ Ποια είναι η αλήθεια για το DIA; https://androidaps.readthedocs.io/en/latest/EN/Configuration/Config-Builder.html?#insulin - Υπογλυκαιμικός Ρυθμός-Στόχος https://androidaps.readthedocs.io/en/latest/EN/Usage/temptarget.html Ποιο προφίλ μπορεί να χρησιμοποιηθεί και να διαμορφωθεί χωρίς σύνδεση; Θέμα: Προφίλ Εκτός Σύνδεσης @@ -14,7 +13,6 @@ https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#what-emergency-equipment-is-recommended-to-take-with-me Τι πρέπει να κάνετε αν τα δεδομένα του CGM έχουν θόρυβο; https://androidaps.readthedocs.io/en/latest/EN/Usage/Smoothing-Blood-Glucose-Data-in-xDrip.html#smoothing-blood-glucose-data - https://androidaps.readthedocs.io/en/latest/EN/Usage/temptarget.html#activity-temp-target https://androidaps.readthedocs.io/en/latest/EN/Usage/temptarget.html#activity-temp-target Λαμβάνω ινσουλίνη όταν το κύκλωμα είναι απενεργοποιημένο/αναστολή; Ναι, ο βασικός ρυθμός συνεχίζει να χορηγείται. @@ -29,22 +27,15 @@ https://androidaps.readthedocs.io/en/latest/EN/Module/module.html Ένα Smartwatch. Ένα Υποστηριζόμενο CGM. - https://androidaps.readthedocs.io/en/latest/EN/Module/module.html - Ελέγξτε όλες τις σωστές απαντήσεις. Ποτέ μην αναβαθμίζετε εάν το σύστημα λειτουργεί καλά. https://androidaps.readthedocs.io/en/latest/EN/Installing-AndroidAPS/Update-to-new-version.html#update-to-a-new-version-or-branch - Αντιμετώπιση προβλημάτων https://androidaps.readthedocs.io/en/latest/EN/Installing-AndroidAPS/Update-to-new-version.html#troubleshooting https://www.facebook.com/groups/AndroidAPSUsers/ - https://discord.gg/4fQUWHZ4Mw Fiasp® Humalog® https://androidaps.readthedocs.io/en/latest/EN/Configuration/Config-Builder.html#insulin - Ελέγξτε όλες τις σωστές απαντήσεις. https://androidaps.readthedocs.io/en/latest/EN/Configuration/Sensitivity-detection-and-COB.html - https://androidaps.readthedocs.io/en/latest/Usage/Open-APS-features.html?highlight=Autosens#autosens Τι πρέπει να κάνετε αν γίνει μια λανθασμένη εισαγωγή υδατανθράκων; - https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#insulin-to-carb-ratio-ic-g-u e-carbs https://androidaps.readthedocs.io/en/latest/EN/Usage/Extended-Carbs.html https://androidaps.readthedocs.io/en/latest/EN/Children/Children.html @@ -54,8 +45,6 @@ Αν έχετε 0 COB Ενεργούς Υδατ., αλλάζοντας την αναλογία IC θα οδηγήσει σε μια διαφορετική ποσότητα ινσουλίνης για να διορθωθεί μια συγκεκριμένη τιμή BG. https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#carbohydrate-to-insulin-ratio-cr-g-u https://androidaps.readthedocs.io/en/latest/EN/Usage/Profiles.html?highlight=profile%20switch#profile-switch - Ξεκινήστε μία αλλαγή προφίλ με χρονική μετατόπιση 2 - Ξεκινήστε μία αλλαγή προφίλ με χρονική μετατόπιση -2 https://androidaps.readthedocs.io/en/latest/EN/Usage/Profiles.html?highlight=profile%20switch#timeshift https://androidaps.readthedocs.io/en/latest/EN/Module/module.html#good-individual-dosage-algorithm-for-your-diabetes-therapy Πού θα πάτε για βοήθεια με Βασικό ρυθμό κτλ. diff --git a/plugins/main/src/main/res/values-el-rGR/objectives.xml b/plugins/constraints/src/main/res/values-el-rGR/objectives.xml similarity index 100% rename from plugins/main/src/main/res/values-el-rGR/objectives.xml rename to plugins/constraints/src/main/res/values-el-rGR/objectives.xml diff --git a/plugins/constraints/src/main/res/values-el-rGR/strings.xml b/plugins/constraints/src/main/res/values-el-rGR/strings.xml new file mode 100644 index 0000000000..9478ce1b3f --- /dev/null +++ b/plugins/constraints/src/main/res/values-el-rGR/strings.xml @@ -0,0 +1,29 @@ + + + + + + + + + + Περιορίζονται οι υδατάνθρακες σε %1$d g λόγω %2$s + Η αντλία δεν υποστηρίζει προσωρινό βασικό ρυθμό + Το κλειστό κύκλωμα είναι απενεργοποιημένο στις Επιλογές + Εκτελείται έκδοση Dev. Το κλειστό κύκλωμα είναι απενεργοποιημένο. + Το SMB πάντα και μετά το γεύμα απενεργοποιείται επειδή η ενεργή πηγή BG δεν υποστηρίζει προηγμένο φιλτράρισμα + To SMB δεν επιτρέπεται σε λειτουργία ανοιχτού κυκλώματος + μέγιστη τιμή στις Επιλογές + σταθερό όριο + Ασφάλεια Θεραπειών + + Δεν ολοκληρώθηκε ακόμη + Ο χρόνος που πέρασε + Το μέγιστο IOB έχει ρυθμιστεί σωστά + BG διαθέσιμη από επιλεγμένη πηγή + Κύκλωμα ενεργοποιημένο + Επιλέχθηκε APS + Ενεργοποιήθηκε η κλειστή λειτουργία + ΣΤΟΧΟΙ + Πρόγραμμα εκμάθησης + diff --git a/plugins/main/src/main/res/values-es-rES/exam.xml b/plugins/constraints/src/main/res/values-es-rES/exam.xml similarity index 99% rename from plugins/main/src/main/res/values-es-rES/exam.xml rename to plugins/constraints/src/main/res/values-es-rES/exam.xml index 5ef973f368..090ccceaa9 100644 --- a/plugins/main/src/main/res/values-es-rES/exam.xml +++ b/plugins/constraints/src/main/res/values-es-rES/exam.xml @@ -59,7 +59,6 @@ Deja tu objetivo de glucosa sanguíneo sin cambios. Espere hasta que la glucosa en sangre caiga por debajo de su objetivo de hipo temp y luego coma 15 g de hidratos de carbono de actividad rápida. https://androidaps.readthedocs.io/en/latest/EN/Usage/temptarget.html#activity-temp-target - Desactiva/suspende el lazo ¿Recibo insulina cuando el lazo está desactivado/suspendido? Sí, la insulina basal sigue siendo entregada. No, la administración de la insulina está detenida. @@ -149,7 +148,6 @@ Establecer el perfil a 150% hará que los carbohidratos se absorban más lentamente Establecer el perfil a 150% hará que los carbohidratos se absorban más rápidamente Establecer el perfil a 150% no afectará la absorción calculada de carbohidratos - Insulina a bordo (IOB) El valor del IOB se ve afectado por las bases temporales ejecutadas. No se dará alta tasa basal temporal cuando su nivel de azúcar en sangre esté por debajo del objetivo. El IOB negativo durante un período sustancial en ausencia de ejercicio sugiere que tu perfil es demasiado fuerte y que se necesita menos insulina en tus ajustes. diff --git a/plugins/main/src/main/res/values-es-rES/objectives.xml b/plugins/constraints/src/main/res/values-es-rES/objectives.xml similarity index 100% rename from plugins/main/src/main/res/values-es-rES/objectives.xml rename to plugins/constraints/src/main/res/values-es-rES/objectives.xml diff --git a/plugins/constraints/src/main/res/values-es-rES/strings.xml b/plugins/constraints/src/main/res/values-es-rES/strings.xml new file mode 100644 index 0000000000..2a9a98586f --- /dev/null +++ b/plugins/constraints/src/main/res/values-es-rES/strings.xml @@ -0,0 +1,53 @@ + + + + + Cambio al horario de verano en menos de 24 horas + Cambio al horario de verano hace menos de 3 horas - Lazo cerrado deshabilitado + + Debe liberar al menos %1$d MB de almacenamiento interno. ¡El lazo se encuentra desactivado! + + versión antigua + versión muy antigua + Aplicación caducada + Nueva versión disponible de al menos %1$d día/s. Se vuelve a la función de suspensión por glucosa baja (LGS) después de %2$d días. Después se deshabilitará el lazo en %3$d días + Hemos detectado que está ejecutando una versión no válida. ¡Lazo desactivado! + Versión %1$s disponible + La versión %1$s caduca el %2$s + + + Datos recalculados usados + Datos de glucosa demasiado cercanos:\n%1$s\n%2$s + recalculado + entradas dobles + Datos planos. Considerados erróneos + + Limitando el bolo extendido a %1$.1f U debido a %2$s + Limitando carbohidratos a %1$d g debido a %2$s + La bomba no tiene capacidad de basal temporal + Lazo cerrado deshabilitado en preferencias + Ejecutando la versión dev. Lazo cerrado no disponible. + Lazo cerrado deshabilitado debido a la ejecución de un bolo extendido + SMB siempre y después de carbohidratos desactivados porque la fuente activa de BG no soporta filtrado avanzado + SMB no permitido en modo de lazo abierto + valor máximo en preferencias + límite estricto + Seguridad de tratamientos + + ¡Completado, bien hecho! + No completado + Tiempo agotado + Máximo IOB ajustado correctamente + Glucosa disponible desde la fuente seleccionada + El servicio de sincronización tiene permiso de escritura + Lazo activado + APS seleccionado + Lazo cerrado activado + OBJ + Programa de aprendizaje + ¿Desea reiniciar el objetivo? Puedes perder tu progreso. + Siguiente + Anterior + Limpieza finalizada + Limpieza iniciada + diff --git a/plugins/main/src/main/res/values-fr-rFR/exam.xml b/plugins/constraints/src/main/res/values-fr-rFR/exam.xml similarity index 99% rename from plugins/main/src/main/res/values-fr-rFR/exam.xml rename to plugins/constraints/src/main/res/values-fr-rFR/exam.xml index c865261ea0..60e78065a4 100644 --- a/plugins/main/src/main/res/values-fr-rFR/exam.xml +++ b/plugins/constraints/src/main/res/values-fr-rFR/exam.xml @@ -59,7 +59,6 @@ Laissez votre cible de glycémie inchangée. Attendez que la glycémie tombe en dessous de votre cible temporaire d\'hypo, puis mangez 15 g de glucides à action rapide. https://androidaps.readthedocs.io/en/latest/CROWDIN/fr/Usage/temptarget.html#activity-temp-target - Boucle désactivée/suspendue Est-ce que je reçois de l\'insuline lorsque la boucle est désactivée / suspendue ? Oui, l\'insuline basale continue à être délivrée. Non, l\'injection d\'insuline est arrêtée. @@ -149,7 +148,6 @@ Définir le profil à 150% rendra l\'absorption des glucides plus longue Définir le profil à 150% réduira le temps d\'absorption des glucides Définir le profil à 150% n\'impactera pas le calcul de l\'absorption des glucides - Insuline Active (IA) La valeur de l\'IA est impactée par les débits de basal temporaires émis. Une basale temp haute ne sera pas donnée quand votre glycémie est en dessous de la cible. Une IA négative pendant une période significative en l\'absence d\'exercice indique que votre profil est trop fort et qu\'il faut moins d\'insuline dans vos paramètres. diff --git a/plugins/main/src/main/res/values-fr-rFR/objectives.xml b/plugins/constraints/src/main/res/values-fr-rFR/objectives.xml similarity index 100% rename from plugins/main/src/main/res/values-fr-rFR/objectives.xml rename to plugins/constraints/src/main/res/values-fr-rFR/objectives.xml diff --git a/plugins/constraints/src/main/res/values-fr-rFR/strings.xml b/plugins/constraints/src/main/res/values-fr-rFR/strings.xml new file mode 100644 index 0000000000..4e6f7bd219 --- /dev/null +++ b/plugins/constraints/src/main/res/values-fr-rFR/strings.xml @@ -0,0 +1,38 @@ + + + + + + + + + Données plates. Considérées comme incorrectes + + Limiter les glucides %1$d g à cause de %2$s + Pompe n’est pas capable de basals temporaires + Mode de Boucle Fermée désactivé dans les préférences + Version Dev. La Boucle Fermée est désactivée. + Boucle fermée désactivée à cause du bolus étendu + SMB toujours et post-ingestion de glucides désactivé car la source de glycémies actuelle ne supporte pas de filtrage avancé + SMB non autorisé en mode boucle ouverte + valeur Max dans les préférences + limite fixée + Traitements de sécurité + + Terminé, félicitations ! + Pas encore terminé + Temps écoulé + Maximum IA réglé correctement + Glycémie disponible depuis la source sélectionnée + Le service de synchronisation a l\'autorisation d\'écriture + Boucle activée + APS Sélectionné + Mode boucle fermée activé + OBJ + Programme d’apprentissage + Voulez-vous réinitialiser le début de l\'objectif ? Vous risquez de perdre vos progrès. + Suivant + Préc + Refaire l\'objectif + Suppression démarrée + diff --git a/plugins/main/src/main/res/values-ja-rJP/exam.xml b/plugins/constraints/src/main/res/values-ga-rIE/exam.xml similarity index 100% rename from plugins/main/src/main/res/values-ja-rJP/exam.xml rename to plugins/constraints/src/main/res/values-ga-rIE/exam.xml diff --git a/plugins/main/src/main/res/values-ga-rIE/objectives.xml b/plugins/constraints/src/main/res/values-ga-rIE/objectives.xml similarity index 69% rename from plugins/main/src/main/res/values-ga-rIE/objectives.xml rename to plugins/constraints/src/main/res/values-ga-rIE/objectives.xml index d9d309bd63..693890deb0 100644 --- a/plugins/main/src/main/res/values-ga-rIE/objectives.xml +++ b/plugins/constraints/src/main/res/values-ga-rIE/objectives.xml @@ -2,5 +2,4 @@ Tosaigh Fhíorú - Tosaigh ag lúb oscailte diff --git a/plugins/support/src/main/res/values-ga-rIE/strings.xml b/plugins/constraints/src/main/res/values-ga-rIE/strings.xml similarity index 59% rename from plugins/support/src/main/res/values-ga-rIE/strings.xml rename to plugins/constraints/src/main/res/values-ga-rIE/strings.xml index bf1d7d9314..5d683010a5 100644 --- a/plugins/support/src/main/res/values-ga-rIE/strings.xml +++ b/plugins/constraints/src/main/res/values-ga-rIE/strings.xml @@ -6,4 +6,8 @@ + + + Lúb cumasaithe + APS roghnaithe diff --git a/plugins/main/src/main/res/values-hr-rHR/exam.xml b/plugins/constraints/src/main/res/values-hr-rHR/exam.xml similarity index 60% rename from plugins/main/src/main/res/values-hr-rHR/exam.xml rename to plugins/constraints/src/main/res/values-hr-rHR/exam.xml index b4d6eabf2b..88a331afbf 100644 --- a/plugins/main/src/main/res/values-hr-rHR/exam.xml +++ b/plugins/constraints/src/main/res/values-hr-rHR/exam.xml @@ -3,63 +3,38 @@ Što je istina o DIA-i? Trajanje djelovanja inzulina (DIA) Trebali biste postaviti vrijednost za DIA u svom profilu. - https://androidaps.readthedocs.io/en/latest/EN/Configuration/Config-Builder.html?#insulin Ako ste zadovoljni da je vrijednost za DIA koju ste koristili u svojoj pumpi prije AAPS-a, nema potrebe da je mijenjate kada počnete raditi u petlji. Kako bi se spriječilo pretjerano korigiranje AAPS-a za porast glukoze u krvi uzrokovan brzodjelujućim ugljikohidratima koji se koriste za tretiranje hipoglikemije. - https://androidaps.readthedocs.io/en/latest/EN/Usage/temptarget.html - https://androidaps.readthedocs.io/en/latest/EN/Configuration/Config-Builder.html#profile Razlozi za primjenu \"Otkači pumpu\" u AAPS Sprječava APPS da obračuna inzulin koji nije isporučen dok je pumpa fizički odspojena. Poslat će AAPS u način rada otvorene petlje. - https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#other-settings AAPS postavke AAPS postavke - https://androidaps.readthedocs.io/en/latest/EN/Usage/ExportImportSettings.html - https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#what-emergency-equipment-is-recommended-to-take-with-me Ne činiti ništa - AAPS će se pozabaviti time. - https://androidaps.readthedocs.io/en/latest/EN/Usage/Smoothing-Blood-Glucose-Data-in-xDrip.html#smoothing-blood-glucose-data - https://androidaps.readthedocs.io/en/latest/EN/Usage/temptarget.html#activity-temp-target - https://androidaps.readthedocs.io/en/latest/EN/Usage/temptarget.html#activity-temp-target - https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#androidaps-settings Što je bitno za postavljanje i korištenje AAPS-a? - https://androidaps.readthedocs.io/en/latest/EN/Module/module.html Što je bitno za postavljanje i korištenje AAPS-a? AAPS zahtijeva internetsku vezu kako bi radio u zatvorenoj petlji. - https://androidaps.readthedocs.io/en/latest/EN/Module/module.html Ažuriranje AAPS-a Kada se objave ažurirane verzije AAPS-a, starije verzije mogu biti udaljeno ograničene nakon određenog vremena. - https://androidaps.readthedocs.io/en/latest/EN/Installing-AndroidAPS/Update-to-new-version.html#update-to-a-new-version-or-branch Gdje možete potražiti pomoć za AAPS? Za savjet možete zatražiti u Facebook grupi Korisnici AAPS-a. Trebali biste pročitati (i ponovno pročitati) AAPS dokumentaciju. Možete zatražiti savjet i prijaviti tehničke probleme ili probleme u AAPS Discord. - https://androidaps.readthedocs.io/en/latest/EN/Installing-AndroidAPS/Update-to-new-version.html#troubleshooting - https://www.facebook.com/groups/AndroidAPSUsers/ - Fiasp® - https://androidaps.readthedocs.io/en/latest/EN/Configuration/Config-Builder.html#insulin Dodaci za osjetljivost omogućuju AAPS-u da se prilagodi privremenim ili kratkotrajnim promjenama u osjetljivosti na inzulin (na primjer, hormonalne promjene ili problemi s apsorpcijom na mjestu infuzije). - https://androidaps.readthedocs.io/en/latest/EN/Configuration/Sensitivity-detection-and-COB.html https://androidaps.readthedocs.io/en/latest/Usage/Open-APS-features.html?highlight=Autosens#autosens Ne poduzimati ništa – AAPS će izvršiti odgovarajuće prilagodbe. Usporedite vrijednosti u AAPS i povijesti pumpe (ako pumpa to podržava). Ne poduzimajte ništa i dopustite APPS-u da ispravi sve rezultirajuće visoke razine glukoze u krvi. AAPS koristi dinamički model za procjenu \"raspada\" ugljikohidrata i izračunavanje COB-a. - https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#insulin-to-carb-ratio-ic-g-u Za bilježenje \'besplatnih\' ugljikohidrata za vježbanje koje želite sakriti od AAPS-a. e-ugljikohidrati (distribuirani u budućnosti) mogu pomoći AAPS-u u rješavanju obroka s visokim udjelom masti/proteina. - https://androidaps.readthedocs.io/en/latest/EN/Usage/Extended-Carbs.html Kako možete nadzirati APPS (na primjer za svoje dijete) na daljinu? Aplikacija AAPSClient, aplikacija Nightscout i web stranica Nightscout omogućuju vam praćenje AAPS-a na daljinu. Da biste pratili AAPS na daljinu, oba uređaja moraju imati pristup internetu (npr. putem Wi-Fi ili podatkovne mreže mobilne/mobilne mreže). AAPSClient koji se koristi kao daljinski pratitelj nadzirat će i pružiti potpunu kontrolu nad AAPS-om. - https://androidaps.readthedocs.io/en/latest/EN/Children/Children.html ISF trebate unijeti u svoje postavke AAPS-a. - https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#insulin-sensitivity-factor-isf-mmol-l-u-or-mg-dl-u - https://androidaps.readthedocs.io/en/latest/EN/Usage/Profiles.html - https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#carbohydrate-to-insulin-ratio-cr-g-u Ako ustanete 2 sata ranije nego inače, kako biste trebali obavijestiti AAPS o promjeni svog rasporeda? Aktiviranje promjena vašeg Nightscout profila zahtijeva da vaš AAPS telefon ima internetsku vezu. - https://androidaps.readthedocs.io/en/latest/EN/Module/module.html#good-individual-dosage-algorithm-for-your-diabetes-therapy AAPS smanjuje bazalne doze ili obustavlja isporuku inzulina radi povećanja šećera u krvi. Lijekovi iz klase inhibitora SGLT2 (gliflozini) mogu spriječiti povećanje glukoze u krvi i stoga mogu izazvati opasan nedostatak inzulina koji dovodi do DKA. \nUobičajeni brendovi su: Invokana®, Forxiga®, Jardiance®, Steglatro®, Suglat®, Apleway®, Deberza®, Synjardy®, Vokanamet®, Xigduo®.\n\nOvime obećavam da neću uzimati takve lijekove kada koristeći AAPS ili će deaktivirati petlju prije upotrebe takvih lijekova. diff --git a/plugins/constraints/src/main/res/values-hr-rHR/objectives.xml b/plugins/constraints/src/main/res/values-hr-rHR/objectives.xml new file mode 100644 index 0000000000..01623f2c9e --- /dev/null +++ b/plugins/constraints/src/main/res/values-hr-rHR/objectives.xml @@ -0,0 +1,5 @@ + + + Naučite kako kontrolirati AAPS + Izvršite različite radnje u AAPS-u + diff --git a/plugins/constraints/src/main/res/values-hr-rHR/strings.xml b/plugins/constraints/src/main/res/values-hr-rHR/strings.xml new file mode 100644 index 0000000000..efc53c1b2c --- /dev/null +++ b/plugins/constraints/src/main/res/values-hr-rHR/strings.xml @@ -0,0 +1,16 @@ + + + + + + + + + + Sigurnosne postavke medikacije + + Dovršeno, bravo! + Nije još dovršeno + Prošlo vrijeme + Program učenja + diff --git a/plugins/main/src/main/res/values-sr-rCS/exam.xml b/plugins/constraints/src/main/res/values-hu-rHU/exam.xml similarity index 100% rename from plugins/main/src/main/res/values-sr-rCS/exam.xml rename to plugins/constraints/src/main/res/values-hu-rHU/exam.xml diff --git a/plugins/main/src/main/res/values-hu-rHU/objectives.xml b/plugins/constraints/src/main/res/values-hu-rHU/objectives.xml similarity index 100% rename from plugins/main/src/main/res/values-hu-rHU/objectives.xml rename to plugins/constraints/src/main/res/values-hu-rHU/objectives.xml diff --git a/plugins/support/src/main/res/values-sr-rCS/strings.xml b/plugins/constraints/src/main/res/values-hu-rHU/strings.xml similarity index 60% rename from plugins/support/src/main/res/values-sr-rCS/strings.xml rename to plugins/constraints/src/main/res/values-hu-rHU/strings.xml index bf1d7d9314..3fbb6840b8 100644 --- a/plugins/support/src/main/res/values-sr-rCS/strings.xml +++ b/plugins/constraints/src/main/res/values-hu-rHU/strings.xml @@ -6,4 +6,8 @@ + + + Eltelt idő + APS kiválasztva diff --git a/plugins/main/src/main/res/values-it-rIT/exam.xml b/plugins/constraints/src/main/res/values-it-rIT/exam.xml similarity index 99% rename from plugins/main/src/main/res/values-it-rIT/exam.xml rename to plugins/constraints/src/main/res/values-it-rIT/exam.xml index b9986b1467..71e065f5bd 100644 --- a/plugins/main/src/main/res/values-it-rIT/exam.xml +++ b/plugins/constraints/src/main/res/values-it-rIT/exam.xml @@ -59,7 +59,6 @@ Lasciare il tuo target glicemico invariato. Attendere che la glicemia scenda al di sotto del tuo target temporaneo \"ipoglicemia\" e poi mangiare 15 g di carboidrati a rapido assorbimento. https://androidaps.readthedocs.io/en/latest/EN/Usage/temptarget.html#activity-temp-target - Loop disabilitato/sospeso Ricevo insulina quando il loop è disabilitato/sospeso? Sì, l\'insulina basale continua a essere erogata. No, l\'erogazione di insulina è interrotta. @@ -109,7 +108,6 @@ https://androidaps.readthedocs.io/en/latest/EN/Installing-AndroidAPS/Update-to-new-version.html#troubleshooting https://www.facebook.com/groups/aapsitalia/ https://discord.gg/4fQUWHZ4Mw - Plugin insulina Quale insulina dovresti usare con il plugin Ultra-Rapid Oref? Fiasp® NovoRapid®/Novolog® @@ -149,7 +147,6 @@ Impostare il profilo al 150% richiederà un tempo maggiore per l\'assorbimento dei CHO Impostare il profilo al 150% richiederà un tempo minore per l\'assorbimento dei CHO Impostare il profilo al 150% non influirà sull\'assorbimento calcolato dei CHO - Insulina attiva (IOB) Il valore IOB è influenzato dalle basali temporanee emesse. Non verrà emessa una basale temporanea alta quando la tua glicemia è al di sotto del target. IOB negativo per un periodo considerevole in assenza di esercizio fisico suggerisce che il tuo profilo è troppo incisivo e che è necessaria meno insulina nelle tue impostazioni. diff --git a/plugins/main/src/main/res/values-it-rIT/objectives.xml b/plugins/constraints/src/main/res/values-it-rIT/objectives.xml similarity index 100% rename from plugins/main/src/main/res/values-it-rIT/objectives.xml rename to plugins/constraints/src/main/res/values-it-rIT/objectives.xml diff --git a/plugins/constraints/src/main/res/values-it-rIT/strings.xml b/plugins/constraints/src/main/res/values-it-rIT/strings.xml new file mode 100644 index 0000000000..ce0a2dec6e --- /dev/null +++ b/plugins/constraints/src/main/res/values-it-rIT/strings.xml @@ -0,0 +1,33 @@ + + + + + + + + + + Limitazione carboidrati a %1$d g a causa di: %2$s + Micro non in grado di impostare la basale temporanea + Modalità loop chiuso disabilitata nelle preferenze + Versione sviluppatore in esecuzione. Loop chiuso disabilitato. + Loop chiuso disabilitato a causa dell\'esecuzione di un bolo esteso + Le funzioni \"SMB sempre\" e \"SMB dopo i CHO\" sono disabilitate perché l\'attuale sorgente delle glicemie non supporta il filtraggio avanzato + SMB non consentito in modalità loop aperto + valore max nelle preferenze + limite fisso + Sicurezza trattamenti + + Non ancora completato + Tempo trascorso + Max IOB impostata correttamente + BG disponibile da sorgente selezionata + Loop abilitato + APS selezionato + Modalità chiusa abilitata + OBT + Programma di apprendimento + Vuoi resettare l\'avvio dell\'obiettivo? Potresti perdere i tuoi progressi. + Cancella completamento + Cancella avvio + diff --git a/plugins/main/src/main/res/values-iw-rIL/exam.xml b/plugins/constraints/src/main/res/values-iw-rIL/exam.xml similarity index 99% rename from plugins/main/src/main/res/values-iw-rIL/exam.xml rename to plugins/constraints/src/main/res/values-iw-rIL/exam.xml index 3a678aa5cf..d76b046268 100644 --- a/plugins/main/src/main/res/values-iw-rIL/exam.xml +++ b/plugins/constraints/src/main/res/values-iw-rIL/exam.xml @@ -59,7 +59,6 @@ השאירו את ערך מטרת הסוכר ללא שינוי. המתינו עד שהגלוקוז בדם יירד מתחת לערך המטרה של היפו ואז אכלו 15 גרם של פחמימות מהירות. https://androidaps.readthedocs.io/en/latest/EN/Usage/temptarget.html#activity-temp-target - השבתת \\ השהיית לולאה האם אני מקבל\\ת אינסולין כאשר הלולאה מושבתת\\מושהית? כן, אינסולין בזאלי ממשיך להינתן. לא, אספקת האינסולין נפסקת. @@ -109,7 +108,6 @@ https://androidaps.readthedocs.io/en/latest/EN/Installing-AndroidAPS/Update-to-new-version.html#troubleshooting https://www.facebook.com/groups/AndroidAPSUsers/ https://discord.gg/4fQUWHZ4Mw - תוספי אינסולין באיזה אינסולין להשתמש עם תוסף האולטרה מהיר? Fiasp® NovoRapid®/Novolog® @@ -149,7 +147,6 @@ הגדרת 150% פרופיל תגרום להארכת משך ספיגת הפחמימות הגדרת 150% פרופיל תגרום לקיצור משך ספיגת הפחמימות הגדרת 150% פרופיל לא תשפיע על חישוב משך ספיגת הפחמימות - אינסולין פעיל בגוף (IOB) ערך האינסולין הפעיל (IOB) מושפע ממינונים בזאליים זמניים שסופקו. מינון בזאלי גבוה לא יינתן כאשר רמת הסוכר נמוכה מערך המטרה. אינסולין פעיל שלילי לאורך זמן בו לא נעשית פעילות מצביע על כך שהפרופיל חזק מדי, נדרש פחות אינסולין ויש להגדיר זאת בפרופיל. diff --git a/plugins/main/src/main/res/values-iw-rIL/objectives.xml b/plugins/constraints/src/main/res/values-iw-rIL/objectives.xml similarity index 100% rename from plugins/main/src/main/res/values-iw-rIL/objectives.xml rename to plugins/constraints/src/main/res/values-iw-rIL/objectives.xml diff --git a/plugins/constraints/src/main/res/values-iw-rIL/strings.xml b/plugins/constraints/src/main/res/values-iw-rIL/strings.xml new file mode 100644 index 0000000000..966fb64ff1 --- /dev/null +++ b/plugins/constraints/src/main/res/values-iw-rIL/strings.xml @@ -0,0 +1,33 @@ + + + + + + + + + + הגבלת פחמימות ל-%1$d גר\' בגלל %2$s + המשאבה אינה מסוגלת לבצע בזאלי זמני + מצב לולאה סגור מושבת בהעדפות + זוהי גרסת פיתוח. לולאה סגורה אינה מורשת. + הלולאה הסגורה מופסקת עקב מתן בולוס ממושך + SMB תמידי ו-SMB לאחר פחמימות מושבתים כיוון שמקור ערכי הסוכר הפעיל אינו תומך בסינון נתונים מתקדם + SMB אינו פעיל במצב לולאה פתוחה + ערך מקסימלי בהעדפות + מגבלה קשיחה + בטיחות טיפולים + + עוד לא הושלם + זמן שחלף + ערך IOB מקסימלי הוגדר כראוי + ערכי סוכר זמינים מהמקור הנבחר + הלולאה פעילה + נבחר APS + מצב סגור מופעל + OBJ + תוכנית הלימוד + האם ברצונכם לאפס את התחלת המשימה? אתם עלולים לאבד את התקדמותכם במשימה. + ביטול השלמה + ביטול התחלה + diff --git a/plugins/main/src/main/res/values-ja-rJP/objectives.xml b/plugins/constraints/src/main/res/values-ja-rJP/exam.xml similarity index 100% rename from plugins/main/src/main/res/values-ja-rJP/objectives.xml rename to plugins/constraints/src/main/res/values-ja-rJP/exam.xml diff --git a/plugins/main/src/main/res/values-sr-rCS/objectives.xml b/plugins/constraints/src/main/res/values-ja-rJP/objectives.xml similarity index 100% rename from plugins/main/src/main/res/values-sr-rCS/objectives.xml rename to plugins/constraints/src/main/res/values-ja-rJP/objectives.xml diff --git a/plugins/support/src/main/res/values-ja-rJP/strings.xml b/plugins/constraints/src/main/res/values-ja-rJP/strings.xml similarity index 84% rename from plugins/support/src/main/res/values-ja-rJP/strings.xml rename to plugins/constraints/src/main/res/values-ja-rJP/strings.xml index bf1d7d9314..25fed4a847 100644 --- a/plugins/support/src/main/res/values-ja-rJP/strings.xml +++ b/plugins/constraints/src/main/res/values-ja-rJP/strings.xml @@ -6,4 +6,6 @@ + + diff --git a/plugins/main/src/main/res/values-ko-rKR/exam.xml b/plugins/constraints/src/main/res/values-ko-rKR/exam.xml similarity index 98% rename from plugins/main/src/main/res/values-ko-rKR/exam.xml rename to plugins/constraints/src/main/res/values-ko-rKR/exam.xml index 40db45293e..92f993064a 100644 --- a/plugins/main/src/main/res/values-ko-rKR/exam.xml +++ b/plugins/constraints/src/main/res/values-ko-rKR/exam.xml @@ -51,7 +51,6 @@ 임시 목표를 변경하지 않습니다. \"저혈당 임시 목표\"보다 혈당이 떨어질 때까지 기다린 후 빠르게 반응하는 탄수화물 15g을 섭취합니다. https://androidaps.readthedocs.io/en/latest/CROWDIN/ko/Usage/temptarget.html#activity-temp-target - 중지 또는 일시중지된 loop Loop가 중지/일시중지 되었을때 인슐린이 주입됩니까? 네, Basal 인슐린은 계속 주입됩니다. 아니오, 인슐린 주입이 모두 중지됩니다. @@ -91,8 +90,6 @@ 당뇨병 클리닉/내분비내과의사에게 문의해야 합니다. https://androidaps.readthedocs.io/en/latest/CROWDIN/ko/Installing-AndroidAPS/Update-to-new-version.html#troubleshooting https://www.facebook.com/groups/AndroidAPSUsers/ - https://discord.gg/4fQUWHZ4Mw - 인슐린 플러그인 어떤 인슐린에서 초-초속효성의 Oref 플러그인을 사용해야 할까요? 피아스프(Fiasp®) 노보래피드(NovoRapid®)/노보로그(Novolog®) @@ -105,7 +102,6 @@ 캐뉼라 교체를 입력하면 Autosens 비율은 100%로 되돌아갑니다. 일부 플러그인 옵션은 사용자가 설정 가능한 시간 범위를 갖습니다. https://androidaps.readthedocs.io/en/latest/CROWDIN/ko/Configuration/Sensitivity-detection-and-COB.html - https://androidaps.readthedocs.io/en/latest/Usage/Open-APS-features.html?highlight=Autosens#autosens 탄수화물 입력 오류 부적절한 탄수화물을 입력하였다면 어떻게 하여야 합니까? 관리 메뉴에서 잘못된 입력을 삭제하고, 새로운 탄수화물 양으로 수정합니다. @@ -115,7 +111,6 @@ 만약 펌프 기록에서 보여지는 것보다 인슐린이 적게 주입되었을 때 어떻게 해야 할까요? (예를 들어, 주입 막힘, 캐뉼라 문제, 샤워 후 펌프 재부착을 잊어버렸을 때) Nightscout 케어포탈에서 인슐린 데이터를 삭제하여 펌프 기록에서 이를 제거합니다. \"주입되지 않은\" 인슐린양을 계산하여 시린지/펜 또는 prime 기능을 사용하여 인슐린을 주입합니다. - 활성 인슐린 (IOB) IOB 값은 실행된 임시 basal의 영향을 받습니다. 혈당이 목표보다 낮을 경우 높은 임시 basal은 실행되지 않습니다. 운동 없이도 음수의 IOB (마이너스 IOB) 구간이 많을 경우, 프로파일이 너무 강한 것이며 인슐린 양을 적게 설정해야 합니다. diff --git a/plugins/main/src/main/res/values-ko-rKR/objectives.xml b/plugins/constraints/src/main/res/values-ko-rKR/objectives.xml similarity index 100% rename from plugins/main/src/main/res/values-ko-rKR/objectives.xml rename to plugins/constraints/src/main/res/values-ko-rKR/objectives.xml diff --git a/plugins/constraints/src/main/res/values-ko-rKR/strings.xml b/plugins/constraints/src/main/res/values-ko-rKR/strings.xml new file mode 100644 index 0000000000..f240316029 --- /dev/null +++ b/plugins/constraints/src/main/res/values-ko-rKR/strings.xml @@ -0,0 +1,33 @@ + + + + + + + + + + %2$s로 인해 탄수화물이 %1$d g로 제한됩니다. + 이 펌프 임시Basal을 지원하지 않습니다. + 설정에서 Closed Loop 모드가 비활성화되었습니다. + 개발자버전을 실행중입니다. Closed Loop는 비활성화 됩니다. + 확장 Bolus 사용으로 인해 Closed Loop가 비활성화됨 + 선택한 혈당 출처가 고급 필터링을 지원하지 않기 때문에 SMB가 항상 비활성화됩니다. + Open Loop모드에선 SMB가 허용되지 않습니다. + 설정에서의 최대값 + 하드한계 + 관리 안전설정 + + 아직 완료되지 않았습니다. + 경과 시간 + 최대 IOB가 바르게 설정됨 + 선택한 소스에서 혈당이 들어옵니다. + Loop 활성화됨 + APS 선택됨 + Closed 모드가 활성화됨 + OBJ + 프로그램 배우기 + 목표를 초기화하시겠습니까? 진행상황이 삭제됩니다. + 완료 초기화 + 시작 초기화 + diff --git a/plugins/main/src/main/res/values-lt-rLT/exam.xml b/plugins/constraints/src/main/res/values-lt-rLT/exam.xml similarity index 97% rename from plugins/main/src/main/res/values-lt-rLT/exam.xml rename to plugins/constraints/src/main/res/values-lt-rLT/exam.xml index 83e8db76d9..84ca888a45 100644 --- a/plugins/main/src/main/res/values-lt-rLT/exam.xml +++ b/plugins/constraints/src/main/res/values-lt-rLT/exam.xml @@ -51,7 +51,6 @@ Palikti tikslinę glikemiją nepakeistą. Palaukti, kol glikemija nukris žemiau laikino hipoglikemijos tikslo, tada suvalgyti 15 g greitųjų angliavandenių. https://androidaps.readthedocs.io/en/latest/EN/Usage/temptarget.html#activity-temp-target - Ciklas išjungtas/sustabdytas Ar man leidžiamas insulinas, kai ciklas yra išjungtas / pristabdytas? Taip, bazinis insulinas ir toliau leidžiamas. Ne, insulino tiekimas sustabdytas. @@ -91,8 +90,6 @@ Turėtumėte kreiptis į savo diabeto kliniką/endokrinologą. https://androidaps.readthedocs.io/en/latest/EN/Installing-AndroidAPS/Update-to-new-version.html#troubleshooting https://www.facebook.com/groups/AndroidAPSUsers/ - https://discord.gg/4fQUWHZ4Mw - Insulino įskiepiai Kurį insuliną reikėtų naudoti su Ultra-Rapid Oref įskiepiu? Fiasp® NovoRapid®/Novolog® @@ -105,7 +102,6 @@ Pažymėjus kaniulės pakeitimą, Autosens santykis vėl bus grąžintas į 100%. Kai kurios įskiepo parinktys turi konfigūruojamus laiko intervalus, kuriuos gali nustatyti vartotojas. https://androidaps.readthedocs.io/en/latest/EN/Configuration/Sensitivity-detection-and-COB.html - https://androidaps.readthedocs.io/en/latest/Usage/Open-APS-features.html?highlight=Autosens#autosens Angliavandenių įvedimo klaidos Ką reikia daryti, jei įrašyti neteisingi angliavandeniai? Ištrinti neteisingą įrašą Terapijos skiltyje ir įvesti teisingą angliavandenių kiekį. @@ -115,7 +111,6 @@ Ką turėtumėte daryti, jei buvo suleista mažiau insulino nei rodo pompos istorija, pvz. dėl užsikimšimo, neveikiančios kaniulės ar pamiršus po dušo vėl pritvirtinti pompą?  Ištrinti insulino suleidimo įrašą per Nightscout Careportal, kad pašalintumėte jį iš pompos istorijos. Susileisti trūkstamą insulino kiekį švirkštu ar naudojantis infuzinės sistemos užpildymo funkcija. - Aktyvus insulinas organizme (AIO) AIO reikšmei įtakos turi nustatyta laikina valandinė bazė. Padidinta laikina bazė nebus nustatyta, jei kraujo glikemija yra žemiau nustatyto tikslo. Jei ilgą laiką stebima neigiama AIO reikšmė ir nėra fizinio aktyvumo, tai rodo, kad jūsų nustatymai yra per „agresyvūs“ ir kad jums reikia mažiau insulino nei nustatyta. diff --git a/plugins/main/src/main/res/values-lt-rLT/objectives.xml b/plugins/constraints/src/main/res/values-lt-rLT/objectives.xml similarity index 100% rename from plugins/main/src/main/res/values-lt-rLT/objectives.xml rename to plugins/constraints/src/main/res/values-lt-rLT/objectives.xml diff --git a/plugins/constraints/src/main/res/values-lt-rLT/strings.xml b/plugins/constraints/src/main/res/values-lt-rLT/strings.xml new file mode 100644 index 0000000000..10a2171592 --- /dev/null +++ b/plugins/constraints/src/main/res/values-lt-rLT/strings.xml @@ -0,0 +1,33 @@ + + + + + + + + + + Ribojami angliavandeniai iki %1$d g dėl %2$s + Pompa negali nustatyti laikinos bazės + Uždaro ciklo būsena išjungta nustatymuose + Naudojama neužbaigta versija. Uždaras ciklas neaktyvus. + Uždara ciklas išjungtas dėl ištęsto boluso veikimo + Funkcijos \"SMB visada\" ir \"SMB po angliavandenių\" išjungtos, nes kraujo gliukozės duomenų šaltinis neturi reikalingo filtravimo + SMB neleidžiami atviro ciklo režime + Maksimali reikšmė nustatymuose + Nekeičiama riba + Terapijos saugumas + + Dar nebaigta + Praėjo laiko + Maksimalus AIO nustatytas tinkamai + KG šaltinis pasirinktas teisingai + Ciklas aktyvuotas + DKS pasirinkta + Uždaras ciklas aktyvus + TIKSL + Mokymosi programa + Ar norite iš naujo nustatyti tikslų pradžią? Jūs galite prarasti jau pasiektus. + Išvalyti užbaigtus + Išvalyti pradėtus + diff --git a/plugins/main/src/main/res/values-nl-rNL/exam.xml b/plugins/constraints/src/main/res/values-nl-rNL/exam.xml similarity index 99% rename from plugins/main/src/main/res/values-nl-rNL/exam.xml rename to plugins/constraints/src/main/res/values-nl-rNL/exam.xml index cc969863bf..9700b08b4a 100644 --- a/plugins/main/src/main/res/values-nl-rNL/exam.xml +++ b/plugins/constraints/src/main/res/values-nl-rNL/exam.xml @@ -59,7 +59,6 @@ Je streefdoel ongewijzigd laten. Wachten totdat de bloedclose tot onder het Hypo tijdelijk streefdoel daalt en dan 15 g snelwerkende koolhydraten eten. https://androidaps.readthedocs.io/en/latest/CROWDIN/nl/Usage/temptarget.html#activiteit-tijdelijk-streefdoel - Uitgeschakelde/onderbroken loop Ontvang ik insuline wanneer de Loop is uitgeschakeld/onderbroken? Ja, de basale insuline wordt nog steeds geleverd. Nee, de levering van insuline is gestopt. @@ -109,7 +108,6 @@ https://androidaps.readthedocs.io/en/latest/CROWDIN/nl/Installing-AndroidAPS/Update-to-new-version.html#problemen-oplossen https://www.facebook.com/groups/AndroidAPSUsers/ https://discord.gg/4fQUWHZ4Mw - Insuline-plugins Welke insuline gebruik je met de Ultra-Rapid Oref plugin? Fiasp® NovoRapid®/Novolog® @@ -149,7 +147,6 @@ Instellen van een profiel op 150% zal de absorptie van koolhydraten vertragen Instellen van een profiel op 150% zal de absorptie van koolhydraten versnellen Instellen van profiel op 150% heeft geen invloed op berekende koolhydraten absorptie - Insuline aan boord (IOB) De IOB-waarde wordt beïnvloed door eerdere tijdelijke basaalstanden. Een hoge tijdelijke basaal zal niet worden ingesteld wanneer je bloedsuiker onder het streefdoel ligt. Negatieve IOB voor een aanzienlijke periode vrij van inspanning, suggereert dat je profiel te hoog is ingesteld, dus dat er minder insuline nodig is. diff --git a/plugins/main/src/main/res/values-nl-rNL/objectives.xml b/plugins/constraints/src/main/res/values-nl-rNL/objectives.xml similarity index 100% rename from plugins/main/src/main/res/values-nl-rNL/objectives.xml rename to plugins/constraints/src/main/res/values-nl-rNL/objectives.xml diff --git a/plugins/constraints/src/main/res/values-nl-rNL/strings.xml b/plugins/constraints/src/main/res/values-nl-rNL/strings.xml new file mode 100644 index 0000000000..d227f5c638 --- /dev/null +++ b/plugins/constraints/src/main/res/values-nl-rNL/strings.xml @@ -0,0 +1,36 @@ + + + + + + + + + Vlakke data. Beschouwd als onjuist + + Koolhydraten worden beperkt tot %1$d gr doordat %2$s + Pomp kan geen tijdelijk basaal aanvaarden + Closed Loop modus gedeactiveerd in de instellingen + Dev versie actief. Closed loop gedeactiveerd + Closed loop modus uitgeschakeld vanwege afgeven Vertraagde bolus + SMB altijd gedeactiveerd doordat de gekozen BG bron geen optimale filtering toepast + SMB niet toegestaan in Open Loop modus + Maximum waarde in instellingen + max limiet (SC) + Behandelingen veiligheid + + Voltooid, goed gedaan! + Nog niet voltooid + Verstreken tijd + Maximum IOB juist ingesteld + BG beschikbaar op gekozen bron + Synchronisatieservice heeft schrijfrechten + Loop Actief + APS geslecteerd + Closed modus actief + DOEL + Leerprogramma + Wil je dit leerdoel opnieuw starten? Je kunt je voortgang verliezen. + Voltooiing wissen + Start wissen + diff --git a/plugins/main/src/main/res/values-no-rNO/exam.xml b/plugins/constraints/src/main/res/values-no-rNO/exam.xml similarity index 99% rename from plugins/main/src/main/res/values-no-rNO/exam.xml rename to plugins/constraints/src/main/res/values-no-rNO/exam.xml index 708f615564..7e8a3f46da 100644 --- a/plugins/main/src/main/res/values-no-rNO/exam.xml +++ b/plugins/constraints/src/main/res/values-no-rNO/exam.xml @@ -59,7 +59,6 @@ La målverdien for ditt blodsukker være uforandret. Vent til blodsukkeret ditt synker under Hypo temp target og spis så 15 gram med hurtigvirkende karbohydrater. https://androidaps.readthedocs.io/en/latest/EN/Usage/temptarget.html#active temp-target - Deaktiver/pause loop Får jag insulin når loop er stanset/pauset? Ja, basal insulin vil fortsatt bli levert. Nei, levering av insulin er stanset. @@ -149,7 +148,6 @@ Ved å sette profilen til 150% vil karbohydrater absorberes over lengre tid Ved å sette profilen til 150% vil karbohydrater absorberes over kortere tid Ved å sette profilen til 150% påvirkes ikke beregningen av absorbering av karbohydrater - Aktivt insulin (IOB) IOB verdi påvirkes av midlertidige temp basaler. Høy temp basal vil ikke bli gitt når ditt blodsukker er under målverdi. Negativ IOB i en lengre periode selv om du ikke trener tyder på at profilen din gir for mye insulin og kanskje bør reduseres i innstillingene. diff --git a/plugins/main/src/main/res/values-no-rNO/objectives.xml b/plugins/constraints/src/main/res/values-no-rNO/objectives.xml similarity index 100% rename from plugins/main/src/main/res/values-no-rNO/objectives.xml rename to plugins/constraints/src/main/res/values-no-rNO/objectives.xml diff --git a/plugins/constraints/src/main/res/values-no-rNO/strings.xml b/plugins/constraints/src/main/res/values-no-rNO/strings.xml new file mode 100644 index 0000000000..a82a423259 --- /dev/null +++ b/plugins/constraints/src/main/res/values-no-rNO/strings.xml @@ -0,0 +1,53 @@ + + + + + Sommer/vintertid inntreffer innen 24t + Sommer/vintertid inntreffer innen 3t - lukket loop er midlertidig deaktivert + + Frigjør minst %1$d MB fra internminnet! Loop deaktivert! + + gammel versjon + veldig gammel versjon + Applikasjon utløpt + Ny versjon tilgjengelig i minst %1$d dager! Systemet vil bytte til \"stopp ved lavt BS (LGS)\" etter %2$d dager og loop vil deaktiveres etter %3$d dager + Vi har oppdaget at du kjører en ugyldig versjon. Loop deaktivert! + Versjon %1$s er tilgjengelig + Versjon %1$s utløper den %2$s + + + Rekalkulerte data er brukt + BS for nær:\n%1$s\n%2$s + beregnet på nytt + doble registreringer + Flate verdier. Vurderer dette til å være feil + + Begrenser forlenget bolus til %1$.1f E på grunn av %2$s + Begrenser karbohydrater til %1$d g på grunn av %2$s + Pumpen støtter ikke temp basaler + Lukket Loop er eaktivert i innstillinger + Du kjører dev-versjonen. Lukket loop ikke aktivert. + Lukket loop deaktivert på grunn av forlenget bolus + SMB Alltid På og SMB Etter Karbohydrater er deaktivert fordi BS kilden ikke støtter avansert filtrering + SMB ikke tillatt i åpen loop + maks verdi i innstillingene + hard begrensning + Sikkerhet ved behandlinger + + Fullført, bra jobba! + Enda Ikke fullført + Tid brukt + Maks IOB er angitt riktig + BS tilgjengelig fra valgt kilde + Synkroniseringstjeneste har skriverettigheter + Loop er aktivert + APS valgt + Lukket loop aktivert + MÅL + Opplæringsprogram + Ønsker du å omstarte læringsmålet? Du vil miste fullførte trinn. + Neste + Forrige + Sletting ferdig + Sletting startet + diff --git a/plugins/main/src/main/res/values-pl-rPL/exam.xml b/plugins/constraints/src/main/res/values-pl-rPL/exam.xml similarity index 98% rename from plugins/main/src/main/res/values-pl-rPL/exam.xml rename to plugins/constraints/src/main/res/values-pl-rPL/exam.xml index 322f3d2f03..3a1674137c 100644 --- a/plugins/main/src/main/res/values-pl-rPL/exam.xml +++ b/plugins/constraints/src/main/res/values-pl-rPL/exam.xml @@ -51,7 +51,6 @@ Pozostaw cel poziomu glukozy we krwi niezmieniony. Poczekaj, aż poziom glukozy we krwi spadnie poniżej celu tymczasowego \"Hipo\", a następnie zjedz 15 g szybko działających węglowodanów. https://androidaps.readthedocs.io/en/latest/EN/Usage/temptarget.html#activity-temp-target - Wyłączona/zawieszona pętla Czy otrzymuję insulinę, gdy pętla jest wyłączona/zawieszona? Tak, insulina bazowa nadal jest dostarczana. Nie, podawanie insuliny jest zatrzymane. @@ -91,8 +90,6 @@ Należy zwrócić się do diabetologa lub lekarza endokrynologa. https://androidaps.readthedocs.io/en/latest/EN/Installing-AndroidAPS/Update-to-new-version.html#troubleshooting https://www.facebook.com/groups/AndroidAPSUsers/ - https://discord.gg/4fQUWHZ4Mw - Wtyczki insuliny Która insulina powinna być używana z wtyczką Ultra-Rapid Oref? Fiasp® NovoRapid ® /Novolog ® @@ -105,7 +102,6 @@ Rejestracja zmiany wkłucia spowoduje zresetowanie współczynnika Autosens z powrotem do 100%. Niektóre z opcji wtyczki mają konfigurowalne zakresy czasu, które mogą być ustawiane przez użytkownika. https://androidaps.readthedocs.io/en/latest/EN/Configuration/Sensitivity-detection-and-COB.html - https://androidaps.readthedocs.io/en/latest/Usage/Open-APS-features.html?highlight=Autosens#autosens Błędy wprowadzania węglowodanów Co powinieneś zrobić, gdy wprowadziłeś niewłaściwą ilość węglowodanów? Usuń niepoprawny wpis w leczeniu (Treat) i wprowadź poprawną nową wartość węglowodanów. @@ -115,7 +111,6 @@ Co należy zrobić, jeśli otrzymano mniej insuliny niż sugeruje historia pompy, np. z powodu niedrożności, uszkodzonej kaniuli lub zapomnienia o ponownym podłączeniu pompy po prysznicu? Usuń dane insuliny z portalu Nightscout aby usunąć je z historii pompy. Podaj obliczoną dawkę „pominiętej” insuliny za pomocą strzykawki / wstrzykiwacza lub za pomocą pompy funkcji wypełnienia. - Aktywna insulina (IOB) Na wartość IOB mają wpływ wykonane tymczasowe dawki bazowe. Wysoka tymczasowa dawka bazowa nie zostanie podana, gdy twóje poziom cukru we krwi jest poniżej poziomu docelowego. Negatywne IOB utrzymujące się przez znaczny okres czasu bez wysiłku fizycznego sugeruje, że Twój profil jest zbyt silny i mniej insuliny jest wymagane w Twoich ustawieniach. diff --git a/plugins/main/src/main/res/values-pl-rPL/objectives.xml b/plugins/constraints/src/main/res/values-pl-rPL/objectives.xml similarity index 100% rename from plugins/main/src/main/res/values-pl-rPL/objectives.xml rename to plugins/constraints/src/main/res/values-pl-rPL/objectives.xml diff --git a/plugins/constraints/src/main/res/values-pl-rPL/strings.xml b/plugins/constraints/src/main/res/values-pl-rPL/strings.xml new file mode 100644 index 0000000000..4245afa1a4 --- /dev/null +++ b/plugins/constraints/src/main/res/values-pl-rPL/strings.xml @@ -0,0 +1,33 @@ + + + + + + + + + + Ograniczam węglow. do %1$d g z uwagi na %2$s + Pompa nie jest zdolna do wykonywania dawek bazowych tymczasowych + Tryb zamkniętej pętli wyłączony w ustawieniach + Uruchomiona jest wersja dev. Zamknięta pętla jest wyłączona. + Zamknięta pętla wyłączona, ponieważ działa Extended Bolus (bolus przedłużony) + SMB zawsze i po węglow. wyłączone z uwagi na brak źródła BG z zaawansowanym filtrowaniem + SMB nie dozwolone w trybie otwartej pętli + maks. wartość w ustawieniach + twarde ograniczenie + Bezpieczeństwo terapii + + Nie ukończono + Czas jaki upłynął + Maks. IOB ustawione poprawnie + BG dostępne z wybranego źródła + Pętla włączona + Wybrano APS + Tryb zamknięty włączony + OBJ + Program do nauki + Czy chcesz zresetować czas rozpoczęcia zadania? Możesz utracić postępy. + Wyczyść skończone + Wyczyść rozpoczęte + diff --git a/plugins/main/src/main/res/values-pt-rBR/exam.xml b/plugins/constraints/src/main/res/values-pt-rBR/exam.xml similarity index 99% rename from plugins/main/src/main/res/values-pt-rBR/exam.xml rename to plugins/constraints/src/main/res/values-pt-rBR/exam.xml index 28e1363397..9c1946d1da 100644 --- a/plugins/main/src/main/res/values-pt-rBR/exam.xml +++ b/plugins/constraints/src/main/res/values-pt-rBR/exam.xml @@ -59,7 +59,6 @@ Não altere o seu alvo de glicemia. Aguarde até que a glicemia fique abaixo do seu alvo temporário de hipoglicemia e coma 15g de carbos de ação rápida. https://androidaps.readthedocs.io/en/latest/EN/Usage/temptarget.html#activity-temp-target - Loop Desativado/Suspenso Eu recebo insulina quando o loop estiver desactivado/suspenso? Sim, a insulina basal continua sendo administrada. Não, a administração da insulina será interrompida. @@ -109,7 +108,6 @@ https://androidaps.readthedocs.io/en/latest/EN/Installing-AndroidAPS/Update-to-new-version.html#troubleshooting https://www.facebook.com/groups/AndroidAPSUsers/ https://discord.gg/4fQUWHZ4Mw - Plugins de Insulina Qual insulina você deveria usar com o plugin \"Oref Ultra-Rapid\"? Fiasp® NovoRapid®/Novolog® @@ -149,7 +147,6 @@ Definir o perfil para 150% levará a absorção de carboidratos em mais tempo Definir o perfil para 150% levará a absorção de carboidratos em menos tempo Definir o perfil para 150% não afetará a absorção de carboidratos calculados - Insulina ativa (IA) O valor de IA é afetado por basais temporárias efetuadas. Um basal alto temporário não será efetuado quando sua glicose estiver abaixo do alvo. Insulina Ativa (IA) negativa por um período substancial na ausência de exercícios, sugere que seu perfil é muito agressivo e menos insulina deve ser considerada nas suas configurações. diff --git a/plugins/main/src/main/res/values-pt-rBR/objectives.xml b/plugins/constraints/src/main/res/values-pt-rBR/objectives.xml similarity index 100% rename from plugins/main/src/main/res/values-pt-rBR/objectives.xml rename to plugins/constraints/src/main/res/values-pt-rBR/objectives.xml diff --git a/plugins/constraints/src/main/res/values-pt-rBR/strings.xml b/plugins/constraints/src/main/res/values-pt-rBR/strings.xml new file mode 100644 index 0000000000..09369c76e4 --- /dev/null +++ b/plugins/constraints/src/main/res/values-pt-rBR/strings.xml @@ -0,0 +1,35 @@ + + + + + + + + + Dados fixos. Considere que podem ser imprecisos. + + A limitar hidratos para %1$d g porque %2$s + A bomba não é capaz de basais temporárias + Loop fecchado disabilitado nas preferências + A correr a versão dev. O Loop fechado está desabilitado. + Closed Loop desabilitado por causa da execução do Bólus Estendido + SMB sempre e depois dos hidratos desactivado por fonte da Glicemia activa não suportar filtro avançado + SMB não permitido no modo open loop + valor máx nas preferências + limite rígido + Segurança do Tratamento + + Incompleto + Tempo decorrido + IOB máxima definida correctamente + Glicemia disponivel desde a fonte selecionada + O serviço de sincronização tem permissão de escrita + Loop activado + APS seleccionado + Modo fechado ativado + OBJ + Programa de aprendizagem + Deseja reiniciar o objetivo? Pode perder seu progresso. + Limpeza terminado + Limpeza iniciado + diff --git a/plugins/main/src/main/res/values-pt-rPT/exam.xml b/plugins/constraints/src/main/res/values-pt-rPT/exam.xml similarity index 97% rename from plugins/main/src/main/res/values-pt-rPT/exam.xml rename to plugins/constraints/src/main/res/values-pt-rPT/exam.xml index c4adf5f331..7d76cf7ece 100644 --- a/plugins/main/src/main/res/values-pt-rPT/exam.xml +++ b/plugins/constraints/src/main/res/values-pt-rPT/exam.xml @@ -51,7 +51,6 @@ Deixe o seu alvo de glicose inalterado. Espere até que a glicose no sangue baixe abaixo do seu alvo temporário de hipo e, em seguida, coma 15 g de hidratos rápidos. https://androidaps.readthedocs.io/en/latest/EN/Usage/temptarget.html#activity-temp-target - Loop Desactivado/Suspenso Eu recebo insulina quando o loop estiver desactivado/suspenso? Sim, a insulina basal continua a ser administrada. Não, administração da insulina está parada. @@ -91,8 +90,6 @@ Deveria pedir à sua clínica de diabetes/endocrinologista. https://androidaps.readthedocs.io/en/latest/EN/Installing-AndroidAPS/Update-to-new-version.html#troubleshooting https://www.facebook.com/groups/AndroidAPSUsers/ - https://discord.gg/4fQUWHZ4Mw - Plugins de Insulina Que insulina deve utilizar com o plugin Oref Ultra-Rápida ? Fiasp® NovoRapid®/Novolog® @@ -105,7 +102,6 @@ Registar uma mudança de cânula irá redefinir a taxa de Autosens de volta para 100%. Algumas opções de plugin têm intervalos de tempo configuráveis que podem ser configurados pelo utilizador. https://androidaps.readthedocs.io/en/latest/EN/Configuration/Sensitivity-detection-and-COB.html - https://androidaps.readthedocs.io/en/latest/Usage/Open-APS-features.html?highlight=Autosens#autosens Erros de Entrada de Hidratos O que deve fazer se tiver feito uma entrada incorrecta de hidratos? Elimine a entrada incorreta em Tratamentos e insira o novo valor correto dos hidratos. @@ -115,7 +111,6 @@ O que deve fazer se receber menos insulina do que o histórico da bomba sugere por exemplo devido a uma oclusão, uma cânula danificada ou esquecer-se de reanexar a bomba após um banho? Elimine dados de insulina do Nightscout Careportal para removê-lo do histórico da bomba. Bólus uma proporção de insulina calculada \'não administrada\' ou com seringa/caneta ou purgando. - Insulina ativa (IA ) O valor do IA é afectado por basais temporárias emitidas. Basal temporária alta não será dada quando a sua glicose estiver abaixo do alvo. IA negativa por um período substancial na ausência de exercício, sugere que o seu perfil é muito alto e é necessária menos insulina nas suas configurações. diff --git a/plugins/main/src/main/res/values-pt-rPT/objectives.xml b/plugins/constraints/src/main/res/values-pt-rPT/objectives.xml similarity index 100% rename from plugins/main/src/main/res/values-pt-rPT/objectives.xml rename to plugins/constraints/src/main/res/values-pt-rPT/objectives.xml diff --git a/plugins/constraints/src/main/res/values-pt-rPT/strings.xml b/plugins/constraints/src/main/res/values-pt-rPT/strings.xml new file mode 100644 index 0000000000..df6b3be19b --- /dev/null +++ b/plugins/constraints/src/main/res/values-pt-rPT/strings.xml @@ -0,0 +1,33 @@ + + + + + + + + + + A limitar hidratos para %1$d g porque %2$s + A bomba não é capaz de basais temporárias + Loop fechado desativado nas preferências + A correr a versão dev. O Loop fechado está desativado. + Loop Fechado desativado por causa da execução do Bólus Prolongado + SMB sempre e depois dos hidratos desactivado por fonte da Glicose activa não suportar filtro avançado + SMB não permitido no modo open loop + valor máx nas preferências + limite rígido + Segurança de Tratamentos + + Não concluído ainda + Tempo decorrido + IA máxima definida corretamente + Glicose disponível da fonte seleccionada + Loop activado + APS seleccionado + Modo fechado ativado + OBJ + Programa de aprendizagem + Deseja reiniciar o objectivo? Pode perder seu progresso. + Limpar terminado + Limpar iniciado + diff --git a/plugins/main/src/main/res/values-ro-rRO/exam.xml b/plugins/constraints/src/main/res/values-ro-rRO/exam.xml similarity index 98% rename from plugins/main/src/main/res/values-ro-rRO/exam.xml rename to plugins/constraints/src/main/res/values-ro-rRO/exam.xml index 4154dffca1..18ea37c096 100644 --- a/plugins/main/src/main/res/values-ro-rRO/exam.xml +++ b/plugins/constraints/src/main/res/values-ro-rRO/exam.xml @@ -51,7 +51,6 @@ Lăsaţi valoarea ţintă a glicemiei dumneavoastră neschimbată. Aşteptaţi până când glicemia scade sub Ținta Temporară de hipoglicemie şi apoi mâncaţi 15 g de carbohidraţi cu acţiune rapidă. https://androidaps.readthedocs.io/en/latest/EN/Usage/temptarget.html#activity-temp-target - Buclă dezactivată/suspendată Primesc insulina atunci când bucla închisă este dezactivata/suspendata? Da, insulina bazală este livrată în continuare. Nu, livrarea de insulină este oprită. @@ -91,8 +90,6 @@ Ar trebui să întrebați medicul diabetolog. https://androidaps.readthedocs.io/en/latest/EN/Installing-AndroidAPS/Update-to-new-version.html#troubleshooting https://www.facebook.com/groups/AndroidAPSUsers/ - https://discord.gg/4fQUWHZ4Mw - Plugin-uri insulină Ce insulină trebuie să utilizaţi cu plugin-ul Ultra-Rapid Oref? Fiasp® NovoRapid®/Novolog® @@ -105,7 +102,6 @@ Înregistrarea unei schimbări de canula va reseta raportul Autosens înapoi la 100%. Unele dintre opțiunile plugin-ului au intervale de timp configurabile care pot fi setate de către utilizator. https://androidaps.readthedocs.io/en/latest/EN/Configuration/Sensitivity-detection-and-COB.html - https://androidaps.readthedocs.io/en/latest/Usage/Open-APS-features.html?highlight=Autosens#autosens Erori la introducerea carbohidraților Ce ar trebui sa faceți dacă ați introdus o cantitate de carbohidrați greșită? Ştergeţi intrarea incorectă din Tratamente şi introduceţi noua valoare de carbohidrați corectă. @@ -115,7 +111,6 @@ Ce trebuie să faci dacă ai primit mai putină insulină decât sugerează istoricul pompei, de exemplu datorită unei ocluzii, a unei canule defecte sau pentru ca ai uitat sa reatașezi pompa după un dus?  Șterge datele despre insulină din Nightscout Careportal pentru a le înlătura din istoricul pompei. Bolusati o cantitate parțiala de insulina din insulina calculata ca fiind lipsa utilizând seringa/penul sau amorsarea. - Insulină activă (IOB) Valoarea IOB este afectată de bazalele temporare emise. Rata bazala ridicata temporara nu va fi livrata atunci când glicemia este sub nivelul țintă. Un IOB negativ pentru o perioadă substanțială în absența exercițiilor fizice sugerează că profilul tău este prea puternic și este nevoie de mai puţină insulină în setările inițiale. diff --git a/plugins/main/src/main/res/values-ro-rRO/objectives.xml b/plugins/constraints/src/main/res/values-ro-rRO/objectives.xml similarity index 100% rename from plugins/main/src/main/res/values-ro-rRO/objectives.xml rename to plugins/constraints/src/main/res/values-ro-rRO/objectives.xml diff --git a/plugins/constraints/src/main/res/values-ro-rRO/strings.xml b/plugins/constraints/src/main/res/values-ro-rRO/strings.xml new file mode 100644 index 0000000000..f0e6785ec6 --- /dev/null +++ b/plugins/constraints/src/main/res/values-ro-rRO/strings.xml @@ -0,0 +1,33 @@ + + + + + + + + + + Se limitează carbohidrații %1$d g datorită %2$s + Pompa nu suportă bazale temporare + Modul buclă închisă dezactivat în preferințe + Se folosește versiunea dev. Bucla închisă este dezactivată. + Bucla închisă dezactivată din cauza livrării bolusului extins + SMB dezactivat întotdeauna și după carbohidrați, deoarece sursa glicemiei nu suportă filtrare avansată + SMB nu este permis în mod buclă deschisă + valoare maximă în preferințe + limită fizică + Setări siguranță tratament + + Încă incomplet + Timp scurs + IOB maxim configurat corect + Glicemie disponibilă din sursa selectată + Buclă activată + APS selectat + Mod buclă închisă activat + OBI + Program de învăţare + Doriți să reîncepeți obiectivul? Vă puteți pierde progresul. + Șterge starea \"Terminat\" + Șterge starea \"Început\" + diff --git a/plugins/main/src/main/res/values-ru-rRU/exam.xml b/plugins/constraints/src/main/res/values-ru-rRU/exam.xml similarity index 99% rename from plugins/main/src/main/res/values-ru-rRU/exam.xml rename to plugins/constraints/src/main/res/values-ru-rRU/exam.xml index c5b2a36f02..92a6e8f53b 100644 --- a/plugins/main/src/main/res/values-ru-rRU/exam.xml +++ b/plugins/constraints/src/main/res/values-ru-rRU/exam.xml @@ -59,7 +59,6 @@ Оставить временную цель без изменений. Подождать пока глюкоза крови упадет ниже уровня цели \"Гипо\", а затем съесть 15г быстрых углеводов. https://androidaps.readthedocs.io/en/latest/EN/Usage/temptarget.html#activity-temp-target - Отключенный/приостановленный цикл Получаю ли я инсулин, когда цикл отключен/приостановлен? Да, базальный инсулин продолжает подаваться. Нет, подача инсулина прекращается. @@ -109,7 +108,6 @@ https://androidaps.readthedocs.io/en/latest/EN/Installing-AndroidAPS/Update-to-new-version.html#troubleshooting https://www.facebook.com/groups/AndroidAPSUsers/ https://discord.gg/4fQUWHZ4Mw - Модули для инсулинов Какой инсулин следует использовать с модулем Сверхбыстрый Oref? Fiasp® Novoapid ® /Novolog ® @@ -149,7 +147,6 @@ Установка профиля на 150% потребует больше времени на усвоение углеводов Установка профиля на 150% потребует меньше времени на усвоение углеводов Установка профиля на 150% не повлияет на расчетное время усвоения углеводов - Активный инсулин (IOB) На величину IOB влияют устанавливаемые ВБС. Высокая ВБС не будет применяться, если уровень сахара в крови ниже целевого. Отрицательный IOB в течение длительного периода при отсутствии физнагрузки указывает на то, что ваш профиль завышен и требуется снизить кол-во инсулина в настройках. diff --git a/plugins/main/src/main/res/values-ru-rRU/objectives.xml b/plugins/constraints/src/main/res/values-ru-rRU/objectives.xml similarity index 100% rename from plugins/main/src/main/res/values-ru-rRU/objectives.xml rename to plugins/constraints/src/main/res/values-ru-rRU/objectives.xml diff --git a/plugins/constraints/src/main/res/values-ru-rRU/strings.xml b/plugins/constraints/src/main/res/values-ru-rRU/strings.xml new file mode 100644 index 0000000000..332dd41100 --- /dev/null +++ b/plugins/constraints/src/main/res/values-ru-rRU/strings.xml @@ -0,0 +1,36 @@ + + + + + + + + + + Ограничение углеводов до %1$d г. из-за %2$s + Помпа не рассчитана на подачу временного базала + Режим замкнутого цикла отключен в настройках + Работает версия разработчика. Замкнутый цикл отключен. + Замкнутый цикл отключен из-за работы Пролонгированного Болюса + Опция супер микро болюс всегда и после углеводов отключена т. к. активный источник ГК не поддерживает комплексное фильтрование + В режиме незамкнутого цикла open loop супер микро болюс SMB не допускается + максимальное значение в настройках + жесткий предел + Безопасность терапии + + Не завершено + Прошло времени + Максимум активного инсулина IOB установлен правильно + ГК доступна из выбранного источника + Служба синхронизации имеет разрешение на запись + Цикл активирован + Выбран APS + Режим замкнутого цикла включен + ЦЕЛИ + Обучающая программа + Хотите сбросить начатую цель? Можете потерять достигнутое. + Далее + Назад + Очистить завершенные + Очистить начатые + diff --git a/plugins/main/src/main/res/values-sk-rSK/exam.xml b/plugins/constraints/src/main/res/values-sk-rSK/exam.xml similarity index 99% rename from plugins/main/src/main/res/values-sk-rSK/exam.xml rename to plugins/constraints/src/main/res/values-sk-rSK/exam.xml index cb2a3d1ce9..c095f796c0 100644 --- a/plugins/main/src/main/res/values-sk-rSK/exam.xml +++ b/plugins/constraints/src/main/res/values-sk-rSK/exam.xml @@ -59,7 +59,6 @@ Nechajte svoju cieľovú glykémiu bez zmeny. Počkajte, kým glykémia neklesne pod Váš dočasný cieľ hypoglykémia a potom zjedzte 15 g rýchlych sacharidov. https://androidaps.readthedocs.io/en/latest/CROWDIN/cs/Usage/temptarget.html#docasny-cil-pri-pohybove-aktivite - Deaktivovaný/pozastavený uzavretý okruh Dostávam inzulín, keď je uzavretý okruh deaktivovaný/pozastavený? Áno, bazálny inzulín je podávaný naďalej. Nie, podávanie inzulínu je zastavené. @@ -149,7 +148,6 @@ Nastavením profilu na 150 % dôjde k predĺženiu doby absorbcie sacharidov Nastavením profilu na 150 % dôjde ku skráteniu doby absorbcie sacharidov Nastavenie profilu na 150% neovplyvní vypočítanú absorbciu sacharidov - Aktívny inzulín (IOB) Hodnota IOB je ovplyvnená vydanými dočasnými bazálmi. Vysoký dočasný bazál nebude spustený, pokiaľ je Vaša glykémia nižšia, ako cieľ. Negatívne IOB po značnú dobu bez cvičenia naznačuje, že váš profil je príliš \"silný\" a vo vašom profile je potrebného menej inzulínu. diff --git a/plugins/main/src/main/res/values-sk-rSK/objectives.xml b/plugins/constraints/src/main/res/values-sk-rSK/objectives.xml similarity index 100% rename from plugins/main/src/main/res/values-sk-rSK/objectives.xml rename to plugins/constraints/src/main/res/values-sk-rSK/objectives.xml diff --git a/plugins/constraints/src/main/res/values-sk-rSK/strings.xml b/plugins/constraints/src/main/res/values-sk-rSK/strings.xml new file mode 100644 index 0000000000..a07b76a8f2 --- /dev/null +++ b/plugins/constraints/src/main/res/values-sk-rSK/strings.xml @@ -0,0 +1,37 @@ + + + + + + + + + + Sacharidy obmedzené na %1$d g: %2$s + Pumpa nepodporuje dočasné bazály + Uzavretý okruh zakázaný v nastaveniach + Bežiaca vývojárska verzia. Uzavretý okruh je zakázaný. + Uzavretý okruh je zastavený kvôli prebiehajúcemu predĺženému bolusu + \"SMB vždy\" a \"po jedle\" zakázané pretože zdroj glykémie nepodporuje rozšírené filtrovánie + SBM nie sú povolené pri otvorenom okruhu + maximálna hodnota v nastaveniach + pevný limit + Bezpečnosť zadania ošetrenia + + Hotovo, gratulujeme! + Nedokončené + Uplynutý čas + Maximálne IOB nastavené správne + Glykémie dostupné z vybraného zdroja + Služba synchronizácie má oprávnenie k zápisu + Uzavretý okruh povolený + APS vybrané + Uzavretý okruh povolený + CIEĽ + Výukový program + Chcete resetovať začiatok cieľa? Môžete prísť o svoj pokrok. + Ďalej + Späť + Vymazanie dokončené + Vymazanie začaté + diff --git a/plugins/constraints/src/main/res/values-sr-rCS/exam.xml b/plugins/constraints/src/main/res/values-sr-rCS/exam.xml new file mode 100644 index 0000000000..3ea04e700d --- /dev/null +++ b/plugins/constraints/src/main/res/values-sr-rCS/exam.xml @@ -0,0 +1,2 @@ + + diff --git a/plugins/constraints/src/main/res/values-sr-rCS/objectives.xml b/plugins/constraints/src/main/res/values-sr-rCS/objectives.xml new file mode 100644 index 0000000000..3ea04e700d --- /dev/null +++ b/plugins/constraints/src/main/res/values-sr-rCS/objectives.xml @@ -0,0 +1,2 @@ + + diff --git a/plugins/support/src/main/res/values-hu-rHU/strings.xml b/plugins/constraints/src/main/res/values-sr-rCS/strings.xml similarity index 55% rename from plugins/support/src/main/res/values-hu-rHU/strings.xml rename to plugins/constraints/src/main/res/values-sr-rCS/strings.xml index 7094a53c00..33cd0ab853 100644 --- a/plugins/support/src/main/res/values-hu-rHU/strings.xml +++ b/plugins/constraints/src/main/res/values-sr-rCS/strings.xml @@ -4,9 +4,10 @@ - régi verzió - nagyon régi verzió - Alkalmazás lejárt + + Sigurnost tretmana + + Program učenja diff --git a/plugins/main/src/main/res/values-sv-rSE/exam.xml b/plugins/constraints/src/main/res/values-sv-rSE/exam.xml similarity index 97% rename from plugins/main/src/main/res/values-sv-rSE/exam.xml rename to plugins/constraints/src/main/res/values-sv-rSE/exam.xml index 83c0266e5b..b602ecf91c 100644 --- a/plugins/main/src/main/res/values-sv-rSE/exam.xml +++ b/plugins/constraints/src/main/res/values-sv-rSE/exam.xml @@ -51,7 +51,6 @@ Lämna ditt målvärde oförändrat. Vänta tills blodglukosnivån sjunker under ditt Hypo temp mål och sen äter du 15 g av snabbverkande kolhydrater. https://androidaps.readthedocs.io/en/latest/EN/Usage/temptarget.html#activity-temp-target - Inaktiverad/pausad loop Får jag insulin när loopen är avstängd eller pausad? Ja. Basalinsulin fortsätter att levereras. Nej, leverans av insulin är stoppad. @@ -91,8 +90,6 @@ Du bör fråga din diabetesklinik/endokrinolog. https://androidaps.readthedocs.io/en/latest/EN/Installing-AndroidAPS/Update-to-new-version.html#troubleshooting https://www.facebook.com/groups/AndroidAPSUsers/ - https://discord.gg/4fQUWHZ4Mw - Insulininställningar Vilket insulin ska du använda med insticksprogrammet Ultra-Rapid Oref? Fiasp® NovoRapid®/Novolog® @@ -105,7 +102,6 @@ Om du loggar ett kanylbyte återställs autosens-värdet tillbaka till 100%. Vissa av insticksprogrammen har konfigurerbara tidsintervall som kan ställas in av användaren. https://androidaps.readthedocs.io/en/latest/EN/Configuration/Sensitivity-detection-and-COB.html - https://androidaps.readthedocs.io/en/latest/Usage/Open-APS-features.html?highlight=Autosens#autosens Fel i KH-inmatning Vad ska du göra om du har gjort en felaktig inmatning? Ta bort den felaktiga posten i Behandlingar och ange rätt kolhydratmängd. @@ -115,7 +111,6 @@ Vad ska du göra om du fått mindre insulin än vad pumpens historik visar, t.ex. på grund av en ocklusion, en felaktig kanyl eller om du glömt att sätta fast pumpen efter en dusch?  Ta bort insulindata från Nightscout för att ta bort den från pumpens historik. Ge en bolus med en del av det insulin du saknar antingen med penna eller genom att använda förfyllningsfunktionen. - Aktivt Insulin (IOB) IOB-värdet påverkas av temp basaler. Hög temp basal kommer inte att ges när ditt BG-värde är under målet. Negativ IOB under en längre period även om du inte motionerat, tyder på att din profil ger för mycket insulin. diff --git a/plugins/main/src/main/res/values-sv-rSE/objectives.xml b/plugins/constraints/src/main/res/values-sv-rSE/objectives.xml similarity index 100% rename from plugins/main/src/main/res/values-sv-rSE/objectives.xml rename to plugins/constraints/src/main/res/values-sv-rSE/objectives.xml diff --git a/plugins/constraints/src/main/res/values-sv-rSE/strings.xml b/plugins/constraints/src/main/res/values-sv-rSE/strings.xml new file mode 100644 index 0000000000..f5af7a434c --- /dev/null +++ b/plugins/constraints/src/main/res/values-sv-rSE/strings.xml @@ -0,0 +1,33 @@ + + + + + + + + + + Begränsar kolhydrater till %1$d g pga %2$s + Pumpen kan inte hantera temp basaler + Closed Loop inaktiverat i Inställningar + Du kör nu dev-versionen. Closed Loop inaktiverat. + Closed Loop-läget inaktiverat pga att en förlängd bolus är aktiv + SMB Alltid På och SMB Efter Kolhydrater är inaktiverat pga att den aktiva BG-källan inte stöder avancerad filtrering + SMB inte tillåtet i Open Loop + maxvärde i Inställningar + hård begränsning + Säkerhetsbegränsningar + + Inte slutfört ännu + Förfluten tid + Max IOB är korrekt angivet + BG tillgängligt från vald källa + Loop aktiverad + APS vald + Closed loop aktiverad + Mål + Inlärningsprogram + Vill du starta om målet? Du kan förlora de steg du gjort hittills. + Rensa avslutade + Rensa påbörjade + diff --git a/plugins/main/src/main/res/values-tr-rTR/exam.xml b/plugins/constraints/src/main/res/values-tr-rTR/exam.xml similarity index 99% rename from plugins/main/src/main/res/values-tr-rTR/exam.xml rename to plugins/constraints/src/main/res/values-tr-rTR/exam.xml index 9e8cc068b7..71e5f8380a 100644 --- a/plugins/main/src/main/res/values-tr-rTR/exam.xml +++ b/plugins/constraints/src/main/res/values-tr-rTR/exam.xml @@ -59,7 +59,6 @@ Kan şekeri hedefinizi değiştirmeden bırakın. Kan şekeri, hipo geçici hedefinizin altına düşene kadar bekleyin ve ardından 15 g hızlı etkili karbonhidrat yiyin. https://androidaps.readthedocs.io/en/latest/EN/Usage/temptarget.html#activity-temp-target - Döngüyü Devre Dışı bırakma/Askıya alma Döngü devre dışı bırakıldığında/askıya alındığında insülin alır mıyım? Evet, bazal insülin verilmeye devam ediyor. Hayır, insülin iletimi durdurulur. @@ -149,7 +148,6 @@ Profili %150\'ye ayarlamak karbonhidratların daha uzun sürede emilmesini sağlar Profili %150\'ye ayarlamak karbonhidratların daha kısa sürede emilmesini sağlar Profili %150\'ye ayarlamak hesaplanan karbonhidrat emilimini etkilemez - Aktif İnsülin (AİNS) AİNS değeri, verilen geçici bazallardan etkilenir. Kan şekeriniz hedefin altına düştüğünde yüksek geçici bazal verilmeyecektir. Egzersiz yapmadığınız halde uzun bir dönem için negatif AİNS, profilinizin çok güçlü olduğunu ve ayarlarınızda daha az insüline ihtiyaç duyulduğunu gösterir. diff --git a/plugins/main/src/main/res/values-tr-rTR/objectives.xml b/plugins/constraints/src/main/res/values-tr-rTR/objectives.xml similarity index 100% rename from plugins/main/src/main/res/values-tr-rTR/objectives.xml rename to plugins/constraints/src/main/res/values-tr-rTR/objectives.xml diff --git a/plugins/constraints/src/main/res/values-tr-rTR/strings.xml b/plugins/constraints/src/main/res/values-tr-rTR/strings.xml new file mode 100644 index 0000000000..60355c3d2b --- /dev/null +++ b/plugins/constraints/src/main/res/values-tr-rTR/strings.xml @@ -0,0 +1,20 @@ + + + + + + + + + Düz veri. Yanlış kabul edildi + + %2$s\'den dolayı karbonhidratlar %1$d g ile sınırlandırılıyor + Pompa geçici bazal özellikli değil + Kapalı Döngü tercihlerde devre dışı bırakıldı + Geliştirici sürümü çalışıyor. Kapalı Döngü devre dışı. + Yayma bolus çalıştığı için kapalı döngü devre dışı bırakıldı + Aktif KŞ kaynağı gelişmiş filtrelemeyi desteklemediği için SMB (Super Micro Bolus) her zaman ve karbonhidratlardan sonra devre dışı bırakıldı + Açık Döngü modunda SMB\'ye (Super Micro Bolus) izin verilmiyor + tercihlerde maksimum değer + + diff --git a/plugins/main/src/main/res/values-zh-rCN/exam.xml b/plugins/constraints/src/main/res/values-zh-rCN/exam.xml similarity index 99% rename from plugins/main/src/main/res/values-zh-rCN/exam.xml rename to plugins/constraints/src/main/res/values-zh-rCN/exam.xml index 7148e5a434..46a8a8e815 100644 --- a/plugins/main/src/main/res/values-zh-rCN/exam.xml +++ b/plugins/constraints/src/main/res/values-zh-rCN/exam.xml @@ -51,7 +51,6 @@ 让你的血糖目标保持不变。 等血糖值低于你的低血糖警戒线之后,吃15克速升的活性碳水合物。 https://androidaps.readthedocs.io/en/latest/EN/Usage/temptarget.html#activity-temp-target - 禁用/暂停闭环 在禁用/暂停闭环时,我是否接收了胰岛素输注? 是的,胰岛素基础率仍在继续输注。 不,胰岛素停止输注。 @@ -92,7 +91,6 @@ https://androidaps.readthedocs.io/en/latest/EN/Installing-AndroidAPS/Update-to-new-version.html#troubleshooting https://www.facebook.com/groups/AndroidAPSUsers/ https://discord.gg/4fQUWHZ4Mw - 胰岛素插件 在超速效Oref插件中你应该使用哪种胰岛素? Fiasp®速效门冬胰岛素(超速效) 诺和锐®/门冬胰岛素® @@ -128,7 +126,6 @@ 指定一个150%的配置文件切换会更快吸收碳水 指定一个150%的配置文件切换会更快吸收碳水 指定一个150%的配置文件切换不会影响碳水吸收 - 活性胰岛素(IOB) 活性胰岛素IOB数值受发布的临时基础率影响。 当您的血糖低于目标值时,不会被给予高临时基础率。 在没有运动的情况下,活性胰岛素IOB长时间负数表明你的个人配置太强,你需要在配置中减少的胰岛素用量。 diff --git a/plugins/main/src/main/res/values-zh-rCN/objectives.xml b/plugins/constraints/src/main/res/values-zh-rCN/objectives.xml similarity index 100% rename from plugins/main/src/main/res/values-zh-rCN/objectives.xml rename to plugins/constraints/src/main/res/values-zh-rCN/objectives.xml diff --git a/plugins/constraints/src/main/res/values-zh-rCN/strings.xml b/plugins/constraints/src/main/res/values-zh-rCN/strings.xml new file mode 100644 index 0000000000..87a84b754d --- /dev/null +++ b/plugins/constraints/src/main/res/values-zh-rCN/strings.xml @@ -0,0 +1,33 @@ + + + + + + + + + + 由于 %2$s, 将碳水化合物限制为 %1$d 克 + 这个泵无法设置临时基础率 + 在参数选项中禁用了闭环模式 + 正在运行开发版本,闭环被禁用了 + 由于运行扩展大剂量而禁用了闭环 + SMB always and after carbs disabled 因为实时的血糖来源不支持高级筛选 + 在开环模式下不允许使用SMB-微型大剂量 + 在参数选项里的最大值 + 硬限制 + 治疗安全 + + 尚未完成 + 已用时间 + 合理地设置最大 IOB + 所选的血糖值来源的血糖是可用的 + 闭环启用了 + APS已选择 + 闭环模式启用了 + 目标 + 学习计划 + 你想要重置已启动的目标? 你会失去已有的进度。 + 清除已完成 + 清除已启动 + diff --git a/plugins/main/src/main/res/values/exam.xml b/plugins/constraints/src/main/res/values/exam.xml similarity index 99% rename from plugins/main/src/main/res/values/exam.xml rename to plugins/constraints/src/main/res/values/exam.xml index 6974c605bd..b3b23643b8 100644 --- a/plugins/main/src/main/res/values/exam.xml +++ b/plugins/constraints/src/main/res/values/exam.xml @@ -59,7 +59,6 @@ Leave your blood glucose target unchanged. Wait until blood glucose drops below your hypo temp target and then eat 15 g of fast acting carbohydrates. https://androidaps.readthedocs.io/en/latest/EN/Usage/temptarget.html#activity-temp-target - Disabled/Suspended loop Do I receive insulin when the loop is disabled/suspended? Yes, basal insulin continues to be delivered. No, delivery of insulin is stopped. @@ -149,7 +148,6 @@ Setting profile to 150% will take absorbing carbs a longer time Setting profile to 150% will take absorbing carbs a shorter time Setting profile to 150% will not affect calculated carbs absorption - Insulin on Board (IOB) IOB value is affected by issued temporary basals. High temp basal will not be given when your blood sugar is below target. Negative IOB for a substantial period in the absence of exercise suggests your profile is too strong and less insulin is needed in your settings. diff --git a/plugins/main/src/main/res/values/objectives.xml b/plugins/constraints/src/main/res/values/objectives.xml similarity index 97% rename from plugins/main/src/main/res/values/objectives.xml rename to plugins/constraints/src/main/res/values/objectives.xml index 20a67d7b8a..578c31677a 100644 --- a/plugins/main/src/main/res/values/objectives.xml +++ b/plugins/constraints/src/main/res/values/objectives.xml @@ -1,7 +1,5 @@ - ObjectivesActionsUsed - ObjectivesScaleUsed objectives_request_code Start diff --git a/plugins/support/src/main/res/values/strings.xml b/plugins/constraints/src/main/res/values/strings.xml similarity index 55% rename from plugins/support/src/main/res/values/strings.xml rename to plugins/constraints/src/main/res/values/strings.xml index fd881037b8..c6aa95b54d 100644 --- a/plugins/support/src/main/res/values/strings.xml +++ b/plugins/constraints/src/main/res/values/strings.xml @@ -41,4 +41,38 @@ double entries Flat data. Considered to be wrong + + Limiting extended bolus to %1$.1f U because of %2$s + Limiting carbs to %1$d g because of %2$s + + Safety + Pump is not temp basal capable + Closed loop mode disabled in preferences + Running dev version. Closed loop is disabled. + Closed loop disabled because of running Extended bolus + SMB always and after carbs disabled because active BG source doesn\'t support advanced filtering + SMB not allowed in open loop mode + max value in preferences + hard limit + Treatments safety + + + Completed, well done! + Not completed yet + Time elapsed + Maximal IOB set properly + BG available from selected source + Synchronization service has write permission + Loop enabled + APS selected + Closed mode enabled + OBJ + Learning program + Do you want reset objective start? You may lose your progress. + Next + Prev + Clear finished + Clear started + + \ No newline at end of file diff --git a/plugins/main/src/main/res/xml/pref_safety.xml b/plugins/constraints/src/main/res/xml/pref_safety.xml similarity index 100% rename from plugins/main/src/main/res/xml/pref_safety.xml rename to plugins/constraints/src/main/res/xml/pref_safety.xml diff --git a/plugins/support/src/test/java/info/nightscout/androidaps/TestBase.kt b/plugins/constraints/src/test/java/info/nightscout/androidaps/TestBase.kt similarity index 100% rename from plugins/support/src/test/java/info/nightscout/androidaps/TestBase.kt rename to plugins/constraints/src/test/java/info/nightscout/androidaps/TestBase.kt diff --git a/plugins/support/src/test/java/info/nightscout/plugins/constraints/bgQualityCheck/BgQualityCheckPluginTest.kt b/plugins/constraints/src/test/java/info/nightscout/plugins/constraints/bgQualityCheck/BgQualityCheckPluginTest.kt similarity index 98% rename from plugins/support/src/test/java/info/nightscout/plugins/constraints/bgQualityCheck/BgQualityCheckPluginTest.kt rename to plugins/constraints/src/test/java/info/nightscout/plugins/constraints/bgQualityCheck/BgQualityCheckPluginTest.kt index 6cd80f9448..1dfe6d458d 100644 --- a/plugins/support/src/test/java/info/nightscout/plugins/constraints/bgQualityCheck/BgQualityCheckPluginTest.kt +++ b/plugins/constraints/src/test/java/info/nightscout/plugins/constraints/bgQualityCheck/BgQualityCheckPluginTest.kt @@ -12,7 +12,7 @@ import info.nightscout.interfaces.iob.IobCobCalculator import info.nightscout.interfaces.plugin.ActivePlugin import info.nightscout.interfaces.source.BgSource import info.nightscout.interfaces.source.DexcomBoyda -import info.nightscout.plugins.support.R +import info.nightscout.plugins.constraints.R import info.nightscout.rx.bus.RxBus import info.nightscout.shared.interfaces.ResourceHelper import info.nightscout.shared.utils.DateUtil @@ -37,7 +37,7 @@ class BgQualityCheckPluginTest : TestBase() { private lateinit var plugin: BgQualityCheckPlugin private val injector = HasAndroidInjector { AndroidInjector { } } - val now = 100000000L + private val now = 100000000L //private val autosensDataStore = AutosensDataStoreObject() @BeforeEach @@ -234,6 +234,9 @@ class BgQualityCheckPluginTest : TestBase() { class DexcomPlugin : BgSource, DexcomBoyda { override fun shouldUploadToNs(glucoseValue: GlucoseValue): Boolean = true + override fun isEnabled(): Boolean = false + override fun requestPermissionIfNeeded() {} + override fun findDexcomPackageName(): String? = null } `when`(activePlugin.activeBgSource).thenReturn(DexcomPlugin()) plugin.processBgData() diff --git a/plugins/support/src/test/java/info/nightscout/plugins/constraints/dstHelper/DstHelperPluginTest.kt b/plugins/constraints/src/test/java/info/nightscout/plugins/constraints/dstHelper/DstHelperPluginTest.kt similarity index 100% rename from plugins/support/src/test/java/info/nightscout/plugins/constraints/dstHelper/DstHelperPluginTest.kt rename to plugins/constraints/src/test/java/info/nightscout/plugins/constraints/dstHelper/DstHelperPluginTest.kt diff --git a/plugins/main/src/test/java/info/nightscout/plugins/constraints/objectives/ObjectivesPluginTest.kt b/plugins/constraints/src/test/java/info/nightscout/plugins/constraints/objectives/ObjectivesPluginTest.kt similarity index 77% rename from plugins/main/src/test/java/info/nightscout/plugins/constraints/objectives/ObjectivesPluginTest.kt rename to plugins/constraints/src/test/java/info/nightscout/plugins/constraints/objectives/ObjectivesPluginTest.kt index dccee93785..ca38062636 100644 --- a/plugins/main/src/test/java/info/nightscout/plugins/constraints/objectives/ObjectivesPluginTest.kt +++ b/plugins/constraints/src/test/java/info/nightscout/plugins/constraints/objectives/ObjectivesPluginTest.kt @@ -7,12 +7,11 @@ import info.nightscout.interfaces.Config import info.nightscout.interfaces.constraints.Constraint import info.nightscout.interfaces.constraints.Objectives import info.nightscout.interfaces.plugin.ActivePlugin -import info.nightscout.plugins.R -import info.nightscout.plugins.constraints.objectives.objectives.Objective +import info.nightscout.plugins.constraints.R import info.nightscout.shared.interfaces.ResourceHelper import info.nightscout.shared.sharedPreferences.SP import info.nightscout.shared.utils.DateUtil -import org.junit.Assert +import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test import org.mockito.Mock @@ -30,7 +29,7 @@ class ObjectivesPluginTest : TestBase() { val injector = HasAndroidInjector { AndroidInjector { - if (it is Objective) { + if (it is info.nightscout.plugins.constraints.objectives.objectives.Objective) { it.sp = sp it.rh = rh it.dateUtil = dateUtil @@ -51,8 +50,8 @@ class ObjectivesPluginTest : TestBase() { objectivesPlugin.objectives[Objectives.FIRST_OBJECTIVE].startedOn = 0 var c = Constraint(true) c = objectivesPlugin.isLoopInvocationAllowed(c) - Assert.assertEquals("Objectives: Objective 1 not started", c.getReasons(aapsLogger)) - Assert.assertEquals(false, c.value()) + Assertions.assertEquals("Objectives: Objective 1 not started", c.getReasons(aapsLogger)) + Assertions.assertEquals(false, c.value()) objectivesPlugin.objectives[Objectives.FIRST_OBJECTIVE].startedOn = dateUtil.now() } @@ -60,23 +59,23 @@ class ObjectivesPluginTest : TestBase() { objectivesPlugin.objectives[Objectives.MAXIOB_ZERO_CL_OBJECTIVE].startedOn = 0 var c = Constraint(true) c = objectivesPlugin.isClosedLoopAllowed(c) - Assert.assertEquals(true, c.getReasons(aapsLogger).contains("Objective 6 not started")) - Assert.assertEquals(false, c.value()) + Assertions.assertEquals(true, c.getReasons(aapsLogger).contains("Objective 6 not started")) + Assertions.assertEquals(false, c.value()) } @Test fun notStartedObjective8ShouldLimitAutosensMode() { objectivesPlugin.objectives[Objectives.AUTOSENS_OBJECTIVE].startedOn = 0 var c = Constraint(true) c = objectivesPlugin.isAutosensModeEnabled(c) - Assert.assertEquals(true, c.getReasons(aapsLogger).contains("Objective 8 not started")) - Assert.assertEquals(false, c.value()) + Assertions.assertEquals(true, c.getReasons(aapsLogger).contains("Objective 8 not started")) + Assertions.assertEquals(false, c.value()) } @Test fun notStartedObjective10ShouldLimitSMBMode() { objectivesPlugin.objectives[Objectives.SMB_OBJECTIVE].startedOn = 0 var c = Constraint(true) c = objectivesPlugin.isSMBModeEnabled(c) - Assert.assertEquals(true, c.getReasons(aapsLogger).contains("Objective 9 not started")) - Assert.assertEquals(false, c.value()) + Assertions.assertEquals(true, c.getReasons(aapsLogger).contains("Objective 9 not started")) + Assertions.assertEquals(false, c.value()) } } \ No newline at end of file diff --git a/plugins/main/src/test/java/info/nightscout/plugins/constraints/objectives/SntpClientTest.kt b/plugins/constraints/src/test/java/info/nightscout/plugins/constraints/objectives/SntpClientTest.kt similarity index 69% rename from plugins/main/src/test/java/info/nightscout/plugins/constraints/objectives/SntpClientTest.kt rename to plugins/constraints/src/test/java/info/nightscout/plugins/constraints/objectives/SntpClientTest.kt index 520bebd1b3..8f7382d271 100644 --- a/plugins/main/src/test/java/info/nightscout/plugins/constraints/objectives/SntpClientTest.kt +++ b/plugins/constraints/src/test/java/info/nightscout/plugins/constraints/objectives/SntpClientTest.kt @@ -13,7 +13,7 @@ class SntpClientTest : TestBase() { @Test fun ntpTimeTest() { // no internet - SntpClient(aapsLogger, dateUtil).ntpTime(object : SntpClient.Callback() { + info.nightscout.plugins.constraints.objectives.SntpClient(aapsLogger, dateUtil).ntpTime(object : info.nightscout.plugins.constraints.objectives.SntpClient.Callback() { override fun run() { Assert.assertFalse(networkConnected) Assert.assertFalse(success) @@ -21,7 +21,7 @@ class SntpClientTest : TestBase() { } }, false) // internet - SntpClient(aapsLogger, dateUtil).doNtpTime(object : SntpClient.Callback() { + info.nightscout.plugins.constraints.objectives.SntpClient(aapsLogger, dateUtil).doNtpTime(object : info.nightscout.plugins.constraints.objectives.SntpClient.Callback() { override fun run() { Assert.assertTrue(success) Assert.assertTrue(abs(time - System.currentTimeMillis()) < 60000) diff --git a/plugins/support/src/test/java/info/nightscout/plugins/constraints/signatureVerifier/SignatureVerifierPluginTest.kt b/plugins/constraints/src/test/java/info/nightscout/plugins/constraints/signatureVerifier/SignatureVerifierPluginTest.kt similarity index 100% rename from plugins/support/src/test/java/info/nightscout/plugins/constraints/signatureVerifier/SignatureVerifierPluginTest.kt rename to plugins/constraints/src/test/java/info/nightscout/plugins/constraints/signatureVerifier/SignatureVerifierPluginTest.kt diff --git a/plugins/support/src/test/java/info/nightscout/plugins/constraints/signatureVerifier/VersionCheckerUtilsKtTest.kt b/plugins/constraints/src/test/java/info/nightscout/plugins/constraints/signatureVerifier/VersionCheckerUtilsKtTest.kt similarity index 100% rename from plugins/support/src/test/java/info/nightscout/plugins/constraints/signatureVerifier/VersionCheckerUtilsKtTest.kt rename to plugins/constraints/src/test/java/info/nightscout/plugins/constraints/signatureVerifier/VersionCheckerUtilsKtTest.kt diff --git a/plugins/support/src/test/java/info/nightscout/plugins/constraints/storage/StorageConstraintPluginTest.kt b/plugins/constraints/src/test/java/info/nightscout/plugins/constraints/storage/StorageConstraintPluginTest.kt similarity index 100% rename from plugins/support/src/test/java/info/nightscout/plugins/constraints/storage/StorageConstraintPluginTest.kt rename to plugins/constraints/src/test/java/info/nightscout/plugins/constraints/storage/StorageConstraintPluginTest.kt diff --git a/plugins/support/src/test/java/info/nightscout/plugins/constraints/versionChecker/AllowedVersionsTest.kt b/plugins/constraints/src/test/java/info/nightscout/plugins/constraints/versionChecker/AllowedVersionsTest.kt similarity index 100% rename from plugins/support/src/test/java/info/nightscout/plugins/constraints/versionChecker/AllowedVersionsTest.kt rename to plugins/constraints/src/test/java/info/nightscout/plugins/constraints/versionChecker/AllowedVersionsTest.kt diff --git a/plugins/insulin/.gitignore b/plugins/insulin/.gitignore new file mode 100644 index 0000000000..42afabfd2a --- /dev/null +++ b/plugins/insulin/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/plugins/insulin/build.gradle b/plugins/insulin/build.gradle new file mode 100644 index 0000000000..4ebac085b2 --- /dev/null +++ b/plugins/insulin/build.gradle @@ -0,0 +1,28 @@ +plugins { + id 'com.android.library' + id 'kotlin-android' + id 'kotlin-kapt' + id 'kotlin-allopen' + id 'com.hiya.jacoco-android' +} + +apply from: "${project.rootDir}/core/main/android_dependencies.gradle" +apply from: "${project.rootDir}/core/main/android_module_dependencies.gradle" +apply from: "${project.rootDir}/core/main/allopen_dependencies.gradle" +apply from: "${project.rootDir}/core/main/test_dependencies.gradle" +apply from: "${project.rootDir}/core/main/jacoco_global.gradle" +android { + namespace 'info.nightscout.insulin' +} + + +dependencies { + implementation project(':app-wear-shared:shared') + implementation project(':core:graph') + implementation project(':core:graphview') + implementation project(':core:interfaces') + implementation project(':core:ui') + implementation project(':core:utils') + implementation project(':core:validators') + implementation project(':database:entities') +} \ No newline at end of file diff --git a/plugins/insulin/consumer-rules.pro b/plugins/insulin/consumer-rules.pro new file mode 100644 index 0000000000..e69de29bb2 diff --git a/plugins/insulin/proguard-rules.pro b/plugins/insulin/proguard-rules.pro new file mode 100644 index 0000000000..481bb43481 --- /dev/null +++ b/plugins/insulin/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile \ No newline at end of file diff --git a/plugins/insulin/src/main/AndroidManifest.xml b/plugins/insulin/src/main/AndroidManifest.xml new file mode 100644 index 0000000000..44008a4332 --- /dev/null +++ b/plugins/insulin/src/main/AndroidManifest.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/plugins/main/src/main/java/info/nightscout/plugins/insulin/InsulinFragment.kt b/plugins/insulin/src/main/java/info/nightscout/insulin/InsulinFragment.kt similarity index 93% rename from plugins/main/src/main/java/info/nightscout/plugins/insulin/InsulinFragment.kt rename to plugins/insulin/src/main/java/info/nightscout/insulin/InsulinFragment.kt index a53150caa0..6c55e30cce 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/insulin/InsulinFragment.kt +++ b/plugins/insulin/src/main/java/info/nightscout/insulin/InsulinFragment.kt @@ -1,12 +1,12 @@ -package info.nightscout.plugins.insulin +package info.nightscout.insulin import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import dagger.android.support.DaggerFragment +import info.nightscout.insulin.databinding.InsulinFragmentBinding import info.nightscout.interfaces.plugin.ActivePlugin -import info.nightscout.plugins.databinding.InsulinFragmentBinding import info.nightscout.shared.interfaces.ResourceHelper import javax.inject.Inject diff --git a/plugins/main/src/main/java/info/nightscout/plugins/insulin/InsulinLyumjevPlugin.kt b/plugins/insulin/src/main/java/info/nightscout/insulin/InsulinLyumjevPlugin.kt similarity index 87% rename from plugins/main/src/main/java/info/nightscout/plugins/insulin/InsulinLyumjevPlugin.kt rename to plugins/insulin/src/main/java/info/nightscout/insulin/InsulinLyumjevPlugin.kt index 6f05cea720..dbd270c221 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/insulin/InsulinLyumjevPlugin.kt +++ b/plugins/insulin/src/main/java/info/nightscout/insulin/InsulinLyumjevPlugin.kt @@ -1,11 +1,11 @@ -package info.nightscout.plugins.insulin +package info.nightscout.insulin import dagger.android.HasAndroidInjector import info.nightscout.interfaces.Config import info.nightscout.interfaces.insulin.Insulin import info.nightscout.interfaces.profile.ProfileFunction +import info.nightscout.interfaces.ui.UiInteraction import info.nightscout.interfaces.utils.HardLimits -import info.nightscout.plugins.R import info.nightscout.rx.bus.RxBus import info.nightscout.rx.logging.AAPSLogger import info.nightscout.shared.interfaces.ResourceHelper @@ -21,8 +21,9 @@ class InsulinLyumjevPlugin @Inject constructor( rxBus: RxBus, aapsLogger: AAPSLogger, config: Config, - hardLimits: HardLimits -) : InsulinOrefBasePlugin(injector, rh, profileFunction, rxBus, aapsLogger, config, hardLimits) { + hardLimits: HardLimits, + uiInteraction: UiInteraction +) : InsulinOrefBasePlugin(injector, rh, profileFunction, rxBus, aapsLogger, config, hardLimits, uiInteraction) { override val id get(): Insulin.InsulinType = Insulin.InsulinType.OREF_LYUMJEV override val friendlyName get(): String = rh.gs(R.string.lyumjev) diff --git a/plugins/main/src/main/java/info/nightscout/plugins/insulin/InsulinOrefBasePlugin.kt b/plugins/insulin/src/main/java/info/nightscout/insulin/InsulinOrefBasePlugin.kt similarity index 91% rename from plugins/main/src/main/java/info/nightscout/plugins/insulin/InsulinOrefBasePlugin.kt rename to plugins/insulin/src/main/java/info/nightscout/insulin/InsulinOrefBasePlugin.kt index 2623e81cc2..4e5d3582ef 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/insulin/InsulinOrefBasePlugin.kt +++ b/plugins/insulin/src/main/java/info/nightscout/insulin/InsulinOrefBasePlugin.kt @@ -1,7 +1,6 @@ -package info.nightscout.plugins.insulin +package info.nightscout.insulin import dagger.android.HasAndroidInjector -import info.nightscout.core.events.EventNewNotification import info.nightscout.database.entities.Bolus import info.nightscout.database.entities.embedments.InsulinConfiguration import info.nightscout.interfaces.Config @@ -12,8 +11,8 @@ import info.nightscout.interfaces.plugin.PluginBase import info.nightscout.interfaces.plugin.PluginDescription import info.nightscout.interfaces.plugin.PluginType import info.nightscout.interfaces.profile.ProfileFunction +import info.nightscout.interfaces.ui.UiInteraction import info.nightscout.interfaces.utils.HardLimits -import info.nightscout.plugins.R import info.nightscout.rx.bus.RxBus import info.nightscout.rx.logging.AAPSLogger import info.nightscout.shared.interfaces.ResourceHelper @@ -34,7 +33,8 @@ abstract class InsulinOrefBasePlugin( val rxBus: RxBus, aapsLogger: AAPSLogger, config: Config, - val hardLimits: HardLimits + val hardLimits: HardLimits, + val uiInteraction: UiInteraction ) : PluginBase( PluginDescription() .mainType(PluginType.INSULIN) @@ -61,8 +61,7 @@ abstract class InsulinOrefBasePlugin( open fun sendShortDiaNotification(dia: Double) { if (System.currentTimeMillis() - lastWarned > 60 * 1000) { lastWarned = System.currentTimeMillis() - val notification = Notification(Notification.SHORT_DIA, String.format(notificationPattern, dia, hardLimits.minDia()), Notification.URGENT) - rxBus.send(EventNewNotification(notification)) + uiInteraction.addNotification(Notification.SHORT_DIA, String.format(notificationPattern, dia, hardLimits.minDia()), Notification.URGENT) } } diff --git a/plugins/main/src/main/java/info/nightscout/plugins/insulin/InsulinOrefFreePeakPlugin.kt b/plugins/insulin/src/main/java/info/nightscout/insulin/InsulinOrefFreePeakPlugin.kt similarity index 79% rename from plugins/main/src/main/java/info/nightscout/plugins/insulin/InsulinOrefFreePeakPlugin.kt rename to plugins/insulin/src/main/java/info/nightscout/insulin/InsulinOrefFreePeakPlugin.kt index 85a9037799..30ed94d058 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/insulin/InsulinOrefFreePeakPlugin.kt +++ b/plugins/insulin/src/main/java/info/nightscout/insulin/InsulinOrefFreePeakPlugin.kt @@ -1,4 +1,4 @@ -package info.nightscout.plugins.insulin +package info.nightscout.insulin import dagger.android.HasAndroidInjector import info.nightscout.core.extensions.putInt @@ -6,8 +6,8 @@ import info.nightscout.core.extensions.storeInt import info.nightscout.interfaces.Config import info.nightscout.interfaces.insulin.Insulin import info.nightscout.interfaces.profile.ProfileFunction +import info.nightscout.interfaces.ui.UiInteraction import info.nightscout.interfaces.utils.HardLimits -import info.nightscout.plugins.R import info.nightscout.rx.bus.RxBus import info.nightscout.rx.logging.AAPSLogger import info.nightscout.shared.interfaces.ResourceHelper @@ -28,16 +28,17 @@ class InsulinOrefFreePeakPlugin @Inject constructor( rxBus: RxBus, aapsLogger: AAPSLogger, config: Config, - hardLimits: HardLimits -) : InsulinOrefBasePlugin(injector, rh, profileFunction, rxBus, aapsLogger, config, hardLimits) { + hardLimits: HardLimits, + uiInteraction: UiInteraction +) : InsulinOrefBasePlugin(injector, rh, profileFunction, rxBus, aapsLogger, config, hardLimits, uiInteraction) { override val id get(): Insulin.InsulinType = Insulin.InsulinType.OREF_FREE_PEAK override val friendlyName get(): String = rh.gs(R.string.free_peak_oref) - override fun configuration(): JSONObject = JSONObject().putInt(R.string.key_insulin_oref_peak, sp, rh) + override fun configuration(): JSONObject = JSONObject().putInt(info.nightscout.core.utils.R.string.key_insulin_oref_peak, sp, rh) override fun applyConfiguration(configuration: JSONObject) { - configuration.storeInt(R.string.key_insulin_oref_peak, sp, rh) + configuration.storeInt(info.nightscout.core.utils.R.string.key_insulin_oref_peak, sp, rh) } override fun commentStandardText(): String { @@ -45,7 +46,7 @@ class InsulinOrefFreePeakPlugin @Inject constructor( } override val peak: Int - get() = sp.getInt(R.string.key_insulin_oref_peak, DEFAULT_PEAK) + get() = sp.getInt(info.nightscout.core.utils.R.string.key_insulin_oref_peak, DEFAULT_PEAK) companion object { diff --git a/plugins/main/src/main/java/info/nightscout/plugins/insulin/InsulinOrefRapidActingPlugin.kt b/plugins/insulin/src/main/java/info/nightscout/insulin/InsulinOrefRapidActingPlugin.kt similarity index 88% rename from plugins/main/src/main/java/info/nightscout/plugins/insulin/InsulinOrefRapidActingPlugin.kt rename to plugins/insulin/src/main/java/info/nightscout/insulin/InsulinOrefRapidActingPlugin.kt index e86c6a3261..16d4764b96 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/insulin/InsulinOrefRapidActingPlugin.kt +++ b/plugins/insulin/src/main/java/info/nightscout/insulin/InsulinOrefRapidActingPlugin.kt @@ -1,11 +1,11 @@ -package info.nightscout.plugins.insulin +package info.nightscout.insulin import dagger.android.HasAndroidInjector import info.nightscout.interfaces.Config import info.nightscout.interfaces.insulin.Insulin import info.nightscout.interfaces.profile.ProfileFunction +import info.nightscout.interfaces.ui.UiInteraction import info.nightscout.interfaces.utils.HardLimits -import info.nightscout.plugins.R import info.nightscout.rx.bus.RxBus import info.nightscout.rx.logging.AAPSLogger import info.nightscout.shared.interfaces.ResourceHelper @@ -24,8 +24,9 @@ class InsulinOrefRapidActingPlugin @Inject constructor( rxBus: RxBus, aapsLogger: AAPSLogger, config: Config, - hardLimits: HardLimits -) : InsulinOrefBasePlugin(injector, rh, profileFunction, rxBus, aapsLogger, config, hardLimits) { + hardLimits: HardLimits, + uiInteraction: UiInteraction +) : InsulinOrefBasePlugin(injector, rh, profileFunction, rxBus, aapsLogger, config, hardLimits, uiInteraction) { override val id get(): Insulin.InsulinType = Insulin.InsulinType.OREF_RAPID_ACTING override val friendlyName get(): String = rh.gs(R.string.rapid_acting_oref) diff --git a/plugins/main/src/main/java/info/nightscout/plugins/insulin/InsulinOrefUltraRapidActingPlugin.kt b/plugins/insulin/src/main/java/info/nightscout/insulin/InsulinOrefUltraRapidActingPlugin.kt similarity index 87% rename from plugins/main/src/main/java/info/nightscout/plugins/insulin/InsulinOrefUltraRapidActingPlugin.kt rename to plugins/insulin/src/main/java/info/nightscout/insulin/InsulinOrefUltraRapidActingPlugin.kt index 180eb731cd..b4a0bb19a5 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/insulin/InsulinOrefUltraRapidActingPlugin.kt +++ b/plugins/insulin/src/main/java/info/nightscout/insulin/InsulinOrefUltraRapidActingPlugin.kt @@ -1,11 +1,11 @@ -package info.nightscout.plugins.insulin +package info.nightscout.insulin import dagger.android.HasAndroidInjector import info.nightscout.interfaces.Config import info.nightscout.interfaces.insulin.Insulin import info.nightscout.interfaces.profile.ProfileFunction +import info.nightscout.interfaces.ui.UiInteraction import info.nightscout.interfaces.utils.HardLimits -import info.nightscout.plugins.R import info.nightscout.rx.bus.RxBus import info.nightscout.rx.logging.AAPSLogger import info.nightscout.shared.interfaces.ResourceHelper @@ -24,8 +24,9 @@ class InsulinOrefUltraRapidActingPlugin @Inject constructor( rxBus: RxBus, aapsLogger: AAPSLogger, config: Config, - hardLimits: HardLimits -) : InsulinOrefBasePlugin(injector, rh, profileFunction, rxBus, aapsLogger, config, hardLimits) { + hardLimits: HardLimits, + uiInteraction: UiInteraction +) : InsulinOrefBasePlugin(injector, rh, profileFunction, rxBus, aapsLogger, config, hardLimits, uiInteraction) { override val id get(): Insulin.InsulinType = Insulin.InsulinType.OREF_ULTRA_RAPID_ACTING override val friendlyName get(): String = rh.gs(R.string.ultra_rapid_oref) diff --git a/plugins/main/src/main/java/info/nightscout/plugins/di/InsulinModule.kt b/plugins/insulin/src/main/java/info/nightscout/insulin/di/InsulinModule.kt similarity index 71% rename from plugins/main/src/main/java/info/nightscout/plugins/di/InsulinModule.kt rename to plugins/insulin/src/main/java/info/nightscout/insulin/di/InsulinModule.kt index 42cce3d1f1..0f0e3af34a 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/di/InsulinModule.kt +++ b/plugins/insulin/src/main/java/info/nightscout/insulin/di/InsulinModule.kt @@ -1,8 +1,8 @@ -package info.nightscout.plugins.di +package info.nightscout.insulin.di import dagger.Module import dagger.android.ContributesAndroidInjector -import info.nightscout.plugins.insulin.InsulinFragment +import info.nightscout.insulin.InsulinFragment @Module @Suppress("unused") diff --git a/plugins/main/src/main/res/drawable/ic_insulin.xml b/plugins/insulin/src/main/res/drawable/ic_insulin.xml similarity index 100% rename from plugins/main/src/main/res/drawable/ic_insulin.xml rename to plugins/insulin/src/main/res/drawable/ic_insulin.xml diff --git a/plugins/main/src/main/res/layout/insulin_fragment.xml b/plugins/insulin/src/main/res/layout/insulin_fragment.xml similarity index 92% rename from plugins/main/src/main/res/layout/insulin_fragment.xml rename to plugins/insulin/src/main/res/layout/insulin_fragment.xml index 7733829b41..4d07600c91 100644 --- a/plugins/main/src/main/res/layout/insulin_fragment.xml +++ b/plugins/insulin/src/main/res/layout/insulin_fragment.xml @@ -2,7 +2,7 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" - tools:context=".insulin.InsulinFragment"> + tools:context="info.nightscout.insulin.InsulinFragment"> - + + + Insulien voorkeure vir Humalog en NovoRapid / NovoLog + Insulien voorkeure vir Fiasp + Laat jou toe om die piek van die insulien aktiwiteit definieer en behoort slegs gebruik te word deur gevorderde gebruikers + INS + IAB kurwe piek tyd + Piek tyd [min] + Vry-piek Oref + Snelaksie Oref + DIA van %1$f is te kort - %2$f in stede gebruik! + diff --git a/plugins/insulin/src/main/res/values-bg-rBG/strings.xml b/plugins/insulin/src/main/res/values-bg-rBG/strings.xml new file mode 100644 index 0000000000..231eb1958f --- /dev/null +++ b/plugins/insulin/src/main/res/values-bg-rBG/strings.xml @@ -0,0 +1,15 @@ + + + + Lyumjev + Действие на инсулините Humalog и NovoRapid / NovoLog + Действие на инсулин Fiasp + Действие на инсулин Lyumjev + Позволява да зададете сами пика на инсулиновата активност (не използвайте, ако сте нови потребители) + ИНС + Пик на кривата на IOB + Време на пик [мин.] + Със свободен пик по Oref + Бързодействащ по Oref + DIA от %1$f е твърде кратка - използвай %2$f вместо това! + diff --git a/plugins/insulin/src/main/res/values-ca-rES/strings.xml b/plugins/insulin/src/main/res/values-ca-rES/strings.xml new file mode 100644 index 0000000000..8e232783a9 --- /dev/null +++ b/plugins/insulin/src/main/res/values-ca-rES/strings.xml @@ -0,0 +1,15 @@ + + + + Lyumjev + Configuració preestablerta per insulina Humalog i NovoRapid/NovoLog + Configuració preestablerta per insulina Fiasp + Configuració preestablerta per insulina Lyumjev + Permet definir el pic d\'activitat de la insulina. A utilitzar només per usuaris avançats + INS + Pic de la corba IOB + Temps del pic [min] + Oref sense pic + Oref ràpida + DIA de %1$f massa curt - utilitzant %2$f! + diff --git a/plugins/insulin/src/main/res/values-cs-rCZ/strings.xml b/plugins/insulin/src/main/res/values-cs-rCZ/strings.xml new file mode 100644 index 0000000000..c826e5ddc5 --- /dev/null +++ b/plugins/insulin/src/main/res/values-cs-rCZ/strings.xml @@ -0,0 +1,18 @@ + + + + Lyumjev + Předvolba pro Novorapid + Předvolba pro Fiasp + Předvolba pro Lyumjev + Možnost definice vrcholu účinnosti inzulínu pro pokročilé uživatele + INZ + Čas vrcholu IOB křivky + Vrchol křivky [min] + Volitelný vrchol - Oref + Rychle působící - Oref + Ultra rychlý - Oref + DIA %1$f je příliš krátké - použito %2$f ! + Novorapid + Fiasp + diff --git a/plugins/insulin/src/main/res/values-da-rDK/strings.xml b/plugins/insulin/src/main/res/values-da-rDK/strings.xml new file mode 100644 index 0000000000..f6c2efdda1 --- /dev/null +++ b/plugins/insulin/src/main/res/values-da-rDK/strings.xml @@ -0,0 +1,15 @@ + + + + Lyumjev + Insulin forudindstillet til Humalog og NovoRapid / NovoLog + Insulinforudindstilling til Fiasp + Insulin forudindstillet til Lyumjev + Giver dig mulighed for at definere spidsbelastningen af insulin-aktiviteten og bør kun bruges af avancerede brugere + INS + IOB Kurve Peak-Tid + Spidstidspunkt [min] + Free-Peak Oref + Rapid-Acting Oref + DIA af %1$f for kort - bruger %2$f i stedet! + diff --git a/plugins/insulin/src/main/res/values-de-rDE/strings.xml b/plugins/insulin/src/main/res/values-de-rDE/strings.xml new file mode 100644 index 0000000000..154c9660a7 --- /dev/null +++ b/plugins/insulin/src/main/res/values-de-rDE/strings.xml @@ -0,0 +1,15 @@ + + + + Lyumjev + Insulinprofil für Humalog und NovoRapid / NovoLog + Insulinprofil für Fiasp + Insulin-Voreinstellung für Lyumjev + Erlaubt dir, das Wirkmaximum der Insulinaktivität zu definieren, und sollte nur von erfahrenen Anwendern genutzt werden + INS + Wirkungshoch der IOB-Kurve + Wirkungshoch [min] + Free-Peak Oref + Rapid-Acting Oref + DIA von %1$f ist zu kurz - AAPS nutzt stattdessen %2$f! + diff --git a/plugins/insulin/src/main/res/values-el-rGR/strings.xml b/plugins/insulin/src/main/res/values-el-rGR/strings.xml new file mode 100644 index 0000000000..52f2b7adf4 --- /dev/null +++ b/plugins/insulin/src/main/res/values-el-rGR/strings.xml @@ -0,0 +1,14 @@ + + + + Η ινσουλίνη που ορίζεται Humalog και NovoRapid / NovoLog + Η ινσουλίνη που ορίζεται για Fiasp + Προκαθορισμός ινσουλίνης για την Lyumjev + Σας επιτρέπει να ορίσετε το μέγιστο της δράσης της ινσουλίνης και πρέπει να χρησιμοποιείται μόνο από προχωρημένους χρήστες + INS + Μέγιστη τιμή καμπύλης IOB + Μέγιστο καμπύλης [λεπτά] + Προαιρετικά-αιχμή Oref + Γρήγορη δράση - Oref + DIA για %1$f πολύ μικρή - χρησιμοποιήστε %2$f! + diff --git a/plugins/insulin/src/main/res/values-es-rES/strings.xml b/plugins/insulin/src/main/res/values-es-rES/strings.xml new file mode 100644 index 0000000000..cfae27e7b6 --- /dev/null +++ b/plugins/insulin/src/main/res/values-es-rES/strings.xml @@ -0,0 +1,18 @@ + + + + Lyumjev + Ajustes de insulina preestablecidos para Humalog y NovoRapid/NovoLog + Ajuste de insulina preestablecido para Fiasp + Ajuste de insulina preestablecido para Lyumjev + Permite personalizar el pico de acción máxima de la insulina. Debe ser utilizado únicamente por usuarios avanzados + INS + Tiempo del pico máximo de la curva de IOB + Tiempo del pico máximo de acción de la insulina [min] + Personalizar Pico + Acción Rápida + Ultra-Rápido Oref + DIA de %1$f demasiado corto - usando %2$f! + Novorapid, Novolog, Humalog + Fiasp + diff --git a/plugins/insulin/src/main/res/values-fr-rFR/strings.xml b/plugins/insulin/src/main/res/values-fr-rFR/strings.xml new file mode 100644 index 0000000000..9c694e762c --- /dev/null +++ b/plugins/insulin/src/main/res/values-fr-rFR/strings.xml @@ -0,0 +1,8 @@ + + + + Profil d\'insuline ajustable Oref + Insuline à Action Rapide Oref + Insuline Ultra Rapide Oref + Durée d’Action pour %1$f trop courte - utiliser %2$f à la place ! + diff --git a/plugins/insulin/src/main/res/values-ga-rIE/strings.xml b/plugins/insulin/src/main/res/values-ga-rIE/strings.xml new file mode 100644 index 0000000000..3a488759e1 --- /dev/null +++ b/plugins/insulin/src/main/res/values-ga-rIE/strings.xml @@ -0,0 +1,8 @@ + + + + Lyumjev + INS + Free-Peak Oref + Rapid-Acting Oref + diff --git a/plugins/insulin/src/main/res/values-hr-rHR/strings.xml b/plugins/insulin/src/main/res/values-hr-rHR/strings.xml new file mode 100644 index 0000000000..9ae27b2a08 --- /dev/null +++ b/plugins/insulin/src/main/res/values-hr-rHR/strings.xml @@ -0,0 +1,18 @@ + + + + Lyumjev + Unaprijed podešen predložak za inzulin Humalog i NovoRapid / NovoLog + Unaprijed podešen predložak za inzulin Fiasp + Unaprijed podešen predložak za inzulin Lyumjev + Omogućuje definiranje vrhunca aktivnosti inzulina i trebaju ga koristiti samo napredni korisnici + INS + Vršno vrijeme IOB krivulje + Špica [min] + Free-Peak Oref + Rapid-Acting Oref + Ultra-Rapid Oref + DIA od %1$f prekratak - umjesto njega koristite %2$f! + Novorapid, Novolog, Humalog + Fiasp + diff --git a/plugins/insulin/src/main/res/values-hu-rHU/strings.xml b/plugins/insulin/src/main/res/values-hu-rHU/strings.xml new file mode 100644 index 0000000000..66babda07f --- /dev/null +++ b/plugins/insulin/src/main/res/values-hu-rHU/strings.xml @@ -0,0 +1,5 @@ + + + + Lyumjev + diff --git a/plugins/insulin/src/main/res/values-it-rIT/strings.xml b/plugins/insulin/src/main/res/values-it-rIT/strings.xml new file mode 100644 index 0000000000..3a56fd08d9 --- /dev/null +++ b/plugins/insulin/src/main/res/values-it-rIT/strings.xml @@ -0,0 +1,18 @@ + + + + Lyumjev + Preset per insulina Humalog e NovoRapid / NovoLog + Preset per insulina Fiasp + Preset per insulina Lyumjev + Ti consente di definire il picco di attività dell\'insulina e dovrebbe essere usato solo dagli utenti avanzati + INS + Tempo picco Curva IOB + Tempo del picco [min] + Free-Peak Oref + Rapid-Acting Oref + Ultra-Rapid Oref + DIA di %1$f troppo breve - uso %2$f. + Novorapid, Novolog, Humalog + Fiasp + diff --git a/plugins/insulin/src/main/res/values-iw-rIL/strings.xml b/plugins/insulin/src/main/res/values-iw-rIL/strings.xml new file mode 100644 index 0000000000..c646250f3d --- /dev/null +++ b/plugins/insulin/src/main/res/values-iw-rIL/strings.xml @@ -0,0 +1,15 @@ + + + + Lyumjev + הגדרת אינסולין ל-Humalog ו- NovoRapid / Novolog + הגדרת אינסולין מסוג Fiasp + הגדרת אינסולין מסוג Lyumjev + מאפשר להגדיר את שיא פעילות האינסולין, לשימוש על ידי משתמשים מתקדמים בלבד + אינסולין + שעת שיא של עקומת IOB + זמן שיא [min] + Oref שיא חופשי + Oref אינסולין מהיר + DIA במשך %1$f הוא קצר מדי - משתמש ב-%2$f במקום! + diff --git a/plugins/main/src/main/res/values-ga-rIE/exam.xml b/plugins/insulin/src/main/res/values-ja-rJP/strings.xml similarity index 56% rename from plugins/main/src/main/res/values-ga-rIE/exam.xml rename to plugins/insulin/src/main/res/values-ja-rJP/strings.xml index 40c22282a9..202a838052 100644 --- a/plugins/main/src/main/res/values-ga-rIE/exam.xml +++ b/plugins/insulin/src/main/res/values-ja-rJP/strings.xml @@ -1,4 +1,4 @@ - Fiasp® + diff --git a/plugins/insulin/src/main/res/values-ko-rKR/strings.xml b/plugins/insulin/src/main/res/values-ko-rKR/strings.xml new file mode 100644 index 0000000000..f7b478b739 --- /dev/null +++ b/plugins/insulin/src/main/res/values-ko-rKR/strings.xml @@ -0,0 +1,15 @@ + + + + Lyumjev + 휴마로그와 노보래피드에 대한 인슐린 설정 + 피아스프에 대한 인슐린 설정 + Lyumjev에 대한 인슐린 설정 + 인슐린활동의 피크를 직접 정의할 수 있습니다. 고급 사용자만 사용해야 합니다. + INS + IOB 커브 피크 시간 + 피크 시간 [min] + 사용자지정-피크 Oref + 초속효성 Oref + DIA %1$f는 너무 짧습니다. 대신 %2$f을 사용하세요! + diff --git a/plugins/insulin/src/main/res/values-lt-rLT/strings.xml b/plugins/insulin/src/main/res/values-lt-rLT/strings.xml new file mode 100644 index 0000000000..eefafe7eeb --- /dev/null +++ b/plugins/insulin/src/main/res/values-lt-rLT/strings.xml @@ -0,0 +1,15 @@ + + + + Lyumjev + Nustatymai Humalog ir NovoRapid / NovoLog insulinams + Nustatymai Fiasp insulinui + Nustatymai Lyumjev insulinui + Leidžia pasirinkti insulino veikimo piką ir turėtų būti naudojama tik patyrusių vartotojų + INS + AIO kreivės pikas + Piko laikas [min] + Oref be piko + Greito veikimo Oref + IVT %1$f per trumpa - bus naudojama %2$f! + diff --git a/plugins/insulin/src/main/res/values-nl-rNL/strings.xml b/plugins/insulin/src/main/res/values-nl-rNL/strings.xml new file mode 100644 index 0000000000..34babec837 --- /dev/null +++ b/plugins/insulin/src/main/res/values-nl-rNL/strings.xml @@ -0,0 +1,18 @@ + + + + Lyumjev + Insuline instelling voor Humalog en NovoRapid / NovoLog + Insuline instelling voor Fiasp + Insuline instelling voor Lyumjev + Hiermee kan je de piek van de insulineactiviteit definiëren, mag alleen worden gebruikt door gevorderde gebruikers + INS + IOB curve piek tijd + Piek tijd [min] + Free-Peak Oref + Snel-werkende Oref + Ultra-Rapid Oref + DIA van %1$f te kort - %2$f wordt inplaats gebruikt! + Novorapid, Novolog, Humalog + Fiasp + diff --git a/plugins/insulin/src/main/res/values-no-rNO/strings.xml b/plugins/insulin/src/main/res/values-no-rNO/strings.xml new file mode 100644 index 0000000000..946d281446 --- /dev/null +++ b/plugins/insulin/src/main/res/values-no-rNO/strings.xml @@ -0,0 +1,18 @@ + + + + Lyumjev + Insulininnstillinger for Humalog og NovoRapid / NovoLog + Insulininnstillinger for Fiasp + Insulininnstillinger for Lyumjev + Lar deg definere toppen på insulinaktiviteten og skal kun brukes av avanserte brukere + INS + IOB-kurvens topptid + Topptid [min] + Egendefinert topp Oref + Hurtigvirkende Oref + Ultra-Rapid Oref + DIA på %1$f er for kort - bruker %2$f i stedet! + Novorapid, Novolog, Humalog + Fiasp + diff --git a/plugins/insulin/src/main/res/values-pl-rPL/strings.xml b/plugins/insulin/src/main/res/values-pl-rPL/strings.xml new file mode 100644 index 0000000000..617a4262c2 --- /dev/null +++ b/plugins/insulin/src/main/res/values-pl-rPL/strings.xml @@ -0,0 +1,15 @@ + + + + Lyumjev + Profil insulinowy dla Humalog i Novorapid / NovoLog + Profil insulinowy dla Fiasp + Profil insulinowy dla Lyumjev + Pozwala na określenie czasu wartości szczytowej działania insuliny i powinno być używane tylko przez zaawansowanych użytkowników + INS + IOB Czas piku krzywej działania insuliny + Czas piku [min] + Swobodny-Pik Oref + Szybko-Działający Oref + DIA %1$f zbyt krótki - przyjmuję %2$f w zamian! + diff --git a/plugins/insulin/src/main/res/values-pt-rBR/strings.xml b/plugins/insulin/src/main/res/values-pt-rBR/strings.xml new file mode 100644 index 0000000000..b5d07bbb0e --- /dev/null +++ b/plugins/insulin/src/main/res/values-pt-rBR/strings.xml @@ -0,0 +1,15 @@ + + + + Lyumjev + Predefinição de Insulina para Humalog e NovoRapid / NovoLog + Pré-ajuste de Insulina para Fiasp + Configuração pre-definida para a Insulina Lyumyev + Permite que você defina o pico da atividade de insulina, deve ser usado apenas por usuários avançados + INS + Tempo Pico da curva de IOB + Tempo Pico [min] + Oref Pico-Livre + Oref Ação Rápida + Duração de Acção da Insulina (DIA) de %1$f demasiado curto - corrigido para %2$f! + diff --git a/plugins/insulin/src/main/res/values-pt-rPT/strings.xml b/plugins/insulin/src/main/res/values-pt-rPT/strings.xml new file mode 100644 index 0000000000..590034c689 --- /dev/null +++ b/plugins/insulin/src/main/res/values-pt-rPT/strings.xml @@ -0,0 +1,15 @@ + + + + Lyumjev + Predefinição de Insulina Humalog e NovoRapid / NovoLog + Predefinição de Insulina Fiasp + Predefinição para Insulina Lyumjev + Permite definir o pico de atividade da insulina e deve ser usado somente por usuários avançados + INS + Tempo do Pico da curva de IA + Tempo Pico [min] + Oref Pico-Livre + Oref Acção-Rápida + Duração de Acção da Insulina (DIA) de %1$f demasiado curto - corrigido para %2$f! + diff --git a/plugins/main/src/main/res/values-hu-rHU/exam.xml b/plugins/insulin/src/main/res/values-ro-rRO/strings.xml similarity index 56% rename from plugins/main/src/main/res/values-hu-rHU/exam.xml rename to plugins/insulin/src/main/res/values-ro-rRO/strings.xml index 40c22282a9..202a838052 100644 --- a/plugins/main/src/main/res/values-hu-rHU/exam.xml +++ b/plugins/insulin/src/main/res/values-ro-rRO/strings.xml @@ -1,4 +1,4 @@ - Fiasp® + diff --git a/plugins/insulin/src/main/res/values-ru-rRU/strings.xml b/plugins/insulin/src/main/res/values-ru-rRU/strings.xml new file mode 100644 index 0000000000..34cce261e1 --- /dev/null +++ b/plugins/insulin/src/main/res/values-ru-rRU/strings.xml @@ -0,0 +1,18 @@ + + + + Lyumjev + Предустановки для Humalog и Novorapid / Novolog + Предустановки для Fiasp + Предустановки для Lyumjev + Позволяет самостоятельно задавать пик активности инсулина - только для опытных пользователей + ИНС + Время пика активного инс IOB + Время пика [min] + Свободный от пиков Oref + Быстро действующий Oref + Сверхбыстрый Oref + Значение времени действия инс %1$f слишком мало - применено %2$f! + Новорапид, Хумалог + Фиасп + diff --git a/plugins/insulin/src/main/res/values-sk-rSK/strings.xml b/plugins/insulin/src/main/res/values-sk-rSK/strings.xml new file mode 100644 index 0000000000..4afb8f4947 --- /dev/null +++ b/plugins/insulin/src/main/res/values-sk-rSK/strings.xml @@ -0,0 +1,18 @@ + + + + Lyumjev + Predvoľba pre inzulín Humalog a Novorapid + Predvoľba pre inzulín Fiasp + Predvoľba pre inzulín Lyumjev + Umožňuje definovať vrchol účinnosti inzulínu a malo by byť používané iba pokročilými užívateľmi + INZ + Čas vrcholu IOB krivky + Vrchol krivky [min] + Voliteľný vrchol - Oref + Rýchlo pôsobiaci - Oref + Ultra rýchly - Oref + DIA %1$f je príliš krátke - AAPS namiesto toho použilo %2$f ! + Novorapid, Novolog, Humalog + Fiasp + diff --git a/plugins/insulin/src/main/res/values-sr-rCS/strings.xml b/plugins/insulin/src/main/res/values-sr-rCS/strings.xml new file mode 100644 index 0000000000..72aa6dbdc2 --- /dev/null +++ b/plugins/insulin/src/main/res/values-sr-rCS/strings.xml @@ -0,0 +1,8 @@ + + + + Unapred podešena postavka insulina za Humalog i NovoRapid / NovoLog + Unapred podešena postavka insulina za Fiasp + Unapred podešena postavka insulina za Lyumjev + Omogućava definisanje vrhunca aktivnosti insulina i trebaju ga koriste samo napredni korisnici + diff --git a/plugins/insulin/src/main/res/values-sv-rSE/strings.xml b/plugins/insulin/src/main/res/values-sv-rSE/strings.xml new file mode 100644 index 0000000000..c067f3fa91 --- /dev/null +++ b/plugins/insulin/src/main/res/values-sv-rSE/strings.xml @@ -0,0 +1,15 @@ + + + + Lyumjev + Insulininställning för vanliga direktverkande insuliner som Humalog, Lispro, Apidra och Novorapid/Novolog + Insulininställning för ultrasnabba insuliner, t ex Fiasp + Insulininställning för Lyumjev + Låter dig ställa in tidpunkten för toppen på insulinets aktivitet. Bör bara användas av avancerade användare + INS + Peaktid för IOB-kurvan + Peaktid [min] + Free-Peak Oref + Rapid-Acting Oref + %1$f tim DIA är för kort. Använder %2$f istället! + diff --git a/plugins/insulin/src/main/res/values-tr-rTR/strings.xml b/plugins/insulin/src/main/res/values-tr-rTR/strings.xml new file mode 100644 index 0000000000..18be9640f5 --- /dev/null +++ b/plugins/insulin/src/main/res/values-tr-rTR/strings.xml @@ -0,0 +1,11 @@ + + + + Lyumjev + Humalog ve NovoRapid / NovoLog için İnsülin Profili + Fiasp için insülin Profili + Lyumjev için insülin ayarı + İnsülin aktivitesinin zirvesini tanımlamanıza izin verir ve yalnızca ileri düzey kullanıcılar tarafından kullanılmalıdır. + İNS + DIA %1$f çok kısa - bunun yerine %2$f kullanıyor! + diff --git a/plugins/insulin/src/main/res/values-zh-rCN/strings.xml b/plugins/insulin/src/main/res/values-zh-rCN/strings.xml new file mode 100644 index 0000000000..fc0ef79491 --- /dev/null +++ b/plugins/insulin/src/main/res/values-zh-rCN/strings.xml @@ -0,0 +1,15 @@ + + + + Lyumjev(超速效赖脯胰岛素) + 胰岛素预设为 Humalog(优泌乐) 和 NovoRapid(门冬)/NovoLog(诺和锐) + Fiasp 胰岛素预设 + 预设为Lyumjev速效赖脯胰岛素 + 允许您定义胰岛素作用的峰值, 并且只应由高级用户使用 + INS + IOB 曲线峰值时间 + 峰值时间 [min] + Free-Peak Oref + 速效 Oref + DIA of %1$f 太短了,请使用 %2$f 代替 + diff --git a/plugins/insulin/src/main/res/values/strings.xml b/plugins/insulin/src/main/res/values/strings.xml new file mode 100644 index 0000000000..3713f176ca --- /dev/null +++ b/plugins/insulin/src/main/res/values/strings.xml @@ -0,0 +1,22 @@ + + + + insulin_oref_peak_settings + + Lyumjev + Insulin preset for Humalog and NovoRapid / NovoLog + Insulin preset for Fiasp + Insulin preset for Lyumjev + Allows you to define the peak of the insulin activity and should only be used by advanced users + INS + IOB Curve Peak Time + Peak Time [min] + Free-Peak Oref + Rapid-Acting Oref + Ultra-Rapid Oref + DIA of %1$f too short - using %2$f instead! + Novorapid, Novolog, Humalog + Fiasp + + + \ No newline at end of file diff --git a/plugins/main/src/main/res/xml/pref_insulinoreffreepeak.xml b/plugins/insulin/src/main/res/xml/pref_insulinoreffreepeak.xml similarity index 100% rename from plugins/main/src/main/res/xml/pref_insulinoreffreepeak.xml rename to plugins/insulin/src/main/res/xml/pref_insulinoreffreepeak.xml diff --git a/plugins/insulin/src/test/java/info/nightscout/androidaps/TestBase.kt b/plugins/insulin/src/test/java/info/nightscout/androidaps/TestBase.kt new file mode 100644 index 0000000000..4fd2aef548 --- /dev/null +++ b/plugins/insulin/src/test/java/info/nightscout/androidaps/TestBase.kt @@ -0,0 +1,37 @@ +package info.nightscout.androidaps + +import info.nightscout.rx.AapsSchedulers +import info.nightscout.rx.TestAapsSchedulers +import info.nightscout.rx.logging.AAPSLoggerTest +import org.junit.jupiter.api.BeforeEach +import org.junit.jupiter.api.extension.ExtendWith +import org.mockito.Mockito +import org.mockito.junit.jupiter.MockitoExtension +import org.mockito.junit.jupiter.MockitoSettings +import org.mockito.quality.Strictness +import java.util.Locale + +@ExtendWith(MockitoExtension::class) +@MockitoSettings(strictness = Strictness.LENIENT) +open class TestBase { + + val aapsLogger = AAPSLoggerTest() + val aapsSchedulers: AapsSchedulers = TestAapsSchedulers() + + @BeforeEach + fun setupLocale() { + Locale.setDefault(Locale.ENGLISH) + System.setProperty("disableFirebase", "true") + } + + // Workaround for Kotlin nullability. + // https://medium.com/@elye.project/befriending-kotlin-and-mockito-1c2e7b0ef791 + // https://stackoverflow.com/questions/30305217/is-it-possible-to-use-mockito-in-kotlin + fun anyObject(): T { + Mockito.any() + return uninitialized() + } + + @Suppress("Unchecked_Cast") + fun uninitialized(): T = null as T +} \ No newline at end of file diff --git a/plugins/main/src/test/java/info/nightscout/plugins/insulin/InsulinLyumjevPluginTest.kt b/plugins/insulin/src/test/java/info/nightscout/insulin/InsulinLyumjevPluginTest.kt similarity index 78% rename from plugins/main/src/test/java/info/nightscout/plugins/insulin/InsulinLyumjevPluginTest.kt rename to plugins/insulin/src/test/java/info/nightscout/insulin/InsulinLyumjevPluginTest.kt index 0987238522..e03fce024a 100644 --- a/plugins/main/src/test/java/info/nightscout/plugins/insulin/InsulinLyumjevPluginTest.kt +++ b/plugins/insulin/src/test/java/info/nightscout/insulin/InsulinLyumjevPluginTest.kt @@ -1,16 +1,16 @@ -package info.nightscout.plugins.insulin +package info.nightscout.insulin import dagger.android.AndroidInjector import dagger.android.HasAndroidInjector import info.nightscout.interfaces.Config import info.nightscout.interfaces.insulin.Insulin import info.nightscout.interfaces.profile.ProfileFunction +import info.nightscout.interfaces.ui.UiInteraction import info.nightscout.interfaces.utils.HardLimits -import info.nightscout.plugins.R import info.nightscout.rx.bus.RxBus import info.nightscout.rx.logging.AAPSLogger import info.nightscout.shared.interfaces.ResourceHelper -import org.junit.Assert.assertEquals +import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test import org.junit.jupiter.api.extension.ExtendWith @@ -33,6 +33,7 @@ class InsulinLyumjevPluginTest { @Mock lateinit var aapsLogger: AAPSLogger @Mock lateinit var config: Config @Mock lateinit var hardLimits: HardLimits + @Mock lateinit var uiInteraction: UiInteraction private var injector: HasAndroidInjector = HasAndroidInjector { AndroidInjector { @@ -41,29 +42,29 @@ class InsulinLyumjevPluginTest { @BeforeEach fun setup() { - sut = InsulinLyumjevPlugin(injector, rh, profileFunction, rxBus, aapsLogger, config, hardLimits) + sut = InsulinLyumjevPlugin(injector, rh, profileFunction, rxBus, aapsLogger, config, hardLimits, uiInteraction) } @Test fun `simple peak test`() { - assertEquals(45, sut.peak) + Assertions.assertEquals(45, sut.peak) } @Test fun getIdTest() { - assertEquals(Insulin.InsulinType.OREF_LYUMJEV, sut.id) + Assertions.assertEquals(Insulin.InsulinType.OREF_LYUMJEV, sut.id) } @Test fun commentStandardTextTest() { `when`(rh.gs(eq(R.string.lyumjev))).thenReturn("Lyumjev") - assertEquals("Lyumjev", sut.commentStandardText()) + Assertions.assertEquals("Lyumjev", sut.commentStandardText()) } @Test fun getFriendlyNameTest() { `when`(rh.gs(eq(R.string.lyumjev))).thenReturn("Lyumjev") - assertEquals("Lyumjev", sut.friendlyName) + Assertions.assertEquals("Lyumjev", sut.friendlyName) } } \ No newline at end of file diff --git a/plugins/main/src/test/java/info/nightscout/plugins/insulin/InsulinOrefBasePluginTest.kt b/plugins/insulin/src/test/java/info/nightscout/insulin/InsulinOrefBasePluginTest.kt similarity index 77% rename from plugins/main/src/test/java/info/nightscout/plugins/insulin/InsulinOrefBasePluginTest.kt rename to plugins/insulin/src/test/java/info/nightscout/insulin/InsulinOrefBasePluginTest.kt index 5ad4a08781..4a3550392a 100644 --- a/plugins/main/src/test/java/info/nightscout/plugins/insulin/InsulinOrefBasePluginTest.kt +++ b/plugins/insulin/src/test/java/info/nightscout/insulin/InsulinOrefBasePluginTest.kt @@ -1,4 +1,4 @@ -package info.nightscout.plugins.insulin +package info.nightscout.insulin import dagger.android.AndroidInjector import dagger.android.HasAndroidInjector @@ -7,12 +7,13 @@ import info.nightscout.interfaces.Config import info.nightscout.interfaces.Constants import info.nightscout.interfaces.insulin.Insulin import info.nightscout.interfaces.profile.ProfileFunction +import info.nightscout.interfaces.ui.UiInteraction import info.nightscout.interfaces.utils.HardLimits import info.nightscout.rx.bus.RxBus import info.nightscout.rx.logging.AAPSLogger import info.nightscout.shared.interfaces.ResourceHelper import org.json.JSONObject -import org.junit.Assert +import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test import org.junit.jupiter.api.extension.ExtendWith @@ -38,7 +39,7 @@ class InsulinOrefBasePluginTest { aapsLogger: AAPSLogger, config: Config, hardLimits: HardLimits - ) : InsulinOrefBasePlugin(injector, rh, profileFunction, rxBus, aapsLogger, config, hardLimits) { + ) : InsulinOrefBasePlugin(injector, rh, profileFunction, rxBus, aapsLogger, config, hardLimits, uiInteraction) { override fun sendShortDiaNotification(dia: Double) { shortDiaNotificationSend = true @@ -65,6 +66,7 @@ class InsulinOrefBasePluginTest { @Mock lateinit var aapsLogger: AAPSLogger @Mock lateinit var config: Config @Mock lateinit var hardLimits: HardLimits + @Mock lateinit var uiInteraction: UiInteraction private var injector: HasAndroidInjector = HasAndroidInjector { AndroidInjector { @@ -79,12 +81,12 @@ class InsulinOrefBasePluginTest { @Test fun testGetDia() { - Assert.assertEquals(5.0, sut.dia, 0.0) + Assertions.assertEquals(5.0, sut.dia, 0.0) testUserDefinedDia = 5.0 + 1 - Assert.assertEquals(5.0 + 1, sut.dia, 0.0) + Assertions.assertEquals(5.0 + 1, sut.dia, 0.0) testUserDefinedDia = 5.0 - 1 - Assert.assertEquals(5.0, sut.dia, 0.0) - Assert.assertTrue(shortDiaNotificationSend) + Assertions.assertEquals(5.0, sut.dia, 0.0) + Assertions.assertTrue(shortDiaNotificationSend) } @Test @@ -96,22 +98,22 @@ class InsulinOrefBasePluginTest { // check directly after bolus treatment.timestamp = time treatment.amount = 10.0 - Assert.assertEquals(10.0, sut.iobCalcForTreatment(treatment, time, Constants.defaultDIA).iobContrib, 0.1) + Assertions.assertEquals(10.0, sut.iobCalcForTreatment(treatment, time, Constants.defaultDIA).iobContrib, 0.1) // check after 1 hour treatment.timestamp = time - 1 * 60 * 60 * 1000 // 1 hour treatment.amount = 10.0 - Assert.assertEquals(3.92, sut.iobCalcForTreatment(treatment, time, Constants.defaultDIA).iobContrib, 0.1) + Assertions.assertEquals(3.92, sut.iobCalcForTreatment(treatment, time, Constants.defaultDIA).iobContrib, 0.1) // check after 2 hour treatment.timestamp = time - 2 * 60 * 60 * 1000 // 2 hours treatment.amount = 10.0 - Assert.assertEquals(0.77, sut.iobCalcForTreatment(treatment, time, Constants.defaultDIA).iobContrib, 0.1) + Assertions.assertEquals(0.77, sut.iobCalcForTreatment(treatment, time, Constants.defaultDIA).iobContrib, 0.1) // check after 3 hour treatment.timestamp = time - 3 * 60 * 60 * 1000 // 3 hours treatment.amount = 10.0 - Assert.assertEquals(0.10, sut.iobCalcForTreatment(treatment, time, Constants.defaultDIA).iobContrib, 0.1) + Assertions.assertEquals(0.10, sut.iobCalcForTreatment(treatment, time, Constants.defaultDIA).iobContrib, 0.1) // check after dia treatment.timestamp = time - 4 * 60 * 60 * 1000 // 4 hours treatment.amount = 10.0 - Assert.assertEquals(0.0, sut.iobCalcForTreatment(treatment, time, Constants.defaultDIA).iobContrib, 0.1) + Assertions.assertEquals(0.0, sut.iobCalcForTreatment(treatment, time, Constants.defaultDIA).iobContrib, 0.1) } } \ No newline at end of file diff --git a/plugins/main/src/test/java/info/nightscout/plugins/insulin/InsulinOrefFreePeakPluginTest.kt b/plugins/insulin/src/test/java/info/nightscout/insulin/InsulinOrefFreePeakPluginTest.kt similarity index 69% rename from plugins/main/src/test/java/info/nightscout/plugins/insulin/InsulinOrefFreePeakPluginTest.kt rename to plugins/insulin/src/test/java/info/nightscout/insulin/InsulinOrefFreePeakPluginTest.kt index 0974ba91b5..5e20dc2eb1 100644 --- a/plugins/main/src/test/java/info/nightscout/plugins/insulin/InsulinOrefFreePeakPluginTest.kt +++ b/plugins/insulin/src/test/java/info/nightscout/insulin/InsulinOrefFreePeakPluginTest.kt @@ -1,4 +1,4 @@ -package info.nightscout.plugins.insulin +package info.nightscout.insulin import dagger.android.AndroidInjector import dagger.android.HasAndroidInjector @@ -6,12 +6,12 @@ import info.nightscout.androidaps.TestBase import info.nightscout.interfaces.Config import info.nightscout.interfaces.insulin.Insulin import info.nightscout.interfaces.profile.ProfileFunction +import info.nightscout.interfaces.ui.UiInteraction import info.nightscout.interfaces.utils.HardLimits -import info.nightscout.plugins.R import info.nightscout.rx.bus.RxBus import info.nightscout.shared.interfaces.ResourceHelper import info.nightscout.shared.sharedPreferences.SP -import org.junit.Assert.assertEquals +import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test import org.mockito.ArgumentMatchers.anyInt @@ -33,6 +33,7 @@ class InsulinOrefFreePeakPluginTest : TestBase() { @Mock lateinit var profileFunction: ProfileFunction @Mock lateinit var config: Config @Mock lateinit var hardLimits: HardLimits + @Mock lateinit var uiInteraction: UiInteraction private var injector: HasAndroidInjector = HasAndroidInjector { AndroidInjector { @@ -41,30 +42,30 @@ class InsulinOrefFreePeakPluginTest : TestBase() { @BeforeEach fun setup() { - sut = InsulinOrefFreePeakPlugin(injector, sp, rh, profileFunction, rxBus, aapsLogger, config, hardLimits) + sut = InsulinOrefFreePeakPlugin(injector, sp, rh, profileFunction, rxBus, aapsLogger, config, hardLimits, uiInteraction) } @Test fun `simple peak test`() { - `when`(sp.getInt(eq(R.string.key_insulin_oref_peak), anyInt())).thenReturn(90) - assertEquals(90, sut.peak) + `when`(sp.getInt(eq(info.nightscout.core.utils.R.string.key_insulin_oref_peak), anyInt())).thenReturn(90) + Assertions.assertEquals(90, sut.peak) } @Test fun getIdTest() { - assertEquals(Insulin.InsulinType.OREF_FREE_PEAK, sut.id) + Assertions.assertEquals(Insulin.InsulinType.OREF_FREE_PEAK, sut.id) } @Test fun commentStandardTextTest() { - `when`(sp.getInt(eq(R.string.key_insulin_oref_peak), anyInt())).thenReturn(90) + `when`(sp.getInt(eq(info.nightscout.core.utils.R.string.key_insulin_oref_peak), anyInt())).thenReturn(90) `when`(rh.gs(eq(R.string.insulin_peak_time))).thenReturn("Peak Time [min]") - assertEquals("Peak Time [min]: 90", sut.commentStandardText()) + Assertions.assertEquals("Peak Time [min]: 90", sut.commentStandardText()) } @Test fun getFriendlyNameTest() { `when`(rh.gs(eq(R.string.free_peak_oref))).thenReturn("Free-Peak Oref") - assertEquals("Free-Peak Oref", sut.friendlyName) + Assertions.assertEquals("Free-Peak Oref", sut.friendlyName) } } \ No newline at end of file diff --git a/plugins/main/src/test/java/info/nightscout/plugins/insulin/InsulinOrefRapidActingPluginTest.kt b/plugins/insulin/src/test/java/info/nightscout/insulin/InsulinOrefRapidActingPluginTest.kt similarity index 77% rename from plugins/main/src/test/java/info/nightscout/plugins/insulin/InsulinOrefRapidActingPluginTest.kt rename to plugins/insulin/src/test/java/info/nightscout/insulin/InsulinOrefRapidActingPluginTest.kt index cf1898abcf..d8d7d2a697 100644 --- a/plugins/main/src/test/java/info/nightscout/plugins/insulin/InsulinOrefRapidActingPluginTest.kt +++ b/plugins/insulin/src/test/java/info/nightscout/insulin/InsulinOrefRapidActingPluginTest.kt @@ -1,16 +1,16 @@ -package info.nightscout.plugins.insulin +package info.nightscout.insulin import dagger.android.AndroidInjector import dagger.android.HasAndroidInjector import info.nightscout.interfaces.Config import info.nightscout.interfaces.insulin.Insulin import info.nightscout.interfaces.profile.ProfileFunction +import info.nightscout.interfaces.ui.UiInteraction import info.nightscout.interfaces.utils.HardLimits -import info.nightscout.plugins.R import info.nightscout.rx.bus.RxBus import info.nightscout.rx.logging.AAPSLogger import info.nightscout.shared.interfaces.ResourceHelper -import org.junit.Assert.assertEquals +import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test import org.junit.jupiter.api.extension.ExtendWith @@ -33,6 +33,7 @@ class InsulinOrefRapidActingPluginTest { @Mock lateinit var aapsLogger: AAPSLogger @Mock lateinit var config: Config @Mock lateinit var hardLimits: HardLimits + @Mock lateinit var uiInteraction: UiInteraction private var injector: HasAndroidInjector = HasAndroidInjector { AndroidInjector { @@ -41,29 +42,29 @@ class InsulinOrefRapidActingPluginTest { @BeforeEach fun setup() { - sut = InsulinOrefRapidActingPlugin(injector, rh, profileFunction, rxBus, aapsLogger, config, hardLimits) + sut = InsulinOrefRapidActingPlugin(injector, rh, profileFunction, rxBus, aapsLogger, config, hardLimits, uiInteraction) } @Test fun `simple peak test`() { - assertEquals(75, sut.peak) + Assertions.assertEquals(75, sut.peak) } @Test fun getIdTest() { - assertEquals(Insulin.InsulinType.OREF_RAPID_ACTING, sut.id) + Assertions.assertEquals(Insulin.InsulinType.OREF_RAPID_ACTING, sut.id) } @Test fun commentStandardTextTest() { `when`(rh.gs(eq(R.string.fast_acting_insulin_comment))).thenReturn("Novorapid, Novolog, Humalog") - assertEquals("Novorapid, Novolog, Humalog", sut.commentStandardText()) + Assertions.assertEquals("Novorapid, Novolog, Humalog", sut.commentStandardText()) } @Test fun getFriendlyNameTest() { `when`(rh.gs(eq(R.string.rapid_acting_oref))).thenReturn("Rapid-Acting Oref") - assertEquals("Rapid-Acting Oref", sut.friendlyName) + Assertions.assertEquals("Rapid-Acting Oref", sut.friendlyName) } } \ No newline at end of file diff --git a/plugins/main/src/test/java/info/nightscout/plugins/insulin/InsulinOrefUltraRapidActingPluginTest.kt b/plugins/insulin/src/test/java/info/nightscout/insulin/InsulinOrefUltraRapidActingPluginTest.kt similarity index 78% rename from plugins/main/src/test/java/info/nightscout/plugins/insulin/InsulinOrefUltraRapidActingPluginTest.kt rename to plugins/insulin/src/test/java/info/nightscout/insulin/InsulinOrefUltraRapidActingPluginTest.kt index 9ae7fe1964..ec8dc09c5e 100644 --- a/plugins/main/src/test/java/info/nightscout/plugins/insulin/InsulinOrefUltraRapidActingPluginTest.kt +++ b/plugins/insulin/src/test/java/info/nightscout/insulin/InsulinOrefUltraRapidActingPluginTest.kt @@ -1,16 +1,16 @@ -package info.nightscout.plugins.insulin +package info.nightscout.insulin import dagger.android.AndroidInjector import dagger.android.HasAndroidInjector import info.nightscout.interfaces.Config import info.nightscout.interfaces.insulin.Insulin import info.nightscout.interfaces.profile.ProfileFunction +import info.nightscout.interfaces.ui.UiInteraction import info.nightscout.interfaces.utils.HardLimits -import info.nightscout.plugins.R import info.nightscout.rx.bus.RxBus import info.nightscout.rx.logging.AAPSLogger import info.nightscout.shared.interfaces.ResourceHelper -import org.junit.Assert.assertEquals +import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test import org.junit.jupiter.api.extension.ExtendWith @@ -33,6 +33,7 @@ class InsulinOrefUltraRapidActingPluginTest { @Mock lateinit var aapsLogger: AAPSLogger @Mock lateinit var config: Config @Mock lateinit var hardLimits: HardLimits + @Mock lateinit var uiInteraction: UiInteraction private var injector: HasAndroidInjector = HasAndroidInjector { AndroidInjector { @@ -41,29 +42,29 @@ class InsulinOrefUltraRapidActingPluginTest { @BeforeEach fun setup() { - sut = InsulinOrefUltraRapidActingPlugin(injector, rh, profileFunction, rxBus, aapsLogger, config, hardLimits) + sut = InsulinOrefUltraRapidActingPlugin(injector, rh, profileFunction, rxBus, aapsLogger, config, hardLimits, uiInteraction) } @Test fun `simple peak test`() { - assertEquals(55, sut.peak) + Assertions.assertEquals(55, sut.peak) } @Test fun getIdTest() { - assertEquals(Insulin.InsulinType.OREF_ULTRA_RAPID_ACTING, sut.id) + Assertions.assertEquals(Insulin.InsulinType.OREF_ULTRA_RAPID_ACTING, sut.id) } @Test fun commentStandardTextTest() { `when`(rh.gs(eq(R.string.ultra_fast_acting_insulin_comment))).thenReturn("Fiasp") - assertEquals("Fiasp", sut.commentStandardText()) + Assertions.assertEquals("Fiasp", sut.commentStandardText()) } @Test fun getFriendlyNameTest() { `when`(rh.gs(eq(R.string.ultra_rapid_oref))).thenReturn("Ultra-Rapid Oref") - assertEquals("Ultra-Rapid Oref", sut.friendlyName) + Assertions.assertEquals("Ultra-Rapid Oref", sut.friendlyName) } } \ No newline at end of file diff --git a/plugins/main/src/main/AndroidManifest.xml b/plugins/main/src/main/AndroidManifest.xml index 41f19bc508..aff7ae7188 100644 --- a/plugins/main/src/main/AndroidManifest.xml +++ b/plugins/main/src/main/AndroidManifest.xml @@ -19,10 +19,6 @@ - - 24) 6 else overviewData.rangeToDisplay sp.putInt(info.nightscout.core.utils.R.string.key_rangetodisplay, overviewData.rangeToDisplay) rxBus.send(EventPreferenceChange(rh.gs(info.nightscout.core.utils.R.string.key_rangetodisplay))) - sp.putBoolean(R.string.key_objectiveusescale, true) + sp.putBoolean(info.nightscout.core.utils.R.string.key_objectiveusescale, true) false } prepareGraphsIfNeeded(overviewMenus.setting.size) @@ -273,7 +272,7 @@ class OverviewFragment : DaggerFragment(), View.OnClickListener, OnLongClickList overviewData.rangeToDisplay = it.hours sp.putInt(info.nightscout.core.utils.R.string.key_rangetodisplay, it.hours) rxBus.send(EventPreferenceChange(rh.gs(info.nightscout.core.utils.R.string.key_rangetodisplay))) - sp.putBoolean(R.string.key_objectiveusescale, true) + sp.putBoolean(info.nightscout.core.utils.R.string.key_objectiveusescale, true) }, fabricPrivacy::logException) disposable += rxBus .toObservable(EventNewBG::class.java) @@ -400,10 +399,10 @@ class OverviewFragment : DaggerFragment(), View.OnClickListener, OnLongClickList } R.id.cgm_button -> { - if (xdripPlugin.isEnabled()) + if (xDrip.isEnabled()) openCgmApp("com.eveningoutpost.dexdrip") - else if (dexcomPlugin.isEnabled()) { - dexcomMediator.findDexcomPackageName()?.let { + else if (dexcomBoyda.isEnabled()) { + dexcomBoyda.findDexcomPackageName()?.let { openCgmApp(it) } ?: ToastUtils.infoToast(activity, rh.gs(R.string.dexcom_app_not_installed)) @@ -411,11 +410,11 @@ class OverviewFragment : DaggerFragment(), View.OnClickListener, OnLongClickList } R.id.calibration_button -> { - if (xdripPlugin.isEnabled()) { + if (xDrip.isEnabled()) { uiInteraction.runCalibrationDialog(childFragmentManager) - } else if (dexcomPlugin.isEnabled()) { + } else if (dexcomBoyda.isEnabled()) { try { - dexcomMediator.findDexcomPackageName()?.let { + dexcomBoyda.findDexcomPackageName()?.let { startActivity( Intent("com.dexcom.cgm.activities.MeterEntryActivity") .setPackage(it) @@ -577,8 +576,8 @@ class OverviewFragment : DaggerFragment(), View.OnClickListener, OnLongClickList && sp.getBoolean(R.string.key_show_insulin_button, true)).toVisibility() // **** Calibration & CGM buttons **** - val xDripIsBgSource = xdripPlugin.isEnabled() - val dexcomIsSource = dexcomPlugin.isEnabled() + val xDripIsBgSource = xDrip.isEnabled() + val dexcomIsSource = dexcomBoyda.isEnabled() binding.buttonsLayout.calibrationButton.visibility = (xDripIsBgSource && actualBG != null && sp.getBoolean(R.string.key_show_calibration_button, true)).toVisibility() if (dexcomIsSource) { binding.buttonsLayout.cgmButton.setCompoundDrawablesWithIntrinsicBounds(null, rh.gd(R.drawable.ic_byoda), null, null) @@ -659,7 +658,7 @@ class OverviewFragment : DaggerFragment(), View.OnClickListener, OnLongClickList (loop as PluginBase).isEnabled() && loop.isSuspended -> { binding.infoLayout.apsMode.setImageResource(info.nightscout.core.ui.R.drawable.ic_loop_paused) - apsModeSetA11yLabel(R.string.suspendloop_label) + apsModeSetA11yLabel(info.nightscout.core.ui.R.string.suspendloop_label) binding.infoLayout.apsModeText.text = dateUtil.age(loop.minutesToEndOfSuspend() * 60000L, true, rh) binding.infoLayout.apsModeText.visibility = View.VISIBLE } @@ -908,7 +907,7 @@ class OverviewFragment : DaggerFragment(), View.OnClickListener, OnLongClickList val useBatteryLevel = (pump.model() == PumpType.OMNIPOD_EROS) || (pump.model() != PumpType.ACCU_CHEK_COMBO && pump.model() != PumpType.OMNIPOD_DASH) batteryLevel.visibility = useBatteryLevel.toVisibility() - statusLights.visibility = (sp.getBoolean(R.string.key_show_statuslights, true) || config.NSCLIENT).toVisibility() + statusLightsLayout.visibility = (sp.getBoolean(R.string.key_show_statuslights, true) || config.NSCLIENT).toVisibility() } statusLightHandler.updateStatusLights( binding.statusLightsLayout.cannulaAge, diff --git a/plugins/main/src/main/java/info/nightscout/plugins/iob/iobCobCalculator/IobCobCalculatorPlugin.kt b/plugins/main/src/main/java/info/nightscout/plugins/iob/iobCobCalculator/IobCobCalculatorPlugin.kt index 2890d9b828..b63d5f81e8 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/iob/iobCobCalculator/IobCobCalculatorPlugin.kt +++ b/plugins/main/src/main/java/info/nightscout/plugins/iob/iobCobCalculator/IobCobCalculatorPlugin.kt @@ -128,7 +128,7 @@ class IobCobCalculatorPlugin @Inject constructor( event.isChanged(rh.gs(info.nightscout.core.utils.R.string.key_absorption_cutoff)) || event.isChanged(rh.gs(info.nightscout.core.utils.R.string.key_openapsama_autosens_max)) || event.isChanged(rh.gs(info.nightscout.core.utils.R.string.key_openapsama_autosens_min)) || - event.isChanged(rh.gs(R.string.key_insulin_oref_peak)) + event.isChanged(rh.gs(info.nightscout.core.utils.R.string.key_insulin_oref_peak)) ) { resetDataAndRunCalculation("onEventPreferenceChange", event) } diff --git a/core/main/src/main/java/info/nightscout/core/iob/iobCobCalculator/data/AutosensDataObject.kt b/plugins/main/src/main/java/info/nightscout/plugins/iob/iobCobCalculator/data/AutosensDataObject.kt similarity index 91% rename from core/main/src/main/java/info/nightscout/core/iob/iobCobCalculator/data/AutosensDataObject.kt rename to plugins/main/src/main/java/info/nightscout/plugins/iob/iobCobCalculator/data/AutosensDataObject.kt index 84064cbaa2..523ebb57eb 100644 --- a/core/main/src/main/java/info/nightscout/core/iob/iobCobCalculator/data/AutosensDataObject.kt +++ b/plugins/main/src/main/java/info/nightscout/plugins/iob/iobCobCalculator/data/AutosensDataObject.kt @@ -1,4 +1,4 @@ -package info.nightscout.core.iob.iobCobCalculator.data +package info.nightscout.plugins.iob.iobCobCalculator.data import dagger.android.HasAndroidInjector import info.nightscout.interfaces.Constants @@ -22,18 +22,22 @@ class AutosensDataObject(injector: HasAndroidInjector) : AutosensData { @Inject lateinit var profileFunction: ProfileFunction @Inject lateinit var dateUtil: DateUtil + init { + injector.androidInjector().inject(this) + } + override var time = 0L override var bg = 0.0 // mgdl override var pastSensitivity = "" override var deviation = 0.0 override var validDeviation = false - var activeCarbsList: MutableList = ArrayList() - var absorbed = 0.0 + override var activeCarbsList: MutableList = ArrayList() + override var absorbed = 0.0 override var carbsFromBolus = 0.0 override var cob = 0.0 - var bgi = 0.0 - var delta = 0.0 - var avgDelta = 0.0 + override var bgi = 0.0 + override var delta = 0.0 + override var avgDelta = 0.0 override var avgDeviation = 0.0 override var autosensResult = AutosensResult() override var slopeFromMaxDeviation = 0.0 @@ -86,7 +90,7 @@ class AutosensDataObject(injector: HasAndroidInjector) : AutosensData { } // remove carbs older than timeframe - fun removeOldCarbs(toTime: Long, isAAPSOrWeighted: Boolean) { + override fun removeOldCarbs(toTime: Long, isAAPSOrWeighted: Boolean) { val maxAbsorptionHours: Double = if (isAAPSOrWeighted) sp.getDouble(info.nightscout.core.utils.R.string.key_absorption_maxtime, Constants.DEFAULT_MAX_ABSORPTION_TIME) else sp.getDouble(info.nightscout.core.utils.R.string.key_absorption_cutoff, Constants.DEFAULT_MAX_ABSORPTION_TIME) @@ -102,7 +106,7 @@ class AutosensDataObject(injector: HasAndroidInjector) : AutosensData { } } - fun deductAbsorbedCarbs() { + override fun deductAbsorbedCarbs() { var ac = absorbed var i = 0 while (i < activeCarbsList.size && ac > 0) { @@ -115,7 +119,4 @@ class AutosensDataObject(injector: HasAndroidInjector) : AutosensData { i++ } } - init { - injector.androidInjector().inject(this) - } } \ No newline at end of file diff --git a/plugins/main/src/main/java/info/nightscout/plugins/profile/ProfilePlugin.kt b/plugins/main/src/main/java/info/nightscout/plugins/profile/ProfilePlugin.kt index f0c83c1e40..bbcec9b28b 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/profile/ProfilePlugin.kt +++ b/plugins/main/src/main/java/info/nightscout/plugins/profile/ProfilePlugin.kt @@ -24,7 +24,7 @@ import info.nightscout.interfaces.plugin.PluginDescription import info.nightscout.interfaces.plugin.PluginType import info.nightscout.interfaces.profile.Profile import info.nightscout.interfaces.profile.ProfileFunction -import info.nightscout.interfaces.profile.ProfileInstantiator +import info.nightscout.interfaces.profile.Instantiator import info.nightscout.interfaces.profile.ProfileSource import info.nightscout.interfaces.profile.ProfileStore import info.nightscout.interfaces.profile.PureProfile @@ -60,7 +60,7 @@ class ProfilePlugin @Inject constructor( private val hardLimits: HardLimits, private val dateUtil: DateUtil, private val config: Config, - private val profileInstantiator: ProfileInstantiator + private val instantiator: Instantiator ) : PluginBase( PluginDescription() .mainType(PluginType.PROFILE) @@ -419,7 +419,7 @@ class ProfilePlugin @Inject constructor( aapsLogger.error("Unhandled exception", e) } - return profileInstantiator.storeInstance(json) + return instantiator.provideProfileStore(json) } override val profile: ProfileStore? @@ -444,14 +444,14 @@ class ProfilePlugin @Inject constructor( @Inject lateinit var config: Config @Inject lateinit var profilePlugin: ProfilePlugin @Inject lateinit var xDripBroadcast: XDripBroadcast - @Inject lateinit var profileInstantiator: ProfileInstantiator + @Inject lateinit var instantiator: Instantiator override fun doWorkAndLog(): Result { val profileJson = dataWorkerStorage.pickupJSONObject(inputData.getLong(DataWorkerStorage.STORE_KEY, -1)) ?: return Result.failure(workDataOf("Error" to "missing input data")) xDripBroadcast.sendProfile(profileJson) if (sp.getBoolean(info.nightscout.core.utils.R.string.key_ns_receive_profile_store, true) || config.NSCLIENT) { - val store = profileInstantiator.storeInstance(profileJson) + val store = instantiator.provideProfileStore(profileJson) val createdAt = store.getStartDate() val lastLocalChange = sp.getLong(info.nightscout.core.utils.R.string.key_local_profile_last_change, 0) aapsLogger.debug(LTag.PROFILE, "Received profileStore: createdAt: $createdAt Local last modification: $lastLocalChange") diff --git a/plugins/main/src/main/res/layout/overview_buttons_layout.xml b/plugins/main/src/main/res/layout/overview_buttons_layout.xml index 2006e2d11c..7ca8af1466 100644 --- a/plugins/main/src/main/res/layout/overview_buttons_layout.xml +++ b/plugins/main/src/main/res/layout/overview_buttons_layout.xml @@ -1,7 +1,7 @@ @@ -28,7 +28,6 @@ + tools:context=".general.overview.OverviewFragment"> diff --git a/plugins/main/src/main/res/layout/overview_statuslights_layout.xml b/plugins/main/src/main/res/layout/overview_statuslights_layout.xml index b33b5fd50e..31462213c0 100644 --- a/plugins/main/src/main/res/layout/overview_statuslights_layout.xml +++ b/plugins/main/src/main/res/layout/overview_statuslights_layout.xml @@ -2,7 +2,7 @@ - - - Wat is waar oor DIA? - https://androidaps.readthedocs.io/en/latest/EN/Configuration/Config-Builder.html?#insulin - https://androidaps.readthedocs.io/en/latest/EN/Usage/temptarget.html - Watter profiel kan gebruik en ingestel word van lyn af? - Onderwerp: Aflyn Profiel - NS-Profiel kan gebruik word, maar nie ingestel. - https://androidaps.readthedocs.io/en/latest/EN/Configuration/Config-Builder.html#profile - Wat moet gedoen word wanneer pomp ontkoppel word? - https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#other-settings - https://androidaps.readthedocs.io/en/latest/EN/Usage/ExportImportSettings.html - https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#what-emergency-equipment-is-recommended-to-take-with-me - Wat moet gedoen word as CGM data raserig is? - https://androidaps.readthedocs.io/en/latest/EN/Usage/Smoothing-Blood-Glucose-Data-in-xDrip.html#smoothing-blood-glucose-data - https://androidaps.readthedocs.io/en/latest/EN/Usage/temptarget.html#activity-temp-target - https://androidaps.readthedocs.io/en/latest/EN/Usage/temptarget.html#activity-temp-target - https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#androidaps-settings - \'n Google-rekening. - \'n Github rekening. - https://androidaps.readthedocs.io/en/latest/EN/Module/module.html - \'n Slimhorlosie. - https://androidaps.readthedocs.io/en/latest/EN/Module/module.html - Kyk al die korrekte antwoorde. - https://androidaps.readthedocs.io/en/latest/EN/Installing-AndroidAPS/Update-to-new-version.html#update-to-a-new-version-or-branch - https://androidaps.readthedocs.io/en/latest/EN/Installing-AndroidAPS/Update-to-new-version.html#troubleshooting - https://www.facebook.com/groups/AndroidAPSUsers/ - https://discord.gg/4fQUWHZ4Mw - Fiasp® - https://androidaps.readthedocs.io/en/latest/EN/Configuration/Config-Builder.html#insulin - Kyk al die korrekte antwoorde. - https://androidaps.readthedocs.io/en/latest/EN/Configuration/Sensitivity-detection-and-COB.html - https://androidaps.readthedocs.io/en/latest/Usage/Open-APS-features.html?highlight=Autosens#autosens - https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#insulin-to-carb-ratio-ic-g-u - https://androidaps.readthedocs.io/en/latest/EN/Usage/Extended-Carbs.html - https://androidaps.readthedocs.io/en/latest/EN/Children/Children.html - https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#insulin-sensitivity-factor-isf-mmol-l-u-or-mg-dl-u - https://androidaps.readthedocs.io/en/latest/EN/Usage/Profiles.html - https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#carbohydrate-to-insulin-ratio-cr-g-u - https://androidaps.readthedocs.io/en/latest/EN/Usage/Profiles.html?highlight=profile%20switch#profile-switch - https://androidaps.readthedocs.io/en/latest/EN/Module/module.html#good-individual-dosage-algorithm-for-your-diabetes-therapy - diff --git a/plugins/main/src/main/res/values-af-rZA/strings.xml b/plugins/main/src/main/res/values-af-rZA/strings.xml index f9a4b38857..fde8d81627 100644 --- a/plugins/main/src/main/res/values-af-rZA/strings.xml +++ b/plugins/main/src/main/res/values-af-rZA/strings.xml @@ -47,19 +47,6 @@ Opgeskort (%1$d m) Lees status gefaal Profiel skakelaar geskep - - Insulien voorkeure vir Humalog en NovoRapid / NovoLog - Insulien voorkeure vir Fiasp - Laat jou toe om die piek van die insulien aktiwiteit definieer en behoort slegs gebruik te word deur gevorderde gebruikers - INS - IAB kurwe piek tyd - Piek tyd [min] - Vry-piek Oref - Snelaksie Oref - Ultra-Snel Oref - DIA van %1$f is te kort - %2$f in stede gebruik! - Novorapid, Novolog, Humalog - Fiasp xds @@ -89,19 +76,6 @@ Foute DIA BAS - - Voltooi, baie mooi gedoen! - Nog nie voltooi nie - Tydsverloop - Maksimum IAB behoorlik gestel - BG beskikbaar vanaf geselekteerde bron - Lus geaktiveer - APS gekies - Geslote modus geaktiveer - OBJ - Onderrig program - Volgende - Vorige Aksies \'n Paar knoppies vir vinnige algemene nutsfunskies @@ -112,17 +86,6 @@ Geskiedenis blaaier Sensor Insulien - - Verlengde bolus is beperk tot %1$.1f U as gevolg van %2$s - Beperk koolhidrate tot %1$d g agv %2$s - Pomp is nie tydelike basale bekwame - Geslote lus modus in voorkeure gedeaktiveer - Veranderende ontwikkelende weergawe. Geslote lus is gedeaktiveerd. - SMB is altyd na koolhidrate versper omdat aktiewe BG bron nie gevorderde filter ondersteun nie - SMB nie toegelaat in open lus modus - maks waarde in voorkeure - harde limiet - Behandelings veiligheid Wys status vlae op tuisskerm Drempel waarskuwings stoor vlak [U] @@ -204,36 +167,6 @@ ACT BEHANDEL SENS - - Virtuele Pomp - Pomp definisie - Bolus: Stap =%1$s\nVerlengde Bolus: [stap%2$s, duur = =%3$smin -%4$sh]\nBasal: stap =%5$s\nTBR: %6$s (deur %7$s), duur =%8$smin -%9$sh\n%10$s - VPOMP - Pomp integrasie vir pompe wat nog nie enige drywer het nie (oop lus) - VIRTUELE POMP - Virtuele pomp instellings - Oplaaistatus aan NS - - NSClient BG - Laai BG data af vanaf Nightscout - xDrip+ - Ontvang BG waardes vana xDrip+. - Eversense App (bygewerk) - Ontvang BG waardes uit die gelapte Eversense toep. - Glimp - Ontvang BG waardes vanaf Glimp. - MM640g - Onvang BG waardes vanaf die 600SeriesAndroidUploader. - Poctech - Ontvang BG waardes van Poctech toepassing - Tomato (MiaoMiao) - Tomato - Ontvang BG waardes vanaf Tomato toep (MiaoMiao toestel) - BG - Stuur BG data na xDrip+ - Xdrip+ kies 640g/Eversense data bron - BG oplaai instellings - Log sensor verander na NS diff --git a/plugins/main/src/main/res/values-bg-rBG/strings.xml b/plugins/main/src/main/res/values-bg-rBG/strings.xml index 782fcaa974..6c1d1ea0de 100644 --- a/plugins/main/src/main/res/values-bg-rBG/strings.xml +++ b/plugins/main/src/main/res/values-bg-rBG/strings.xml @@ -97,21 +97,6 @@ Четенето на статуса се провали Създаден запис - Промяна на профил Продължителността на временния база; трябва да бъде кратна на %1$d минути и по-голяма от 0. - - Lyumjev - Действие на инсулините Humalog и NovoRapid / NovoLog - Действие на инсулин Fiasp - Действие на инсулин Lyumjev - Позволява да зададете сами пика на инсулиновата активност (не използвайте, ако сте нови потребители) - ИНС - Пик на кривата на IOB - Време на пик [мин.] - Със свободен пик по Oref - Бързодействащ по Oref - Ултра бързодействащ по Oref - DIA от %1$f е твърде кратка - използвай %2$f вместо това! - Novorapid Novolog, Humalog - Fiasp xDrip+ линия със статута (часовник) @@ -158,22 +143,6 @@ DIA Цел БАЗА - - Приключихме, Браво! - Все още не сме неприключили - Изминало време - Максимален IOB е зададен правилно - Има данни за КЗ от избрания източник - APS разрешен - Избран APS - APS - Затворен кръг е позволен - Цел - Разучаване на програмата - Искате ли да нулирате прогреса си? - Следващ - Предишен - Изчисти приключение - Изчисти стартираните Действия Бутони за бърз достъп до основни функции @@ -190,18 +159,6 @@ Батерия на помпата Канюла Използване на удължен болус ще спре режим затворен цикъл за времето на болуса. Сигурни ли сте? - - Ограничение на удължен болус до %1$.1f Е поради %2$s - Ограничаване на въглехидрати до %1$d гр. поради %2$s - Помпата не поддържа временен базал - Затворения кръг е забранен в настройките - Използвате dev версия. Затворения кръг е недостъпен за Вас. - Затворен цикъл е недостъпен поради стартиран Удължен болус - SMB \"винаги включен\" и \"след въглехидрати\" е забранен, защото е активен източник на КЗ, който не поддържа необходимата филтрация - SMB не е позволен в режим Отворен кръг - макс. стойност в настройките - твърд лимит - Настройки на сигурността Покажи статус светлини на началния екран Праг за инсулинова възраст [часа] @@ -315,43 +272,6 @@ Леч ЧУВСТВ Графика - - Виртуална помпа тип - Описание на помпата - Болус: Стъпка =%1$s\Удължен болус: [стъпка =%2$s, продължителност =%3$smin -%4$sh] \nБазал: стъпка =%5$s\ nTBR: %6$s (от %7$s), продължителност =%8$sмин -%9$sh\n%10$s - ВП - За помпи, който все още не работят с AndroidAPS(Open Loop) - ВИРТУАЛНА ПОМПА - Настойки Виртуална Помпа - Качва статуса в NS - - КЗ от NS - NS КЗ - Изтегля стойности на КЗ от Nightscout - xDrip+ - Получаване на данни за КЗ от xDrip+. - BYODA - BYODA - Eversense приложение(модифицирано) - Получава данни за КЗ от модифицираното приложение на Eversense. - Glimp - Получава данни за КЗ от Glimp. - MM640g - Получават стойности на КЗ от 600SeriesAndroidUploader. - Poctech - Получавай данни за КЗ от Poctech апликацията. - Глуново - Получавай данните от Glunowo апликацията - Tomato(MяоМяо) - Tomato - Получавай КЗ от Tomato апликация (устройство МяоМяо) - Произволна КЗ - Генерира произволни захари(демо режим) - КЗ - Изпращай данни за КЗ към xDrip+ - В xDrip+ изберете 640g/Eversense за източник на данни - Настройки при качване на КЗ към Nightscout - Записвай смяната на сензор в NS Оригинален изглед Скин за ниска резолюция diff --git a/plugins/main/src/main/res/values-ca-rES/strings.xml b/plugins/main/src/main/res/values-ca-rES/strings.xml index ceb13e5ad8..a45d9d245f 100644 --- a/plugins/main/src/main/res/values-ca-rES/strings.xml +++ b/plugins/main/src/main/res/values-ca-rES/strings.xml @@ -97,21 +97,6 @@ Error en llegir estat Canvi de perfil creat La durada d\'una TBR ha de ser múltiple de %1$d minuts i més gran que 0. - - Lyumjev - Configuració preestablerta per insulina Humalog i NovoRapid/NovoLog - Configuració preestablerta per insulina Fiasp - Configuració preestablerta per insulina Lyumjev - Permet definir el pic d\'activitat de la insulina. A utilitzar només per usuaris avançats - INS - Pic de la corba IOB - Temps del pic [min] - Oref sense pic - Oref ràpida - Oref ultra ràpida - DIA de %1$f massa curt - utilitzant %2$f! - Novorapid, Novolog, Humalog - Fiasp Línia d\'estat d\'xDrip+ (rellotge) @@ -158,22 +143,6 @@ DIA OBJ BAS - - Enllestit, ben fet! - No finalitzat encara - Temps transcorregut - Màx IOB correctament configurada - Glucèmia disponible des de la font seleccionada - Llaç activat - APS seleccionat - Llaç tancat activat - OBJ - Programa d\'aprenentatge - Voleu reiniciar l\'objectiu? Podeu perdre el vostre progrés. - Següent - Previ - Cancel·lar finalització - Cancel·lar inici Accions Alguns botons per accedir ràpid a funcions habituals @@ -190,18 +159,6 @@ Pila de la bomba Cànula L\'ús d\'un bolus estès aturarà el mode llaç tancat mentre duri el bolus. Esteu segurs que voleu això? - - Limitant bolus estès a %1$.1f U a causa de %2$s - Limitant carbs a %1$d g a causa de %2$s - La bomba no té la funcionalitat de basals temporals - Mode llaç tancat desactivat a la configuració - Executant versió de desenvolupament. Llaç tancat no disponible. - Llaç tancat desactivat degut a bolus estès actiu - Les funcions \"SMB sempre\" i \"SMB després de carbohidrats\" estan desactivades pq la font de glucèmia no fa filtrat avançat - SMB no permès en mode llaç obert - valor màxim a la configuració - límit estricte - Seguretat tractaments Mostrar indicadors d\'estat a la pantalla d\'inici Llindar per avís d\'edat de l\'insulina [h] @@ -313,44 +270,6 @@ TRACT SENS Gràfica - - Tipus de bomba virtual - Definició de bomba - Bolus: Pas=%1$s\nBolus estès: [Pas=%2$s, Durada=%3$smin-%4$sh]\nBasal: Pas=%5$s\nTBR: %6$s (per %7$s), Durada=%8$smin-%9$sh\n%10$s - BOMBAV - Integració de bombes d\'insulina per les quals encara no existeix driver/controlador (Llaç obert) - BOMBA VIRTUAL - Configuració bomba virtual - Enviar estat a NS - - Glucèmia NSClient - Glucèmia NS - Descarrega dades de glucèmia des de Nightscout - xDrip+ - Rebre valors de glucèmia de xDrip+. - Dexcom (BYODA) - BYODA - Rebre els valors de glucosa de l\'aplicació Dexcom \'Build Your Own Device\'. - App Eversense (\"parxejada\") - Rebre valors de glucèmia de l\'app Eversense \"parxejada\". - Glimp - Rebre valors de glucèmia de Glimp. - MM640g - Rebre valors de glucèmia del 600SeriesAndroidUploader. - Poctech - Rebre valors de glucèmia de l\'app Poctech - Glunovo - Rebre valors de l\'app Glunovo - Tomato (MiaoMiao) - Tomato - Rebre valors de glucèmia de l\'app Tomato (dispositiu MiaoMiao) - Glucèmia aleatòria - Generar dades de glucèmia aleatòries (Només mode demo) - Glucèmia - Enviar dades de glucèmia a xDrip+ - A xDrip+ seleccionar font de dades 640g/Eversense - Configuració enviament dades glucèmia - Enregistrar canvi de sensor a NS Tema original Tema baixa resolució diff --git a/plugins/main/src/main/res/values-cs-rCZ/strings.xml b/plugins/main/src/main/res/values-cs-rCZ/strings.xml index 0c1a09254e..67f6bfc7cf 100644 --- a/plugins/main/src/main/res/values-cs-rCZ/strings.xml +++ b/plugins/main/src/main/res/values-cs-rCZ/strings.xml @@ -101,21 +101,6 @@ Přepnutí profilu vytvořeno Trvání dočasného bazálu musí být násobkem %1$d minut a musí být větší než 0. QR kód pro nastavení jednorázového hesla - - Lyumjev - Předvolba pro Novorapid - Předvolba pro Fiasp - Předvolba pro Lyumjev - Možnost definice vrcholu účinnosti inzulínu pro pokročilé uživatele - INZ - Čas vrcholu IOB křivky - Vrchol křivky [min] - Volitelný vrchol - Oref - Rychle působící - Oref - Ultra rychlý - Oref - DIA %1$f je příliš krátké - použito %2$f ! - Novorapid - Fiasp Stavová řádka xDrip+ (hodinky) @@ -171,23 +156,6 @@ DIA CÍL BAZ - - Hotovo, gratulujeme! - Nedokončeno - Čas - Maximální IOB nastaveno správně - Glykémie dostupné z vybraného zdroje - Služba synchronizace má oprávnění k zápisu - Smyčka povolena - APS vybráno - Uzavřená smyčka povolena - CÍLE - Výukový program - Chcete resetovat začátek cíle? Můžete přijít o svůj pokrok. - Další - Zpět - Vymazat dokončeno - Vymazat start Akce Tlačítka k běžně používaným úkonům @@ -198,7 +166,7 @@ Nástroje Prohlížeč historie Senzor - věk: + stáří: úroveň: Inzulín Baterie pumpy @@ -207,18 +175,6 @@ stáří kanyly stáří náplasťové pumpy Náplasťová pumpa - - Prodloužený bolus omezen na %1$.1f U: %2$s - Sacharidy omezeny na %1$d g: %2$s - Pumpa nepodporuje dočasné bazály - Uzavřená smyčka zakázána v nastavení - Běží DEV verze. Uzavřená smyčka je zakázána. - Uzavřená smyčka je zastavena kvůli běžícímu prodlouženému bolusu - \"SMB vždy\" a \"po jídle\" zakázáno protože zdroj glykémie nepodporuje rozšířené filtrování - SBM není povoleno v otevřené smyčce - maximální hodnota v nastavení - pevný limit - Bezpečnost zadání ošetřeni Zobrazit stavové indikátory na domovské obrazovce Úroveň varování stáří kanyly [h] @@ -345,50 +301,6 @@ SENZ Měřítko grafu Graf - - Typ virtuální pumpy - Definice pumpy - Bolus: Krok =%1$s\nProdl. bolus: [Krok=%2$s, Délka=%3$smin-%4$sh]\nBazál: Krok=%5$s\nDoč. bazál: %6$s (%7$s), Délka=%8$smin-%9$sh\n%10$s - VPUM - Ovladač pumpy pro uživatele bez podporované pumpy (Otevřená smyčka) - VIRTUÁLNÍ PUMPA - Nastavení virtuální pumpy - Nahrávat status do NS - - Glykémie z NS - NSGL - Příjem glykémií z Nightscoutu - xDrip+ - Příjem glykémií z xDripu+. - BYODA - BYODA - Příjem hodnot glykémií z upravené aplikace Dexcom (BYODA). - Eversense aplikace (upravená) - Příjem glykémií z modifikované Eversense aplikace. - Glimp - Příjem glykémií z Glimpu. - MM640g - Příjem glykémií z Uploaderu 640G. - Poctech - Získávat glykémie z aplikace Poctech - Glunovo - Získávat glykémie z aplikace Glunovo - Intelligo - Přijímat hodnoty z aplikace Intelligo - Tomato (MiaoMiao) - Tomato - Přijímat hodnoty glykémií z Tomato aplikace (MiaoMiao zařízení) - GlucoRx Aidex - Aidex - Přijímat hodnoty glykémie ze senzoru GlucoRx Aidex. - Náhodná glykémie - Generovat náhodná data glykémie (pouze režim Demo) - Gly - Odesílat data do xDrip+ - V xDrip+ vyberte zdroj dat 640g/Eversense - Nastavení nahrávání glykémií - Zaznamenávat výměnu senzoru do NS - Vytvořit událost \"Výměna senzoru\" v NS automaticky po spuštění senzoru Původní vzhled Vzhled pro nízké rozlišení diff --git a/plugins/main/src/main/res/values-da-rDK/strings.xml b/plugins/main/src/main/res/values-da-rDK/strings.xml index b1cfabde34..69a8eaad0a 100644 --- a/plugins/main/src/main/res/values-da-rDK/strings.xml +++ b/plugins/main/src/main/res/values-da-rDK/strings.xml @@ -100,21 +100,6 @@ Profil switch oprettet TBR-varigheden skal være et multiplum af %1$d minutter og større end 0. QR-kode til opsætning af engangs kodeord - - Lyumjev - Insulin forudindstillet til Humalog og NovoRapid / NovoLog - Insulinforudindstilling til Fiasp - Insulin forudindstillet til Lyumjev - Giver dig mulighed for at definere spidsbelastningen af insulin-aktiviteten og bør kun bruges af avancerede brugere - INS - IOB Kurve Peak-Tid - Spidstidspunkt [min] - Free-Peak Oref - Rapid-Acting Oref - Ultra-Rapid Oref - DIA af %1$f for kort - bruger %2$f i stedet! - Novorapid, Novolog, Humalog - Fiasp xDrip Statuslinje (ur) @@ -170,22 +155,6 @@ DIA MÅL BAS - - Fuldført, godt klaret! - Ikke afsluttet endnu - Tid forløbet - Maksimal IOB sat korrekt - BS tilgængelig fra valgte kilde - Loop aktiveret - APS valgt - Lukket tilstand aktiveret - OBJ - Oplæringsprogram - Vil du nulstille objektiv start? Du kan miste dine fremskridt. - Næste - Forrige - Ryd færdigt - Ryd startet Handlinger Nogle knapper til hurtigt at få adgang til almindelige funktioner @@ -205,18 +174,6 @@ Indstik alder patch pumpe alder Patch pumpe - - Begrænser udvidet bolus til %1$.1f IE på grund af %2$s - Begrænser kulhydrater til %1$d g på grund af %2$s - Pumpe er ikke egnet til midlertidig basal - Lukket loop tilstand deaktiveret i præferencer - Kører dev version. Lukket loop er deaktiveret. - Lukket loop deaktiveret på grund af kørsel af forlænget bolus - SMB altid og efter kulhydrater deaktiveret, fordi den aktive BS kilde ikke understøtter avanceret filtrering - SMB er ikke tilladt i åben loop mode - max værdi i præferencer - hård grænse - Behandlings sikkerhed Vis statuslys på startskærm Grænseværdi for insulin-alder [h] @@ -342,49 +299,6 @@ SENS Graf skala Graf - - Virtuel pumpe type - Pumpe Definition - Bolus: Trin=%1$s\nForlænget Bolus: [Trin=%2$s, Varighed=%3$smin-%4$sh]\nBasal: Trin=%5$s\nTBR: %6$s (by %7$s), Varighed=%8$smin-%9$sh\n%10$s - VPUMPE - Pumpeintegration til pumper, som endnu ikke har nogen driver (Åbent Loop) - VIRTUEL PUMPE - Indstillinger for virtuel pumpe - Upload status til NS - - NSClient BS - NS BS - Downloader BG data fra Nightscout - xDrip+ - Modtag BG-værdier fra xDrip+. - BYODA - BYODA - Modtag BS-værdier fra \'Byg din egen Dexcom App\'. - Eversense App (patched) - Modtag BG værdier fra den patchede Eversense app. - Glimp - Modtag BG-værdier fra Glimp. - MM640g - Modtag BG-værdier fra 600SeriesAndroidUploader. - Poctech - Modtag BS-værdier fra Poctech app - Glunovo - Modtag værdier fra Glunovo app - Intelligo - Modtag værdier fra Intelligo-appen - Tomato (MiaoMiao) - Tomato - Modtag BS-værdier fra Tomato-appen (MiaoMiao enhed) - GlucoRx Aidex - Aidex - Modtag BG-værdier fra GlucoRx Aidex CGMS. - Tilfældigt BS - Generér tilfældige BS-data (kun demotilstand) - BG - Seng BS data til xDrip+ - I xDrip+ vælg 640g/Eversense datakilde - BS upload indstillinger - Log sensor ændring til NS Original udseende Lav kvalitets udseende diff --git a/plugins/main/src/main/res/values-de-rDE/strings.xml b/plugins/main/src/main/res/values-de-rDE/strings.xml index 0bff22de4a..21ed1d0a1b 100644 --- a/plugins/main/src/main/res/values-de-rDE/strings.xml +++ b/plugins/main/src/main/res/values-de-rDE/strings.xml @@ -98,21 +98,6 @@ Profilwechsel wurde erstellt Die TBR-Dauer muss ein Vielfaches von %1$d Minuten und größer als 0 sein. QR Code für einmaliges Passwort einrichten - - Lyumjev - Insulinprofil für Humalog und NovoRapid / NovoLog - Insulinprofil für Fiasp - Insulin-Voreinstellung für Lyumjev - Erlaubt dir, das Wirkmaximum der Insulinaktivität zu definieren, und sollte nur von erfahrenen Anwendern genutzt werden - INS - Wirkungshoch der IOB-Kurve - Wirkungshoch [min] - Free-Peak Oref - Rapid-Acting Oref - Ultra-Rapid Oref - DIA von %1$f ist zu kurz - AAPS nutzt stattdessen %2$f! - NovoRapid, NovoLog, Humalog - Fiasp xDrip+ Statuszeile (Uhr) @@ -168,21 +153,6 @@ DIA ZIEL BAS - - Abgeschlossen, gut gemacht! - Verstrichene Zeit - Maximales IOB richtig gesetzt - BZ verfügbar von gewählter Quelle - Loop aktiviert - APS ausgewählt - Closed mode aktiviert - ZIEL - Das Programm kennenlernen - Möchtest Du den Start der Ziele zurücksetzen? Du verlierst Deine Fortschritte. - Weiter - Zurück - Ziel erneut öffnen - Ziel neu starten Aktionen Einige Schaltflächen, um auf häufig verwendete Funktionen zugreifen zu können. @@ -202,18 +172,6 @@ Kanülenalter Alter Patchpumpe Patch-Pumpe - - Begrenze verzögerten Bolus auf %1$.1f IE wegen %2$s - Begrenze Kohlenhydrate auf %1$d g wegen %2$s - Pumpe verfügt nicht über temporäre Basalraten - Closed-Loop-Modus in den Einstellungen deaktiviert - Entwickler-Version, Closed Loop ist nicht verfügbar. - Closed Loop wegen Verzögerungsbolus unterbrochen - SMB wird immer und nach Kohlenhydraten deaktiviert, weil die aktive BZ-Quelle keine geeignete Filterung der Werte unterstützt. - SMB sind im Open Loop Modus nicht erlaubt - Max. Wert in den Einstellungen - festem Grenzwert - Sicherheitseinstellungen der Behandlungen Statusanzeige auf Homescreen Warnschwelle Insulinalter [h] @@ -339,49 +297,6 @@ SENS Diagrammskala Diagramm - - Typ der virtuellen Pumpe - Pumpen-Definition - Bolus: Schritt=%1$s\nVerzögerter Bolus: [Schritt=%2$s, Dauer=%3$smin-%4$sh]\nBasal: Schritt=%5$s\nTBR: %6$s (bei %7$s), Dauer=%8$smin-%9$sh\n%10$s - VP - Pumpenintegration für Pumpen, die noch nicht über einen Treiber verfügen (Open Loop) - VIRTUELLE PUMPE - Einstellungen der virtuellen Pumpe - Status zu Nightscout hochladen - - Nightscout-Client BZ - NS BZ - Lade Blutzuckerdaten von Nightscout - xDrip+ - Empfange Blutzuckerwerte von xDrip+. - BYODA - BYODA - Erhalte BZ-Werte von der \'Build Your Own Dexcom App\'. - Eversense App (gepatcht) - Empfange BZ-Werte von der gepatchten Eversense-App. - Glimp - Empfange Blutzuckerwerte von Glimp. - MM640g - Empfange Blutzuckerwerte vom 600SeriesAndroidUploader. - Poctech - Empfange Blutzucker-Werte von der Poctech-App. - Glunovo - Werte von der Glunovo App erhalten - Intelligo - Empfange Werte von der Intelligo App - Tomato (MiaoMiao) - Tomato - Empfange Blutzucker-Werte von der Tomato-App (MiaoMiao-Geräte) - GlucoRx Aidex - Aidex - Erhalte BG-Werte von GlucoRx Aidex CGMS. - Zufalls-BZ - Zufalls-BZ Daten erstellen (nur Demo-Modus) - BZ - Sende BZ-Werte zu xDrip+ - Wähle in xDrip+ 640g/Eversense als Daten-Quelle. - BZ Upload Einstellungen - Speichere Sensor Wechsel in Nightscout Ursprüngliches Erscheinungsbild Darstellung niedrige Auflösung diff --git a/plugins/main/src/main/res/values-el-rGR/strings.xml b/plugins/main/src/main/res/values-el-rGR/strings.xml index 12066ace7b..db079c09e9 100644 --- a/plugins/main/src/main/res/values-el-rGR/strings.xml +++ b/plugins/main/src/main/res/values-el-rGR/strings.xml @@ -75,20 +75,6 @@ Αναστολή (%1$d m) Η ανάγνωση κατάστασης απέτυχε Δημιουργήθηκε αλλαγή προφίλ - - Η ινσουλίνη που ορίζεται Humalog και NovoRapid / NovoLog - Η ινσουλίνη που ορίζεται για Fiasp - Προκαθορισμός ινσουλίνης για την Lyumjev - Σας επιτρέπει να ορίσετε το μέγιστο της δράσης της ινσουλίνης και πρέπει να χρησιμοποιείται μόνο από προχωρημένους χρήστες - INS - Μέγιστη τιμή καμπύλης IOB - Μέγιστο καμπύλης [λεπτά] - Προαιρετικά-αιχμή Oref - Γρήγορη δράση - Oref - Έξτρα Γρήγορη δράση - Oref - DIA για %1$f πολύ μικρή - χρησιμοποιήστε %2$f! - Novorapid, Novolog, Humalog - Fiasp xds @@ -118,19 +104,6 @@ Σφάλματα DIA BAS - - Ολοκληρώθηκε, συγχαρητήρια! - Δεν ολοκληρώθηκε ακόμη - Ο χρόνος που πέρασε - Το μέγιστο IOB έχει ρυθμιστεί σωστά - BG διαθέσιμη από επιλεγμένη πηγή - Κύκλωμα ενεργοποιημένο - Επιλέχθηκε APS - Ενεργοποιήθηκε η κλειστή λειτουργία - ΣΤΟΧΟΙ - Πρόγραμμα εκμάθησης - Επόμενο - Προηγ Ενέργειες Ορισμένα πλήκτρα για γρήγορη πρόσβαση σε κοινά χαρακτηριστικά @@ -141,17 +114,6 @@ Ιστορικό περιήγησης Αισθητήρας Ινσουλίνη - - Περιορίζεται το εκτεταμένο bolus σε %1$.1f U λόγω %2$s - Περιορίζονται οι υδατάνθρακες σε %1$d g λόγω %2$s - Η αντλία δεν υποστηρίζει προσωρινό βασικό ρυθμό - Το κλειστό κύκλωμα είναι απενεργοποιημένο στις Επιλογές - Εκτελείται έκδοση Dev. Το κλειστό κύκλωμα είναι απενεργοποιημένο. - Το SMB πάντα και μετά το γεύμα απενεργοποιείται επειδή η ενεργή πηγή BG δεν υποστηρίζει προηγμένο φιλτράρισμα - To SMB δεν επιτρέπεται σε λειτουργία ανοιχτού κυκλώματος - μέγιστη τιμή στις Επιλογές - σταθερό όριο - Ασφάλεια Θεραπειών Εμφάνιση του φωτισμού κατάστασης στην αρχική οθόνη Όριο προειδοποίησης για την ηλικία της ινσουλίνης[h] @@ -245,36 +207,6 @@ -BGI ΘΕΡΑΠ SENS - - Τύπος εικονικής αντλίας - Ορισμός Αντλίας - Bolus: Άμεσο=%1$s\nΕκτεταμένο Bolus: [Άμεσο=%2$s, Διάρκεια=%3$smin-%4$sh]\nΒασικός: Άμεσο=%5$s\nTBR: %6$s (με %7$s), Διάρκεια=%8$smin-%9$sh\n%10$s - Εικ. αντλία - Ολοκλήρωση αντλίας για αντλίες που δεν έχουν κανέναν οδηγό ακόμα (Ανοιχτό Κύκλωμα) - ΕΙΚΟΝΙΚΗ ΑΝΤΛΙΑ - Ρυθμίσεις Εικονικής αντλίας - Φόρτωση κατάστασης στο NS - - NSClient BG - Λήψη δεδομένων BG από Nightscout - xDrip+ - Λάβετε τις τιμές BG από το xDrip+. - Eversense App (τροποποιημένη) - Λάβετε τις τιμές BG από την εφαρμογή του Eversense. - Glimp - Λάβετε τις τιμές BG από το Glimp. - MM640g - Λάβετε τις τιμές BG από το 600SeriesAndroidUploader. - Poctech - Λάβετε τις τιμές BG από την εφαρμογή Poctech - Tomato (MiaoMiao) - Tomato - Λάβετε τιμές BG από Tomato app (MiaoMiao) - BG - Αποστολή δεδομένων BG στο xDrip+ - Στο xDrip+, επιλέξτε την πηγή δεδομένων 640g / Eversense - Ανέβασμα ρυθμίσεων BG - Αλλαγή αρχείου αισθητήρα σε NS χρήσιμες συμβουλές: diff --git a/plugins/main/src/main/res/values-es-rES/strings.xml b/plugins/main/src/main/res/values-es-rES/strings.xml index 417b29c579..22be2dbe34 100644 --- a/plugins/main/src/main/res/values-es-rES/strings.xml +++ b/plugins/main/src/main/res/values-es-rES/strings.xml @@ -101,21 +101,6 @@ Cambio de perfil creado La duración de TBR debe ser un múltiplo de %1$d minutos y mayor a 0. Código QR para la configuración de la contraseña de un sólo uso - - Lyumjev - Ajustes de insulina preestablecidos para Humalog y NovoRapid/NovoLog - Ajuste de insulina preestablecido para Fiasp - Ajuste de insulina preestablecido para Lyumjev - Permite personalizar el pico de acción máxima de la insulina. Debe ser utilizado únicamente por usuarios avanzados - INS - Tiempo del pico máximo de la curva de IOB - Tiempo del pico máximo de acción de la insulina [min] - Personalizar Pico - Acción Rápida - Ultra-Rápido Oref - DIA de %1$f demasiado corto - usando %2$f! - Novorapid, Novolog, Humalog - Fiasp Línea de estado de xDrip+ (reloj) @@ -171,23 +156,6 @@ DIA OBJ BAS - - ¡Logrado, bien hecho! - No logrado - Tiempo agotado - Máximo IOB ajustado correctamente - Glucosa disponible desde la fuente seleccionada - El servicio de sincronización tiene permiso de escritura - Lazo activado - APS seleccionado - Lazo cerrado activado - OBJ - Programa de aprendizaje - ¿Desea reiniciar el objetivo? Puedes perder tu progreso. - Siguiente - Anterior - Limpieza finalizada - Limpieza iniciada Acciones Algunos botones para acceder rápidamente a funciones comunes @@ -207,18 +175,6 @@ edad de la cánula edad del parche de la bomba Bomba parche - - Limitando el bolo extendido a %1$.1f U debido a %2$s - Limitando carbohidratos a %1$d g debido a %2$s - La bomba no tiene capacidad basal temporal - Lazo cerrado deshabilitado en preferencias - Ejecutando la versión dev. Lazo cerrado no disponible. - Bucle cerrado inhabilitado debido a la ejecución del bolo extendido - SMB siempre y después de carbohidratos desactivados porque la fuente activa de BG no soporta filtrado avanzado - SMB no permitido en modo de lazo abierto - valor máximo en preferencias - límite estricto - Seguridad de tratamientos Mostrar luces de estado en la pantalla de inicio Umbral de advertencia de la edad de la cánula [h] @@ -346,50 +302,6 @@ Sens Escala gráfica Gráfico - - Tipo de bomba virtual - Definición de la bomba - Bolo: Paso =%1$s\nBolo Extendido: [paso =%2$s, Duración =%3$smin -%4$sh] \nBasal: Paso =%5$s\nTBR: %6$s ( %7$s), Duración =%8$sMin -%9$sh\n%10$s - BOMBAV - Integración de bombas de insulina que aún no tienen ningún controlador disponible (lazo abierto) - BOMBA VIRTUAL - Ajustes de bomba virtual - Subir estado a Nightscout - - NSClient BG - NS BG - Recibir los datos de glucosa de Nightscout - xDrip+ - Recibir los valores de glucosa de xDrip+ - Dexcom (BYODA) - BYODA - Recibir los valores de glucosa de la aplicación Dexcom \'Build Your Own Device\' - Eversense App (parcheada) - Recibir los valores de glucosa de la aplicación Eversense parcheada. - Glimp - Recibir valores de glucosa de Glimp. - MM640g - Recibir los valores de glucosa del 600SeriesAndroidUploader. - Poctech - Recibir los valores de glucosa de Poctech - Glunovo - Recibir los valores de glucosa de la aplicación Glunovo - Intelligo - Recibir los valores de glucosa de Intelligo - Tomato (MiaoMiao) - Tomato - Recibir los valores de glucosa de Tomato App (MiaoMiao) - GlucoRx Aidex - Aidex - Recibir los valores de glucosa de GlucoRx Aidex CGMS - Glucosa aleatoria - Generar datos aleatorios de glucosa (sólo modo Demo) - BG - Enviar datos de glucosa a xDrip+ - En xDrip+, selecciona 640G/Eversense como fuente de datos - Ajuste de subida de datos de glucosa - Registro de cambio de sensor en Nightscout - Crear evento \"Cambio de sensor\" en Nightscout automáticamente al iniciar el sensor Tema original Tema baja resolución diff --git a/plugins/main/src/main/res/values-fr-rFR/strings.xml b/plugins/main/src/main/res/values-fr-rFR/strings.xml index ef1ff49ccd..2e06af641d 100644 --- a/plugins/main/src/main/res/values-fr-rFR/strings.xml +++ b/plugins/main/src/main/res/values-fr-rFR/strings.xml @@ -101,21 +101,6 @@ Changement de profil effectué La durée du DBT doit être un multiple de %1$d minutes et supérieure à 0. QR Code pour configurer un mot de passe à usage unique - - Lyumjev - Réglages pour les insulines Humalog et NovoRapid / NovoLog - Réglages pour l\'insuline Fiasp - Réglages pour l\'insuline Lyumjev - Permet de définir le pic de l’activité de l’insuline et ne doit être utilisé que par les utilisateurs avancés - INS - Durée du Pic de la Courbe IA - Temps du Pic [min] - Profil d\'insuline ajustable Oref - Insuline à Action Rapide Oref - Insuline Ultra Rapide Oref - Durée d’Action pour %1$f trop courte - utiliser %2$f à la place ! - Novorapid, Novolog, Humalog - Fiasp Barre d\'état pour xDrip+ (Montre) @@ -171,23 +156,6 @@ DAI CIBLE BAS - - Terminé, félicitations ! - Pas encore terminé - Temps écoulé - Maximum IA réglé correctement - Glycémie disponible depuis la source sélectionnée - Le service de synchronisation a l\'autorisation d\'écriture - Boucle activée - APS Sélectionné - Mode boucle fermée activé - OBJ - Programme d’apprentissage - Voulez-vous réinitialiser le début de l\'objectif ? Vous risquez de perdre vos progrès. - Suivant - Préc - Refaire l\'objectif - Suppression démarrée Actions Quelques boutons pour accéder rapidement aux fonctions communes @@ -207,18 +175,6 @@ âge canule âge pompe patch Pompe patch - - Limiter les bolus prolongé à %1$.1f U à cause de %2$s - Limiter les glucides %1$d g à cause de %2$s - Pompe n’est pas capable de basals temporaires - Mode de Boucle Fermée désactivé dans les préférences - Version Dev. La Boucle Fermée est désactivée. - Boucle fermée désactivée à cause du bolus étendu - SMB toujours et post-ingestion de glucides désactivé car la source de glycémies actuelle ne supporte pas de filtrage avancé - SMB non autorisé en mode boucle ouverte - valeur Max dans les préférences - limite fixée - Traitements de sécurité Afficher les voyants d\'état sur l\'écran d\'accueil Seuil d\'alerte âge canule [h] @@ -345,50 +301,6 @@ SENS Échelle du graph. Graph - - Type de pompe virtuelle - Définition de pompe - Bolus : Étape =%1$s\nExtended Bolus : [Étape =%2$s, Durée =%3$smin -%4$sh]\nBasal : Étape =%5$s\nTBR : %6$s (par %7$s), Durée =%8$smin -%9$sh\n%10$s - POMPEV - Intégration pour les pompes qui n’ont pas encore de pilote (Boucle Ouverte) - POMPE VIRTUELLE - Paramètres pompe virtuelle - Remontée des informations vers NS - - Glycémie NSClient - Gly NS - Télécharge les glycémies depuis Nightscout - xDrip+ - Recevoir les glycémies depuis xDrip+. - BYODA - BYODA - Recevoir les valeurs de glycémie de l’application Dexcom patchée (BYODA). - App Eversense (patché) - Recevoir les valeurs de glycémie de l’app Eversense patchée. - Glimp - Recevoir les glycémies depuis Glimp. - Medtronic 640g - Recevoir les glycémies depuis le 600SeriesAndroidUploder. - Poctech - Recevoir les glycémies depuis l\'app Poctech - Glunovo - Recevoir des valeurs de l\'application Glunovo - Intelligo - Recevoir des valeurs depuis l\'application Intelligo - Tomato (MiaoMiao) - Tomato - Recevoir les valeurs de glycémie de l\'application Tomato (appareil MiaoMiao) - GlucoRx Aidex - Aidex - Recevoir les valeurs de glycémie du MGC GlucoRx Aidex. - Gly Aléatoire - Générer des glycémies aléatoires (mode démo uniquement) - Gly - Transmettre les Gly vers xDrip+ - Dans xDrip+ veuillez séléctionner 640g/Eversense comme source de données - Paramètres de téléchargement des glycémies - Enreg. du changement de capteur sur NS - Créer automatiquement un événement \"Changement de capteur\" dans NS au démarrage du capteur Thème d\'origine Basse résolution diff --git a/plugins/main/src/main/res/values-ga-rIE/strings.xml b/plugins/main/src/main/res/values-ga-rIE/strings.xml index 4f2cbd4ce3..e592d3d2be 100644 --- a/plugins/main/src/main/res/values-ga-rIE/strings.xml +++ b/plugins/main/src/main/res/values-ga-rIE/strings.xml @@ -16,13 +16,6 @@ Bunaidh: %1$dnóim ó shin Ar fionraí (%1$d nóim) - - Lyumjev - INS - Free-Peak Oref - Rapid-Acting Oref - Ultra-Rapid Oref - Fiasp xds @@ -42,11 +35,6 @@ Ainm Próifíle: DIA BUN - - Lúb cumasaithe - APS roghnaithe - Ar Aghaidh - Roimhe seo Gníomhartha GNÍ @@ -54,7 +42,6 @@ aois: Inslin Caidéil ceallraí - inslin CGM @@ -81,18 +68,6 @@ Bunaidhi BUN GNÍ - - - Sonraí a íoslódáil ó Nightscout - xDrip+ - Luachanna BG a fháil ó xDrip+. - Glimp - MM640g - Luachanna BG a fháil ón 600SeriesAndroidUploader. - Poctech - Tomato (MiaoMiao) - Tomato - BG diff --git a/plugins/main/src/main/res/values-hr-rHR/objectives.xml b/plugins/main/src/main/res/values-hr-rHR/objectives.xml deleted file mode 100644 index 1e9d56258e..0000000000 --- a/plugins/main/src/main/res/values-hr-rHR/objectives.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - Naučite kako kontrolirati AAPS - Izvršite različite radnje u AAPS-u - https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/FAQ.html#what-to-do-when-taking-a-shower-or-bath - https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#the-homescreen - https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#config-builder - https://androidaps.readthedocs.io/en/latest/EN/Getting-Started/Screenshots.html#the-homescreen - diff --git a/plugins/main/src/main/res/values-hr-rHR/strings.xml b/plugins/main/src/main/res/values-hr-rHR/strings.xml index 5ee4b66e0c..aa8a7784cc 100644 --- a/plugins/main/src/main/res/values-hr-rHR/strings.xml +++ b/plugins/main/src/main/res/values-hr-rHR/strings.xml @@ -57,21 +57,6 @@ Bolus: Bazal: QR kod za postavljanje jednokratne lozinke - - Lyumjev - Unaprijed podešen predložak za inzulin Humalog i NovoRapid / NovoLog - Unaprijed podešen predložak za inzulin Fiasp - Unaprijed podešen predložak za inzulin Lyumjev - Omogućuje definiranje vrhunca aktivnosti inzulina i trebaju ga koristiti samo napredni korisnici - INS - Vršno vrijeme IOB krivulje - Špica [min] - Free-Peak Oref - Rapid-Acting Oref - Ultra-Rapid Oref - DIA od %1$f prekratak - umjesto njega koristite %2$f! - Novorapid, Novolog, Humalog - Fiasp xDrip+ Statusna linija (sat) @@ -127,18 +112,10 @@ DIA CILJ BAZAL - - Dovršeno, bravo! - Nije još dovršeno - Prošlo vrijeme - Program učenja - Sljedeći Nekoliko izbora za brzi pristup uobičajenim funkcijama Senzor Inzulin - - Sigurnosne postavke medikacije inzulin samo na satu @@ -159,28 +136,6 @@ Tretmani BAZAL Skala grafikona - - Vrsta virtualne pumpe - Definicija pumpe - Bolus: korak=%1$s\nProduženi bolus: [korak=%2$s, trajanje=%3$smin-%4$sh]\nBazal: korak=%5$s\nTBR: %6$s (do %7$s), Trajanje=%8$smin-%9$sh\n%10$s - VPUMP - Integracija pumpe za pumpe koje još nemaju upravljački program (otvorena petlja) - VIRTUALNA PUMPA - Postavke virtualne pumpe - Prijenos statusa u NS - - Preuzima podatke o GUK-u s Nightscout-a - Preuzima podatke o GUK-a s xDrip+. - Primajte vrijednosti GUK-a iz zakrpane aplikacije Eversense. - Primajte vrijednosti GUK-a od Glimpa. - Primajte vrijednosti glukoze u krvi od 600SeriesAndroidUploader. - Intelligo - Primite vrijednosti iz aplikacije Intelligo - GlucoRx Aidex - Aidex - Primite vrijednosti GK od GlucoRx Aidex CGMS. - GUK - Stvorite događaj \"Promjena senzora\" u NS-u automatski pri pokretanju senzora diff --git a/plugins/main/src/main/res/values-hu-rHU/strings.xml b/plugins/main/src/main/res/values-hu-rHU/strings.xml index 83d009bfe9..021b2ae5b0 100644 --- a/plugins/main/src/main/res/values-hu-rHU/strings.xml +++ b/plugins/main/src/main/res/values-hu-rHU/strings.xml @@ -6,11 +6,6 @@ VC: Bólus: Bázis: - - Lyumjev - Ultra-Rapid Oref - Novorapid, Novolog, Humalog - Fiasp @@ -26,11 +21,6 @@ Hibák DIA BÁZ - - Eltelt idő - APS kiválasztva - Tovább - Vissza Műveletek Eszközök @@ -38,7 +28,6 @@ kor: Inzulin Kanül - grafikon inzulin @@ -65,15 +54,6 @@ Inzulin összesen BÁZ Grafikon - - - Glimp - MM640g - Poctech - Tomato (MiaoMiao) - Tomato - Véletlenszerű VC - VC Eredeti megjelenés Alacsony felbontás diff --git a/plugins/main/src/main/res/values-it-rIT/strings.xml b/plugins/main/src/main/res/values-it-rIT/strings.xml index e9fe91f8af..e7a84bad9b 100644 --- a/plugins/main/src/main/res/values-it-rIT/strings.xml +++ b/plugins/main/src/main/res/values-it-rIT/strings.xml @@ -101,21 +101,6 @@ Cambio profilo creato La durata del TBR deve essere un multiplo di %1$d minuti e maggiore di 0. Codice QR per configurare OTP - - Lyumjev - Preset per insulina Humalog e NovoRapid / NovoLog - Preset per insulina Fiasp - Preset per insulina Lyumjev - Ti consente di definire il picco di attività dell\'insulina e dovrebbe essere usato solo dagli utenti avanzati - INS - Tempo picco Curva IOB - Tempo del picco [min] - Free-Peak Oref - Rapid-Acting Oref - Ultra-Rapid Oref - DIA di %1$f troppo breve - uso %2$f. - Novorapid, Novolog, Humalog - Fiasp Statusline xDrip+ (smartwatch) @@ -171,22 +156,6 @@ DIA TARG BAS - - Completato, ben fatto! - Non ancora completato - Tempo trascorso - Max IOB impostata correttamente - BG disponibile da sorgente selezionata - Loop abilitato - APS selezionato - Modalità chiusa abilitata - OBT - Programma di apprendimento - Vuoi resettare l\'avvio dell\'obiettivo? Potresti perdere i tuoi progressi. - Avanti - Indietro - Cancella completamento - Cancella avvio Azioni Alcuni tasti per accedere rapidamente alle funzioni comuni @@ -206,18 +175,6 @@ Età cannula età micro a patch Micro a patch - - Limitazione bolo esteso a %1$.1f U a causa di: %2$s - Limitazione carboidrati a %1$d g a causa di: %2$s - Micro non in grado di impostare la basale temporanea - Modalità loop chiuso disabilitata nelle preferenze - Versione sviluppatore in esecuzione. Loop chiuso disabilitato. - Loop chiuso disabilitato a causa dell\'esecuzione di un bolo esteso - Le funzioni \"SMB sempre\" e \"SMB dopo i CHO\" sono disabilitate perché l\'attuale sorgente delle glicemie non supporta il filtraggio avanzato - SMB non consentito in modalità loop aperto - valore max nelle preferenze - limite fisso - Sicurezza trattamenti Mostra indicatori di stato sulla home Età cannula: soglia di avviso [h] @@ -344,50 +301,6 @@ TRATT SENS Scala del grafico - - Tipo micro virtuale - Definizione micro - Bolo: Step=%1$s\nBolo Esteso: [Step=%2$s, Durata=%3$smin-%4$sh]\nBasale: Step=%5$s\nTBR: %6$s (di %7$s), Durata=%8$smin-%9$sh\n%10$s - MICROV - Per microinfusori che non hanno ancora alcun driver (Loop aperto) - MICRO VIRTUALE - Impostazioni micro virtuale - Carica stato in NS - - BG NSClient - BG NS - Scarica dati glicemia da Nightscout - xDrip+ - Ricevi valori glicemia da xDrip+. - BYODA - BYODA - Ricevi valori glicemia dall\'app Dexcom ottenuta con \'Build Your Own Dexcom App\'. - Eversense app (modificata) - Ricevi valori glicemia dall\'app Eversense modificata. - Glimp - Ricevi valori glicemia da Glimp. - MM640g - Ricevi valori glicemia da 600SeriesAndroidUploader. - Poctech - Ricevi valori glicemia da app Poctech - Glunovo - Ricevi valori glicemia da app Glunovo - Intelligo - Ricevi valori da app Intelligo - Tomato (MiaoMiao) - Tomato - Ricevi valori glicemia da app Tomato (dispositivo MiaoMiao) - GlucoRx Aidex - GlucoRx Aidex - Ricevi valori glicemia da CGM GlucoRx Aidex. - BG casuale - Genera dati glicemia casuali (solo modalità demo) - BG - Invia dati BG a xDrip+ - In xDrip+ seleziona origine dati 640g/Eversense - Impostazioni caricamento BG - Registra cambio sensore in NS - Crea evento \"Cambio Sensore\" in NS all\'avvio del sensore Tema originale Tema a bassa risoluzione diff --git a/plugins/main/src/main/res/values-iw-rIL/strings.xml b/plugins/main/src/main/res/values-iw-rIL/strings.xml index 235e5df6c3..a148bc7cd3 100644 --- a/plugins/main/src/main/res/values-iw-rIL/strings.xml +++ b/plugins/main/src/main/res/values-iw-rIL/strings.xml @@ -98,21 +98,6 @@ נוצרה החלפת פרופיל משך הבזאלי הזמני חייב להיות כפולה של %1$d דקות ויותר מ-0. ברקוד QR ליצירת סיסמה חד פעמית - - Lyumjev - הגדרת אינסולין ל-Humalog ו- NovoRapid / Novolog - הגדרת אינסולין מסוג Fiasp - הגדרת אינסולין מסוג Lyumjev - מאפשר להגדיר את שיא פעילות האינסולין, לשימוש על ידי משתמשים מתקדמים בלבד - אינסולין - שעת שיא של עקומת IOB - זמן שיא [min] - Oref שיא חופשי - Oref אינסולין מהיר - Oref אינסולין אולטרה מהיר - DIA במשך %1$f הוא קצר מדי - משתמש ב-%2$f במקום! - Novorapid, Novolog, Humalog - Fiasp שורת מצב xDrip (שעון) @@ -168,22 +153,6 @@ DIA ע\' מטרה בזאלי - - הושלם, כל הכבוד! - עוד לא הושלם - זמן שחלף - ערך IOB מקסימלי הוגדר כראוי - ערכי סוכר זמינים מהמקור הנבחר - הלולאה פעילה - נבחר APS - מצב סגור מופעל - OBJ - תוכנית הלימוד - האם ברצונכם לאפס את התחלת המשימה? אתם עלולים לאבד את התקדמותכם במשימה. - הבא - הקודם - ביטול השלמה - ביטול התחלה פעולות לחצנים לגישה מהירה לפונקציות שימושיות @@ -203,18 +172,6 @@ גיל הצינורית גיל משאבה משאבה ללא צינורית - - הגבלת בולוס ממושך ל- %1$.1f יח\' בגלל %2$s - הגבלת פחמימות ל-%1$d גר\' בגלל %2$s - המשאבה אינה מסוגלת לבצע בזאלי זמני - מצב לולאה סגור מושבת בהעדפות - זוהי גרסת פיתוח. לולאה סגורה אינה מורשת. - הלולאה הסגורה מופסקת עקב מתן בולוס ממושך - SMB תמידי ו-SMB לאחר פחמימות מושבתים כיוון שמקור ערכי הסוכר הפעיל אינו תומך בסינון נתונים מתקדם - SMB אינו פעיל במצב לולאה פתוחה - ערך מקסימלי בהעדפות - מגבלה קשיחה - בטיחות טיפולים הצגת אורות חיווי במסך הבית סף התראה לתוקף האינסולין [h] @@ -340,50 +297,6 @@ רגישות קנה מידה של הגרף גרף - - סוג משאבה וירטואלית - הגדרת משאבה - בולוס: צעד=%1$s\nבולוס ממושך: [צעד=%2$s, משך=%3$s מינ\'-%4$sש\']\nבזאלי: צעד=%5$s\nבזאלי זמני: %6$s (עם %7$s), משך=%8$s מינ\'-%9$sש\'\n%10$s - VPUMP - שימוש במשאבות אשר עדיין אין להם מנהל התקן כלשהו (לולאה פתוחה) - משאבה וירטואלית - הגדרות משאבה וירטואלית - טוען מצב ל-Nightscout - - נתוני סוכר מ-NSClient - סוכר NS - הורדת ערכי סוכר בדם מ-Nightscout - xDrip+ - קבלת ערכי סוכר מ-xDrip. - BYODA - BYODA - השתמש בנתוני הסוכר מאפליקציית \"בנה לעצמך דקסקום\" (BYODA). - אפליקלציית Eversense (עם פאץ\') - קבלת ערכי רמת סוכר מאפליקציית Eversense עם פאץ\'. - Glimp - קבלת ערכי סוכר בדם מאפליקציית Glimp. - Minimed 640G - קבלת ערכי סוכר בדם מ-600SeriesAndroidUploader. - Poctech - קבלת ערכי סוכר מיישום Poctech - Glunovo - קבלת ערכי סוכר מיישום Glunovo - Intelligo - קבלת ערכי סוכר מיישום Intelligo - Tomato (MiaoMiao) - Tomato - קבלת ערכי סוכר מאפליקציית Tomato (התקן MiaoMiao) - GlucoRx Aidex - Aidex - קבלת נתוני סוכר מחיישני GlucoRx Aidex. - נתוני סוכר אקראיים - הפקת נתוני גלוקוז אקראיים (מצב הדגמה בלבד) - BG - שליחת נתוני סוכר אל xDrip - ב-xDrip בחרו 640g/Eversense כמקור נתונים - הגדרות העלאת ערכי סוכר בדם - רישום החלפת סנסור ב-Nightscout - רישום אירוע \"החלפת סנסור\" ב-Nightscout באופן אוטומטי בעת הפעלת החיישן סקין מקורי סקין רזולוציה נמוכה diff --git a/plugins/main/src/main/res/values-ja-rJP/strings.xml b/plugins/main/src/main/res/values-ja-rJP/strings.xml index f51be367e7..c87f7b9426 100644 --- a/plugins/main/src/main/res/values-ja-rJP/strings.xml +++ b/plugins/main/src/main/res/values-ja-rJP/strings.xml @@ -8,7 +8,6 @@ リモートボーラスが利用できません。後でもう一度お試しください。 デルタ: ベーサル: - @@ -18,10 +17,8 @@ Units: DIA BAS - ACT - 概要 HOME @@ -79,8 +76,6 @@ ABS DEVSLOPE TREAT - - diff --git a/plugins/main/src/main/res/values-ko-rKR/strings.xml b/plugins/main/src/main/res/values-ko-rKR/strings.xml index 161384ca53..2f23445e84 100644 --- a/plugins/main/src/main/res/values-ko-rKR/strings.xml +++ b/plugins/main/src/main/res/values-ko-rKR/strings.xml @@ -97,21 +97,6 @@ 상태를 읽지 못했습니다. 프로파일 변경 생성됨 TBR 기간은 %1$d분의 배수가 되어야 하고 0보다 커야 함. - - Lyumjev - 휴마로그와 노보래피드에 대한 인슐린 설정 - 피아스프에 대한 인슐린 설정 - Lyumjev에 대한 인슐린 설정 - 인슐린활동의 피크를 직접 정의할 수 있습니다. 고급 사용자만 사용해야 합니다. - INS - IOB 커브 피크 시간 - 피크 시간 [min] - 사용자지정-피크 Oref - 초속효성 Oref - 초-초속효성 Oref - DIA %1$f는 너무 짧습니다. 대신 %2$f을 사용하세요! - 노보래피드, 휴마로그, 에피드라 - 피아스프(Fiasp) xDrip+ 상태표시라인 (워치) @@ -151,22 +136,6 @@ DIA TARG BAS - - 훌륭합니다. 완료되었습니다! - 아직 완료되지 않았습니다. - 경과 시간 - 최대 IOB가 바르게 설정됨 - 선택한 소스에서 혈당이 들어옵니다. - Loop 활성화됨 - APS 선택됨 - Closed 모드가 활성화됨 - OBJ - 프로그램 배우기 - 목표를 초기화하시겠습니까? 진행상황이 삭제됩니다. - 다음 - 이전 - 완료 초기화 - 시작 초기화 실행 일반 기능을 빠르게 실행시킬 버튼 @@ -183,18 +152,6 @@ 펌프 배터리 캐뉼라 확장 Bolus 기능을 사용하는 동안에는 Closed Loop 모드가 중지됩니다. 정말 원하십니까? - - %2$s로 인해 확장Bolus가 %1$.1f U로 제한됩니다. - %2$s로 인해 탄수화물이 %1$d g로 제한됩니다. - 이 펌프 임시Basal을 지원하지 않습니다. - 설정에서 Closed Loop 모드가 비활성화되었습니다. - 개발자버전을 실행중입니다. Closed Loop는 비활성화 됩니다. - 확장 Bolus 사용으로 인해 Closed Loop가 비활성화됨 - 선택한 혈당 출처가 고급 필터링을 지원하지 않기 때문에 SMB가 항상 비활성화됩니다. - Open Loop모드에선 SMB가 허용되지 않습니다. - 설정에서의 최대값 - 하드한계 - 관리 안전설정 홈화면에 상태 표시등 보여주기 인슐린 사용 기간 경고 기준 [h] @@ -303,38 +260,6 @@ TREAT 민감도 그래프 - - 가성펌프 종류 - 펌프 정의 - Bolus: 스텝=%1$s\n확장Bolus: [Step=%2$s, 기간=%3$s분-%4$s시]\nBasal: 스텝=%5$s\n임시Basal: %6$s (by %7$s), 기간=%8$s분-%9$s시\n%10$s - VPUMP - 가상용 펌프를 위한 설정(Open Loop) - 가상 펌프 - 가상펌프 설정 - NS에 상태 업로드하기 - - NSClient 혈당 - Nightscout에서 다운로드하여 혈당값 받기 - xDrip+ - xDrip+에서 혈당값 받기 - Eversense 앱(패치버전) - 패치된 Eversense 앱에서 혈당값 받기 - Glimp - Glimp에서 혈당값 받기 - 미니메드640g - 600SeriesAndroidUploader에서 혈당값 받기 - Poctech - Poctech 앱에서 혈당값 받기 - Tomato (MiaoMiao) - Tomato - 혈당값이 Tomato앱(MiaoMaio장치) 으로부터 수신되었습니다. - 무작위 혈당 - 무작위로 혈당을 생성합니다(데모 버전 전용) - 혈당 - 혈당 데이터를 xDrip+에 전송하기 - xDrip+ 데이터 소스에서 640g/Eversense을 선택하세요 - 혈당 업로드 설정 - 센서 교체 NS에 기록하기 기본 스킨 저해상도 스킨 diff --git a/plugins/main/src/main/res/values-lt-rLT/strings.xml b/plugins/main/src/main/res/values-lt-rLT/strings.xml index 4c4fa8a24b..6b2c5a707f 100644 --- a/plugins/main/src/main/res/values-lt-rLT/strings.xml +++ b/plugins/main/src/main/res/values-lt-rLT/strings.xml @@ -97,21 +97,6 @@ Būsenos nuskaityti nepavyko Profilio perjungimas sukurtas Laikinos bazės trukmė turi būti kartotinė %1$d minučių ir didesnė nei 0. - - Lyumjev - Nustatymai Humalog ir NovoRapid / NovoLog insulinams - Nustatymai Fiasp insulinui - Nustatymai Lyumjev insulinui - Leidžia pasirinkti insulino veikimo piką ir turėtų būti naudojama tik patyrusių vartotojų - INS - AIO kreivės pikas - Piko laikas [min] - Oref be piko - Greito veikimo Oref - Staigaus veikimo Oref - IVT %1$f per trumpa - bus naudojama %2$f! - Novorapid, Novolog, Humalog - Fiasp xDrip+ būsenos juosta (laikrodyje) @@ -161,22 +146,6 @@ IVT TIKSLAS VB - - Užbaigta, puiku! - Dar nebaigta - Praėjo laiko - Maksimalus AIO nustatytas tinkamai - KG šaltinis pasirinktas teisingai - Ciklas aktyvuotas - DKS pasirinkta - Uždaras ciklas aktyvus - TIKSL - Mokymosi programa - Ar norite iš naujo nustatyti tikslų pradžią? Jūs galite prarasti jau pasiektus. - Kitas - Ankstesnis - Išvalyti užbaigtus - Išvalyti pradėtus Veiksmai Mygtukai greitesniam pagrindinių funkcijų paleidimui @@ -194,18 +163,6 @@ Kaniulė Ištęsto boluso funkcija sustabdys uždaro ciklo režimą ištęsto boluso veikimo metu. Ar tikrai norite patvirtinti savo pasirinkimą? kateterio amžius - - Ištęstinis bolusas ribojamas iki %1$.1f vv dėl %2$s - Ribojami angliavandeniai iki %1$d g dėl %2$s - Pompa negali nustatyti laikinos bazės - Uždaro ciklo būsena išjungta nustatymuose - Naudojama neužbaigta versija. Uždaras ciklas neaktyvus. - Uždara ciklas išjungtas dėl ištęsto boluso veikimo - Funkcijos \"SMB visada\" ir \"SMB po angliavandenių\" išjungtos, nes kraujo gliukozės duomenų šaltinis neturi reikalingo filtravimo - SMB neleidžiami atviro ciklo režime - Maksimali reikšmė nustatymuose - Nekeičiama riba - Terapijos saugumas Pradžios ekrane rodyti spalvotus indikatorius Kaniulės ribinio laiko įspėjimas [h] @@ -324,49 +281,6 @@ ĮRAŠ JAUTR Grafikas - - Virtualios pompos tipas - Pompos nustatymas - Bolusas: Žingsnis=%1$s\nIštęstinis bolusas: [Žingsnis=%2$s, Trukmė=%3$smin-%4$sh]\nBazė: Žingsnis=%5$s\nLDB: %6$s (iš %7$s), Trukmė=%8$smin -%9$sh\n%10$s - VPompa - Integracija pompoms, kurios dar neturi reikalingo valdiklio (Atviras Ciklas) - Virtuali pompa - Virtualios pompos nustatymai - Perduoti būsenos duomenis į NS - - NSClient KG - NS KG - Gauti kraujo gliukozės vertes iš Nightscout - xDrip+ - Gauti kraujo gliukozės reikšmes iš xDrip+. - BYODA - BYODA - Gauti kraujo gliukozės reikšmes iš \'Build Your Own Dexcom App\'. - Eversense programėlė (modifikuota) - Gauti kraujo gliukozės vertes iš modifikuotos Eversense programėlės. - Glimp - Gauti kraujo gliukozės vertes iš Glimp. - MM640g - Gauti kraujo gliukozės vertes iš 600SeriesAndroidUploader. - Poctech - Gauti KG vertes iš Poctech programėlės - Glunovo - Gauti KG reikšmes iš Glunovo programos - Intelligo - Gauti KG reikšmes iš Intelligo programos - Tomato (MiaoMiao) - Tomato - Gauti KG vertes iš Tomato programėlės (MiaoMiao) - GlucoRx Aidex - Aidex - Gauti KG reikšmes iš GlucoRx Aidex CGMS programos. - Atsitiktinė KG - Generuoti atsitiktinių KG duomenis (demonstracinis režimas) - KG - Siųsti KG duomenis į xDrip+ - Xdrip+ pasirinkite 640g/Eversense duomenų šaltinį - KG duomenų perdavimo nustatymai - Registruoti sensoriaus keitimą NS Originali išvaizda Žemos rezoliucijos išvaizda diff --git a/plugins/main/src/main/res/values-nl-rNL/strings.xml b/plugins/main/src/main/res/values-nl-rNL/strings.xml index 9d6be96279..10e9b0829c 100644 --- a/plugins/main/src/main/res/values-nl-rNL/strings.xml +++ b/plugins/main/src/main/res/values-nl-rNL/strings.xml @@ -101,21 +101,6 @@ Profiel wissel aangemaakt Tijdelijk basaal duur moet een veelvoud van %1$d minuten en groter dan 0 zijn. QR Code voor het instellen van een eenmalig wachtwoord - - Lyumjev - Insuline instelling voor Humalog en NovoRapid / NovoLog - Insuline instelling voor Fiasp - Insuline instelling voor Lyumjev - Hiermee kan je de piek van de insulineactiviteit definiëren, mag alleen worden gebruikt door gevorderde gebruikers - INS - IOB curve piek tijd - Piek tijd [min] - Free-Peak Oref - Snel-werkende Oref - Ultra-Rapid Oref - DIA van %1$f te kort - %2$f wordt inplaats gebruikt! - Novorapid, Novolog, Humalog - Fiasp xDrip+ Statuslijn (horloge) @@ -171,23 +156,6 @@ DIA DOEL BAS - - Voltooid, goed gedaan! - Nog niet voltooid - Verstreken tijd - Maximum IOB juist ingesteld - BG beschikbaar op gekozen bron - Synchronisatieservice heeft schrijfrechten - Loop Actief - APS geslecteerd - Closed modus actief - DOEL - Leerprogramma - Wil je dit leerdoel opnieuw starten? Je kunt je voortgang verliezen. - Volgende - Vorige - Voltooiing wissen - Start wissen Acties Een aantal knoppen voor snelle toegang tot algemene functies @@ -207,18 +175,6 @@ canule leeftijd patchpomp leeftijd Patchpomp - - Beperken van extended bolus op %1$.1f E vanwege %2$s - Koolhydraten worden beperkt tot %1$d gr doordat %2$s - Pomp kan geen tijdelijk basaal aanvaarden - Closed Loop modus gedeactiveerd in de instellingen - Dev versie actief. Closed loop gedeactiveerd - Closed loop modus uitgeschakeld vanwege afgeven Vertraagde bolus - SMB altijd gedeactiveerd doordat de gekozen BG bron geen optimale filtering toepast - SMB niet toegestaan in Open Loop modus - Maximum waarde in instellingen - max limiet (SC) - Behandelingen veiligheid Toon statusindicatoren op startscherm Drempelwaarde waarschuwing canule leeftijd [h] @@ -345,50 +301,6 @@ SENS Grafiek schaal Grafiek - - Virtuele pomp Type - Pomp definitie - Bolus: Stap=%1$s\nExtended Bolus: [Stap=%2$s, Duur=%3$smin-%4$sh]\nBasaal: Stap=%5$s\nTBR: %6$s (by %7$s), Duur=%8$smin-%9$sh\n%10$s - VPUMP - Pomp integratie voor pompen, waar nog geen driver voor is (Open Loop) - VIRTUELE POMP - Virtuele pomp instellingen - Upload status naar NS - - NSClient BG - NS BG - Download BG waardes van Nightscout - xDrip+ - Ontvang BG waardes van xDrip+. - BYODA - BYODA - Ontvang BG waarden van de \'Build Your Own Dexcom App\' (BYODA). - Eversense App (aangepast) - Ontvang BG waardes van de aangepaste Eversense app. - Glimp - Ontvang BG waardes van Glimp. - MM640g - Ontvang BG waardes van 600SeriesAndroidUploader. - Poctech - Ontvang BG waardes van Poctech app - Glunovo - Ontvang waardes van Glunovo app - Intelligo - Ontvang waarden van de Intelligo app - Tomato (MiaoMiao) - Tomato - Ontvang BG waardes van Tomato app (MiaoMiao apparaatje) - GlucoRx Aidex - Aidex - Ontvang BG waarden van GlucoRx Aidex CGMS. - Willekeurige BG - Willekeurige BG gegevens genereren (alleen Demo modus) - BG - Stuur BG data naar xDrip+ - In xDrip+ kies 640g/Eversense data bron - BG upload instellingen - Noteer sensor wissel in NS - Noteer automatisch \"Sensor Wissel\" in NS bij starten van sensor Klassiek weergave thema Lage resolutie skin diff --git a/plugins/main/src/main/res/values-no-rNO/strings.xml b/plugins/main/src/main/res/values-no-rNO/strings.xml index 4e12025dd8..72f426a3dd 100644 --- a/plugins/main/src/main/res/values-no-rNO/strings.xml +++ b/plugins/main/src/main/res/values-no-rNO/strings.xml @@ -101,21 +101,6 @@ Profilbytte opprettet Temp basal varighet må oppgis i antall %1$d minutter og større enn 0. QR-kode for oppsett av engangspassord - - Lyumjev - Insulininnstillinger for Humalog og NovoRapid / NovoLog - Insulininnstillinger for Fiasp - Insulininnstillinger for Lyumjev - Lar deg definere toppen på insulinaktiviteten og skal kun brukes av avanserte brukere - INS - IOB-kurvens topptid - Topptid [min] - Egendefinert topp Oref - Hurtigvirkende Oref - Ultra-Rapid Oref - DIA på %1$f er for kort - bruker %2$f i stedet! - Novorapid, Novolog, Humalog - Fiasp xDrip+ statuslinje (klokke) @@ -171,23 +156,6 @@ DIA MÅL BAS - - Fullført, godt gjort! - Enda Ikke fullført - Tid brukt - Maks IOB er angitt riktig - BS tilgjengelig fra valgt kilde - Synkroniseringstjeneste har skriverettigheter - Loop er aktivert - APS valgt - Lukket loop aktivert - MÅL - Opplæringsprogram - Ønsker du å omstarte læringsmålet? Du vil miste fullførte trinn. - Neste - Forrige - Sletting ferdig - Sletting startet Handlinger Hurtigknapper for rask tilgang til ofte brukte funksjoner @@ -207,18 +175,6 @@ kanyle alder patch pumpe alder Patch pumpe - - Begrenser forlenget bolus til %1$.1f E på grunn av %2$s - Begrenser karbohydrater til %1$d g på grunn av %2$s - Pumpen støtter ikke temp basaler - Lukket Loop er eaktivert i innstillinger - Du kjører dev-versjonen. Lukket loop ikke aktivert. - Lukket loop deaktivert på grunn av forlenget bolus - SMB Alltid På og SMB Etter Karbohydrater er deaktivert fordi BS kilden ikke støtter avansert filtrering - SMB ikke tillatt i åpen loop - maks verdi i innstillingene - hard begrensning - Sikkerhet ved behandlinger Vis statusindikatorer på hjem-skjermen Terskel for advarsel om alder på slangesett [h] @@ -345,50 +301,6 @@ SENS Graf skala Graf - - Virtuell pumpetype - Pumpedefinisjon - Bolus: Step=%1$s\nForlenget bolus: [Step=%2$s, Varighet=%3$smin-%4$sh]\nBasal: Step=%5$s\nTBR: %6$s (av %7$s), Varighet=%8$smin-%9$sh\n%10$s - VPUMP - Integrasjon mot pumper som ikke støttes av AndroidAPS (åpen loop) - VIRTUELL PUMPE - Innstillinger for virtuell pumpe - Last opp status til Nightscout - - NSClient BS - NS BS - Last ned BS-verdier fra Nightscout - xDrip+ - Motta BS-verdier fra xDrip+. - BYODA - BYODA - Motta BS verdier fra \'Build Your Own Dexcom App\'. - Eversense App (patched) - Motta BS-verdier fra den modifiserte Eversense-appen. - Glimp - Motta BS-verdier fra Glimp. - MM640G - Motta BS-verdier fra 600SeriesAndroidUploader. - Poctech - Motta BS verdier fra Poctech app - Glunovo - Motta BS verdier fra Glunovo app - Intelligo - Motta BS-verdier fra Intelligo-app - Tomato (MiaoMiao) - Tomato - Motta BS verdier fra Tomato app (MiaoMiao enhet) - GlucoRx Aidex - Aidex - Motta BS verdier fra GlucoRx Aidex CGM. - Vilkårlig BS - Generer vilkårlige BS data (kun demo formål) - BS - Send BS data til xDrip+ - I xDrip+, velg 640G/Eversens som datakilde - Innstillinger for opplasting av BS - Logg sensor bytte til NS - Opprett hendelse \"Sensor bytte\" automatisk i NS ved start av sensoren Opprinnelig visningstema Tema for lav oppløsning diff --git a/plugins/main/src/main/res/values-pl-rPL/strings.xml b/plugins/main/src/main/res/values-pl-rPL/strings.xml index 04dd77b21e..7ca8b424fe 100644 --- a/plugins/main/src/main/res/values-pl-rPL/strings.xml +++ b/plugins/main/src/main/res/values-pl-rPL/strings.xml @@ -100,21 +100,6 @@ Odczyt statusu nie powiódł się Zmiana profilu wykonana Czas trwania TBR musi być wielokrotnością %1$d minut i większy niż 0. - - Lyumjev - Profil insulinowy dla Humalog i Novorapid / NovoLog - Profil insulinowy dla Fiasp - Profil insulinowy dla Lyumjev - Pozwala na określenie czasu wartości szczytowej działania insuliny i powinno być używane tylko przez zaawansowanych użytkowników - INS - IOB Czas piku krzywej działania insuliny - Czas piku [min] - Swobodny-Pik Oref - Szybko-Działający Oref - Ultra-Szybki Oref - DIA %1$f zbyt krótki - przyjmuję %2$f w zamian! - Novorapid, Novolog, Humalog - Fiasp Linia Statusu xDrip+ (zegarek) @@ -161,22 +146,6 @@ DIA CEL BAS - - Ukończone, wspaniale! - Nie ukończono - Czas jaki upłynął - Maks. IOB ustawione poprawnie - BG dostępne z wybranego źródła - Pętla włączona - Wybrano APS - Tryb zamknięty włączony - OBJ - Program do nauki - Czy chcesz zresetować czas rozpoczęcia zadania? Możesz utracić postępy. - Dalej - Poprzedni - Wyczyść skończone - Wyczyść rozpoczęte Akcje Niektóre przyciski umożliwiające szybki dostęp do typowych funkcji @@ -193,18 +162,6 @@ Bateria pompy Kaniula Użycie funkcji Extended bolus spowoduje zatrzymanie trybu pętli zamkniętej na czas działania przedłużonego bolusa. Czy na pewno tego chcesz? - - Ograniczam bolus do %1$.1f U z uwagi na %2$s - Ograniczam węglow. do %1$d g z uwagi na %2$s - Pompa nie jest zdolna do wykonywania dawek bazowych tymczasowych - Tryb zamkniętej pętli wyłączony w ustawieniach - Uruchomiona jest wersja dev. Zamknięta pętla jest wyłączona. - Zamknięta pętla wyłączona, ponieważ działa Extended Bolus (bolus przedłużony) - SMB zawsze i po węglow. wyłączone z uwagi na brak źródła BG z zaawansowanym filtrowaniem - SMB nie dozwolone w trybie otwartej pętli - maks. wartość w ustawieniach - twarde ograniczenie - Bezpieczeństwo terapii Pokaż diody stanu na ekranie głównym Ostrzeżenie o czasie insuliny [h] @@ -318,44 +275,6 @@ TREAT SENS Wykres - - Pompa wirtualna - Definicja Pompy - Bolus: Krok =%1$s\nBolus Przedłużony: [krok =%2$s, czas trwania =%3$smin -%4$sh] \nBasal: krok =%5$s\nTBR: %6$s (przez %7$s), czas trwania =%8$smin -%9$sh\n%10$s - VPUMP - Integracja z pompami, które nie posiadają jeszcze żadnego sterownika (Open Loop) - POMPA WIRTUALNA - Ustawienia pompy wirtualnej - Przesyłaj status do NS - - NSClient BG - NS BG - Pobieraj wartości BG z Nightscout - xDrip+ - Pobieraj wartości BG z xDrip+. - Dexcom Patched - DEX.PATCH. - Pobieraj glikemię ze spatchowanej aplikacji Dexcom. - Apka Eversense (spatchowana) - Pobieraj wartości BG ze spatchowanej aplikacji Eversense. - Glimp - Pobieraj wartości BG z Glimp. - MM640g - Pobieraj wartości BG z uploadera pomp serii 600. - Poctech - Odczytuj wartości BG z aplikacji Poctech - Glunovo - Otrzymuj wartości z aplikacji Glunovo - Tomato (MiaoMiao) - Tomato - Otrzymuj poziomy cukru (BG) z Apki Tomato) (urządzenie MiaoMiao) - Losowa BG - Generuj losowe dane BG (tylko tryb demonstracyjny) - BG - Prześlij dane BG do xDrip+ - W xDrip+ wybierz źródło danych 640g/Eversense - Ustawienia wysyłania wartości BG (poziomów cukru) - Prześlij zmianę sensora do NS Motyw oryginalny Mały ekran diff --git a/plugins/main/src/main/res/values-pt-rBR/strings.xml b/plugins/main/src/main/res/values-pt-rBR/strings.xml index 55d8e79adc..3acb6d5014 100644 --- a/plugins/main/src/main/res/values-pt-rBR/strings.xml +++ b/plugins/main/src/main/res/values-pt-rBR/strings.xml @@ -101,21 +101,6 @@ Troca de perfil criada A duração da basal temporária deve ser um múltiplo de %1$d minutos e maior que 0. Código QR para configuração de senha de uso único - - Lyumjev - Predefinição de Insulina para Humalog e NovoRapid / NovoLog - Pré-ajuste de Insulina para Fiasp - Configuração pre-definida para a Insulina Lyumyev - Permite que você defina o pico da atividade de insulina, deve ser usado apenas por usuários avançados - INS - Tempo Pico da curva de IOB - Tempo Pico [min] - Oref Pico-Livre - Oref Ação Rápida - Ultra-Rapid Oref - Duração de Acção da Insulina (DIA) de %1$f demasiado curto - corrigido para %2$f! - Novorapid, Novolog, Humalog - Fiasp Linha do estado do Xdrip+ (relógio) @@ -171,22 +156,6 @@ DIA ALV BAS - - Terminado, parabéns! - Incompleto - Tempo decorrido - IOB máxima definida correctamente - Glicemia disponivel desde a fonte selecionada - Loop activado - APS seleccionado - Modo fechado ativado - OBJ - Programa de aprendizagem - Deseja reiniciar o objetivo? Pode perder seu progresso. - Seguinte - Anterior - Limpeza terminado - Limpeza iniciado Ações Alguns botões para acessar rapidamente a funções comuns @@ -206,18 +175,6 @@ idade da cânula Idade da bomba patch Bomba patch - - A limitar bólus estendido para %1$.1f U porque %2$s - A limitar hidratos para %1$d g porque %2$s - A bomba não é capaz de basais temporárias - Loop fecchado disabilitado nas preferências - A correr a versão dev. O Loop fechado está desabilitado. - Closed Loop desabilitado por causa da execução do Bólus Estendido - SMB sempre e depois dos hidratos desactivado por fonte da Glicemia activa não suportar filtro avançado - SMB não permitido no modo open loop - valor máx nas preferências - limite rígido - Segurança do Tratamento Mostrar luzes de estado no ecrã principal Aviso de limite da vida útil da insulina [h] @@ -343,50 +300,6 @@ SENS Escala do gráfico Gráfico - - Tipo da Bomba Virtual - Definição da Bomba - Bólus: Passo=%1$s\nBólus Estendido: [Passo=%2$s, Duração=%3$smin -%4$sh] \nBasal: Passo=%5$s\ nTBR: %6$s (por %7$s), Duração=%8$smin-%9$sh\n%10$s - BOMBAV - Integração para as bombas que não têm qualquer driver ainda (Open Loop) - BOMBA VIRTUAL - Definições da bomba virtual - Enviar estado para NS - - Glic NSCliente - NS glicemia - Downloads de dados de Glicose do Nightscout - xDrip+ - Receber valores de glicose do xDrip+. - BYODA - BYODA - Receber valores de glicemia do \'Build Your Own Dexcom App\'. - Aplicação Eversense (com patch) - Receber valores de Glicose da aplicação Eversense modificada. - Glimp - Receber valores BG do Glimp. - MM640g - Receber valores de Glucose do 600SeriesAndroidUploader. - Poctech - Receber valores Glucose da app Poctech - Glunovo - Receber valores GLIC do aplicativo Glunovo - Intelligo - Receber valores da app Intelligo - Tomato (MiaoMiao) - Tomato - Receber valores de Glicose da aplicação Tomato (dispositivo MiaoMiao) - GlucoRx Aidex - Aidex - Receber valores BG do GlucoRx Aidex CGMS. - Glic. Aleatória - Gerar dados de Glic. aleatórios (Somente modo de Demonstração) - GLIC - Enviar dados Glic. para xDrip+ - Seleccionar 640g/Eversense como fonte no xDrip+ - Configurações de upload de BG - Registar mudança de sensor para NS - Criar evento \"Mudança de Sensor\" no NS automaticamente ao iniciar o sensor. Tema original Design de baixa resolução diff --git a/plugins/main/src/main/res/values-pt-rPT/strings.xml b/plugins/main/src/main/res/values-pt-rPT/strings.xml index 046ee6fcd0..9554ee4b65 100644 --- a/plugins/main/src/main/res/values-pt-rPT/strings.xml +++ b/plugins/main/src/main/res/values-pt-rPT/strings.xml @@ -97,21 +97,6 @@ Erro na leitura de estado Troca de perfil criada A duração do DBT deve ser de um múltiplo de %1$d minutos e maior que 0. - - Lyumjev - Predefinição de Insulina Humalog e NovoRapid / NovoLog - Predefinição de Insulina Fiasp - Predefinição para Insulina Lyumjev - Permite definir o pico de atividade da insulina e deve ser usado somente por usuários avançados - INS - Tempo do Pico da curva de IA - Tempo Pico [min] - Oref Pico-Livre - Oref Acção-Rápida - Oref Ultra-Rápida - Duração de Acção da Insulina (DIA) de %1$f demasiado curto - corrigido para %2$f! - Novorapid, Novolog, Humalog - Fiasp Linha Estado xDrip+ (relógio) @@ -158,22 +143,6 @@ DIA ALV BAS - - Terminado, parabéns! - Não concluído ainda - Tempo decorrido - IA máxima definida corretamente - Glicose disponível da fonte seleccionada - Loop activado - APS seleccionado - Modo fechado ativado - OBJ - Programa de aprendizagem - Deseja reiniciar o objectivo? Pode perder seu progresso. - Seguinte - Anterior - Limpar terminado - Limpar iniciado Acções Alguns botões para aceder rapidamente a funções comuns @@ -190,18 +159,6 @@ Bateria da Bomba Cânula O uso do Bólus Prolongado irá parar o modo Loop Fechado durante o tempo do bólus prolongado. Quer realmente isso? - - A limitar bólus prolongado para %1$.1f U porque %2$s - A limitar hidratos para %1$d g porque %2$s - A bomba não é capaz de basais temporárias - Loop fechado desativado nas preferências - A correr a versão dev. O Loop fechado está desativado. - Loop Fechado desativado por causa da execução do Bólus Prolongado - SMB sempre e depois dos hidratos desactivado por fonte da Glicose activa não suportar filtro avançado - SMB não permitido no modo open loop - valor máx nas preferências - limite rígido - Segurança de Tratamentos Mostrar luzes de estado no ecrã principal Limite aviso idade insulina [h] @@ -318,44 +275,6 @@ TRATA SENS Gráfico - - Tipo da Bomba Virtual - Definição da Bomba - Bólus: Passo=%1$s\nBólus Prolongado: [Passo=%2$s, Duração=%3$smin -%4$sh] \nBasal: Passo=%5$s\ nDBT: %6$s (por %7$s), Duração=%8$smin-%9$sh\n%10$s - BOMBAV - Integração para as bombas que não têm qualquer driver ainda (Open Loop) - BOMBA VIRTUAL - Definições da bomba virtual - Enviar estado para NS - - Glicose ClienteNS - Glicemia do NS - Descarrega dados Glicose do Nightscout - xDrip+ - Receber valores Glicose do xDrip+. - BYODA - BYODA - Receber valores de glicemia do aplicativo BYODA. - Aplicação Eversense (com patch) - Receber valores Glicose da aplicação Eversense modificada. - Glimp - Receber valores Glicose do Glimp. - MM640g - Receber valores Glicose do 600SeriesAndroidUploader. - Poctech - Receber valores Glucose da app Poctech - Glunovo - Receber valores do aplicativo Glunovo - Tomato (MiaoMiao) - Tomato - Receber valores de Glicose da app Tomato (dispositivo MiaoMiao) - Glicose Aleatória - Gerar dados de Glic. aleatórios (Somente modo de Demonstração) - GLIC - Enviar dados Glicose para xDrip+ - Seleccionar 640g/Eversense como fonte no xDrip+ - Definições de Envio da Glicose - Registar mudança de sensor para NS Tema Gráfico Original Design de Baixa Resolução diff --git a/plugins/main/src/main/res/values-ro-rRO/strings.xml b/plugins/main/src/main/res/values-ro-rRO/strings.xml index 5c8fabc17c..8961ea29ec 100644 --- a/plugins/main/src/main/res/values-ro-rRO/strings.xml +++ b/plugins/main/src/main/res/values-ro-rRO/strings.xml @@ -97,21 +97,6 @@ Citire eșuată a stării Schimbare de profil creată Durata RBT trebuie să fie un multiplu de %1$d minute și mai mare de 0. - - Lyumjev - Setări prestabilite pentru insulinele Humalog sau NovoRapid / NovoLog - Setări prestabilite pentru Fiasp - Setări prestabilite pentru Lyumjev - Vă permite definirea vârfului activităţii insulinei şi ar trebui folosit doar de către utilizatorii avansaţi - INS - Curbă timp vârf IOB - Timp vârf [min] - Oref Vârf-Liber - Oref Insulină-Rapidă - Oref Insulină-UltraRapidă - DIA din %1$f prea scurtă - se folosește %2$f în schimb! - Novorapid, Novolog, Humalog - Fiasp Linie de stare xDrip+ (ceas) @@ -159,22 +144,6 @@ DIA TARG BZL - - Finalizat cu succes! - Încă incomplet - Timp scurs - IOB maxim configurat corect - Glicemie disponibilă din sursa selectată - Buclă activată - APS selectat - Mod buclă închisă activat - OBI - Program de învăţare - Doriți să reîncepeți obiectivul? Vă puteți pierde progresul. - Următor - Anterior - Șterge starea \"Terminat\" - Șterge starea \"Început\" Acțiuni Butoane pentru accesarea celor mai comune facilităţi @@ -192,18 +161,6 @@ Canula Utilizarea unui bolus extins va opri modul buclă închisă pe timpul livrării bolusului extins. Sigur doriți acest lucru? vechime canulă - - Se limitează bolusul extins la %1$.1f U datorită %2$s - Se limitează carbohidrații %1$d g datorită %2$s - Pompa nu suportă bazale temporare - Modul buclă închisă dezactivat în preferințe - Se folosește versiunea dev. Bucla închisă este dezactivată. - Bucla închisă dezactivată din cauza livrării bolusului extins - SMB dezactivat întotdeauna și după carbohidrați, deoarece sursa glicemiei nu suportă filtrare avansată - SMB nu este permis în mod buclă deschisă - valoare maximă în preferințe - limită fizică - Setări siguranță tratament Afișați indicatorii luminoși ai pompei pe ecranul de start Prag de avertizare vechime insulină [h] @@ -320,44 +277,6 @@ TRAT SENS Grafic - - Tipul pompei virtuale - Definirea pompei - Bolus: Pas=%1$s\nBolus Extins: [Pas=%2$s, Durată=%3$smin-%4$sh]\nBazală: Pas=%5$s\nRBT: %6$s (cu %7$s), Durată=%8$smin-%9$sh\n%10$s - POMPĂV - Integrare cu pompele ce nu au încă un driver software disponibil (Buclă Deschisă) - POMPĂ VIRTUALĂ - Setări pompă virtuală - Trimitere status către NS - - Glicemie NSClient - NS GL - Descarcă datele despre glicemii din Nightscout - xDrip+ - Primește valorile glicemiei din xDrip+. - BYODA - BYODA - Primește valori de glicemie de la aplicația Dexcom modificată. - Aplicația Eversense (modificată) - Primește valorile glicemiei din aplicația Eversense modificată. - Glimp - Primește valorile glicemiei din aplicația Glimp. - MM640g - Primește valorile glicemiei din aplicația 600SeriesAndroidUploader (Medtronic). - Poctech - Citire a valorii glicemiei din aplicația Poctech - Glunovo - Primiți glicemii de la aplicația Glunovo - Tomato (MiaoMiao) - Tomato - Înregistrează valorile glicemiei din aplicația Tomato (dispozitiv MiaoMIao) - Glicemie aleatoare - Generare glicemie aleator (doar mod Demo) - Gl - Trimite date glicemie la xDrip+ - Selectați 640g/Eversense ca sursă de date în xDrip+ - Setări înregistrare glicemie - Înregistrează schimbarea senzorului în NS Tema originală Skin de rezoluție redusă diff --git a/plugins/main/src/main/res/values-ru-rRU/strings.xml b/plugins/main/src/main/res/values-ru-rRU/strings.xml index e709cb0e8b..3c56618229 100644 --- a/plugins/main/src/main/res/values-ru-rRU/strings.xml +++ b/plugins/main/src/main/res/values-ru-rRU/strings.xml @@ -101,21 +101,6 @@ Переключатель профиля создан Длительность временного базала TBR должна быть кратной %1$d минутам и больше 0. QR код для создания одноразового пароля - - Lyumjev - Предустановки для Humalog и Novorapid / Novolog - Предустановки для Fiasp - Предустановки для Lyumjev - Позволяет самостоятельно задавать пик активности инсулина - только для опытных пользователей - ИНС - Время пика активного инс IOB - Время пика [min] - Свободный от пиков Oref - Быстро действующий Oref - Сверхбыстрый Oref - Значение времени действия инс %1$f слишком мало - применено %2$f! - Новорапид, Хумалог - Фиасп Cтрока состояния xDrip (часы) @@ -171,23 +156,6 @@ Время действия инсулина DIA ЦЕЛЬ БАЗАЛ - - Завершено, отлично! - Не завершено - Прошло времени - Максимум активного инсулина IOB установлен правильно - ГК доступна из выбранного источника - Служба синхронизации имеет разрешение на запись - Цикл активирован - Выбран APS - Режим замкнутого цикла включен - ЦЕЛИ - Обучающая программа - Хотите сбросить начатую цель? Можете потерять достигнутое. - Далее - Назад - Очистить завершенные - Очистить начатые Действия Кнопки быстрого доступа к некоторым распространенным настройкам @@ -207,18 +175,6 @@ время, отработанное катетером помпы время отработанное разовой помпой Разовая помпа - - Ограничение пролонгированного болюса до %1$.1f ед. из-за %2$s - Ограничение углеводов до %1$d г. из-за %2$s - Помпа не рассчитана на подачу временного базала - Режим замкнутого цикла отключен в настройках - Работает версия разработчика. Замкнутый цикл отключен. - Замкнутый цикл отключен из-за работы Пролонгированного Болюса - Опция супер микро болюс всегда и после углеводов отключена т. к. активный источник ГК не поддерживает комплексное фильтрование - В режиме незамкнутого цикла open loop супер микро болюс SMB не допускается - максимальное значение в настройках - жесткий предел - Безопасность терапии Показать индикаторы состояния на главном экране Порог предупреждения о времени, отработанном катетером [h] @@ -345,50 +301,6 @@ ЧУВСТВ Масштаб графика График - - Тип виртуальной помпы - Определение помпы - Болюс: Шаг =%1$s\n Пролонгированный Болюс: [Шаг =%2$s, Продолжительность =%3$sмин -%4$sh] \nБазал: Шаг =%5$s\n ВБС: %6$s (на %7$s), Продолжительность =%8$sмин -%9$sh\n%10$s - ВиртПомпа - Интеграция с помпами, еще не имеющими драйвера (незамкнутый цикл) - ВИРТУАЛЬНАЯ ПОМПА - настройки вирт помпы - статус передачи данных в NS - - СК с клиента Nightscout - ГК с NS - Получать данные гликемии с сайта Nightscout - xDrip + - Получать данные гликемии от xDrip+. - Самост собран прилож Dexcom - ССП DEXCOM - Получать данные ГК от \'Самостоятельно собранного приложения Dexcom\'. - Приложение Eversense (пропатченное) - Получать данные гликемии от пропатченного приложения Eversense. - Glimp - Получать данные гликемии от Glimp. - MM640g - Получать данные гликемии от 600SeriesAndroidUploader. - Poctech - Получать данные гликемии от приложения Poctech - Приложение Glunovo - Получать данные гликемии от приложения Glunovo - Приложение Intelligo - Получать данные гликемии от приложения Intelligo - Томато (MiaoMiao) - Томато - Получать значения ГК от приложения Tomato (устройство MiaoMiao) - Aidex GlucoRx - Aidex - Получить значения ГК от GlucoRx Aidex - Случайные значения ГК - Генерировать случайные данные ГК (только демо-режим) - ГК - Отправлять данные СК на xDrip+ - В xDrip + выберите источник данных 640g/Eversense - Параметры загрузки СК - Вносить запись о замене сенсора в NS - Автоматически создать событие \"Замена сенсора\" в NS при запуске сенсора Исходная тема оформления Тема для низкого разрешения diff --git a/plugins/main/src/main/res/values-sk-rSK/strings.xml b/plugins/main/src/main/res/values-sk-rSK/strings.xml index 05e2e9075c..abd63b9d3e 100644 --- a/plugins/main/src/main/res/values-sk-rSK/strings.xml +++ b/plugins/main/src/main/res/values-sk-rSK/strings.xml @@ -101,21 +101,6 @@ Prepnutie profilu vytvorené Trvanie dočasného bazálu musí byť násobkom %1$d minút a musí byť väčšie ako 0. QR kód pre nastavenie jednorázového hesla - - Lyumjev - Predvoľba pre inzulín Humalog a Novorapid - Predvoľba pre inzulín Fiasp - Predvoľba pre inzulín Lyumjev - Umožňuje definovať vrchol účinnosti inzulínu a malo by byť používané iba pokročilými užívateľmi - INZ - Čas vrcholu IOB krivky - Vrchol krivky [min] - Voliteľný vrchol - Oref - Rýchlo pôsobiaci - Oref - Ultra rýchly - Oref - DIA %1$f je príliš krátke - AAPS namiesto toho použilo %2$f ! - Novorapid, Novolog, Humalog - Fiasp Stavový riadok xDrip+ (hodinky) @@ -171,23 +156,6 @@ DIA CIEĽ BAZ - - Hotovo, gratulujeme! - Nedokončené - Uplynutý čas - Maximálne IOB nastavené správne - Glykémie dostupné z vybraného zdroja - Služba synchronizácie má oprávnenie k zápisu - Uzavretý okruh povolený - APS vybrané - Uzavretý okruh povolený - CIEĽ - Výukový program - Chcete resetovať začiatok cieľa? Môžete prísť o svoj pokrok. - Ďalej - Späť - Vymazanie dokončené - Vymazanie začaté Akcie Niektoré tlačidlá na rýchly prístup do spoločných funkcií @@ -207,18 +175,6 @@ vek kanyly vek náplasťovej pumpy Náplasťová pumpa - - Predĺžený bolus obmedzený na %1$.1f JI: %2$s - Sacharidy obmedzené na %1$d g: %2$s - Pumpa nepodporuje dočasné bazály - Uzavretý okruh zakázaný v nastaveniach - Bežiaca vývojárska verzia. Uzavretý okruh je zakázaný. - Uzavretý okruh je zastavený kvôli prebiehajúcemu predĺženému bolusu - \"SMB vždy\" a \"po jedle\" zakázané pretože zdroj glykémie nepodporuje rozšírené filtrovánie - SBM nie sú povolené pri otvorenom okruhu - maximálna hodnota v nastaveniach - pevný limit - Bezpečnosť zadania ošetrenia Zobraziť indikátory stavu na domovskej obrazovke Prah upozornenia na vek kanyly [h] @@ -346,50 +302,6 @@ SENZ Mierka grafu Graf - - Typ virtuálnej pumpy - Definícia pumpy - Bolus: Krok =%1$s\nPredl. bolus: [Krok=%2$s, Dĺžka=%3$smin-%4$sh]\nBazál: Krok=%5$s\nDoč. bazál: %6$s (%7$s), Dĺžka=%8$smin-%9$sh\n%10$s - VPUM - Ovládač pumpy pre užívateľov bez podporovanej pumpy (Otvorený okruh) - Virtuálna pumpa - Nastavenie virtuálnej pumpy - Nahrať stav do NS - - Glykémie z NS - NS GL - Získavať hodnoty glykémií z Nightscoutu - xDrip+ - Prijímať hodnoty glykémií z xDrip+. - BYODA - BYODA - Prijímať hodnoty glykémií z upravenej aplikácie Dexcom (BYODA). - Eversense aplikácia (upravená) - Získavať glykémie z upravenej Eversense aplikácie. - Glimp - Získavať hodnoty glykémií z aplikácie Glimp. - MM640g - Získavať hodnoty glykémií z 600SeriesAndroidUploader. - Poctech - Získavať glykémie z aplikácie Poctech - Glunovo - Získavať glykémie z aplikácie Glunovo - Intelligo - Prijímať hodnoty z aplikácie Intelligo - Tomato (MiaoMiao) - Tomato - Prijímať glykémie z aplikácie Tomato (zariadenie MiaoMiao) - GlucoRx Aidex - Aidex - Prijímať hodnoty glykémie zo senzora GlucoRx Aidex. - Náhodná glykémia - Vygeneruj náhodné dáta glykémií (iba Demo režim) - Gly - Odosielať glykémie do xDrip+ - V xDrip+ vyberte zdroj dát 640g/Eversense - Nastavenie nahrávania glykémie - Ulož výmenu senzora do NS - Vytvoriť udalosť \"Výmena senzora\" v NS automaticky pri spustení senzora Pôvodný vzhľad Vzhľad pre nízke rozlišenie diff --git a/plugins/main/src/main/res/values-sr-rCS/strings.xml b/plugins/main/src/main/res/values-sr-rCS/strings.xml index 2046cec927..e9e2429e2d 100644 --- a/plugins/main/src/main/res/values-sr-rCS/strings.xml +++ b/plugins/main/src/main/res/values-sr-rCS/strings.xml @@ -46,11 +46,6 @@ IOB: Bolus: Basal: - - Unapred podešena postavka insulina za Humalog i NovoRapid / NovoLog - Unapred podešena postavka insulina za Fiasp - Unapred podešena postavka insulina za Lyumjev - Omogućava definisanje vrhunca aktivnosti insulina i trebaju ga koriste samo napredni korisnici Prikažite informacije o tvom loop-u na tvom xDrip+ satu. @@ -62,16 +57,12 @@ Profil Definiši profil koji je dostupan bez internet veze. - - Program učenja Neke tipke za brzi pristup uobičajenim funkcijama Privremeni Basal Produženi Bolus Senzor Insulin - - Sigurnost tretmana insulin Prihvatite novi privremeni bazal: @@ -89,17 +80,6 @@ Tretmani Tretmani - - Integracija pumpe za pumpe koje još uvek nemaju upravljački program (Open Loop) - VIRTUALNA PUMPA - - Preuzimajte podatke GUK sa Nightscout-a - xDrip+ - Preuzimajte vrijednosti GUK od xDrip+. - Preuzimajte vrednosti GUK iz zakrpljene aplikacije Eversense. - Preuzimajte vrednosti GUK od Glimp-a. - Preuzimajte vrednosti GUK od 600SeriesAndroidUploader-a. - GUK diff --git a/plugins/main/src/main/res/values-sv-rSE/strings.xml b/plugins/main/src/main/res/values-sv-rSE/strings.xml index 2b858cf736..bc85bc3c5a 100644 --- a/plugins/main/src/main/res/values-sv-rSE/strings.xml +++ b/plugins/main/src/main/res/values-sv-rSE/strings.xml @@ -97,21 +97,6 @@ Statuskontroll misslyckad Skapade ett profilbyte Durationen måste vara större än 0 och en multipel av %1$d minuter. - - Lyumjev - Insulininställning för vanliga direktverkande insuliner som Humalog, Lispro, Apidra och Novorapid/Novolog - Insulininställning för ultrasnabba insuliner, t ex Fiasp - Insulininställning för Lyumjev - Låter dig ställa in tidpunkten för toppen på insulinets aktivitet. Bör bara användas av avancerade användare - INS - Peaktid för IOB-kurvan - Peaktid [min] - Free-Peak Oref - Rapid-Acting Oref - Ultra-Rapid Oref - %1$f tim DIA är för kort. Använder %2$f istället! - Novorapid, Novolog, Humalog, Apidra - Fiasp xDrip+ Statusrad (klocka) @@ -161,22 +146,6 @@ DIA Mål BAS - - Klart. Bra jobbat! - Inte slutfört ännu - Förfluten tid - Max IOB är korrekt angivet - BG tillgängligt från vald källa - Loop aktiverad - APS vald - Closed loop aktiverad - Mål - Inlärningsprogram - Vill du starta om målet? Du kan förlora de steg du gjort hittills. - Nästa - Föregående - Rensa avslutade - Rensa påbörjade Åtgärder Knappar för att snabbt komma åt vanliga funktioner @@ -196,18 +165,6 @@ kanylålder slanglös pump ålder Slanglös pump - - Begränsar bolus till %1$.1f enheter pga %2$s - Begränsar kolhydrater till %1$d g pga %2$s - Pumpen kan inte hantera temp basaler - Closed Loop inaktiverat i Inställningar - Du kör nu dev-versionen. Closed Loop inaktiverat. - Closed Loop-läget inaktiverat pga att en förlängd bolus är aktiv - SMB Alltid På och SMB Efter Kolhydrater är inaktiverat pga att den aktiva BG-källan inte stöder avancerad filtrering - SMB inte tillåtet i Open Loop - maxvärde i Inställningar - hård begränsning - Säkerhetsbegränsningar Visa \"statuslampor\" på hemskärmen Insulinålder - varning: [h] @@ -327,45 +284,6 @@ Beh SENS Graf - - Typ av virtuell pump - Pumpdefinition - Bolus: Steg =%1$s\nFörlängd bolus: [Steg=%2$s, duration =%3$smin -%4$sh] \nBasal: Steg=%5$s\nTempbasal: %6$s (av %7$s), duration =%8$smin -%9$sh\n%10$s - vPump - Integration för pumpar som ännu inte stöds av AndroidAPS (Open loop) - Virtuell pump - Inställningar för Virtuell pump - Ladda upp status till Nightscout - - NSClient BG - NS BG - Ladda ner BG-data från Nightscout - xDrip+ - Ta emot BG-data från xDrip+. - Patchad Dexcom-app - Dex - Ta emot BG-värden från \"Bygg din egen Dexcom-app\". - Eversense App (modifierad) - Ta emot BG-data från den modifierade -Eversense-appen. - Glimp - Ta emot BG-data från Glimp - Minimed 640G - Ta emot BG-data från 600SeriesAndroidUploader - Poctech - Ta emot BG-data från Poctechappen - Glunovo - Ta emot värden från Glunovo-appen - Tomato (MiaoMiao) - Tomato - Ta emot BG-data från tomato app (MiaoMiao-enhet) - Slumpgenerator för BG - Generera slumpmässiga BG-data (endast demo-läge) - BG - Skicka BG-data till xDrip+ - Välj \"640G/Eversense\" som datakälla i xDrip+ - Uppladdningsinställningar för BG - Logga sensorbyte till Nightscout Ursprungligt tema Lågupplöst tema diff --git a/plugins/main/src/main/res/values-tr-rTR/strings.xml b/plugins/main/src/main/res/values-tr-rTR/strings.xml index 8da2217a97..f13c29c1c6 100644 --- a/plugins/main/src/main/res/values-tr-rTR/strings.xml +++ b/plugins/main/src/main/res/values-tr-rTR/strings.xml @@ -101,21 +101,6 @@ Profil değiştirme yapıldı GBO süresi %1$d dakikanın katı ve 0\'dan büyük olmalıdır. Tek kullanımlık şifre kurulumu için QR Kodu - - Lyumjev - Humalog ve NovoRapid / NovoLog için İnsülin Profili - Fiasp için insülin Profili - Lyumjev için insülin ayarı - İnsülin aktivitesinin zirvesini tanımlamanıza izin verir ve yalnızca ileri düzey kullanıcılar tarafından kullanılmalıdır. - İNS - AİNS Eğrisi Tepe Zamanı - Tepe zamanı [min] - Serbest tepe Oref - Hızlı etkili Oref - Ultra Hızlı Oref - DIA %1$f çok kısa - bunun yerine %2$f kullanıyor! - Novorapid, Novolog, Humalog - Fiasp xDrip+ Durum Çizgisi (saat) @@ -171,23 +156,6 @@ İES HDF BAZ - - Tamamlandı, tebrikler! - Henüz tamamlanmadı - Geçen süre - Maksimal AİNS doğru şekilde ayarlandı - Seçili kaynaktan KŞ kullanılabilir - Senkronizasyon servisi yazma iznine sahip - Döngü etkin - APS Seçildi - Kapalı mod etkin - GRV - Eğitim programı - Görevleri sıfırlamak istiyor musunuz? Tüm yaptıklarınızı kaybedeceksiniz. - Sonraki - Geri - Komple tamamlandı - Yeniden Başla Eylemler Ortak özelliklere hızlıca erişmek için bazı düğmeler @@ -207,18 +175,6 @@ kanül yaşı yama pompa yaşı Yama pompa - - %2$s\'den dolayı yayma bolus %1$.1f Ü ile sınırlandırılıyor - %2$s\'den dolayı karbonhidratlar %1$d g ile sınırlandırılıyor - Pompa geçici bazal özellikli değil - Kapalı Döngü tercihlerde devre dışı bırakıldı - Geliştirici sürümü çalışıyor. Kapalı Döngü devre dışı. - Yayma bolus çalıştığı için kapalı döngü devre dışı bırakıldı - Aktif KŞ kaynağı gelişmiş filtrelemeyi desteklemediği için SMB (Super Micro Bolus) her zaman ve karbonhidratlardan sonra devre dışı bırakıldı - Açık Döngü modunda SMB\'ye (Super Micro Bolus) izin verilmiyor - tercihlerde maksimum değer - sert sınır - Tedavi güvenliği Ana ekranda durum ışıklarını göster Kanül ömrü uyarısı belirle (saat) [h] @@ -346,50 +302,6 @@ SENS Grafik ölçeği Grafik - - Sanal pompa tipi - Pompa tanımı - Bolus: Adım=%1$s\nYayma Bolus: [Adım=%2$s, Süre=%3$sdk-%4$ssa]\nBazal: Adım=%5$s\nGBO: %6$s (ile %7$s), Süre=%8$sdk-%9$ssa\n%10$s - VPOMP - Henüz herhangi bir sürücüye sahip olmayan pompalar için pompa entegrasyonu (Açık Döngü) - SANAL POMPA - Sanal pompa ayarları - Nightscout\'a durum aktar - - NSClient KŞ - NS KŞ - Nightscout\'tan KŞ verilerini yükler - xDrip+ - XDrip+\'ten KŞ değerlerini alır. - BYODA - BYODA - \'Kendi Dexcom Uygulamanızı Oluşturun\' uygulamasından KŞ değerlerini alın. - Eversense App (yamalı) - Yamalı Eversense uygulamasından KŞ değerleri alır. - Glimp - Glimp\'ten KŞ değerleri alır. - MM640g - 600SeriesAndroidUploader\'dan KŞ değerleri alır. - Poctech - Poctech uygulamasından KŞ değerlerini alır - Glunovo - Glunovo uygulamasından değerler alır - Intelligo - Intelligo uygulamasından değerler alır - Tomato (MiaoMiao) - Tomato - KŞ değerlerini Tomato uygulamasından (MiaoMiao Cihazından) al - GlucoRx Aidex - Aidex - GlucoRx Aidex CGMS\'den KŞ değerleri alır. - Rastgele KŞ - Rastgele KŞ verileri oluşturun (Yalnızca demo modunda) - - XDrip+\'a KŞ verilerini gönder - xDrip+ içerisinde 640g/Eversense veri kaynağı seç - KŞ yükleme ayarları - Sensör değişimlerini NS\'a kaydet - Sensör başlangıcında otomatik olarak NS\'de \"Sensör Değişimi\" olayı oluştur Orjinal görünüm Düşük çözünürlüklü görünüm diff --git a/plugins/main/src/main/res/values-zh-rCN/strings.xml b/plugins/main/src/main/res/values-zh-rCN/strings.xml index 25056e363a..fa3ba90a5e 100644 --- a/plugins/main/src/main/res/values-zh-rCN/strings.xml +++ b/plugins/main/src/main/res/values-zh-rCN/strings.xml @@ -98,21 +98,6 @@ 配置文件切换已创建 TBR(临时基础率) 的持续时间必须是 %1$d 分钟的倍数,且大于0。 用于安装一次性随机验证码的二维码 - - Lyumjev(超速效赖脯胰岛素) - 胰岛素预设为 Humalog(优泌乐) 和 NovoRapid(门冬)/NovoLog(诺和锐) - Fiasp 胰岛素预设 - 预设为Lyumjev速效赖脯胰岛素 - 允许您定义胰岛素作用的峰值, 并且只应由高级用户使用 - INS - IOB 曲线峰值时间 - 峰值时间 [min] - Free-Peak Oref - 速效 Oref - 超速效 Oref - DIA of %1$f 太短了,请使用 %2$f 代替 - 诺和锐, 门冬, 优泌乐 - Fiasp超速效 xDrip+状态线 (手表) @@ -168,22 +153,6 @@ DIA TARG 基础率 - - 完成了,做的好 - 尚未完成 - 已用时间 - 合理地设置最大 IOB - 所选的血糖值来源的血糖是可用的 - 闭环启用了 - APS已选择 - 闭环模式启用了 - 目标 - 学习计划 - 你想要重置已启动的目标? 你会失去已有的进度。 - 下一个 - 上一个 - 清除已完成 - 清除已启动 手动操作 一些快速访问常用功能的按钮 @@ -203,18 +172,6 @@ 导管年龄 patch 泵年龄 Patch 泵 - - 由于 %2$s, 将扩展大剂量限制为 %1$.1f U - 由于 %2$s, 将碳水化合物限制为 %1$d 克 - 这个泵无法设置临时基础率 - 在参数选项中禁用了闭环模式 - 正在运行开发版本,闭环被禁用了 - 由于运行扩展大剂量而禁用了闭环 - SMB always and after carbs disabled 因为实时的血糖来源不支持高级筛选 - 在开环模式下不允许使用SMB-微型大剂量 - 在参数选项里的最大值 - 硬限制 - 治疗安全 在主屏幕上显示状态指示灯 胰岛素状态灯警示阀值[小时] @@ -340,47 +297,6 @@ 灵敏度 图形缩放 绘图 - - 虚拟泵类型 - 泵定义 - 大剂量: Step=%1$s\n扩展大剂量: [Step=%2$s, 持续时间=%3$smin-%4$sh]\n基础率: Step=%5$s\nTBR临时基础率: %6$s (by %7$s), 持续时间=%8$smin-%9$sh\n%10$s - 虚拟泵 - 与我们还没有其驱动的泵集成(开环) - 虚拟泵 - 虚拟泵设置 - 将状态上传到 NS - - NSClient 血糖 - NS血糖 - 从 Nightscout 下载 血糖数据 - xDrip+ - 从 xDrip+ 接收血糖值。 - BYODA德康补丁版(构建你自己的德康应用Build Your Own Dexcom App) - BYODA - 从德康补丁版接收血糖数据(Build Your Own Dexcom App)。 - Everyang App (补丁) - 从 Eversense 补丁app接收血糖值。 - Glimp - 从 Glimp 接收血糖值。 - 美敦力640g - 从美敦力600Series 的AndroidUploader 接收血糖值。 - Poctech - 从 Poctech app 接收血糖值。 - Glunovo - 从Glunovo应用接收血糖数据。 - 番茄(喵喵) - 番茄 - 从番茄app(喵喵设备) 接收血糖值 - GlucoRx Aidex动泰 - Aidex动泰 - 从GlucoRx Aidex动泰持续葡萄糖监测系统接收血糖值。 - 随机血糖 - 生成随机血糖数据(仅限demo演示模式) - 血糖 - 将血糖数据发送到 xDrip + - 在 xDrip + 选择640g/Eversense 数据源 - 血糖上传设置 - 记录传感器更换至NS服务器 原始皮肤 低分辨率皮肤 diff --git a/plugins/main/src/main/res/values/arrays.xml b/plugins/main/src/main/res/values/arrays.xml index 0e75db8ee1..3360615473 100644 --- a/plugins/main/src/main/res/values/arrays.xml +++ b/plugins/main/src/main/res/values/arrays.xml @@ -12,36 +12,4 @@ @string/value_system_theme - - Generic AAPS - MDI - Accu-Chek Combo - Accu-Chek Spirit - Accu-Chek Insight - Accu-Chek Solo - Animas Ping - Animas Vibe - Cellnovo - DanaR - DanaR Korean - DanaRS - DanaRv2 - DanaI - Diaconn G8 - Eoflow Eopatch2 - Medtronic 512/712 - Medtronic 515/715 - Medtronic 522/722 - Medtronic 523/723 (Revel) - Medtronic 554/754 (Veo) - Medtronic 640G - Omnipod Dash - Omnipod Eros - Tandem t:slim - Tandem t:flex - Tandem t:slim G4 - Tandem t:slim X2 - YpsoPump - - \ No newline at end of file diff --git a/plugins/main/src/main/res/values/strings.xml b/plugins/main/src/main/res/values/strings.xml index 1da98970f4..1f1cc12b43 100644 --- a/plugins/main/src/main/res/values/strings.xml +++ b/plugins/main/src/main/res/values/strings.xml @@ -112,25 +112,6 @@ TBR duration must be a multiple of %1$d minutes and greater than 0. QR Code for setup one time password - - insulin_oref_peak - insulin_oref_peak_settings - - Lyumjev - Insulin preset for Humalog and NovoRapid / NovoLog - Insulin preset for Fiasp - Insulin preset for Lyumjev - Allows you to define the peak of the insulin activity and should only be used by advanced users - INS - IOB Curve Peak Time - Peak Time [min] - Free-Peak Oref - Rapid-Acting Oref - Ultra-Rapid Oref - DIA of %1$f too short - using %2$f instead! - Novorapid, Novolog, Humalog - Fiasp - xdripstatus_detailediob xdripstatus_showbgi @@ -198,24 +179,6 @@ TARG BAS - - Completed, well done! - Not completed yet - Time elapsed - Maximal IOB set properly - BG available from selected source - Synchronization service has write permission - Loop enabled - APS selected - Closed mode enabled - OBJ - Learning program - Do you want reset objective start? You may lose your progress. - Next - Prev - Clear finished - Clear started - Actions Some buttons to quickly access common features @@ -236,21 +199,6 @@ patch pump age Patch pump - - Limiting extended bolus to %1$.1f U because of %2$s - Limiting carbs to %1$d g because of %2$s - - Safety - Pump is not temp basal capable - Closed loop mode disabled in preferences - Running dev version. Closed loop is disabled. - Closed loop disabled because of running Extended bolus - SMB always and after carbs disabled because active BG source doesn\'t support advanced filtering - SMB not allowed in open loop mode - max value in preferences - hard limit - Treatments safety - show_calibration_button show_cgm_button @@ -399,60 +347,6 @@ Graph scale Graph - - virtualpump_uploadstatus - Virtual Pump Type - Pump Definition - Bolus: Step=%1$s\nExtended Bolus: [Step=%2$s, Duration=%3$smin-%4$sh]\nBasal: Step=%5$s\nTBR: %6$s (by %7$s), Duration=%8$smin-%9$sh\n%10$s - - VPUMP - Pump integration for pumps which don\'t have any driver yet (Open Loop) - VIRTUAL PUMP - Virtual pump settings - Upload status to NS - - - dexcom_lognssensorchange - last_processed_glunovo_timestamp - last_processed_intelligo_timestamp - - NSClient BG - NS BG - Downloads BG data from Nightscout - xDrip+ - Receive BG values from xDrip+. - BYODA - BYODA - Receive BG values from the \'Build Your Own Dexcom App\'. - Eversense App (patched) - EVR - Receive BG values from the patched Eversense app. - Glimp - Receive BG values from Glimp. - MM640g - Receive BG values from the 600SeriesAndroidUploader. - Poctech - Receive BG values from Poctech app - Glunovo - Receive values from Glunovo app - Intelligo - Receive values from Intelligo app - Tomato (MiaoMiao) - Tomato - Receive BG values from Tomato app (MiaoMiao device) - GlucoRx Aidex - Aidex - Receive BG values from GlucoRx Aidex CGMS. - Random BG - Generate random BG data (Demo mode only) - BG - - Send BG data to xDrip+ - In xDrip+ select 640g/Eversense data source - BG upload settings - Log sensor change to NS - Create event \"Sensor Change\" in NS automatically on sensor start - skin diff --git a/plugins/source/.gitignore b/plugins/source/.gitignore new file mode 100644 index 0000000000..42afabfd2a --- /dev/null +++ b/plugins/source/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/plugins/source/build.gradle b/plugins/source/build.gradle new file mode 100644 index 0000000000..5cbae0f81f --- /dev/null +++ b/plugins/source/build.gradle @@ -0,0 +1,28 @@ +plugins { + id 'com.android.library' + id 'kotlin-android' + id 'kotlin-kapt' + id 'kotlin-allopen' + id 'com.hiya.jacoco-android' +} + +apply from: "${project.rootDir}/core/main/android_dependencies.gradle" +apply from: "${project.rootDir}/core/main/android_module_dependencies.gradle" +apply from: "${project.rootDir}/core/main/allopen_dependencies.gradle" +apply from: "${project.rootDir}/core/main/test_dependencies.gradle" +apply from: "${project.rootDir}/core/main/jacoco_global.gradle" +android { + namespace 'info.nightscout.source' +} + + +dependencies { + implementation project(':app-wear-shared:shared') + implementation project(':database:entities') + implementation project(':database:impl') + implementation project(':core:interfaces') + implementation project(':core:main') + implementation project(':core:ns-sdk') + implementation project(':core:ui') + implementation project(':core:utils') +} \ No newline at end of file diff --git a/plugins/source/consumer-rules.pro b/plugins/source/consumer-rules.pro new file mode 100644 index 0000000000..e69de29bb2 diff --git a/plugins/source/proguard-rules.pro b/plugins/source/proguard-rules.pro new file mode 100644 index 0000000000..481bb43481 --- /dev/null +++ b/plugins/source/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile \ No newline at end of file diff --git a/plugins/source/src/main/AndroidManifest.xml b/plugins/source/src/main/AndroidManifest.xml new file mode 100644 index 0000000000..8ab266755d --- /dev/null +++ b/plugins/source/src/main/AndroidManifest.xml @@ -0,0 +1,12 @@ + + + + + + + + + + \ No newline at end of file diff --git a/plugins/main/src/main/java/info/nightscout/plugins/source/AidexPlugin.kt b/plugins/source/src/main/java/info/nightscout/source/AidexPlugin.kt similarity index 98% rename from plugins/main/src/main/java/info/nightscout/plugins/source/AidexPlugin.kt rename to plugins/source/src/main/java/info/nightscout/source/AidexPlugin.kt index 4a1a6f5aab..837b0ee908 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/source/AidexPlugin.kt +++ b/plugins/source/src/main/java/info/nightscout/source/AidexPlugin.kt @@ -1,4 +1,4 @@ -package info.nightscout.plugins.source +package info.nightscout.source import android.content.Context import androidx.work.WorkerParameters @@ -17,7 +17,6 @@ import info.nightscout.interfaces.plugin.PluginDescription import info.nightscout.interfaces.plugin.PluginType import info.nightscout.interfaces.receivers.Intents import info.nightscout.interfaces.source.BgSource -import info.nightscout.plugins.R import info.nightscout.rx.logging.AAPSLogger import info.nightscout.rx.logging.LTag import info.nightscout.shared.interfaces.ResourceHelper diff --git a/plugins/main/src/main/java/info/nightscout/plugins/source/BGSourceFragment.kt b/plugins/source/src/main/java/info/nightscout/source/BGSourceFragment.kt similarity index 98% rename from plugins/main/src/main/java/info/nightscout/plugins/source/BGSourceFragment.kt rename to plugins/source/src/main/java/info/nightscout/source/BGSourceFragment.kt index 048bc4317c..29808634f9 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/source/BGSourceFragment.kt +++ b/plugins/source/src/main/java/info/nightscout/source/BGSourceFragment.kt @@ -1,4 +1,4 @@ -package info.nightscout.plugins.source +package info.nightscout.source import android.os.Bundle import android.util.SparseArray @@ -29,9 +29,6 @@ import info.nightscout.interfaces.logging.UserEntryLogger import info.nightscout.interfaces.plugin.ActivePlugin import info.nightscout.interfaces.plugin.PluginBase import info.nightscout.interfaces.profile.ProfileFunction -import info.nightscout.plugins.R -import info.nightscout.plugins.databinding.SourceFragmentBinding -import info.nightscout.plugins.databinding.SourceItemBinding import info.nightscout.rx.AapsSchedulers import info.nightscout.rx.bus.RxBus import info.nightscout.rx.events.EventNewBG @@ -41,6 +38,8 @@ import info.nightscout.shared.extensions.toVisibility import info.nightscout.shared.interfaces.ResourceHelper import info.nightscout.shared.utils.DateUtil import info.nightscout.shared.utils.T +import info.nightscout.source.databinding.SourceFragmentBinding +import info.nightscout.source.databinding.SourceItemBinding import io.reactivex.rxjava3.disposables.CompositeDisposable import io.reactivex.rxjava3.kotlin.plusAssign import java.util.concurrent.TimeUnit diff --git a/plugins/main/src/main/java/info/nightscout/plugins/source/DexcomPlugin.kt b/plugins/source/src/main/java/info/nightscout/source/DexcomPlugin.kt similarity index 92% rename from plugins/main/src/main/java/info/nightscout/plugins/source/DexcomPlugin.kt rename to plugins/source/src/main/java/info/nightscout/source/DexcomPlugin.kt index 1217e047d5..c3471ccee7 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/source/DexcomPlugin.kt +++ b/plugins/source/src/main/java/info/nightscout/source/DexcomPlugin.kt @@ -1,4 +1,4 @@ -package info.nightscout.plugins.source +package info.nightscout.source import android.content.Context import android.content.Intent @@ -28,8 +28,6 @@ import info.nightscout.interfaces.plugin.PluginType import info.nightscout.interfaces.profile.Profile import info.nightscout.interfaces.source.BgSource import info.nightscout.interfaces.source.DexcomBoyda -import info.nightscout.plugins.R -import info.nightscout.plugins.source.activities.RequestDexcomPermissionActivity import info.nightscout.rx.logging.AAPSLogger import info.nightscout.rx.logging.LTag import info.nightscout.shared.extensions.safeGetInstalledPackages @@ -37,6 +35,7 @@ import info.nightscout.shared.interfaces.ResourceHelper import info.nightscout.shared.sharedPreferences.SP import info.nightscout.shared.utils.DateUtil import info.nightscout.shared.utils.T +import info.nightscout.source.activities.RequestDexcomPermissionActivity import javax.inject.Inject import javax.inject.Singleton import kotlin.math.abs @@ -47,7 +46,7 @@ class DexcomPlugin @Inject constructor( rh: ResourceHelper, aapsLogger: AAPSLogger, private val sp: SP, - private val dexcomMediator: DexcomMediator, + private val context: Context, config: Config ) : PluginBase( PluginDescription() @@ -77,7 +76,7 @@ class DexcomPlugin @Inject constructor( override fun onStart() { super.onStart() - dexcomMediator.requestPermissionIfNeeded() + requestPermissionIfNeeded() } // cannot be inner class because of needed injection @@ -222,6 +221,22 @@ class DexcomPlugin @Inject constructor( } } + override fun requestPermissionIfNeeded() { + if (ContextCompat.checkSelfPermission(context, PERMISSION) != PackageManager.PERMISSION_GRANTED) { + val intent = Intent(context, RequestDexcomPermissionActivity::class.java) + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) + context.startActivity(intent) + } + } + + override fun findDexcomPackageName(): String? { + val packageManager = context.packageManager + for (packageInfo in packageManager.safeGetInstalledPackages(0)) { + if (PACKAGE_NAMES.contains(packageInfo.packageName)) return packageInfo.packageName + } + return null + } + companion object { private val PACKAGE_NAMES = arrayOf( @@ -232,23 +247,4 @@ class DexcomPlugin @Inject constructor( ) const val PERMISSION = "com.dexcom.cgm.EXTERNAL_PERMISSION" } - - class DexcomMediator @Inject constructor(val context: Context) { - - fun requestPermissionIfNeeded() { - if (ContextCompat.checkSelfPermission(context, PERMISSION) != PackageManager.PERMISSION_GRANTED) { - val intent = Intent(context, RequestDexcomPermissionActivity::class.java) - intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) - context.startActivity(intent) - } - } - - fun findDexcomPackageName(): String? { - val packageManager = context.packageManager - for (packageInfo in packageManager.safeGetInstalledPackages(0)) { - if (PACKAGE_NAMES.contains(packageInfo.packageName)) return packageInfo.packageName - } - return null - } - } } diff --git a/plugins/main/src/main/java/info/nightscout/plugins/source/EversensePlugin.kt b/plugins/source/src/main/java/info/nightscout/source/EversensePlugin.kt similarity index 99% rename from plugins/main/src/main/java/info/nightscout/plugins/source/EversensePlugin.kt rename to plugins/source/src/main/java/info/nightscout/source/EversensePlugin.kt index ea965806fa..1d6167d0ae 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/source/EversensePlugin.kt +++ b/plugins/source/src/main/java/info/nightscout/source/EversensePlugin.kt @@ -1,4 +1,4 @@ -package info.nightscout.plugins.source +package info.nightscout.source import android.content.Context import androidx.work.WorkerParameters @@ -17,7 +17,6 @@ import info.nightscout.interfaces.plugin.PluginBase import info.nightscout.interfaces.plugin.PluginDescription import info.nightscout.interfaces.plugin.PluginType import info.nightscout.interfaces.source.BgSource -import info.nightscout.plugins.R import info.nightscout.rx.logging.AAPSLogger import info.nightscout.rx.logging.LTag import info.nightscout.shared.interfaces.ResourceHelper diff --git a/plugins/main/src/main/java/info/nightscout/plugins/source/GlimpPlugin.kt b/plugins/source/src/main/java/info/nightscout/source/GlimpPlugin.kt similarity index 98% rename from plugins/main/src/main/java/info/nightscout/plugins/source/GlimpPlugin.kt rename to plugins/source/src/main/java/info/nightscout/source/GlimpPlugin.kt index d529078a33..65292352f7 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/source/GlimpPlugin.kt +++ b/plugins/source/src/main/java/info/nightscout/source/GlimpPlugin.kt @@ -1,4 +1,4 @@ -package info.nightscout.plugins.source +package info.nightscout.source import android.content.Context import androidx.work.WorkerParameters @@ -15,7 +15,6 @@ import info.nightscout.interfaces.plugin.PluginBase import info.nightscout.interfaces.plugin.PluginDescription import info.nightscout.interfaces.plugin.PluginType import info.nightscout.interfaces.source.BgSource -import info.nightscout.plugins.R import info.nightscout.rx.logging.AAPSLogger import info.nightscout.rx.logging.LTag import info.nightscout.shared.interfaces.ResourceHelper diff --git a/plugins/main/src/main/java/info/nightscout/plugins/source/GlunovoPlugin.kt b/plugins/source/src/main/java/info/nightscout/source/GlunovoPlugin.kt similarity index 99% rename from plugins/main/src/main/java/info/nightscout/plugins/source/GlunovoPlugin.kt rename to plugins/source/src/main/java/info/nightscout/source/GlunovoPlugin.kt index cb283f732f..367ac7580e 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/source/GlunovoPlugin.kt +++ b/plugins/source/src/main/java/info/nightscout/source/GlunovoPlugin.kt @@ -1,4 +1,4 @@ -package info.nightscout.plugins.source +package info.nightscout.source import android.content.Context import android.net.Uri @@ -20,7 +20,6 @@ import info.nightscout.interfaces.plugin.PluginBase import info.nightscout.interfaces.plugin.PluginDescription import info.nightscout.interfaces.plugin.PluginType import info.nightscout.interfaces.source.BgSource -import info.nightscout.plugins.R import info.nightscout.rx.logging.AAPSLogger import info.nightscout.rx.logging.LTag import info.nightscout.shared.interfaces.ResourceHelper diff --git a/plugins/main/src/main/java/info/nightscout/plugins/source/IntelligoPlugin.kt b/plugins/source/src/main/java/info/nightscout/source/IntelligoPlugin.kt similarity index 99% rename from plugins/main/src/main/java/info/nightscout/plugins/source/IntelligoPlugin.kt rename to plugins/source/src/main/java/info/nightscout/source/IntelligoPlugin.kt index e17b655aa0..25b4511871 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/source/IntelligoPlugin.kt +++ b/plugins/source/src/main/java/info/nightscout/source/IntelligoPlugin.kt @@ -1,4 +1,4 @@ -package info.nightscout.plugins.source +package info.nightscout.source import android.content.Context import android.content.pm.PackageManager @@ -22,7 +22,6 @@ import info.nightscout.interfaces.plugin.PluginBase import info.nightscout.interfaces.plugin.PluginDescription import info.nightscout.interfaces.plugin.PluginType import info.nightscout.interfaces.source.BgSource -import info.nightscout.plugins.R import info.nightscout.rx.logging.AAPSLogger import info.nightscout.rx.logging.LTag import info.nightscout.shared.extensions.safeGetInstalledPackages diff --git a/plugins/main/src/main/java/info/nightscout/plugins/source/MM640gPlugin.kt b/plugins/source/src/main/java/info/nightscout/source/MM640gPlugin.kt similarity index 98% rename from plugins/main/src/main/java/info/nightscout/plugins/source/MM640gPlugin.kt rename to plugins/source/src/main/java/info/nightscout/source/MM640gPlugin.kt index 027e6bdc67..6b7dc0d46a 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/source/MM640gPlugin.kt +++ b/plugins/source/src/main/java/info/nightscout/source/MM640gPlugin.kt @@ -1,4 +1,4 @@ -package info.nightscout.plugins.source +package info.nightscout.source import android.content.Context import androidx.work.WorkerParameters @@ -15,7 +15,6 @@ import info.nightscout.interfaces.plugin.PluginBase import info.nightscout.interfaces.plugin.PluginDescription import info.nightscout.interfaces.plugin.PluginType import info.nightscout.interfaces.source.BgSource -import info.nightscout.plugins.R import info.nightscout.rx.logging.AAPSLogger import info.nightscout.rx.logging.LTag import info.nightscout.shared.interfaces.ResourceHelper diff --git a/plugins/main/src/main/java/info/nightscout/plugins/source/NSClientSourcePlugin.kt b/plugins/source/src/main/java/info/nightscout/source/NSClientSourcePlugin.kt similarity index 99% rename from plugins/main/src/main/java/info/nightscout/plugins/source/NSClientSourcePlugin.kt rename to plugins/source/src/main/java/info/nightscout/source/NSClientSourcePlugin.kt index 0f2edb1158..7e8f9309f0 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/source/NSClientSourcePlugin.kt +++ b/plugins/source/src/main/java/info/nightscout/source/NSClientSourcePlugin.kt @@ -1,4 +1,4 @@ -package info.nightscout.plugins.source +package info.nightscout.source import android.content.Context import androidx.work.WorkerParameters @@ -21,7 +21,6 @@ import info.nightscout.interfaces.plugin.PluginType import info.nightscout.interfaces.source.BgSource import info.nightscout.interfaces.source.DoingOwnUploadSource import info.nightscout.interfaces.source.NSClientSource -import info.nightscout.plugins.R import info.nightscout.rx.bus.RxBus import info.nightscout.rx.events.EventDismissNotification import info.nightscout.rx.logging.AAPSLogger diff --git a/plugins/main/src/main/java/info/nightscout/plugins/source/PoctechPlugin.kt b/plugins/source/src/main/java/info/nightscout/source/PoctechPlugin.kt similarity index 98% rename from plugins/main/src/main/java/info/nightscout/plugins/source/PoctechPlugin.kt rename to plugins/source/src/main/java/info/nightscout/source/PoctechPlugin.kt index 7e9de5b405..3bd3712103 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/source/PoctechPlugin.kt +++ b/plugins/source/src/main/java/info/nightscout/source/PoctechPlugin.kt @@ -1,4 +1,4 @@ -package info.nightscout.plugins.source +package info.nightscout.source import android.content.Context import androidx.work.WorkerParameters @@ -16,7 +16,6 @@ import info.nightscout.interfaces.plugin.PluginDescription import info.nightscout.interfaces.plugin.PluginType import info.nightscout.interfaces.source.BgSource import info.nightscout.interfaces.utils.JsonHelper.safeGetString -import info.nightscout.plugins.R import info.nightscout.rx.logging.AAPSLogger import info.nightscout.rx.logging.LTag import info.nightscout.shared.interfaces.ResourceHelper diff --git a/plugins/main/src/main/java/info/nightscout/plugins/source/RandomBgPlugin.kt b/plugins/source/src/main/java/info/nightscout/source/RandomBgPlugin.kt similarity index 94% rename from plugins/main/src/main/java/info/nightscout/plugins/source/RandomBgPlugin.kt rename to plugins/source/src/main/java/info/nightscout/source/RandomBgPlugin.kt index 5fec0528bc..2aeaf1b002 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/source/RandomBgPlugin.kt +++ b/plugins/source/src/main/java/info/nightscout/source/RandomBgPlugin.kt @@ -1,4 +1,4 @@ -package info.nightscout.plugins.source +package info.nightscout.source import android.os.Handler import android.os.HandlerThread @@ -14,9 +14,8 @@ import info.nightscout.interfaces.XDripBroadcast import info.nightscout.interfaces.plugin.PluginBase import info.nightscout.interfaces.plugin.PluginDescription import info.nightscout.interfaces.plugin.PluginType +import info.nightscout.interfaces.pump.VirtualPump import info.nightscout.interfaces.source.BgSource -import info.nightscout.plugins.R -import info.nightscout.plugins.pump.virtual.VirtualPumpPlugin import info.nightscout.rx.logging.AAPSLogger import info.nightscout.rx.logging.LTag import info.nightscout.shared.interfaces.ResourceHelper @@ -39,7 +38,7 @@ class RandomBgPlugin @Inject constructor( private val sp: SP, private val repository: AppRepository, private val xDripBroadcast: XDripBroadcast, - private val virtualPumpPlugin: VirtualPumpPlugin, + private val virtualPump: VirtualPump, private val config: Config ) : PluginBase( PluginDescription() @@ -94,7 +93,7 @@ class RandomBgPlugin @Inject constructor( } override fun specialEnableCondition(): Boolean { - return isRunningTest() || config.isUnfinishedMode() || virtualPumpPlugin.isEnabled() && config.isEngineeringMode() + return isRunningTest() || config.isUnfinishedMode() || virtualPump.isEnabled() && config.isEngineeringMode() } private fun handleNewData() { diff --git a/plugins/main/src/main/java/info/nightscout/plugins/source/TomatoPlugin.kt b/plugins/source/src/main/java/info/nightscout/source/TomatoPlugin.kt similarity index 98% rename from plugins/main/src/main/java/info/nightscout/plugins/source/TomatoPlugin.kt rename to plugins/source/src/main/java/info/nightscout/source/TomatoPlugin.kt index 93afb3bf50..07d56fc0f5 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/source/TomatoPlugin.kt +++ b/plugins/source/src/main/java/info/nightscout/source/TomatoPlugin.kt @@ -1,4 +1,4 @@ -package info.nightscout.plugins.source +package info.nightscout.source import android.content.Context import androidx.work.WorkerParameters @@ -14,7 +14,6 @@ import info.nightscout.interfaces.plugin.PluginBase import info.nightscout.interfaces.plugin.PluginDescription import info.nightscout.interfaces.plugin.PluginType import info.nightscout.interfaces.source.BgSource -import info.nightscout.plugins.R import info.nightscout.rx.logging.AAPSLogger import info.nightscout.rx.logging.LTag import info.nightscout.shared.interfaces.ResourceHelper diff --git a/plugins/main/src/main/java/info/nightscout/plugins/source/XdripPlugin.kt b/plugins/source/src/main/java/info/nightscout/source/XdripPlugin.kt similarity index 97% rename from plugins/main/src/main/java/info/nightscout/plugins/source/XdripPlugin.kt rename to plugins/source/src/main/java/info/nightscout/source/XdripPlugin.kt index a6b8d715dd..9d2ea18dd7 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/source/XdripPlugin.kt +++ b/plugins/source/src/main/java/info/nightscout/source/XdripPlugin.kt @@ -1,4 +1,4 @@ -package info.nightscout.plugins.source +package info.nightscout.source import android.content.Context import androidx.work.WorkerParameters @@ -16,7 +16,7 @@ import info.nightscout.interfaces.plugin.PluginType import info.nightscout.interfaces.receivers.Intents import info.nightscout.interfaces.source.BgSource import info.nightscout.interfaces.source.DoingOwnUploadSource -import info.nightscout.plugins.R +import info.nightscout.interfaces.source.XDrip import info.nightscout.rx.logging.AAPSLogger import info.nightscout.rx.logging.LTag import info.nightscout.shared.interfaces.ResourceHelper @@ -36,7 +36,7 @@ class XdripPlugin @Inject constructor( .pluginName(R.string.xdrip) .description(R.string.description_source_xdrip), aapsLogger, rh, injector -), BgSource, DoingOwnUploadSource { +), BgSource, DoingOwnUploadSource, XDrip { private var advancedFiltering = false override var sensorBatteryLevel = -1 diff --git a/plugins/main/src/main/java/info/nightscout/plugins/source/activities/RequestDexcomPermissionActivity.kt b/plugins/source/src/main/java/info/nightscout/source/activities/RequestDexcomPermissionActivity.kt similarity index 86% rename from plugins/main/src/main/java/info/nightscout/plugins/source/activities/RequestDexcomPermissionActivity.kt rename to plugins/source/src/main/java/info/nightscout/source/activities/RequestDexcomPermissionActivity.kt index 97d2ecba8c..142601e644 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/source/activities/RequestDexcomPermissionActivity.kt +++ b/plugins/source/src/main/java/info/nightscout/source/activities/RequestDexcomPermissionActivity.kt @@ -1,8 +1,8 @@ -package info.nightscout.plugins.source.activities +package info.nightscout.source.activities import android.os.Bundle import info.nightscout.core.ui.activities.DialogAppCompatActivity -import info.nightscout.plugins.source.DexcomPlugin +import info.nightscout.source.DexcomPlugin class RequestDexcomPermissionActivity : DialogAppCompatActivity() { diff --git a/plugins/main/src/main/java/info/nightscout/plugins/di/SourceModule.kt b/plugins/source/src/main/java/info/nightscout/source/di/SourceModule.kt similarity index 65% rename from plugins/main/src/main/java/info/nightscout/plugins/di/SourceModule.kt rename to plugins/source/src/main/java/info/nightscout/source/di/SourceModule.kt index cc2fcb366a..2aec6c6d5a 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/di/SourceModule.kt +++ b/plugins/source/src/main/java/info/nightscout/source/di/SourceModule.kt @@ -1,21 +1,22 @@ -package info.nightscout.plugins.di +package info.nightscout.source.di import dagger.Binds import dagger.Module import dagger.android.ContributesAndroidInjector +import info.nightscout.interfaces.source.DexcomBoyda import info.nightscout.interfaces.source.NSClientSource -import info.nightscout.plugins.profile.ProfilePlugin -import info.nightscout.plugins.source.AidexPlugin -import info.nightscout.plugins.source.BGSourceFragment -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.NSClientSourcePlugin -import info.nightscout.plugins.source.PoctechPlugin -import info.nightscout.plugins.source.TomatoPlugin -import info.nightscout.plugins.source.XdripPlugin -import info.nightscout.plugins.source.activities.RequestDexcomPermissionActivity +import info.nightscout.interfaces.source.XDrip +import info.nightscout.source.AidexPlugin +import info.nightscout.source.BGSourceFragment +import info.nightscout.source.DexcomPlugin +import info.nightscout.source.EversensePlugin +import info.nightscout.source.GlimpPlugin +import info.nightscout.source.MM640gPlugin +import info.nightscout.source.NSClientSourcePlugin +import info.nightscout.source.PoctechPlugin +import info.nightscout.source.TomatoPlugin +import info.nightscout.source.XdripPlugin +import info.nightscout.source.activities.RequestDexcomPermissionActivity @Module( includes = [ @@ -28,7 +29,6 @@ abstract class SourceModule { @ContributesAndroidInjector abstract fun contributesBGSourceFragment(): BGSourceFragment - @ContributesAndroidInjector abstract fun contributesNSProfileWorker(): ProfilePlugin.NSProfileWorker @ContributesAndroidInjector abstract fun contributesNSClientSourceWorker(): NSClientSourcePlugin.NSClientSourceWorker @ContributesAndroidInjector abstract fun contributesXdripWorker(): XdripPlugin.XdripWorker @ContributesAndroidInjector abstract fun contributesDexcomWorker(): DexcomPlugin.DexcomWorker @@ -43,6 +43,9 @@ abstract class SourceModule { @Module interface Bindings { + @Binds fun bindNSClientSource(nsClientSourcePlugin: NSClientSourcePlugin): NSClientSource + @Binds fun bindDexcomBoyda(dexcomPlugin: DexcomPlugin): DexcomBoyda + @Binds fun bindXDrip(xdripPlugin: XdripPlugin): XDrip } } \ No newline at end of file diff --git a/plugins/main/src/main/res/drawable/ic_dice.xml b/plugins/source/src/main/res/drawable/ic_dice.xml similarity index 100% rename from plugins/main/src/main/res/drawable/ic_dice.xml rename to plugins/source/src/main/res/drawable/ic_dice.xml diff --git a/plugins/main/src/main/res/layout/source_fragment.xml b/plugins/source/src/main/res/layout/source_fragment.xml similarity index 91% rename from plugins/main/src/main/res/layout/source_fragment.xml rename to plugins/source/src/main/res/layout/source_fragment.xml index f56d3e838c..e31cab2e0a 100644 --- a/plugins/main/src/main/res/layout/source_fragment.xml +++ b/plugins/source/src/main/res/layout/source_fragment.xml @@ -4,7 +4,7 @@ android:layout_height="match_parent" android:orientation="vertical" android:paddingTop="2dp" - tools:context=".source.BGSourceFragment"> + tools:context=".BGSourceFragment"> + app:srcCompat="@drawable/ic_flat" + android:contentDescription="@string/direction" /> + + + Laai BG data af vanaf Nightscout + Eversense App (bygewerk) + Ontvang BG waardes uit die gelapte Eversense toep. + Ontvang BG waardes vanaf Glimp. + Onvang BG waardes vanaf die 600SeriesAndroidUploader. + Poctech + Ontvang BG waardes van Poctech toepassing + Tomato (MiaoMiao) + Tomato + Ontvang BG waardes vanaf Tomato toep (MiaoMiao toestel) + BG oplaai instellings + diff --git a/plugins/source/src/main/res/values-bg-rBG/strings.xml b/plugins/source/src/main/res/values-bg-rBG/strings.xml new file mode 100644 index 0000000000..0724dc5059 --- /dev/null +++ b/plugins/source/src/main/res/values-bg-rBG/strings.xml @@ -0,0 +1,21 @@ + + + + Изтегля стойности на КЗ от Nightscout + xDrip+ + Получаване на данни за КЗ от xDrip+. + BYODA + BYODA + Eversense приложение(модифицирано) + Получава данни за КЗ от модифицираното приложение на Eversense. + Получава данни за КЗ от Glimp. + Получават стойности на КЗ от 600SeriesAndroidUploader. + Poctech + Получавай данни за КЗ от Poctech апликацията. + Глуново + Получавай данните от Glunowo апликацията + Tomato(MяоМяо) + Tomato + Получавай КЗ от Tomato апликация (устройство МяоМяо) + Настройки при качване на КЗ към Nightscout + diff --git a/plugins/source/src/main/res/values-ca-rES/strings.xml b/plugins/source/src/main/res/values-ca-rES/strings.xml new file mode 100644 index 0000000000..f43b3c3f92 --- /dev/null +++ b/plugins/source/src/main/res/values-ca-rES/strings.xml @@ -0,0 +1,22 @@ + + + + Descarrega dades de glucèmia des de Nightscout + xDrip+ + Rebre valors de glucèmia de xDrip+. + Dexcom (BYODA) + BYODA + Rebre els valors de glucosa de l\'aplicació Dexcom \'Build Your Own Device\'. + App Eversense (\"parxejada\") + Rebre valors de glucèmia de l\'app Eversense \"parxejada\". + Rebre valors de glucèmia de Glimp. + Rebre valors de glucèmia del 600SeriesAndroidUploader. + Poctech + Rebre valors de glucèmia de l\'app Poctech + Glunovo + Rebre valors de l\'app Glunovo + Tomato (MiaoMiao) + Tomato + Rebre valors de glucèmia de l\'app Tomato (dispositiu MiaoMiao) + Configuració enviament dades glucèmia + diff --git a/plugins/source/src/main/res/values-cs-rCZ/strings.xml b/plugins/source/src/main/res/values-cs-rCZ/strings.xml new file mode 100644 index 0000000000..c6b21df27b --- /dev/null +++ b/plugins/source/src/main/res/values-cs-rCZ/strings.xml @@ -0,0 +1,39 @@ + + + + Glykémie z NS + NSGL + Příjem glykémií z Nightscoutu + xDrip+ + Příjem glykémií z xDripu+. + BYODA + BYODA + Příjem hodnot glykémií z upravené aplikace Dexcom (BYODA). + Eversense aplikace (upravená) + Příjem glykémií z modifikované Eversense aplikace. + Glimp + Příjem glykémií z Glimpu. + MM640g + Příjem glykémií z Uploaderu 640G. + Poctech + Získávat glykémie z aplikace Poctech + Glunovo + Získávat glykémie z aplikace Glunovo + Intelligo + Přijímat hodnoty z aplikace Intelligo + Tomato (MiaoMiao) + Tomato + Přijímat hodnoty glykémií z Tomato aplikace (MiaoMiao zařízení) + GlucoRx Aidex + Aidex + Přijímat hodnoty glykémie ze senzoru GlucoRx Aidex. + Náhodná glykémie + Generovat náhodná data glykémie (pouze režim Demo) + Gly + Odesílat data do xDrip+ + V xDrip+ vyberte zdroj dat 640g/Eversense + Nastavení nahrávání glykémií + Zaznamenávat výměnu senzoru do NS + Vytvořit událost \"Výměna senzoru\" v NS automaticky po spuštění senzoru + směr + diff --git a/plugins/source/src/main/res/values-da-rDK/strings.xml b/plugins/source/src/main/res/values-da-rDK/strings.xml new file mode 100644 index 0000000000..74831ff338 --- /dev/null +++ b/plugins/source/src/main/res/values-da-rDK/strings.xml @@ -0,0 +1,26 @@ + + + + Downloader BG data fra Nightscout + xDrip+ + Modtag BG-værdier fra xDrip+. + BYODA + BYODA + Modtag BS-værdier fra \'Byg din egen Dexcom App\'. + Eversense App (patched) + Modtag BG værdier fra den patchede Eversense app. + Modtag BG-værdier fra Glimp. + Modtag BG-værdier fra 600SeriesAndroidUploader. + Poctech + Modtag BS-værdier fra Poctech app + Glunovo + Modtag værdier fra Glunovo app + Intelligo + Modtag værdier fra Intelligo-appen + Tomato (MiaoMiao) + Tomato + Modtag BS-værdier fra Tomato-appen (MiaoMiao enhed) + Aidex + Modtag BG-værdier fra GlucoRx Aidex CGMS. + BS upload indstillinger + diff --git a/plugins/source/src/main/res/values-de-rDE/strings.xml b/plugins/source/src/main/res/values-de-rDE/strings.xml new file mode 100644 index 0000000000..f62cc41420 --- /dev/null +++ b/plugins/source/src/main/res/values-de-rDE/strings.xml @@ -0,0 +1,26 @@ + + + + Lade Blutzuckerdaten von Nightscout + xDrip+ + Empfange Blutzuckerwerte von xDrip+. + BYODA + BYODA + Erhalte BZ-Werte von der \'Build Your Own Dexcom App\'. + Eversense App (gepatcht) + Empfange BZ-Werte von der gepatchten Eversense-App. + Empfange Blutzuckerwerte von Glimp. + Empfange Blutzuckerwerte vom 600SeriesAndroidUploader. + Poctech + Empfange Blutzucker-Werte von der Poctech-App. + Glunovo + Werte von der Glunovo App erhalten + Intelligo + Empfange Werte von der Intelligo App + Tomato (MiaoMiao) + Tomato + Empfange Blutzucker-Werte von der Tomato-App (MiaoMiao-Geräte) + Aidex + Erhalte BG-Werte von GlucoRx Aidex CGMS. + BZ Upload Einstellungen + diff --git a/plugins/source/src/main/res/values-el-rGR/strings.xml b/plugins/source/src/main/res/values-el-rGR/strings.xml new file mode 100644 index 0000000000..0458c2f588 --- /dev/null +++ b/plugins/source/src/main/res/values-el-rGR/strings.xml @@ -0,0 +1,15 @@ + + + + Λήψη δεδομένων BG από Nightscout + Eversense App (τροποποιημένη) + Λάβετε τις τιμές BG από την εφαρμογή του Eversense. + Λάβετε τις τιμές BG από το Glimp. + Λάβετε τις τιμές BG από το 600SeriesAndroidUploader. + Poctech + Λάβετε τις τιμές BG από την εφαρμογή Poctech + Tomato (MiaoMiao) + Tomato + Λάβετε τιμές BG από Tomato app (MiaoMiao) + Ανέβασμα ρυθμίσεων BG + diff --git a/plugins/source/src/main/res/values-es-rES/strings.xml b/plugins/source/src/main/res/values-es-rES/strings.xml new file mode 100644 index 0000000000..d1e10c327d --- /dev/null +++ b/plugins/source/src/main/res/values-es-rES/strings.xml @@ -0,0 +1,38 @@ + + + + NSClient BG + NS BG + Recibir los datos de glucosa de Nightscout + xDrip+ + Recibir los valores de glucosa de xDrip+ + Dexcom (BYODA) + BYODA + Recibir los valores de glucosa de la aplicación Dexcom \'Build Your Own Device\' + Eversense App (parcheada) + Recibir los valores de glucosa de la aplicación Eversense parcheada. + Glimp + Recibir valores de glucosa de Glimp. + MM640g + Recibir los valores de glucosa del 600SeriesAndroidUploader. + Poctech + Recibir los valores de glucosa de Poctech + Glunovo + Recibir los valores de glucosa de la aplicación Glunovo + Intelligo + Recibir los valores de glucosa de Intelligo + Tomato (MiaoMiao) + Tomato + Recibir los valores de glucosa de Tomato App (MiaoMiao) + GlucoRx Aidex + Aidex + Recibir los valores de glucosa de GlucoRx Aidex CGMS + Glucosa aleatoria + Generar datos aleatorios de glucosa (sólo modo Demo) + BG + Enviar datos de glucosa a xDrip+ + En xDrip+, selecciona 640G/Eversense como fuente de datos + Ajuste de subida de datos de glucosa + Registro de cambio de sensor en Nightscout + Crear evento \"Cambio de sensor\" en Nightscout automáticamente al iniciar el sensor + diff --git a/plugins/source/src/main/res/values-fr-rFR/strings.xml b/plugins/source/src/main/res/values-fr-rFR/strings.xml new file mode 100644 index 0000000000..bfdf27b888 --- /dev/null +++ b/plugins/source/src/main/res/values-fr-rFR/strings.xml @@ -0,0 +1,38 @@ + + + + Glycémie NSClient + Gly NS + Télécharge les glycémies depuis Nightscout + xDrip+ + Recevoir les glycémies depuis xDrip+. + BYODA + BYODA + Recevoir les valeurs de glycémie de l’application Dexcom patchée (BYODA). + App Eversense (patché) + Recevoir les valeurs de glycémie de l’app Eversense patchée. + Glimp + Recevoir les glycémies depuis Glimp. + Medtronic 640g + Recevoir les glycémies depuis le 600SeriesAndroidUploder. + Poctech + Recevoir les glycémies depuis l\'app Poctech + Glunovo + Recevoir des valeurs de l\'application Glunovo + Intelligo + Recevoir des valeurs depuis l\'application Intelligo + Tomato (MiaoMiao) + Tomato + Recevoir les valeurs de glycémie de l\'application Tomato (appareil MiaoMiao) + GlucoRx Aidex + Aidex + Recevoir les valeurs de glycémie du MGC GlucoRx Aidex. + Gly Aléatoire + Générer des glycémies aléatoires (mode démo uniquement) + Gly + Transmettre les Gly vers xDrip+ + Dans xDrip+ veuillez séléctionner 640g/Eversense comme source de données + Paramètres de téléchargement des glycémies + Enreg. du changement de capteur sur NS + Créer automatiquement un événement \"Changement de capteur\" dans NS au démarrage du capteur + diff --git a/plugins/source/src/main/res/values-ga-rIE/strings.xml b/plugins/source/src/main/res/values-ga-rIE/strings.xml new file mode 100644 index 0000000000..ffb3c50b04 --- /dev/null +++ b/plugins/source/src/main/res/values-ga-rIE/strings.xml @@ -0,0 +1,11 @@ + + + + Sonraí a íoslódáil ó Nightscout + xDrip+ + Luachanna BG a fháil ó xDrip+. + Luachanna BG a fháil ón 600SeriesAndroidUploader. + Poctech + Tomato (MiaoMiao) + Tomato + diff --git a/plugins/source/src/main/res/values-hr-rHR/strings.xml b/plugins/source/src/main/res/values-hr-rHR/strings.xml new file mode 100644 index 0000000000..a2ed58684d --- /dev/null +++ b/plugins/source/src/main/res/values-hr-rHR/strings.xml @@ -0,0 +1,13 @@ + + + + Preuzima podatke o GUK-u s Nightscout-a + Preuzima podatke o GUK-a s xDrip+. + Primajte vrijednosti GUK-a iz zakrpane aplikacije Eversense. + Primajte vrijednosti GUK-a od Glimpa. + Primajte vrijednosti glukoze u krvi od 600SeriesAndroidUploader. + Intelligo + Primite vrijednosti iz aplikacije Intelligo + Aidex + Primite vrijednosti GK od GlucoRx Aidex CGMS. + diff --git a/plugins/source/src/main/res/values-hu-rHU/strings.xml b/plugins/source/src/main/res/values-hu-rHU/strings.xml new file mode 100644 index 0000000000..ec1117256e --- /dev/null +++ b/plugins/source/src/main/res/values-hu-rHU/strings.xml @@ -0,0 +1,7 @@ + + + + Poctech + Tomato (MiaoMiao) + Tomato + diff --git a/plugins/source/src/main/res/values-it-rIT/strings.xml b/plugins/source/src/main/res/values-it-rIT/strings.xml new file mode 100644 index 0000000000..2a8e8702d9 --- /dev/null +++ b/plugins/source/src/main/res/values-it-rIT/strings.xml @@ -0,0 +1,38 @@ + + + + BG NSClient + BG NS + Scarica dati glicemia da Nightscout + xDrip+ + Ricevi valori glicemia da xDrip+. + BYODA + BYODA + Ricevi valori glicemia dall\'app Dexcom ottenuta con \'Build Your Own Dexcom App\'. + Eversense app (modificata) + Ricevi valori glicemia dall\'app Eversense modificata. + Glimp + Ricevi valori glicemia da Glimp. + MM640g + Ricevi valori glicemia da 600SeriesAndroidUploader. + Poctech + Ricevi valori glicemia da app Poctech + Glunovo + Ricevi valori glicemia da app Glunovo + Intelligo + Ricevi valori da app Intelligo + Tomato (MiaoMiao) + Tomato + Ricevi valori glicemia da app Tomato (dispositivo MiaoMiao) + GlucoRx Aidex + GlucoRx Aidex + Ricevi valori glicemia da CGM GlucoRx Aidex. + BG casuale + Genera dati glicemia casuali (solo modalità demo) + BG + Invia dati BG a xDrip+ + In xDrip+ seleziona origine dati 640g/Eversense + Impostazioni caricamento BG + Registra cambio sensore in NS + Crea evento \"Cambio Sensore\" in NS all\'avvio del sensore + diff --git a/plugins/source/src/main/res/values-iw-rIL/strings.xml b/plugins/source/src/main/res/values-iw-rIL/strings.xml new file mode 100644 index 0000000000..88ad6ce57c --- /dev/null +++ b/plugins/source/src/main/res/values-iw-rIL/strings.xml @@ -0,0 +1,26 @@ + + + + הורדת ערכי סוכר בדם מ-Nightscout + xDrip+ + קבלת ערכי סוכר מ-xDrip. + BYODA + BYODA + השתמש בנתוני הסוכר מאפליקציית \"בנה לעצמך דקסקום\" (BYODA). + אפליקלציית Eversense (עם פאץ\') + קבלת ערכי רמת סוכר מאפליקציית Eversense עם פאץ\'. + קבלת ערכי סוכר בדם מאפליקציית Glimp. + קבלת ערכי סוכר בדם מ-600SeriesAndroidUploader. + Poctech + קבלת ערכי סוכר מיישום Poctech + Glunovo + קבלת ערכי סוכר מיישום Glunovo + Intelligo + קבלת ערכי סוכר מיישום Intelligo + Tomato (MiaoMiao) + Tomato + קבלת ערכי סוכר מאפליקציית Tomato (התקן MiaoMiao) + Aidex + קבלת נתוני סוכר מחיישני GlucoRx Aidex. + הגדרות העלאת ערכי סוכר בדם + diff --git a/plugins/source/src/main/res/values-ja-rJP/strings.xml b/plugins/source/src/main/res/values-ja-rJP/strings.xml new file mode 100644 index 0000000000..c1e70718e3 --- /dev/null +++ b/plugins/source/src/main/res/values-ja-rJP/strings.xml @@ -0,0 +1,4 @@ + + + + diff --git a/plugins/source/src/main/res/values-ko-rKR/strings.xml b/plugins/source/src/main/res/values-ko-rKR/strings.xml new file mode 100644 index 0000000000..d15c2e5f53 --- /dev/null +++ b/plugins/source/src/main/res/values-ko-rKR/strings.xml @@ -0,0 +1,17 @@ + + + + Nightscout에서 다운로드하여 혈당값 받기 + xDrip+ + xDrip+에서 혈당값 받기 + Eversense 앱(패치버전) + 패치된 Eversense 앱에서 혈당값 받기 + Glimp에서 혈당값 받기 + 600SeriesAndroidUploader에서 혈당값 받기 + Poctech + Poctech 앱에서 혈당값 받기 + Tomato (MiaoMiao) + Tomato + 혈당값이 Tomato앱(MiaoMaio장치) 으로부터 수신되었습니다. + 혈당 업로드 설정 + diff --git a/plugins/source/src/main/res/values-lt-rLT/strings.xml b/plugins/source/src/main/res/values-lt-rLT/strings.xml new file mode 100644 index 0000000000..049e5b41b2 --- /dev/null +++ b/plugins/source/src/main/res/values-lt-rLT/strings.xml @@ -0,0 +1,27 @@ + + + + Gauti kraujo gliukozės vertes iš Nightscout + xDrip+ + Gauti kraujo gliukozės reikšmes iš xDrip+. + BYODA + BYODA + Gauti kraujo gliukozės reikšmes iš \'Build Your Own Dexcom App\'. + Eversense programėlė (modifikuota) + Gauti kraujo gliukozės vertes iš modifikuotos Eversense programėlės. + Gauti kraujo gliukozės vertes iš Glimp. + Gauti kraujo gliukozės vertes iš 600SeriesAndroidUploader. + Poctech + Gauti KG vertes iš Poctech programėlės + Glunovo + Gauti KG reikšmes iš Glunovo programos + Intelligo + Gauti KG reikšmes iš Intelligo programos + Tomato (MiaoMiao) + Tomato + Gauti KG vertes iš Tomato programėlės (MiaoMiao) + GlucoRx Aidex + Aidex + Gauti KG reikšmes iš GlucoRx Aidex CGMS programos. + KG duomenų perdavimo nustatymai + diff --git a/plugins/source/src/main/res/values-nl-rNL/strings.xml b/plugins/source/src/main/res/values-nl-rNL/strings.xml new file mode 100644 index 0000000000..b798634790 --- /dev/null +++ b/plugins/source/src/main/res/values-nl-rNL/strings.xml @@ -0,0 +1,31 @@ + + + + NSClient BG + NS BG + Download BG waardes van Nightscout + xDrip+ + Ontvang BG waardes van xDrip+. + BYODA + BYODA + Ontvang BG waarden van de \'Build Your Own Dexcom App\' (BYODA). + Eversense App (aangepast) + Ontvang BG waardes van de aangepaste Eversense app. + Glimp + Ontvang BG waardes van Glimp. + MM640g + Ontvang BG waardes van 600SeriesAndroidUploader. + Poctech + Ontvang BG waardes van Poctech app + Glunovo + Ontvang waardes van Glunovo app + Intelligo + Ontvang waarden van de Intelligo app + Tomato (MiaoMiao) + Tomato + Ontvang BG waardes van Tomato app (MiaoMiao apparaatje) + GlucoRx Aidex + Aidex + Ontvang BG waarden van GlucoRx Aidex CGMS. + BG upload instellingen + diff --git a/plugins/source/src/main/res/values-no-rNO/strings.xml b/plugins/source/src/main/res/values-no-rNO/strings.xml new file mode 100644 index 0000000000..c8bac042bb --- /dev/null +++ b/plugins/source/src/main/res/values-no-rNO/strings.xml @@ -0,0 +1,38 @@ + + + + NSClient BS + NS BS + Last ned BS-verdier fra Nightscout + xDrip+ + Motta BS-verdier fra xDrip+. + BYODA + BYODA + Motta BS verdier fra \'Build Your Own Dexcom App\'. + Eversense App (patched) + Motta BS-verdier fra den modifiserte Eversense-appen. + Glimp + Motta BS-verdier fra Glimp. + MM640G + Motta BS-verdier fra 600SeriesAndroidUploader. + Poctech + Motta BS verdier fra Poctech app + Glunovo + Motta BS verdier fra Glunovo app + Intelligo + Motta BS-verdier fra Intelligo-app + Tomato (MiaoMiao) + Tomato + Motta BS verdier fra Tomato app (MiaoMiao enhet) + GlucoRx Aidex + Aidex + Motta BS verdier fra GlucoRx Aidex CGM. + Vilkårlig BS + Generer vilkårlige BS data (kun demo formål) + BS + Send BS data til xDrip+ + I xDrip+, velg 640G/Eversens som datakilde + Innstillinger for opplasting av BS + Logg sensor bytte til NS + Opprett hendelse \"Sensor bytte\" automatisk i NS ved start av sensoren + diff --git a/plugins/source/src/main/res/values-pl-rPL/strings.xml b/plugins/source/src/main/res/values-pl-rPL/strings.xml new file mode 100644 index 0000000000..38c9cad9c8 --- /dev/null +++ b/plugins/source/src/main/res/values-pl-rPL/strings.xml @@ -0,0 +1,22 @@ + + + + Pobieraj wartości BG z Nightscout + xDrip+ + Pobieraj wartości BG z xDrip+. + Dexcom Patched + DEX.PATCH. + Pobieraj glikemię ze spatchowanej aplikacji Dexcom. + Apka Eversense (spatchowana) + Pobieraj wartości BG ze spatchowanej aplikacji Eversense. + Pobieraj wartości BG z Glimp. + Pobieraj wartości BG z uploadera pomp serii 600. + Poctech + Odczytuj wartości BG z aplikacji Poctech + Glunovo + Otrzymuj wartości z aplikacji Glunovo + Tomato (MiaoMiao) + Tomato + Otrzymuj poziomy cukru (BG) z Apki Tomato) (urządzenie MiaoMiao) + Ustawienia wysyłania wartości BG (poziomów cukru) + diff --git a/plugins/source/src/main/res/values-pt-rBR/strings.xml b/plugins/source/src/main/res/values-pt-rBR/strings.xml new file mode 100644 index 0000000000..6766e32d0e --- /dev/null +++ b/plugins/source/src/main/res/values-pt-rBR/strings.xml @@ -0,0 +1,26 @@ + + + + Downloads de dados de Glicose do Nightscout + xDrip+ + Receber valores de glicose do xDrip+. + BYODA + BYODA + Receber valores de glicemia do \'Build Your Own Dexcom App\'. + Aplicação Eversense (com patch) + Receber valores de Glicose da aplicação Eversense modificada. + Receber valores BG do Glimp. + Receber valores de Glucose do 600SeriesAndroidUploader. + Poctech + Receber valores Glucose da app Poctech + Glunovo + Receber valores GLIC do aplicativo Glunovo + Intelligo + Receber valores da app Intelligo + Tomato (MiaoMiao) + Tomato + Receber valores de Glicose da aplicação Tomato (dispositivo MiaoMiao) + Aidex + Receber valores BG do GlucoRx Aidex CGMS. + Configurações de upload de BG + diff --git a/plugins/source/src/main/res/values-pt-rPT/strings.xml b/plugins/source/src/main/res/values-pt-rPT/strings.xml new file mode 100644 index 0000000000..072a4fa9b3 --- /dev/null +++ b/plugins/source/src/main/res/values-pt-rPT/strings.xml @@ -0,0 +1,22 @@ + + + + Descarrega dados Glicose do Nightscout + xDrip+ + Receber valores Glicose do xDrip+. + BYODA + BYODA + Receber valores de glicemia do aplicativo BYODA. + Aplicação Eversense (com patch) + Receber valores Glicose da aplicação Eversense modificada. + Receber valores Glicose do Glimp. + Receber valores Glicose do 600SeriesAndroidUploader. + Poctech + Receber valores Glucose da app Poctech + Glunovo + Receber valores do aplicativo Glunovo + Tomato (MiaoMiao) + Tomato + Receber valores de Glicose da app Tomato (dispositivo MiaoMiao) + Definições de Envio da Glicose + diff --git a/plugins/source/src/main/res/values-ro-rRO/strings.xml b/plugins/source/src/main/res/values-ro-rRO/strings.xml new file mode 100644 index 0000000000..a0be463419 --- /dev/null +++ b/plugins/source/src/main/res/values-ro-rRO/strings.xml @@ -0,0 +1,22 @@ + + + + Descarcă datele despre glicemii din Nightscout + xDrip+ + Primește valorile glicemiei din xDrip+. + BYODA + BYODA + Primește valori de glicemie de la aplicația Dexcom modificată. + Aplicația Eversense (modificată) + Primește valorile glicemiei din aplicația Eversense modificată. + Primește valorile glicemiei din aplicația Glimp. + Primește valorile glicemiei din aplicația 600SeriesAndroidUploader (Medtronic). + Poctech + Citire a valorii glicemiei din aplicația Poctech + Glunovo + Primiți glicemii de la aplicația Glunovo + Tomato (MiaoMiao) + Tomato + Înregistrează valorile glicemiei din aplicația Tomato (dispozitiv MiaoMIao) + Setări înregistrare glicemie + diff --git a/plugins/source/src/main/res/values-ru-rRU/strings.xml b/plugins/source/src/main/res/values-ru-rRU/strings.xml new file mode 100644 index 0000000000..75ade468d5 --- /dev/null +++ b/plugins/source/src/main/res/values-ru-rRU/strings.xml @@ -0,0 +1,33 @@ + + + + Получать данные гликемии с сайта Nightscout + xDrip + + Получать данные гликемии от xDrip+. + Самост собран прилож Dexcom + ССП DEXCOM + Получать данные ГК от \'Самостоятельно собранного приложения Dexcom\'. + Приложение Eversense (пропатченное) + Получать данные гликемии от пропатченного приложения Eversense. + Получать данные гликемии от Glimp. + Получать данные гликемии от 600SeriesAndroidUploader. + Poctech + Получать данные гликемии от приложения Poctech + Приложение Glunovo + Получать данные гликемии от приложения Glunovo + Приложение Intelligo + Получать данные гликемии от приложения Intelligo + Томато (MiaoMiao) + Томато + Получать значения ГК от приложения Tomato (устройство MiaoMiao) + Aidex + Получить значения ГК от GlucoRx Aidex + Случайные значения ГК + Генерировать случайные данные ГК (только демо-режим) + ГК + Отправлять данные СК на xDrip+ + В xDrip + выберите источник данных 640g/Eversense + Параметры загрузки СК + Вносить запись о замене сенсора в NS + Автоматически создать событие \"Замена сенсора\" в NS при запуске сенсора + diff --git a/plugins/source/src/main/res/values-sk-rSK/strings.xml b/plugins/source/src/main/res/values-sk-rSK/strings.xml new file mode 100644 index 0000000000..73aa3d2de6 --- /dev/null +++ b/plugins/source/src/main/res/values-sk-rSK/strings.xml @@ -0,0 +1,38 @@ + + + + Glykémie z NS + NS GL + Získavať hodnoty glykémií z Nightscoutu + xDrip+ + Prijímať hodnoty glykémií z xDrip+. + BYODA + BYODA + Prijímať hodnoty glykémií z upravenej aplikácie Dexcom (BYODA). + Eversense aplikácia (upravená) + Získavať glykémie z upravenej Eversense aplikácie. + Glimp + Získavať hodnoty glykémií z aplikácie Glimp. + MM640g + Získavať hodnoty glykémií z 600SeriesAndroidUploader. + Poctech + Získavať glykémie z aplikácie Poctech + Glunovo + Získavať glykémie z aplikácie Glunovo + Intelligo + Prijímať hodnoty z aplikácie Intelligo + Tomato (MiaoMiao) + Tomato + Prijímať glykémie z aplikácie Tomato (zariadenie MiaoMiao) + GlucoRx Aidex + Aidex + Prijímať hodnoty glykémie zo senzora GlucoRx Aidex. + Náhodná glykémia + Vygeneruj náhodné dáta glykémií (iba Demo režim) + Gly + Odosielať glykémie do xDrip+ + V xDrip+ vyberte zdroj dát 640g/Eversense + Nastavenie nahrávania glykémie + Ulož výmenu senzora do NS + Vytvoriť udalosť \"Výmena senzora\" v NS automaticky pri spustení senzora + diff --git a/plugins/source/src/main/res/values-sr-rCS/strings.xml b/plugins/source/src/main/res/values-sr-rCS/strings.xml new file mode 100644 index 0000000000..236ed456af --- /dev/null +++ b/plugins/source/src/main/res/values-sr-rCS/strings.xml @@ -0,0 +1,10 @@ + + + + Preuzimajte podatke GUK sa Nightscout-a + xDrip+ + Preuzimajte vrijednosti GUK od xDrip+. + Preuzimajte vrednosti GUK iz zakrpljene aplikacije Eversense. + Preuzimajte vrednosti GUK od Glimp-a. + Preuzimajte vrednosti GUK od 600SeriesAndroidUploader-a. + diff --git a/plugins/source/src/main/res/values-sv-rSE/strings.xml b/plugins/source/src/main/res/values-sv-rSE/strings.xml new file mode 100644 index 0000000000..6572f8a262 --- /dev/null +++ b/plugins/source/src/main/res/values-sv-rSE/strings.xml @@ -0,0 +1,23 @@ + + + + Ladda ner BG-data från Nightscout + xDrip+ + Ta emot BG-data från xDrip+. + Patchad Dexcom-app + Dex + Ta emot BG-värden från \"Bygg din egen Dexcom-app\". + Eversense App (modifierad) + Ta emot BG-data från den modifierade +Eversense-appen. + Ta emot BG-data från Glimp + Ta emot BG-data från 600SeriesAndroidUploader + Poctech + Ta emot BG-data från Poctechappen + Glunovo + Ta emot värden från Glunovo-appen + Tomato (MiaoMiao) + Tomato + Ta emot BG-data från tomato app (MiaoMiao-enhet) + Uppladdningsinställningar för BG + diff --git a/plugins/source/src/main/res/values-tr-rTR/strings.xml b/plugins/source/src/main/res/values-tr-rTR/strings.xml new file mode 100644 index 0000000000..0752cdddcf --- /dev/null +++ b/plugins/source/src/main/res/values-tr-rTR/strings.xml @@ -0,0 +1,38 @@ + + + + NSClient KŞ + NS KŞ + Nightscout\'tan KŞ verilerini yükler + xDrip+ + XDrip+\'ten KŞ değerlerini alır. + BYODA + BYODA + \'Kendi Dexcom Uygulamanızı Oluşturun\' uygulamasından KŞ değerlerini alın. + Eversense App (yamalı) + Yamalı Eversense uygulamasından KŞ değerleri alır. + Glimp + Glimp\'ten KŞ değerleri alır. + MM640g + 600SeriesAndroidUploader\'dan KŞ değerleri alır. + Poctech + Poctech uygulamasından KŞ değerlerini alır + Glunovo + Glunovo uygulamasından değerler alır + Intelligo + Intelligo uygulamasından değerler alır + Tomato (MiaoMiao) + Tomato + KŞ değerlerini Tomato uygulamasından (MiaoMiao Cihazından) al + GlucoRx Aidex + Aidex + GlucoRx Aidex CGMS\'den KŞ değerleri alır. + Rastgele KŞ + Rastgele KŞ verileri oluşturun (Yalnızca demo modunda) + + XDrip+\'a KŞ verilerini gönder + xDrip+ içerisinde 640g/Eversense veri kaynağı seç + KŞ yükleme ayarları + Sensör değişimlerini NS\'a kaydet + Sensör başlangıcında otomatik olarak NS\'de \"Sensör Değişimi\" olayı oluştur + diff --git a/plugins/source/src/main/res/values-zh-rCN/strings.xml b/plugins/source/src/main/res/values-zh-rCN/strings.xml new file mode 100644 index 0000000000..dedac905aa --- /dev/null +++ b/plugins/source/src/main/res/values-zh-rCN/strings.xml @@ -0,0 +1,24 @@ + + + + 从 Nightscout 下载 血糖数据 + xDrip+ + 从 xDrip+ 接收血糖值。 + BYODA德康补丁版(构建你自己的德康应用Build Your Own Dexcom App) + BYODA + 从德康补丁版接收血糖数据(Build Your Own Dexcom App)。 + Everyang App (补丁) + 从 Eversense 补丁app接收血糖值。 + 从 Glimp 接收血糖值。 + 从美敦力600Series 的AndroidUploader 接收血糖值。 + Poctech + 从 Poctech app 接收血糖值。 + Glunovo + 从Glunovo应用接收血糖数据。 + 番茄(喵喵) + 番茄 + 从番茄app(喵喵设备) 接收血糖值 + Aidex动泰 + 从GlucoRx Aidex动泰持续葡萄糖监测系统接收血糖值。 + 血糖上传设置 + diff --git a/plugins/source/src/main/res/values/strings.xml b/plugins/source/src/main/res/values/strings.xml new file mode 100644 index 0000000000..dabac7c3bd --- /dev/null +++ b/plugins/source/src/main/res/values/strings.xml @@ -0,0 +1,47 @@ + + + + dexcom_lognssensorchange + last_processed_glunovo_timestamp + last_processed_intelligo_timestamp + + NSClient BG + NS BG + Downloads BG data from Nightscout + xDrip+ + Receive BG values from xDrip+. + BYODA + BYODA + Receive BG values from the \'Build Your Own Dexcom App\'. + Eversense App (patched) + EVR + Receive BG values from the patched Eversense app. + Glimp + Receive BG values from Glimp. + MM640g + Receive BG values from the 600SeriesAndroidUploader. + Poctech + Receive BG values from Poctech app + Glunovo + Receive values from Glunovo app + Intelligo + Receive values from Intelligo app + Tomato (MiaoMiao) + Tomato + Receive BG values from Tomato app (MiaoMiao device) + GlucoRx Aidex + Aidex + Receive BG values from GlucoRx Aidex CGMS. + Random BG + Generate random BG data (Demo mode only) + BG + + Send BG data to xDrip+ + In xDrip+ select 640g/Eversense data source + BG upload settings + Log sensor change to NS + Create event \"Sensor Change\" in NS automatically on sensor start + direction + + + \ No newline at end of file diff --git a/plugins/main/src/main/res/xml/pref_bgsource.xml b/plugins/source/src/main/res/xml/pref_bgsource.xml similarity index 100% rename from plugins/main/src/main/res/xml/pref_bgsource.xml rename to plugins/source/src/main/res/xml/pref_bgsource.xml diff --git a/plugins/main/src/main/res/xml/pref_dexcom.xml b/plugins/source/src/main/res/xml/pref_dexcom.xml similarity index 100% rename from plugins/main/src/main/res/xml/pref_dexcom.xml rename to plugins/source/src/main/res/xml/pref_dexcom.xml diff --git a/plugins/source/src/test/java/info/nightscout/androidaps/TestBase.kt b/plugins/source/src/test/java/info/nightscout/androidaps/TestBase.kt new file mode 100644 index 0000000000..4fd2aef548 --- /dev/null +++ b/plugins/source/src/test/java/info/nightscout/androidaps/TestBase.kt @@ -0,0 +1,37 @@ +package info.nightscout.androidaps + +import info.nightscout.rx.AapsSchedulers +import info.nightscout.rx.TestAapsSchedulers +import info.nightscout.rx.logging.AAPSLoggerTest +import org.junit.jupiter.api.BeforeEach +import org.junit.jupiter.api.extension.ExtendWith +import org.mockito.Mockito +import org.mockito.junit.jupiter.MockitoExtension +import org.mockito.junit.jupiter.MockitoSettings +import org.mockito.quality.Strictness +import java.util.Locale + +@ExtendWith(MockitoExtension::class) +@MockitoSettings(strictness = Strictness.LENIENT) +open class TestBase { + + val aapsLogger = AAPSLoggerTest() + val aapsSchedulers: AapsSchedulers = TestAapsSchedulers() + + @BeforeEach + fun setupLocale() { + Locale.setDefault(Locale.ENGLISH) + System.setProperty("disableFirebase", "true") + } + + // Workaround for Kotlin nullability. + // https://medium.com/@elye.project/befriending-kotlin-and-mockito-1c2e7b0ef791 + // https://stackoverflow.com/questions/30305217/is-it-possible-to-use-mockito-in-kotlin + fun anyObject(): T { + Mockito.any() + return uninitialized() + } + + @Suppress("Unchecked_Cast") + fun uninitialized(): T = null as T +} \ No newline at end of file diff --git a/plugins/main/src/test/java/info/nightscout/plugins/source/GlimpPluginTest.kt b/plugins/source/src/test/java/info/nightscout/source/GlimpPluginTest.kt similarity index 61% rename from plugins/main/src/test/java/info/nightscout/plugins/source/GlimpPluginTest.kt rename to plugins/source/src/test/java/info/nightscout/source/GlimpPluginTest.kt index 517ef7fed1..be6fc799ba 100644 --- a/plugins/main/src/test/java/info/nightscout/plugins/source/GlimpPluginTest.kt +++ b/plugins/source/src/test/java/info/nightscout/source/GlimpPluginTest.kt @@ -1,12 +1,10 @@ -package info.nightscout.androidaps.plugins.source +package info.nightscout.source import dagger.android.AndroidInjector -import dagger.android.HasAndroidInjector import info.nightscout.androidaps.TestBase -import info.nightscout.plugins.source.GlimpPlugin import info.nightscout.shared.interfaces.ResourceHelper import info.nightscout.shared.sharedPreferences.SP -import org.junit.Assert +import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test import org.mockito.Mock @@ -20,10 +18,10 @@ class GlimpPluginTest : TestBase() { @BeforeEach fun setup() { - glimpPlugin = GlimpPlugin(HasAndroidInjector { AndroidInjector { } }, rh, aapsLogger, sp) + glimpPlugin = GlimpPlugin({ AndroidInjector { } }, rh, aapsLogger, sp) } @Test fun advancedFilteringSupported() { - Assert.assertEquals(false, glimpPlugin.advancedFilteringSupported()) + Assertions.assertEquals(false, glimpPlugin.advancedFilteringSupported()) } } \ No newline at end of file diff --git a/plugins/main/src/test/java/info/nightscout/plugins/source/MM640GPluginTest.kt b/plugins/source/src/test/java/info/nightscout/source/MM640GPluginTest.kt similarity index 61% rename from plugins/main/src/test/java/info/nightscout/plugins/source/MM640GPluginTest.kt rename to plugins/source/src/test/java/info/nightscout/source/MM640GPluginTest.kt index 5ef860f425..4d71051ef7 100644 --- a/plugins/main/src/test/java/info/nightscout/plugins/source/MM640GPluginTest.kt +++ b/plugins/source/src/test/java/info/nightscout/source/MM640GPluginTest.kt @@ -1,12 +1,10 @@ -package info.nightscout.androidaps.plugins.source +package info.nightscout.source import dagger.android.AndroidInjector -import dagger.android.HasAndroidInjector import info.nightscout.androidaps.TestBase -import info.nightscout.plugins.source.MM640gPlugin import info.nightscout.shared.interfaces.ResourceHelper import info.nightscout.shared.sharedPreferences.SP -import org.junit.Assert +import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test import org.mockito.Mock @@ -20,10 +18,10 @@ class MM640GPluginTest : TestBase() { @BeforeEach fun setup() { - mM640gPlugin = MM640gPlugin(HasAndroidInjector { AndroidInjector { } }, rh, aapsLogger, sp) + mM640gPlugin = MM640gPlugin({ AndroidInjector { } }, rh, aapsLogger, sp) } @Test fun advancedFilteringSupported() { - Assert.assertEquals(false, mM640gPlugin.advancedFilteringSupported()) + Assertions.assertEquals(false, mM640gPlugin.advancedFilteringSupported()) } } \ No newline at end of file diff --git a/plugins/main/src/test/java/info/nightscout/plugins/source/NSClientPluginTest.kt b/plugins/source/src/test/java/info/nightscout/source/NSClientPluginTest.kt similarity index 51% rename from plugins/main/src/test/java/info/nightscout/plugins/source/NSClientPluginTest.kt rename to plugins/source/src/test/java/info/nightscout/source/NSClientPluginTest.kt index 6e74ff7be3..636520b90d 100644 --- a/plugins/main/src/test/java/info/nightscout/plugins/source/NSClientPluginTest.kt +++ b/plugins/source/src/test/java/info/nightscout/source/NSClientPluginTest.kt @@ -1,29 +1,27 @@ -package info.nightscout.androidaps.plugins.source +package info.nightscout.source import dagger.android.AndroidInjector import info.nightscout.androidaps.TestBase import info.nightscout.interfaces.Config import info.nightscout.shared.interfaces.ResourceHelper -import info.nightscout.shared.sharedPreferences.SP -import org.junit.Assert +import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test import org.mockito.Mock class NSClientPluginTest : TestBase() { - private lateinit var nsClientSourcePlugin: info.nightscout.plugins.source.NSClientSourcePlugin + private lateinit var nsClientSourcePlugin: NSClientSourcePlugin @Mock lateinit var rh: ResourceHelper - @Mock lateinit var sp: SP @Mock lateinit var config: Config @BeforeEach fun setup() { - nsClientSourcePlugin = info.nightscout.plugins.source.NSClientSourcePlugin({ AndroidInjector { } }, rh, aapsLogger, config) + nsClientSourcePlugin = NSClientSourcePlugin({ AndroidInjector { } }, rh, aapsLogger, config) } @Test fun advancedFilteringSupported() { - Assert.assertEquals(false, nsClientSourcePlugin.advancedFilteringSupported()) + Assertions.assertEquals(false, nsClientSourcePlugin.advancedFilteringSupported()) } } \ No newline at end of file diff --git a/plugins/main/src/test/java/info/nightscout/plugins/source/XdripPluginTest.kt b/plugins/source/src/test/java/info/nightscout/source/XdripPluginTest.kt similarity index 57% rename from plugins/main/src/test/java/info/nightscout/plugins/source/XdripPluginTest.kt rename to plugins/source/src/test/java/info/nightscout/source/XdripPluginTest.kt index 49ac33fc0f..2524a18db6 100644 --- a/plugins/main/src/test/java/info/nightscout/plugins/source/XdripPluginTest.kt +++ b/plugins/source/src/test/java/info/nightscout/source/XdripPluginTest.kt @@ -1,11 +1,9 @@ -package info.nightscout.androidaps.plugins.source +package info.nightscout.source import dagger.android.AndroidInjector -import dagger.android.HasAndroidInjector import info.nightscout.androidaps.TestBase -import info.nightscout.plugins.source.XdripPlugin import info.nightscout.shared.interfaces.ResourceHelper -import org.junit.Assert +import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test import org.mockito.Mock @@ -18,10 +16,10 @@ class XdripPluginTest : TestBase() { @BeforeEach fun setup() { - xdripPlugin = XdripPlugin(HasAndroidInjector { AndroidInjector { } }, rh, aapsLogger) + xdripPlugin = XdripPlugin({ AndroidInjector { } }, rh, aapsLogger) } @Test fun advancedFilteringSupported() { - Assert.assertEquals(false, xdripPlugin.advancedFilteringSupported()) + Assertions.assertEquals(false, xdripPlugin.advancedFilteringSupported()) } } \ No newline at end of file diff --git a/plugins/support/src/main/res/values-af-rZA/strings.xml b/plugins/support/src/main/res/values-af-rZA/strings.xml deleted file mode 100644 index c66f78b6b8..0000000000 --- a/plugins/support/src/main/res/values-af-rZA/strings.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - ou weergawe - baie ou weergawe - Die weergawe is ongeldig. Lus afgeskakel! - Weergawe %1$s beskikbaar - - - diff --git a/plugins/support/src/main/res/values-bg-rBG/strings.xml b/plugins/support/src/main/res/values-bg-rBG/strings.xml deleted file mode 100644 index 87f2d26078..0000000000 --- a/plugins/support/src/main/res/values-bg-rBG/strings.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - Смяна на времето след по-малко от 24ч - Смяна на времето след по-малко от 3 часа - минавам в отворен режим - - - стара версия - много стара версия - Прилагането изтече - Има нова версия от най-малко %1$d дни! Ще спре подаването на инсулин след %2$d дни, цикълът ще бъде изключен след %3$d дни - Използвате грешна версия. APS е изключен! - Има налично обновяване до версия %1$s - - - Рекалкулирани използвани данни - КЗ близо до:\n%1$s\n%2$s - diff --git a/plugins/support/src/main/res/values-ca-rES/strings.xml b/plugins/support/src/main/res/values-ca-rES/strings.xml deleted file mode 100644 index 624e14fdb0..0000000000 --- a/plugins/support/src/main/res/values-ca-rES/strings.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - Canvi a horari d\'estiu en 24h o menys - Canvi a horari d\'estiu fa menys de 3h - Llaç tancat desactivat - - - versió antiga - versió molt antiga - Aplicació expirada - Nova versió disponible almenys %1$d dies! Retorn a LGS (Low Glucose Suspend = suspensió per glucèmia baixa) en %2$d dies, el llaç serà desactivat en %3$d dies - Hem detectat que esteu executant una versió no vàlida. Llaç desactivat! - Versió %1$s disponible - Versió: %1$s | Mida: %2$s - - - Dades recalculades utilitzades - Glucèmia massa semblant: \n%1$s\n%2$s - diff --git a/plugins/support/src/main/res/values-cs-rCZ/strings.xml b/plugins/support/src/main/res/values-cs-rCZ/strings.xml deleted file mode 100644 index 30758c945d..0000000000 --- a/plugins/support/src/main/res/values-cs-rCZ/strings.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - Změna letního času za méně než 24 hodin - Změna letního času za méně než 3 hodiny – Uzavřená smyčka zastavena - - Uvolněte alespoň %1$d MB z vnitřního úložiště! Smyčka zakázána! - - stará verze - velmi stará verze - Platnost aplikace vypršela - Nová verze je dostupná minimálně %1$d dní! Přepnutí na ochranu před nízkou glykémií po %2$d dnech, vypnutí smyčky po %3$d dnech - Zjistili jsme, že používáte neplatnou verzi, smyčka zakázána! - Verze %1$s je k dispozici - Platnost verze %1$s vyprší dne %2$s - - - Použita přepočítaná data - Glykémie je příliš blízko:\n%1$s\n%2$s - přepočítáno - dvojité položky - diff --git a/plugins/support/src/main/res/values-da-rDK/strings.xml b/plugins/support/src/main/res/values-da-rDK/strings.xml deleted file mode 100644 index 10d59aee65..0000000000 --- a/plugins/support/src/main/res/values-da-rDK/strings.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - Sommertids ændring inden de næste 24 timer eller mindre - Sommertids ændring mindre end 3 timer siden - Lukket loop deaktiveret - - - gammel version - meget gammel version - Applikationen er udløbet - Ny version har været tilgængelig i mindst %1$d dage! Falder til LGS efter %2$d dage, loop vil blive deaktiveret efter %3$d dage - Vi har opdaget, at du kører en ugyldig version. Loop deaktiveret! - Version %1$s tilgængelig - Version %1$s udløber den %2$s - - - Genberegnede data anvendt - BG for tæt:\n%1$s\n%2$s - genberegnet - dobbelt postering - diff --git a/plugins/support/src/main/res/values-de-rDE/strings.xml b/plugins/support/src/main/res/values-de-rDE/strings.xml deleted file mode 100644 index b7796ca7ed..0000000000 --- a/plugins/support/src/main/res/values-de-rDE/strings.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - Zeitumstellung in weniger als 24 Stunden - Zeitumstellung vor weniger als 3 Stunden - Closed Loop deaktiviert - - - Vorherige Version - sehr alte Version - Anwendung abgelaufen - Neue Version seit mindestens %1$d Tagen verfügbar! Rückfall zur sensorunterstützten Pumpentherapie nach %2$d Tagen, Loop wird nach %3$d Tagen deaktiviert. - Wir haben festgestellt, dass Du eine ungültige Version verwendest. Loop deaktiviert! - Version %1$s ist verfügbar. - Version %1$s läuft am %2$s ab - - - Verwendete Daten neu berechnet - BZ zu nah:\n%1$s\n%2$s - neu berechnet - doppelte Einträge - diff --git a/plugins/support/src/main/res/values-el-rGR/strings.xml b/plugins/support/src/main/res/values-el-rGR/strings.xml deleted file mode 100644 index 5c05d758c6..0000000000 --- a/plugins/support/src/main/res/values-el-rGR/strings.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - παλιά έκδοση - πολύ παλιά έκδοση - Διαπιστώσαμε ότι εκτελείτε μη έγκυρη έκδοση. Κύκλωμα απενεργοποιήθηκε! - Έκδοση %1$s διαθέσιμη - - - diff --git a/plugins/support/src/main/res/values-es-rES/strings.xml b/plugins/support/src/main/res/values-es-rES/strings.xml deleted file mode 100644 index d357cb7287..0000000000 --- a/plugins/support/src/main/res/values-es-rES/strings.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - Cambio al horario de verano en menos de 24 horas - Cambio al horario de verano hace menos de 3 horas - Lazo cerrado deshabilitado - - Debe liberar al menos %1$d MB de almacenamiento interno. ¡Loop se encuentra desactivado! - - versión antigua - versión muy antigua - Aplicación caducada - Nueva versión disponible de al menos %1$d día/s. Se vuelve a la función de suspensión por glucosa baja (LGS) después de %2$d días. Después se deshabilitará el lazo en %3$d días - Hemos detectado que está ejecutando una versión no válida. ¡Lazo desactivado! - Versión %1$s disponible - La versión %1$s caduca el %2$s - - - Datos recalculados usados - Datos de glucosa demasiado cercanos:\n%1$s\n%2$s - recalculado - entradas dobles - diff --git a/plugins/support/src/main/res/values-fr-rFR/strings.xml b/plugins/support/src/main/res/values-fr-rFR/strings.xml deleted file mode 100644 index aa028b63ec..0000000000 --- a/plugins/support/src/main/res/values-fr-rFR/strings.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - Changement d\'heure d\'été/hiver dans moins de 24 heures - Changement d\'heure dans moins de 3 heures - Boucle fermée désactivée - - Boucle désactivée ! Libérez au moins %1$d Mo du stockage interne ! - - ancienne version - très ancienne version - Application expirée - Nouvelle version disponible depuis %1$d jours ! Retour à Arrêt Glycémie Basse (AGB) dans %2$d jours, la boucle sera désactivée dans %3$d jours - Nous avons détecté que vous utilisez une version invalide. Boucle désactivée ! - Version %1$s disponible - La version %1$s expire le %2$s - - - Données recalculées utilisées - Gly trop proche :\n%1$s\n%2$s - recalculé - entrées doubles - diff --git a/plugins/support/src/main/res/values-hr-rHR/strings.xml b/plugins/support/src/main/res/values-hr-rHR/strings.xml deleted file mode 100644 index d7dc1f9292..0000000000 --- a/plugins/support/src/main/res/values-hr-rHR/strings.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - Promjena računanja vremena za 24 sata ili manje - Promjena računanja vremena prije manje od 3 sata - zatvorena petlja onemogućena - - Oslobodite najmanje %1$d MB iz interne pohrane! Petlja onemogućena! - - stara verzija - vrlo stara verzija - Aplikacija je istekla - Nova verzija dostupna najmanje %1$d dana! Vraćanje na LGS nakon %2$d dana, petlja će biti onemogućena nakon %3$d dana - Otkrili smo da koristite nevažeću verziju. Petlja onemogućena! - Dostupna je verzija %1$s - Verzija %1$s ističe %2$s - - - Korišteni preračunati podaci - BG preblizu:\n%1$s\n%2$s - preračunato - dvostruki unosi - diff --git a/plugins/support/src/main/res/values-it-rIT/strings.xml b/plugins/support/src/main/res/values-it-rIT/strings.xml deleted file mode 100644 index 0858490cec..0000000000 --- a/plugins/support/src/main/res/values-it-rIT/strings.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - Cambio all\'ora legale/solare in 24h o meno - Cambio all\'ora legale/solare avvenuto meno di 3 ore fa - Loop chiuso disabilitato - - Libera almeno %1$d MB dalla memoria interna! Loop disabilitato! - - versione datata - versione molto datata - Applicazione scaduta - Nuova versione disponibile da almeno %1$d giorni! Ritorno a LGS dopo %2$d giorni, disattivazione del loop dopo %3$d giorni - Abbiamo rilevato che stai eseguendo una versione non valida. Loop disabilitato! - Versione %1$s disponibile - Versione: %1$s | Scadenza: %2$s - - - Dati ricalcolati usati - BG troppo vicino:\n%1$s\n%2$s - ricalcolato - doppi caricamenti - diff --git a/plugins/support/src/main/res/values-iw-rIL/strings.xml b/plugins/support/src/main/res/values-iw-rIL/strings.xml deleted file mode 100644 index 9e57fd52ce..0000000000 --- a/plugins/support/src/main/res/values-iw-rIL/strings.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - שינוי לשעון קיץ ב-24 השעות הקרובות - חל מעבר לשעון קיץ לפני פחות מ-3 שעות - לולאה סגורה מושבתת - - - גרסה ישנה - גרסה ישנה מאוד - תוקף האפליקציה פג - גרסה חדשה זמינה כבר %1$d ימים! הגבלה להשהיה עקב סוכר נמוך תחל אחרי %2$d ימים, הלולאה תושבת אחרי %3$d ימים - זיהינו שאתם משתמשים בגרסה לא תקפה. הלולאה מושבתת! - גרסה %1$s זמינה - גרסה: %1$s תפוג תוקפה: %2$s - - - משתמש בנתונים מחושבים מחדש - רמת הסוכר קרובה מדי:\n%1$s\n%2$s - חושב מחדש - רישומים כפולים - diff --git a/plugins/support/src/main/res/values-ko-rKR/strings.xml b/plugins/support/src/main/res/values-ko-rKR/strings.xml deleted file mode 100644 index da17b37396..0000000000 --- a/plugins/support/src/main/res/values-ko-rKR/strings.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - 24시간 미만의 썸머타임 변경 - 썸머타임 변경이 3시간 미만입니다 - Closed Loop 비활성됨 - - - 오래된 버전 - 아주 오래된 버전 - 최소 %1$d일 새버전이 가능합니다! %2$d일 후엔 LGS(저혈당주입중지)으로 복귀되며, %3$d일이후엔 Loop가 비활성화 될 것입니다 - 유효하지 않은 버전을 이용 중입니다. Loop가 비활성화 되었습니다! - %1$s 버전이 사용 가능합니다. - - - diff --git a/plugins/support/src/main/res/values-lt-rLT/strings.xml b/plugins/support/src/main/res/values-lt-rLT/strings.xml deleted file mode 100644 index 3699f31ded..0000000000 --- a/plugins/support/src/main/res/values-lt-rLT/strings.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - Laiko persukimas įvyks po 24 val ar mažiau - Laiko persukimas įvyks po mažiau nei 3 val - Uždaras ciklas deaktyvuotas - - - sena versija - labai sena versija - Aplikacijos laikas baigėsi - Nauja versija pasiekiama mažiausiai %1$d d.! Po %2$d grįšite prie stabdymo prie žemo, po %3$d ciklas bus išjungtas - Nustatyta, kad naudojate neteisingą versiją. Ciklas išjungtas! - Versiją %1$s jau galima naudoti - Versija %1$s baigia galioti %2$s - - - Naudojami perskaičiuoti duomenys - KG per arti:\n%1$s\n%2$s - diff --git a/plugins/support/src/main/res/values-nl-rNL/strings.xml b/plugins/support/src/main/res/values-nl-rNL/strings.xml deleted file mode 100644 index ec6caa9d12..0000000000 --- a/plugins/support/src/main/res/values-nl-rNL/strings.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - Omschakeling van zomer- of wintertijd in 24 uur of minder - Omschakeling zomer/wintertijd minder dan 3 uur geleden - Gesloten Lus modus gedeactiveerd - - Maak minstens %1$d MB vrij in interne opslag! Loop is uitgeschakeld! - - oude versie - zeer oude versie - Applicatie is verlopen - Nieuwe versie al zeker %1$d dagen beschikbaar! Terugval LGS na %2$d dagen, loop zal worden uitgeschakeld na %3$d dagen - We hebben gedetecteerd dat je een ongeldige versie gebruikt. Loop is uitgeschakeld! - Versie %1$s is beschikbaar - Versie %1$s verloopt op %2$s - - - Herberekende data gebruikt - BG data interval to kort:\n%1$s\n%2$s - opnieuw berekend - dubbele items - diff --git a/plugins/support/src/main/res/values-no-rNO/strings.xml b/plugins/support/src/main/res/values-no-rNO/strings.xml deleted file mode 100644 index 1eeec3c0cd..0000000000 --- a/plugins/support/src/main/res/values-no-rNO/strings.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - Sommer/vintertid inntreffer innen 24t - Sommer/vintertid inntreffer innen 3t - lukket loop er midlertidig deaktivert - - Frigjør minst %1$d MB fra internminnet! Loop deaktivert! - - gammel versjon - veldig gammel versjon - Applikasjon utløpt - oppdater - Ny versjon tilgjengelig i minst %1$d dager! Systemet vil bytte til \"stopp innen lavt (LGS)\" etter %2$d dager og loop vil deaktiveres etter %3$d dager - Vi har oppdaget at du kjører en ugyldig versjon. Loop deaktivert! - Versjon %1$s er tilgjengelig - Versjon %1$s utløper den %2$s - - - Rekalkulerte siste data - BS for nær:\n%1$s\n%2$s - beregnet på nytt - doble registreringer - Flate verdier. Vurderer dette til å være feil - diff --git a/plugins/support/src/main/res/values-pl-rPL/strings.xml b/plugins/support/src/main/res/values-pl-rPL/strings.xml deleted file mode 100644 index 0af41a6505..0000000000 --- a/plugins/support/src/main/res/values-pl-rPL/strings.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - Zmiana czasu w 24h lub mniej - Zmiana czasu nastąpiła mniej niż 3 godziny temu - Zamknięta pętla wyłączona - - - stara wersja - bardzo stara wersja - Aplikacja wygasła - Nowa wersja dostępna co najmniej %1$d dni! Powrót do LGS (zawieszania podawania bazy przy niskim poziomie) po %2$d dniach, pętla zostanie wyłączona po %3$d dniach - Wykryliśmy, że używasz nieprawidlowej wersji. Pętla wyłączona! - Wersja %1$s dostępna - Wersja %1$s wygasa %2$s - - - Użyto przeliczonych wartości - Zbyt bliskie pomiary glikemii:\n%1$s\n%2$s - diff --git a/plugins/support/src/main/res/values-pt-rBR/strings.xml b/plugins/support/src/main/res/values-pt-rBR/strings.xml deleted file mode 100644 index 9b559db21b..0000000000 --- a/plugins/support/src/main/res/values-pt-rBR/strings.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - Mudança do horário de verão em 24h ou menos - Alteração do horário de verão há menos de 3 horas. Circuito fechado desativado - - Libere pelo menos %1$d MB do armazenamento interno! ‘Loop’ desativado! - - versão antiga - versão muito antiga - Aplicativo expirado - Nova versão para pelo menos %1$d dias disponíveis! Retorno a LGS após %2$d dias, o loop será desativado após %3$d dias - Detectamos que você está executando uma versão inválida. \"Loop\" desativado! - Disponível %1$s disponível - A versão %1$s expira em %2$s - - - Dados recalculados foram utilizados - Glicemia muito próxima:\n%1$s\n%2$s - recalculado - entradas duplicadas - diff --git a/plugins/support/src/main/res/values-pt-rPT/strings.xml b/plugins/support/src/main/res/values-pt-rPT/strings.xml deleted file mode 100644 index 066bc4b40f..0000000000 --- a/plugins/support/src/main/res/values-pt-rPT/strings.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - Horário de Verão em 24h ou menos - Horário de Verão a menos de 3 horas - Loop Fechado desativado - - - versão antiga - versão muito antiga - A aplicação expirou - Nova versão para pelo menos %1$d dias disponíveis! Retorno a SGB após %2$d dias, o loop será desactivado após %3$d dias - Detectamos que está a correr uma versão inválida. Loop desactivado! - Disponível %1$s disponível - Versão: %1$s criada em %2$s - - - Dados utilizados foram recalculados - Glicemia demasiado próxima:\n%1$s\n%2$s - diff --git a/plugins/support/src/main/res/values-ro-rRO/strings.xml b/plugins/support/src/main/res/values-ro-rRO/strings.xml deleted file mode 100644 index 5351f94628..0000000000 --- a/plugins/support/src/main/res/values-ro-rRO/strings.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - Schimbare oră vară/iarnă în mai puțin de 24h - Schimbare oră vară/iarnă în mai puțin de 3 ore - buclă închisă dezactivată - - - versiune veche - versiune foarte veche - Aplicația a expirat - O versiune nouă este disponibilă de cel puțin %1$d zile! Reveniți la LGS după %2$d zile, bucla închisă va fi dezactivată după %3$d zile - S-a detectat rularea unei versiuni invalide. Buclă dezactivată! - Versiunea %1$s este disponibilă - Versiunea %1$s expiră pe %2$s - - - Date recalculate utilizate - BG prea aproape:\n%1$s\n%2$s - diff --git a/plugins/support/src/main/res/values-ru-rRU/strings.xml b/plugins/support/src/main/res/values-ru-rRU/strings.xml deleted file mode 100644 index f41072aac2..0000000000 --- a/plugins/support/src/main/res/values-ru-rRU/strings.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - Переход на летнее/зимнее время через 24 часа или менее - Изменение сезонного времени произошло меньше 3 часов назад-Закрытый цикл выключен - - Освободите по крайней мере %1$d MB из внутренней памяти! Цикл остановлен! - - старая версия - очень старая версия - Истек срок действия приложения - Новая версия доступна уже %1$d дней! По истечении %2$d дн алгоритм переходит в режим работы только с остановкой при низкой гликемии LGS, замкнутый цикл будет отключен через %3$d дн - Мы обнаружили, что вы используете недопустимую версию. Цикл отключен! - Доступна версия %1$s - Версия: %1$s истекает %2$s - - - Используются пересчитанные данные - ГК слишком близко к \n%1$s\n%2$s - пересчитано - двойные записи - diff --git a/plugins/support/src/main/res/values-sk-rSK/strings.xml b/plugins/support/src/main/res/values-sk-rSK/strings.xml deleted file mode 100644 index 3a7cd92211..0000000000 --- a/plugins/support/src/main/res/values-sk-rSK/strings.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - Zmena letného času za menej ako 24 hodín - Zmena letného času za menej ako 3 hodiny - Uzavretý okruh pozastavený - - Uvoľnite aspoň %1$d MB z interného úložiska! Uzavretý okruh zakázaný! - - stará verzia - veľmi stará verzia - Aplikácia expirovala - Nová verzia je dostupná minimálne %1$d dní! Prepnutie na ochranu pred nízkou glykémiou po %2$d dňoch, vypnutie uzavretého okruhu po %3$d dňoch - Zistili sme, že používate neplatnú verziu. Uzavretý okruh zakázaný! - Verzia %1$s je k dispozícii - Verzia %1$s expiruje dňa %2$s - - - Použité prepočítané dáta - Glykémia je príliš blízko:\n%1$s\n%2$s - prepočítané - dvojité zápisy - diff --git a/plugins/support/src/main/res/values-sv-rSE/strings.xml b/plugins/support/src/main/res/values-sv-rSE/strings.xml deleted file mode 100644 index 7e636e8e03..0000000000 --- a/plugins/support/src/main/res/values-sv-rSE/strings.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - Sommar/vintertid inträffar inom 24 timmar - Sommar/vintertid ändrades för mindre än 3 timmar sedan. Closed Loop avstängt - - - gammal version - väldigt gammal version - Applikationen inte giltig längre - Ny version tillgänglig för %1$d dagar sedan. Systemet kommer att byta läge till \"stopp innan lågt\" efter %2$d dagar och sluta loopa helt efter %3$d dagar - Du kör en ogiltig version. Loop avstängd! - Version %1$s tillgänglig - Version %1$s upphör att gälla %2$s - - - Omräknad data används - BG för nära:\n%1$s\n%2$s - omräknad - dubbla poster - diff --git a/plugins/support/src/main/res/values-tr-rTR/strings.xml b/plugins/support/src/main/res/values-tr-rTR/strings.xml deleted file mode 100644 index bb9440f446..0000000000 --- a/plugins/support/src/main/res/values-tr-rTR/strings.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - 24 saat veya daha kısa süre içinde yaz saati değişikliği - Yaz Saati Uygulaması 3 saatten daha kısa bir süre önce değişti - Kapalı döngü devre dışı - - Dahili depolama biriminden en az %1$d MB yer kaldı! Döngü devre dışı! - - eski sürüm - çok eski sürüm - Uygulamanın süresi doldu - En az %1$d gündür yeni sürüm mevcut! %2$d gün sonra LGS\'ye (Düşük Glukoz gönderimine) dönülecek, %3$d gün sonra da döngü devre dışı bırakılacaktır - Geçersiz bir sürüm çalıştırdığınızı tespit ettik. Döngü devre dışı! - Sürüm %1$s mevcut - %1$s sürümünün süresi %2$s tarihinde sona eriyor - - - Kullanılan veriler yeniden hesaplandı - KŞ çok yakın:\n%1$s\n%2$s - tekrar hesaplandı - çift giriş - diff --git a/plugins/support/src/main/res/values-zh-rCN/strings.xml b/plugins/support/src/main/res/values-zh-rCN/strings.xml deleted file mode 100644 index 3cbe0046ba..0000000000 --- a/plugins/support/src/main/res/values-zh-rCN/strings.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - 在24小时或更少时间内变更\"夏令时\" - 夏令时变更在三小时内-已禁用闭环 - - - 旧版本 - 非常旧版本 - 应用版本已过期。 - 新版本已发布至少%1$d天!将在%2$d天后回退到LGS (低血糖维持模式),闭环功能将在%3$d天后禁用。 - 我们检测到您运行的版本无效。 已禁用循环! - 版本 %1$s 可用 - 版本 %1$s 将在 %2$s 过期 - - - 重新计算的数据 - 血糖间隔太近:\n%1$s\n%2$s - 重新计算 - 双重条目 - diff --git a/plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclient/data/ProcessedDeviceStatusDataImpl.kt b/plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclient/data/ProcessedDeviceStatusDataImpl.kt index 8131e49195..d65d63dad4 100644 --- a/plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclient/data/ProcessedDeviceStatusDataImpl.kt +++ b/plugins/sync/src/main/java/info/nightscout/plugins/sync/nsclient/data/ProcessedDeviceStatusDataImpl.kt @@ -2,9 +2,10 @@ package info.nightscout.plugins.sync.nsclient.data import android.text.Spanned import dagger.android.HasAndroidInjector -import info.nightscout.core.aps.APSResultObject +import info.nightscout.interfaces.aps.APSResult import info.nightscout.interfaces.nsclient.NSSettingsStatus import info.nightscout.interfaces.nsclient.ProcessedDeviceStatusData +import info.nightscout.interfaces.profile.Instantiator import info.nightscout.interfaces.utils.HtmlHelper import info.nightscout.interfaces.utils.JsonHelper import info.nightscout.interfaces.utils.Round @@ -21,7 +22,8 @@ import javax.inject.Singleton class ProcessedDeviceStatusDataImpl @Inject constructor( private val rh: ResourceHelper, private val dateUtil: DateUtil, - private val sp: SP + private val sp: SP, + private val instantiator: Instantiator ) : ProcessedDeviceStatusData { override var pumpData: ProcessedDeviceStatusData.PumpData? = null @@ -112,11 +114,10 @@ class ProcessedDeviceStatusDataImpl @Inject constructor( override val openApsTimestamp: Long get() = if (openAPSData.clockSuggested != 0L) openAPSData.clockSuggested else -1 - override fun getAPSResult(injector: HasAndroidInjector): APSResultObject { - val result = APSResultObject(injector) - result.json = openAPSData.suggested - result.date = openAPSData.clockSuggested - return result + override fun getAPSResult(injector: HasAndroidInjector): APSResult = + instantiator.provideAPSResultObject().also { + it.json = openAPSData.suggested + it.date = openAPSData.clockSuggested } override val uploaderStatus: String get() { diff --git a/pump/combov2/comboctl/src/androidMain/AndroidManifest.xml b/pump/combov2/comboctl/src/androidMain/AndroidManifest.xml index bc681e6eb5..e521419a68 100644 --- a/pump/combov2/comboctl/src/androidMain/AndroidManifest.xml +++ b/pump/combov2/comboctl/src/androidMain/AndroidManifest.xml @@ -1,5 +1,6 @@ - + + diff --git a/pump/combov2/src/main/res/values-cs-rCZ/strings.xml b/pump/combov2/src/main/res/values-cs-rCZ/strings.xml index 7bda3a2d82..aaa7b846ff 100644 --- a/pump/combov2/src/main/res/values-cs-rCZ/strings.xml +++ b/pump/combov2/src/main/res/values-cs-rCZ/strings.xml @@ -94,6 +94,9 @@ Pokud po více než ~5 minutách není navázáno žádné spojení:\n\n V zásobníku je málo inzulínu Nastavení dočasného bazálu bylo úspěšné Nastavení dočasného bazálu selhalo + Nastavit emulovaný 100% dočasný bazál + Nechávám emulovaný 100% dočasný bazál dokončit + Ignorování požadavku 100% dočasného bazálu Při úpravě dočasného bazálu došlo k neočekávanému limitu: vyžadováno %1$d%%, dosažen limit %1$d%% Nelze nastavit absolutní dočasný bazál, pokud je bazální dávka nulová Párovat AndroidAPS a Android s momentálně nespárovanou pumpou Accu-Chek Combo diff --git a/pump/combov2/src/main/res/values-es-rES/strings.xml b/pump/combov2/src/main/res/values-es-rES/strings.xml index a2eab6735f..39da6729ad 100644 --- a/pump/combov2/src/main/res/values-es-rES/strings.xml +++ b/pump/combov2/src/main/res/values-es-rES/strings.xml @@ -94,6 +94,9 @@ Si no puedes establecer ninguna conexión después de unos ~5 minutos:\n\n El nivel del reservorio de bomba es bajo Configuración de TBR exitosa Configuración de TBR fallida + Establecer la emulación del TBR al 100% + Permitir finalizar la emulación del 100% del TBR en curso + Ignorar la solicitud del 100% del TBR redundate Límite inesperado encontrado al ajustar TBR: el porcentaje objetivo fue de %1$d%%, alcanzó un límite de %1$d%% No se puede establecer el TBR absoluto si la tasa basal base es cero Emparejar AndroidAPS y Android con una bomba Accu-Chek Combo actualmente no emparejada diff --git a/pump/combov2/src/main/res/values-no-rNO/strings.xml b/pump/combov2/src/main/res/values-no-rNO/strings.xml index 589be98136..e21b0400cf 100644 --- a/pump/combov2/src/main/res/values-no-rNO/strings.xml +++ b/pump/combov2/src/main/res/values-no-rNO/strings.xml @@ -95,6 +95,9 @@ knappene samtidig for å avbryte parringen)\n Pumpens reservoarnivå er lavt Innstilling av TBR var vellykket Innstilling av TBR mislyktes + Angi emulert 100% TBR + Lar aktive emulert 100% TBR få avslutte + Ignorerer redundant 100% TBR forespørsel Uventet begrensning oppsto ved justering av TBR: målprosenten var %1$d%%, nådde grense på %1$d%% Kan ikke sette absolutt TBR hvis basalraten er null Sammenkoble AndroidAPS og Android med en ikke-tilkoblet Accu-Chek Combo pumpe diff --git a/pump/dana/src/main/java/info/nightscout/pump/dana/DanaPump.kt b/pump/dana/src/main/java/info/nightscout/pump/dana/DanaPump.kt index d4a6fb50d0..f266dae18e 100644 --- a/pump/dana/src/main/java/info/nightscout/pump/dana/DanaPump.kt +++ b/pump/dana/src/main/java/info/nightscout/pump/dana/DanaPump.kt @@ -2,7 +2,7 @@ package info.nightscout.pump.dana import info.nightscout.interfaces.Constants import info.nightscout.interfaces.profile.Profile -import info.nightscout.interfaces.profile.ProfileInstantiator +import info.nightscout.interfaces.profile.Instantiator import info.nightscout.interfaces.profile.ProfileStore import info.nightscout.interfaces.pump.PumpSync import info.nightscout.interfaces.pump.defs.PumpType @@ -33,7 +33,7 @@ class DanaPump @Inject constructor( private val aapsLogger: AAPSLogger, private val sp: SP, private val dateUtil: DateUtil, - private val profileInstantiator: ProfileInstantiator + private val instantiator: Instantiator ) { @Suppress("unused") @@ -380,7 +380,7 @@ class DanaPump @Inject constructor( } catch (e: Exception) { return null } - return profileInstantiator.storeInstance(json) + return instantiator.provideProfileStore(json) } return null } diff --git a/pump/dana/src/test/java/info/nightscout/androidaps/dana/DanaPumpTest.kt b/pump/dana/src/test/java/info/nightscout/androidaps/dana/DanaPumpTest.kt index 2c874d7f48..7dab933399 100644 --- a/pump/dana/src/test/java/info/nightscout/androidaps/dana/DanaPumpTest.kt +++ b/pump/dana/src/test/java/info/nightscout/androidaps/dana/DanaPumpTest.kt @@ -1,10 +1,10 @@ package info.nightscout.androidaps.dana import info.nightscout.androidaps.TestBaseWithProfile -import info.nightscout.interfaces.profile.ProfileInstantiator +import info.nightscout.interfaces.profile.Instantiator import info.nightscout.pump.dana.DanaPump import info.nightscout.shared.sharedPreferences.SP -import org.junit.Assert +import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test import org.mockito.Mock @@ -12,18 +12,18 @@ import org.mockito.Mock class DanaPumpTest : TestBaseWithProfile() { @Mock lateinit var sp: SP - @Mock lateinit var profileInstantiator: ProfileInstantiator + @Mock lateinit var instantiator: Instantiator private lateinit var sut: DanaPump @BeforeEach fun setup() { - sut = DanaPump(aapsLogger, sp, dateUtil, profileInstantiator) + sut = DanaPump(aapsLogger, sp, dateUtil, instantiator) } @Test fun detectDanaRS() { sut.hwModel = 0x05 - Assert.assertTrue(sut.modelFriendlyName().contains("DanaRS")) + Assertions.assertTrue(sut.modelFriendlyName().contains("DanaRS")) } } \ No newline at end of file diff --git a/pump/danar/src/test/java/info/nightscout/androidaps/plugins/pump/danaR/DanaRPluginTest.kt b/pump/danar/src/test/java/info/nightscout/androidaps/plugins/pump/danaR/DanaRPluginTest.kt index 88df0104e5..ad3e1b068a 100644 --- a/pump/danar/src/test/java/info/nightscout/androidaps/plugins/pump/danaR/DanaRPluginTest.kt +++ b/pump/danar/src/test/java/info/nightscout/androidaps/plugins/pump/danaR/DanaRPluginTest.kt @@ -8,14 +8,14 @@ import info.nightscout.interfaces.Constants import info.nightscout.interfaces.constraints.Constraint import info.nightscout.interfaces.constraints.Constraints import info.nightscout.interfaces.plugin.PluginType -import info.nightscout.interfaces.profile.ProfileInstantiator +import info.nightscout.interfaces.profile.Instantiator import info.nightscout.interfaces.pump.PumpSync import info.nightscout.interfaces.queue.CommandQueue import info.nightscout.interfaces.ui.UiInteraction import info.nightscout.pump.dana.DanaPump import info.nightscout.pump.dana.database.DanaHistoryDatabase import info.nightscout.shared.sharedPreferences.SP -import org.junit.Assert +import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test import org.mockito.Mock @@ -27,7 +27,7 @@ class DanaRPluginTest : TestBaseWithProfile() { @Mock lateinit var sp: SP @Mock lateinit var commandQueue: CommandQueue @Mock lateinit var pumpSync: PumpSync - @Mock lateinit var profileInstantiator: ProfileInstantiator + @Mock lateinit var instantiator: Instantiator @Mock lateinit var uiInteraction: UiInteraction @Mock lateinit var danaHistoryDatabase: DanaHistoryDatabase @@ -47,9 +47,11 @@ class DanaRPluginTest : TestBaseWithProfile() { `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.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") - danaPump = DanaPump(aapsLogger, sp, dateUtil, profileInstantiator) - danaRPlugin = DanaRPlugin(injector, aapsLogger, aapsSchedulers, rxBus, context, rh, constraintChecker, activePluginProvider, sp, commandQueue, danaPump, dateUtil, fabricPrivacy, pumpSync, - uiInteraction, danaHistoryDatabase) + danaPump = DanaPump(aapsLogger, sp, dateUtil, instantiator) + danaRPlugin = DanaRPlugin( + injector, aapsLogger, aapsSchedulers, rxBus, context, rh, constraintChecker, activePluginProvider, sp, commandQueue, danaPump, dateUtil, fabricPrivacy, pumpSync, + uiInteraction, danaHistoryDatabase + ) } @Test @Throws(Exception::class) @@ -59,9 +61,9 @@ class DanaRPluginTest : TestBaseWithProfile() { danaPump.maxBasal = 0.8 val c = Constraint(Constants.REALLYHIGHBASALRATE) danaRPlugin.applyBasalConstraints(c, validProfile) - Assert.assertEquals(0.8, c.value(), 0.01) - Assert.assertEquals("DanaR: Limiting max basal rate to 0.80 U/h because of pump limit", c.getReasons(aapsLogger)) - Assert.assertEquals("DanaR: Limiting max basal rate to 0.80 U/h because of pump limit", c.getMostLimitedReasons(aapsLogger)) + Assertions.assertEquals(0.8, c.value(), 0.01) + Assertions.assertEquals("DanaR: Limiting max basal rate to 0.80 U/h because of pump limit", c.getReasons(aapsLogger)) + Assertions.assertEquals("DanaR: Limiting max basal rate to 0.80 U/h because of pump limit", c.getMostLimitedReasons(aapsLogger)) } @Test @Throws(Exception::class) @@ -71,8 +73,8 @@ class DanaRPluginTest : TestBaseWithProfile() { danaPump.maxBasal = 0.8 val c = Constraint(Constants.REALLYHIGHPERCENTBASALRATE) danaRPlugin.applyBasalPercentConstraints(c, validProfile) - Assert.assertEquals(200, c.value()) - Assert.assertEquals("DanaR: Limiting max percent rate to 200% because of pump limit", c.getReasons(aapsLogger)) - Assert.assertEquals("DanaR: Limiting max percent rate to 200% because of pump limit", c.getMostLimitedReasons(aapsLogger)) + Assertions.assertEquals(200, c.value()) + Assertions.assertEquals("DanaR: Limiting max percent rate to 200% because of pump limit", c.getReasons(aapsLogger)) + Assertions.assertEquals("DanaR: Limiting max percent rate to 200% because of pump limit", c.getMostLimitedReasons(aapsLogger)) } } \ No newline at end of file diff --git a/pump/danar/src/test/java/info/nightscout/androidaps/plugins/pump/danaR/comm/DanaRTestBase.kt b/pump/danar/src/test/java/info/nightscout/androidaps/plugins/pump/danaR/comm/DanaRTestBase.kt index 8e40bf2cae..b14fad7e87 100644 --- a/pump/danar/src/test/java/info/nightscout/androidaps/plugins/pump/danaR/comm/DanaRTestBase.kt +++ b/pump/danar/src/test/java/info/nightscout/androidaps/plugins/pump/danaR/comm/DanaRTestBase.kt @@ -11,8 +11,7 @@ import info.nightscout.androidaps.danar.comm.MessageBase import info.nightscout.interfaces.ConfigBuilder import info.nightscout.interfaces.constraints.Constraints import info.nightscout.interfaces.plugin.ActivePlugin -import info.nightscout.interfaces.profile.ProfileFunction -import info.nightscout.interfaces.profile.ProfileInstantiator +import info.nightscout.interfaces.profile.Instantiator import info.nightscout.interfaces.pump.DetailedBolusInfoStorage import info.nightscout.interfaces.pump.PumpSync import info.nightscout.interfaces.queue.CommandQueue @@ -33,7 +32,6 @@ import org.mockito.kotlin.doNothing open class DanaRTestBase : TestBase() { @Mock lateinit var sp: SP - @Mock lateinit var profileFunction: ProfileFunction @Mock lateinit var activePlugin: ActivePlugin @Mock lateinit var dateUtil: DateUtil @Mock lateinit var danaRPlugin: DanaRPlugin @@ -46,14 +44,14 @@ open class DanaRTestBase : TestBase() { @Mock lateinit var constraintChecker: Constraints @Mock lateinit var pumpSync: PumpSync @Mock lateinit var danaHistoryRecordDao: DanaHistoryRecordDao - @Mock lateinit var profileInstantiator: ProfileInstantiator + @Mock lateinit var instantiator: Instantiator @Mock lateinit var uiInteraction: UiInteraction private lateinit var testPumpPlugin: TestPumpPlugin @BeforeEach fun setup() { - danaPump = DanaPump(aapsLogger, sp, dateUtil, profileInstantiator) + danaPump = DanaPump(aapsLogger, sp, dateUtil, instantiator) testPumpPlugin = TestPumpPlugin(injector) `when`(activePlugin.activePump).thenReturn(testPumpPlugin) doNothing().`when`(danaRKoreanPlugin).setPluginEnabled(anyObject(), anyBoolean()) diff --git a/pump/danar/src/test/java/info/nightscout/androidaps/plugins/pump/danaRKorean/DanaRKoreanPluginTest.kt b/pump/danar/src/test/java/info/nightscout/androidaps/plugins/pump/danaRKorean/DanaRKoreanPluginTest.kt index 6079c62d6a..2c593f191a 100644 --- a/pump/danar/src/test/java/info/nightscout/androidaps/plugins/pump/danaRKorean/DanaRKoreanPluginTest.kt +++ b/pump/danar/src/test/java/info/nightscout/androidaps/plugins/pump/danaRKorean/DanaRKoreanPluginTest.kt @@ -8,14 +8,14 @@ import info.nightscout.interfaces.Constants import info.nightscout.interfaces.constraints.Constraint import info.nightscout.interfaces.constraints.Constraints import info.nightscout.interfaces.plugin.PluginType -import info.nightscout.interfaces.profile.ProfileInstantiator +import info.nightscout.interfaces.profile.Instantiator import info.nightscout.interfaces.pump.PumpSync import info.nightscout.interfaces.queue.CommandQueue import info.nightscout.interfaces.ui.UiInteraction import info.nightscout.pump.dana.DanaPump import info.nightscout.pump.dana.database.DanaHistoryDatabase import info.nightscout.shared.sharedPreferences.SP -import org.junit.Assert +import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test import org.mockito.Mock @@ -27,7 +27,7 @@ class DanaRKoreanPluginTest : TestBaseWithProfile() { @Mock lateinit var sp: SP @Mock lateinit var commandQueue: CommandQueue @Mock lateinit var pumpSync: PumpSync - @Mock lateinit var profileInstantiator: ProfileInstantiator + @Mock lateinit var instantiator: Instantiator @Mock lateinit var uiInteraction: UiInteraction @Mock lateinit var danaHistoryDatabase: DanaHistoryDatabase @@ -47,7 +47,7 @@ class DanaRKoreanPluginTest : TestBaseWithProfile() { `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.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") - danaPump = DanaPump(aapsLogger, sp, dateUtil, profileInstantiator) + danaPump = DanaPump(aapsLogger, sp, dateUtil, instantiator) danaRPlugin = DanaRKoreanPlugin(injector, aapsLogger, aapsSchedulers, rxBus, context, rh, constraintChecker, activePluginProvider, sp, commandQueue, danaPump, dateUtil, fabricPrivacy, pumpSync, uiInteraction, danaHistoryDatabase) } @@ -59,9 +59,9 @@ class DanaRKoreanPluginTest : TestBaseWithProfile() { danaPump.maxBasal = 0.8 val c = Constraint(Constants.REALLYHIGHBASALRATE) danaRPlugin.applyBasalConstraints(c, validProfile) - Assert.assertEquals(0.8, c.value(), 0.01) - Assert.assertEquals("DanaRKorean: Limiting max basal rate to 0.80 U/h because of pump limit", c.getReasons(aapsLogger)) - Assert.assertEquals("DanaRKorean: Limiting max basal rate to 0.80 U/h because of pump limit", c.getMostLimitedReasons(aapsLogger)) + Assertions.assertEquals(0.8, c.value(), 0.01) + Assertions.assertEquals("DanaRKorean: Limiting max basal rate to 0.80 U/h because of pump limit", c.getReasons(aapsLogger)) + Assertions.assertEquals("DanaRKorean: Limiting max basal rate to 0.80 U/h because of pump limit", c.getMostLimitedReasons(aapsLogger)) } @Test @Throws(Exception::class) @@ -71,8 +71,8 @@ class DanaRKoreanPluginTest : TestBaseWithProfile() { danaPump.maxBasal = 0.8 val c = Constraint(Constants.REALLYHIGHPERCENTBASALRATE) danaRPlugin.applyBasalPercentConstraints(c, validProfile) - Assert.assertEquals(200, c.value()) - Assert.assertEquals("DanaRKorean: Limiting max percent rate to 200% because of pump limit", c.getReasons(aapsLogger)) - Assert.assertEquals("DanaRKorean: Limiting max percent rate to 200% because of pump limit", c.getMostLimitedReasons(aapsLogger)) + Assertions.assertEquals(200, c.value()) + Assertions.assertEquals("DanaRKorean: Limiting max percent rate to 200% because of pump limit", c.getReasons(aapsLogger)) + Assertions.assertEquals("DanaRKorean: Limiting max percent rate to 200% because of pump limit", c.getMostLimitedReasons(aapsLogger)) } } \ No newline at end of file diff --git a/pump/danar/src/test/java/info/nightscout/androidaps/plugins/pump/danaRv2/DanaRv2PluginTest.kt b/pump/danar/src/test/java/info/nightscout/androidaps/plugins/pump/danaRv2/DanaRv2PluginTest.kt index 06ed276026..39fb63ab9b 100644 --- a/pump/danar/src/test/java/info/nightscout/androidaps/plugins/pump/danaRv2/DanaRv2PluginTest.kt +++ b/pump/danar/src/test/java/info/nightscout/androidaps/plugins/pump/danaRv2/DanaRv2PluginTest.kt @@ -8,7 +8,7 @@ import info.nightscout.interfaces.Constants import info.nightscout.interfaces.constraints.Constraint import info.nightscout.interfaces.constraints.Constraints import info.nightscout.interfaces.plugin.PluginType -import info.nightscout.interfaces.profile.ProfileInstantiator +import info.nightscout.interfaces.profile.Instantiator import info.nightscout.interfaces.pump.DetailedBolusInfoStorage import info.nightscout.interfaces.pump.PumpSync import info.nightscout.interfaces.pump.TemporaryBasalStorage @@ -17,6 +17,7 @@ import info.nightscout.interfaces.ui.UiInteraction import info.nightscout.pump.dana.DanaPump import info.nightscout.pump.dana.database.DanaHistoryDatabase import info.nightscout.shared.sharedPreferences.SP +import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test import org.mockito.Mock @@ -30,7 +31,7 @@ class DanaRv2PluginTest : TestBaseWithProfile() { @Mock lateinit var detailedBolusInfoStorage: DetailedBolusInfoStorage @Mock lateinit var temporaryBasalStorage: TemporaryBasalStorage @Mock lateinit var pumpSync: PumpSync - @Mock lateinit var profileInstantiator: ProfileInstantiator + @Mock lateinit var instantiator: Instantiator @Mock lateinit var uiInteraction: UiInteraction @Mock lateinit var danaHistoryDatabase: DanaHistoryDatabase @@ -50,7 +51,7 @@ class DanaRv2PluginTest : TestBaseWithProfile() { `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.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") - danaPump = DanaPump(aapsLogger, sp, dateUtil, profileInstantiator) + danaPump = DanaPump(aapsLogger, sp, dateUtil, instantiator) danaRv2Plugin = DanaRv2Plugin( injector, aapsLogger, aapsSchedulers, rxBus, context, rh, constraintChecker, activePluginProvider, sp, commandQueue, danaPump, detailedBolusInfoStorage, temporaryBasalStorage, dateUtil, fabricPrivacy, pumpSync, uiInteraction, danaHistoryDatabase @@ -64,9 +65,9 @@ class DanaRv2PluginTest : TestBaseWithProfile() { danaPump.maxBasal = 0.8 val c = Constraint(Constants.REALLYHIGHBASALRATE) danaRv2Plugin.applyBasalConstraints(c, validProfile) - org.junit.Assert.assertEquals(0.8, c.value(), 0.01) - org.junit.Assert.assertEquals("DanaRv2: Limiting max basal rate to 0.80 U/h because of pump limit", c.getReasons(aapsLogger)) - org.junit.Assert.assertEquals("DanaRv2: Limiting max basal rate to 0.80 U/h because of pump limit", c.getMostLimitedReasons(aapsLogger)) + Assertions.assertEquals(0.8, c.value(), 0.01) + Assertions.assertEquals("DanaRv2: Limiting max basal rate to 0.80 U/h because of pump limit", c.getReasons(aapsLogger)) + Assertions.assertEquals("DanaRv2: Limiting max basal rate to 0.80 U/h because of pump limit", c.getMostLimitedReasons(aapsLogger)) } @Test @@ -76,8 +77,8 @@ class DanaRv2PluginTest : TestBaseWithProfile() { danaPump.maxBasal = 0.8 val c = Constraint(Constants.REALLYHIGHPERCENTBASALRATE) danaRv2Plugin.applyBasalPercentConstraints(c, validProfile) - org.junit.Assert.assertEquals(200, c.value()) - org.junit.Assert.assertEquals("DanaRv2: Limiting max percent rate to 200% because of pump limit", c.getReasons(aapsLogger)) - org.junit.Assert.assertEquals("DanaRv2: Limiting max percent rate to 200% because of pump limit", c.getMostLimitedReasons(aapsLogger)) + Assertions.assertEquals(200, c.value()) + Assertions.assertEquals("DanaRv2: Limiting max percent rate to 200% because of pump limit", c.getReasons(aapsLogger)) + Assertions.assertEquals("DanaRv2: Limiting max percent rate to 200% because of pump limit", c.getMostLimitedReasons(aapsLogger)) } } \ No newline at end of file diff --git a/pump/danars/src/test/java/info/nightscout/pump/danars/DanaRSTestBase.kt b/pump/danars/src/test/java/info/nightscout/pump/danars/DanaRSTestBase.kt index 49ca424f53..19881b22a2 100644 --- a/pump/danars/src/test/java/info/nightscout/pump/danars/DanaRSTestBase.kt +++ b/pump/danars/src/test/java/info/nightscout/pump/danars/DanaRSTestBase.kt @@ -1,9 +1,7 @@ package info.nightscout.pump.danars -import dagger.android.AndroidInjector -import dagger.android.HasAndroidInjector import info.nightscout.androidaps.TestBaseWithProfile -import info.nightscout.interfaces.profile.ProfileInstantiator +import info.nightscout.interfaces.profile.Instantiator import info.nightscout.interfaces.ui.UiInteraction import info.nightscout.pump.dana.DanaPump import info.nightscout.pump.danars.comm.DanaRSPacket @@ -16,11 +14,9 @@ import org.mockito.Mockito open class DanaRSTestBase : TestBaseWithProfile() { @Mock lateinit var sp: SP - @Mock lateinit var profileInstantiator: ProfileInstantiator + @Mock lateinit var instantiator: Instantiator @Mock lateinit var uiInteraction: UiInteraction - val injector = HasAndroidInjector { AndroidInjector { } } - lateinit var danaPump: DanaPump @BeforeEach @@ -58,6 +54,6 @@ open class DanaRSTestBase : TestBaseWithProfile() { @BeforeEach fun setup() { - danaPump = DanaPump(aapsLogger, sp, dateUtil, profileInstantiator) + danaPump = DanaPump(aapsLogger, sp, dateUtil, instantiator) } } \ No newline at end of file diff --git a/pump/virtual/.gitignore b/pump/virtual/.gitignore new file mode 100644 index 0000000000..796b96d1c4 --- /dev/null +++ b/pump/virtual/.gitignore @@ -0,0 +1 @@ +/build diff --git a/pump/virtual/build.gradle b/pump/virtual/build.gradle new file mode 100644 index 0000000000..3f2bc9b9ac --- /dev/null +++ b/pump/virtual/build.gradle @@ -0,0 +1,27 @@ +plugins { + id 'com.android.library' + id 'kotlin-android' + id 'kotlin-kapt' + id 'kotlin-allopen' + id 'com.hiya.jacoco-android' +} + +apply from: "${project.rootDir}/core/main/android_dependencies.gradle" +apply from: "${project.rootDir}/core/main/android_module_dependencies.gradle" +apply from: "${project.rootDir}/core/main/allopen_dependencies.gradle" +apply from: "${project.rootDir}/core/main/test_dependencies.gradle" +apply from: "${project.rootDir}/core/main/jacoco_global.gradle" + +android { + + namespace 'info.nightscout.pump.virtual' +} + +dependencies { + implementation project(':app-wear-shared:shared') + implementation project(':database:entities') + implementation project(':core:interfaces') + implementation project(':core:main') + implementation project(':core:ui') + implementation project(':core:utils') +} \ No newline at end of file diff --git a/pump/virtual/consumer-rules.pro b/pump/virtual/consumer-rules.pro new file mode 100644 index 0000000000..e69de29bb2 diff --git a/pump/virtual/proguard-rules.pro b/pump/virtual/proguard-rules.pro new file mode 100644 index 0000000000..f1b424510d --- /dev/null +++ b/pump/virtual/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile diff --git a/plugins/support/src/main/AndroidManifest.xml b/pump/virtual/src/main/AndroidManifest.xml similarity index 58% rename from plugins/support/src/main/AndroidManifest.xml rename to pump/virtual/src/main/AndroidManifest.xml index a5918e68ab..0a0938ae37 100644 --- a/plugins/support/src/main/AndroidManifest.xml +++ b/pump/virtual/src/main/AndroidManifest.xml @@ -1,4 +1,3 @@ - - \ No newline at end of file + diff --git a/plugins/main/src/main/java/info/nightscout/plugins/pump/virtual/VirtualPumpFragment.kt b/pump/virtual/src/main/java/info/nightscout/pump/virtual/VirtualPumpFragment.kt similarity index 95% rename from plugins/main/src/main/java/info/nightscout/plugins/pump/virtual/VirtualPumpFragment.kt rename to pump/virtual/src/main/java/info/nightscout/pump/virtual/VirtualPumpFragment.kt index f528521824..15c1cf15b0 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/pump/virtual/VirtualPumpFragment.kt +++ b/pump/virtual/src/main/java/info/nightscout/pump/virtual/VirtualPumpFragment.kt @@ -1,4 +1,4 @@ -package info.nightscout.plugins.pump.virtual +package info.nightscout.pump.virtual import android.os.Bundle import android.os.Handler @@ -11,9 +11,8 @@ import info.nightscout.core.extensions.toStringFull import info.nightscout.core.utils.fabric.FabricPrivacy import info.nightscout.interfaces.iob.IobCobCalculator import info.nightscout.interfaces.profile.ProfileFunction -import info.nightscout.plugins.R -import info.nightscout.plugins.databinding.VirtualPumpFragmentBinding -import info.nightscout.plugins.pump.virtual.events.EventVirtualPumpUpdateGui +import info.nightscout.pump.virtual.databinding.VirtualPumpFragmentBinding +import info.nightscout.pump.virtual.events.EventVirtualPumpUpdateGui import info.nightscout.rx.AapsSchedulers import info.nightscout.rx.bus.RxBus import info.nightscout.rx.events.EventExtendedBolusChange diff --git a/plugins/main/src/main/java/info/nightscout/plugins/pump/virtual/VirtualPumpPlugin.kt b/pump/virtual/src/main/java/info/nightscout/pump/virtual/VirtualPumpPlugin.kt similarity index 97% rename from plugins/main/src/main/java/info/nightscout/plugins/pump/virtual/VirtualPumpPlugin.kt rename to pump/virtual/src/main/java/info/nightscout/pump/virtual/VirtualPumpPlugin.kt index 6aace87e40..9db3437861 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/pump/virtual/VirtualPumpPlugin.kt +++ b/pump/virtual/src/main/java/info/nightscout/pump/virtual/VirtualPumpPlugin.kt @@ -1,4 +1,4 @@ -package info.nightscout.plugins.pump.virtual +package info.nightscout.pump.virtual import android.os.SystemClock import androidx.preference.PreferenceFragmentCompat @@ -28,9 +28,8 @@ import info.nightscout.interfaces.pump.defs.PumpDescription import info.nightscout.interfaces.pump.defs.PumpType import info.nightscout.interfaces.queue.CommandQueue import info.nightscout.interfaces.utils.TimeChangeType -import info.nightscout.plugins.R -import info.nightscout.plugins.extensions.toText -import info.nightscout.plugins.pump.virtual.events.EventVirtualPumpUpdateGui +import info.nightscout.pump.virtual.events.EventVirtualPumpUpdateGui +import info.nightscout.pump.virtual.extensions.toText import info.nightscout.rx.AapsSchedulers import info.nightscout.rx.bus.RxBus import info.nightscout.rx.events.EventOverviewBolusProgress @@ -124,7 +123,7 @@ open class VirtualPumpPlugin @Inject constructor( override fun preprocessPreferences(preferenceFragment: PreferenceFragmentCompat) { super.preprocessPreferences(preferenceFragment) - val uploadStatus = preferenceFragment.findPreference(rh.gs(R.string.key_virtual_pump_upload_status)) as SwitchPreference? + val uploadStatus = preferenceFragment.findPreference(rh.gs(info.nightscout.core.utils.R.string.key_virtual_pump_upload_status)) as SwitchPreference? ?: return uploadStatus.isVisible = !config.NSCLIENT } @@ -340,7 +339,7 @@ open class VirtualPumpPlugin @Inject constructor( override fun getJSONStatus(profile: Profile, profileName: String, version: String): JSONObject { val now = System.currentTimeMillis() - if (!sp.getBoolean(R.string.key_virtual_pump_upload_status, false)) { + if (!sp.getBoolean(info.nightscout.core.utils.R.string.key_virtual_pump_upload_status, false)) { return JSONObject() } val pump = JSONObject() diff --git a/plugins/main/src/main/java/info/nightscout/plugins/di/VirtualPumpModule.kt b/pump/virtual/src/main/java/info/nightscout/pump/virtual/di/VirtualPumpModule.kt similarity index 75% rename from plugins/main/src/main/java/info/nightscout/plugins/di/VirtualPumpModule.kt rename to pump/virtual/src/main/java/info/nightscout/pump/virtual/di/VirtualPumpModule.kt index f931269ecf..156c1bd0f5 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/di/VirtualPumpModule.kt +++ b/pump/virtual/src/main/java/info/nightscout/pump/virtual/di/VirtualPumpModule.kt @@ -1,11 +1,11 @@ -package info.nightscout.plugins.di +package info.nightscout.pump.virtual.di import dagger.Binds import dagger.Module import dagger.android.ContributesAndroidInjector import info.nightscout.interfaces.pump.VirtualPump -import info.nightscout.plugins.pump.virtual.VirtualPumpFragment -import info.nightscout.plugins.pump.virtual.VirtualPumpPlugin +import info.nightscout.pump.virtual.VirtualPumpFragment +import info.nightscout.pump.virtual.VirtualPumpPlugin @Module( includes = [ diff --git a/plugins/main/src/main/java/info/nightscout/plugins/pump/virtual/events/EventVirtualPumpUpdateGui.kt b/pump/virtual/src/main/java/info/nightscout/pump/virtual/events/EventVirtualPumpUpdateGui.kt similarity index 65% rename from plugins/main/src/main/java/info/nightscout/plugins/pump/virtual/events/EventVirtualPumpUpdateGui.kt rename to pump/virtual/src/main/java/info/nightscout/pump/virtual/events/EventVirtualPumpUpdateGui.kt index 55457db925..4bb49eb4fb 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/pump/virtual/events/EventVirtualPumpUpdateGui.kt +++ b/pump/virtual/src/main/java/info/nightscout/pump/virtual/events/EventVirtualPumpUpdateGui.kt @@ -1,4 +1,4 @@ -package info.nightscout.plugins.pump.virtual.events +package info.nightscout.pump.virtual.events import info.nightscout.rx.events.EventUpdateGui diff --git a/plugins/main/src/main/java/info/nightscout/plugins/extensions/PumpEnactResultExtension.kt b/pump/virtual/src/main/java/info/nightscout/pump/virtual/extensions/PumpEnactResultExtension.kt similarity index 97% rename from plugins/main/src/main/java/info/nightscout/plugins/extensions/PumpEnactResultExtension.kt rename to pump/virtual/src/main/java/info/nightscout/pump/virtual/extensions/PumpEnactResultExtension.kt index 145156340c..664fdea6b2 100644 --- a/plugins/main/src/main/java/info/nightscout/plugins/extensions/PumpEnactResultExtension.kt +++ b/pump/virtual/src/main/java/info/nightscout/pump/virtual/extensions/PumpEnactResultExtension.kt @@ -1,4 +1,4 @@ -package info.nightscout.plugins.extensions +package info.nightscout.pump.virtual.extensions import info.nightscout.interfaces.pump.PumpEnactResult import info.nightscout.shared.interfaces.ResourceHelper diff --git a/plugins/main/src/main/res/layout/virtual_pump_fragment.xml b/pump/virtual/src/main/res/layout/virtual_pump_fragment.xml similarity index 99% rename from plugins/main/src/main/res/layout/virtual_pump_fragment.xml rename to pump/virtual/src/main/res/layout/virtual_pump_fragment.xml index 33d875cf98..f961d691e3 100644 --- a/plugins/main/src/main/res/layout/virtual_pump_fragment.xml +++ b/pump/virtual/src/main/res/layout/virtual_pump_fragment.xml @@ -2,7 +2,7 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" - tools:context=".pump.virtual.VirtualPumpFragment"> + tools:context=".VirtualPumpFragment"> + + + Pomp integrasie vir pompe wat nog nie enige drywer het nie (oop lus) + Virtuele pomp instellings + diff --git a/pump/virtual/src/main/res/values-bg-rBG/strings.xml b/pump/virtual/src/main/res/values-bg-rBG/strings.xml new file mode 100644 index 0000000000..c8ccd9ec77 --- /dev/null +++ b/pump/virtual/src/main/res/values-bg-rBG/strings.xml @@ -0,0 +1,6 @@ + + + + За помпи, който все още не работят с AndroidAPS(Open Loop) + Настойки Виртуална Помпа + diff --git a/pump/virtual/src/main/res/values-ca-rES/strings.xml b/pump/virtual/src/main/res/values-ca-rES/strings.xml new file mode 100644 index 0000000000..18af45c7b1 --- /dev/null +++ b/pump/virtual/src/main/res/values-ca-rES/strings.xml @@ -0,0 +1,6 @@ + + + + Integració de bombes d\'insulina per les quals encara no existeix driver/controlador (Llaç obert) + Configuració bomba virtual + diff --git a/pump/virtual/src/main/res/values-cs-rCZ/strings.xml b/pump/virtual/src/main/res/values-cs-rCZ/strings.xml new file mode 100644 index 0000000000..3619831597 --- /dev/null +++ b/pump/virtual/src/main/res/values-cs-rCZ/strings.xml @@ -0,0 +1,11 @@ + + + + Typ virtuální pumpy + Definice pumpy + Bolus: Krok =%1$s\nProdl. bolus: [Krok=%2$s, Délka=%3$smin-%4$sh]\nBazál: Krok=%5$s\nDoč. bazál: %6$s (%7$s), Délka=%8$smin-%9$sh\n%10$s + VPUM + Ovladač pumpy pro uživatele bez podporované pumpy (Otevřená smyčka) + VIRTUÁLNÍ PUMPA + Nastavení virtuální pumpy + diff --git a/pump/virtual/src/main/res/values-da-rDK/strings.xml b/pump/virtual/src/main/res/values-da-rDK/strings.xml new file mode 100644 index 0000000000..6518adaca0 --- /dev/null +++ b/pump/virtual/src/main/res/values-da-rDK/strings.xml @@ -0,0 +1,6 @@ + + + + Pumpeintegration til pumper, som endnu ikke har nogen driver (Åbent Loop) + Indstillinger for virtuel pumpe + diff --git a/pump/virtual/src/main/res/values-de-rDE/strings.xml b/pump/virtual/src/main/res/values-de-rDE/strings.xml new file mode 100644 index 0000000000..b80d97c397 --- /dev/null +++ b/pump/virtual/src/main/res/values-de-rDE/strings.xml @@ -0,0 +1,6 @@ + + + + Pumpenintegration für Pumpen, die noch nicht über einen Treiber verfügen (Open Loop) + Einstellungen der virtuellen Pumpe + diff --git a/pump/virtual/src/main/res/values-el-rGR/strings.xml b/pump/virtual/src/main/res/values-el-rGR/strings.xml new file mode 100644 index 0000000000..5c2408a953 --- /dev/null +++ b/pump/virtual/src/main/res/values-el-rGR/strings.xml @@ -0,0 +1,6 @@ + + + + Ολοκλήρωση αντλίας για αντλίες που δεν έχουν κανέναν οδηγό ακόμα (Ανοιχτό Κύκλωμα) + Ρυθμίσεις Εικονικής αντλίας + diff --git a/pump/virtual/src/main/res/values-es-rES/strings.xml b/pump/virtual/src/main/res/values-es-rES/strings.xml new file mode 100644 index 0000000000..e4a2c05fd9 --- /dev/null +++ b/pump/virtual/src/main/res/values-es-rES/strings.xml @@ -0,0 +1,10 @@ + + + + Definición de la bomba + Bolo: Paso =%1$s\nBolo Extendido: [paso =%2$s, Duración =%3$smin -%4$sh] \nBasal: Paso =%5$s\nTBR: %6$s ( %7$s), Duración =%8$sMin -%9$sh\n%10$s + BOMBAV + Integración de bombas de insulina que aún no tienen ningún controlador disponible (lazo abierto) + BOMBA VIRTUAL + Ajustes de bomba virtual + diff --git a/pump/virtual/src/main/res/values-fr-rFR/strings.xml b/pump/virtual/src/main/res/values-fr-rFR/strings.xml new file mode 100644 index 0000000000..a4d939ede6 --- /dev/null +++ b/pump/virtual/src/main/res/values-fr-rFR/strings.xml @@ -0,0 +1,10 @@ + + + + Définition de pompe + Bolus : Étape =%1$s\nExtended Bolus : [Étape =%2$s, Durée =%3$smin -%4$sh]\nBasal : Étape =%5$s\nTBR : %6$s (par %7$s), Durée =%8$smin -%9$sh\n%10$s + POMPEV + Intégration pour les pompes qui n’ont pas encore de pilote (Boucle Ouverte) + POMPE VIRTUELLE + Paramètres pompe virtuelle + diff --git a/pump/virtual/src/main/res/values-ga-rIE/strings.xml b/pump/virtual/src/main/res/values-ga-rIE/strings.xml new file mode 100644 index 0000000000..5f1fadd4ab --- /dev/null +++ b/pump/virtual/src/main/res/values-ga-rIE/strings.xml @@ -0,0 +1,4 @@ + + + + diff --git a/pump/virtual/src/main/res/values-hr-rHR/strings.xml b/pump/virtual/src/main/res/values-hr-rHR/strings.xml new file mode 100644 index 0000000000..aaefd79c4e --- /dev/null +++ b/pump/virtual/src/main/res/values-hr-rHR/strings.xml @@ -0,0 +1,9 @@ + + + + Definicija pumpe + Bolus: korak=%1$s\nProduženi bolus: [korak=%2$s, trajanje=%3$smin-%4$sh]\nBazal: korak=%5$s\nTBR: %6$s (do %7$s), Trajanje=%8$smin-%9$sh\n%10$s + VPUMP + Integracija pumpe za pumpe koje još nemaju upravljački program (otvorena petlja) + Postavke virtualne pumpe + diff --git a/pump/virtual/src/main/res/values-hu-rHU/strings.xml b/pump/virtual/src/main/res/values-hu-rHU/strings.xml new file mode 100644 index 0000000000..5f1fadd4ab --- /dev/null +++ b/pump/virtual/src/main/res/values-hu-rHU/strings.xml @@ -0,0 +1,4 @@ + + + + diff --git a/pump/virtual/src/main/res/values-it-rIT/strings.xml b/pump/virtual/src/main/res/values-it-rIT/strings.xml new file mode 100644 index 0000000000..a3d23e34a6 --- /dev/null +++ b/pump/virtual/src/main/res/values-it-rIT/strings.xml @@ -0,0 +1,10 @@ + + + + Definizione micro + Bolo: Step=%1$s\nBolo Esteso: [Step=%2$s, Durata=%3$smin-%4$sh]\nBasale: Step=%5$s\nTBR: %6$s (di %7$s), Durata=%8$smin-%9$sh\n%10$s + MICROV + Per microinfusori che non hanno ancora alcun driver (Loop aperto) + MICRO VIRTUALE + Impostazioni micro virtuale + diff --git a/pump/virtual/src/main/res/values-iw-rIL/strings.xml b/pump/virtual/src/main/res/values-iw-rIL/strings.xml new file mode 100644 index 0000000000..6ca6170d2b --- /dev/null +++ b/pump/virtual/src/main/res/values-iw-rIL/strings.xml @@ -0,0 +1,6 @@ + + + + שימוש במשאבות אשר עדיין אין להם מנהל התקן כלשהו (לולאה פתוחה) + הגדרות משאבה וירטואלית + diff --git a/pump/virtual/src/main/res/values-ja-rJP/strings.xml b/pump/virtual/src/main/res/values-ja-rJP/strings.xml new file mode 100644 index 0000000000..5f1fadd4ab --- /dev/null +++ b/pump/virtual/src/main/res/values-ja-rJP/strings.xml @@ -0,0 +1,4 @@ + + + + diff --git a/pump/virtual/src/main/res/values-ko-rKR/strings.xml b/pump/virtual/src/main/res/values-ko-rKR/strings.xml new file mode 100644 index 0000000000..b228a9b77c --- /dev/null +++ b/pump/virtual/src/main/res/values-ko-rKR/strings.xml @@ -0,0 +1,6 @@ + + + + 가상용 펌프를 위한 설정(Open Loop) + 가상펌프 설정 + diff --git a/pump/virtual/src/main/res/values-lt-rLT/strings.xml b/pump/virtual/src/main/res/values-lt-rLT/strings.xml new file mode 100644 index 0000000000..c187457587 --- /dev/null +++ b/pump/virtual/src/main/res/values-lt-rLT/strings.xml @@ -0,0 +1,6 @@ + + + + Integracija pompoms, kurios dar neturi reikalingo valdiklio (Atviras Ciklas) + Virtualios pompos nustatymai + diff --git a/pump/virtual/src/main/res/values-nl-rNL/strings.xml b/pump/virtual/src/main/res/values-nl-rNL/strings.xml new file mode 100644 index 0000000000..7cb784f1c0 --- /dev/null +++ b/pump/virtual/src/main/res/values-nl-rNL/strings.xml @@ -0,0 +1,10 @@ + + + + Pomp definitie + Bolus: Stap=%1$s\nExtended Bolus: [Stap=%2$s, Duur=%3$smin-%4$sh]\nBasaal: Stap=%5$s\nTBR: %6$s (by %7$s), Duur=%8$smin-%9$sh\n%10$s + VPUMP + Pomp integratie voor pompen, waar nog geen driver voor is (Open Loop) + VIRTUELE POMP + Virtuele pomp instellingen + diff --git a/pump/virtual/src/main/res/values-no-rNO/strings.xml b/pump/virtual/src/main/res/values-no-rNO/strings.xml new file mode 100644 index 0000000000..79f054be3d --- /dev/null +++ b/pump/virtual/src/main/res/values-no-rNO/strings.xml @@ -0,0 +1,10 @@ + + + + Pumpedefinisjon + Bolus: Step=%1$s\nForlenget bolus: [Step=%2$s, Varighet=%3$smin-%4$sh]\nBasal: Step=%5$s\nTBR: %6$s (av %7$s), Varighet=%8$smin-%9$sh\n%10$s + VPUMP + Integrasjon mot pumper som ikke støttes av AndroidAPS (åpen loop) + VIRTUELL PUMPE + Innstillinger for virtuell pumpe + diff --git a/pump/virtual/src/main/res/values-pl-rPL/strings.xml b/pump/virtual/src/main/res/values-pl-rPL/strings.xml new file mode 100644 index 0000000000..3032a51b19 --- /dev/null +++ b/pump/virtual/src/main/res/values-pl-rPL/strings.xml @@ -0,0 +1,6 @@ + + + + Integracja z pompami, które nie posiadają jeszcze żadnego sterownika (Open Loop) + Ustawienia pompy wirtualnej + diff --git a/pump/virtual/src/main/res/values-pt-rBR/strings.xml b/pump/virtual/src/main/res/values-pt-rBR/strings.xml new file mode 100644 index 0000000000..f4d49446e2 --- /dev/null +++ b/pump/virtual/src/main/res/values-pt-rBR/strings.xml @@ -0,0 +1,6 @@ + + + + Integração para as bombas que não têm qualquer driver ainda (Open Loop) + Definições da bomba virtual + diff --git a/pump/virtual/src/main/res/values-pt-rPT/strings.xml b/pump/virtual/src/main/res/values-pt-rPT/strings.xml new file mode 100644 index 0000000000..f4d49446e2 --- /dev/null +++ b/pump/virtual/src/main/res/values-pt-rPT/strings.xml @@ -0,0 +1,6 @@ + + + + Integração para as bombas que não têm qualquer driver ainda (Open Loop) + Definições da bomba virtual + diff --git a/pump/virtual/src/main/res/values-ro-rRO/strings.xml b/pump/virtual/src/main/res/values-ro-rRO/strings.xml new file mode 100644 index 0000000000..ce426b54c8 --- /dev/null +++ b/pump/virtual/src/main/res/values-ro-rRO/strings.xml @@ -0,0 +1,6 @@ + + + + Integrare cu pompele ce nu au încă un driver software disponibil (Buclă Deschisă) + Setări pompă virtuală + diff --git a/pump/virtual/src/main/res/values-ru-rRU/strings.xml b/pump/virtual/src/main/res/values-ru-rRU/strings.xml new file mode 100644 index 0000000000..2a771d664b --- /dev/null +++ b/pump/virtual/src/main/res/values-ru-rRU/strings.xml @@ -0,0 +1,6 @@ + + + + Интеграция с помпами, еще не имеющими драйвера (незамкнутый цикл) + настройки вирт помпы + diff --git a/pump/virtual/src/main/res/values-sk-rSK/strings.xml b/pump/virtual/src/main/res/values-sk-rSK/strings.xml new file mode 100644 index 0000000000..70113b0d89 --- /dev/null +++ b/pump/virtual/src/main/res/values-sk-rSK/strings.xml @@ -0,0 +1,10 @@ + + + + Definícia pumpy + Bolus: Krok =%1$s\nPredl. bolus: [Krok=%2$s, Dĺžka=%3$smin-%4$sh]\nBazál: Krok=%5$s\nDoč. bazál: %6$s (%7$s), Dĺžka=%8$smin-%9$sh\n%10$s + VPUM + Ovládač pumpy pre užívateľov bez podporovanej pumpy (Otvorený okruh) + Virtuálna pumpa + Nastavenie virtuálnej pumpy + diff --git a/pump/virtual/src/main/res/values-sr-rCS/strings.xml b/pump/virtual/src/main/res/values-sr-rCS/strings.xml new file mode 100644 index 0000000000..247064374a --- /dev/null +++ b/pump/virtual/src/main/res/values-sr-rCS/strings.xml @@ -0,0 +1,5 @@ + + + + Integracija pumpe za pumpe koje još uvek nemaju upravljački program (Open Loop) + diff --git a/pump/virtual/src/main/res/values-sv-rSE/strings.xml b/pump/virtual/src/main/res/values-sv-rSE/strings.xml new file mode 100644 index 0000000000..ccfd5d374a --- /dev/null +++ b/pump/virtual/src/main/res/values-sv-rSE/strings.xml @@ -0,0 +1,6 @@ + + + + Integration för pumpar som ännu inte stöds av AndroidAPS (Open loop) + Inställningar för Virtuell pump + diff --git a/pump/virtual/src/main/res/values-tr-rTR/strings.xml b/pump/virtual/src/main/res/values-tr-rTR/strings.xml new file mode 100644 index 0000000000..e34fdfe91b --- /dev/null +++ b/pump/virtual/src/main/res/values-tr-rTR/strings.xml @@ -0,0 +1,10 @@ + + + + Pompa tanımı + Bolus: Adım=%1$s\nYayma Bolus: [Adım=%2$s, Süre=%3$sdk-%4$ssa]\nBazal: Adım=%5$s\nGBO: %6$s (ile %7$s), Süre=%8$sdk-%9$ssa\n%10$s + VPOMP + Henüz herhangi bir sürücüye sahip olmayan pompalar için pompa entegrasyonu (Açık Döngü) + SANAL POMPA + Sanal pompa ayarları + diff --git a/pump/virtual/src/main/res/values-zh-rCN/strings.xml b/pump/virtual/src/main/res/values-zh-rCN/strings.xml new file mode 100644 index 0000000000..b3d2f3dbb0 --- /dev/null +++ b/pump/virtual/src/main/res/values-zh-rCN/strings.xml @@ -0,0 +1,6 @@ + + + + 与我们还没有其驱动的泵集成(开环) + 虚拟泵设置 + diff --git a/pump/virtual/src/main/res/values/arrays.xml b/pump/virtual/src/main/res/values/arrays.xml new file mode 100644 index 0000000000..f18e7abaa7 --- /dev/null +++ b/pump/virtual/src/main/res/values/arrays.xml @@ -0,0 +1,35 @@ + + + + Generic AAPS + MDI + Accu-Chek Combo + Accu-Chek Spirit + Accu-Chek Insight + Accu-Chek Solo + Animas Ping + Animas Vibe + Cellnovo + DanaR + DanaR Korean + DanaRS + DanaRv2 + DanaI + Diaconn G8 + Eoflow Eopatch2 + Medtronic 512/712 + Medtronic 515/715 + Medtronic 522/722 + Medtronic 523/723 (Revel) + Medtronic 554/754 (Veo) + Medtronic 640G + Omnipod Dash + Omnipod Eros + Tandem t:slim + Tandem t:flex + Tandem t:slim G4 + Tandem t:slim X2 + YpsoPump + + + \ No newline at end of file diff --git a/pump/virtual/src/main/res/values/strings.xml b/pump/virtual/src/main/res/values/strings.xml new file mode 100644 index 0000000000..3535a191cc --- /dev/null +++ b/pump/virtual/src/main/res/values/strings.xml @@ -0,0 +1,13 @@ + + + + Virtual Pump Type + Pump Definition + Bolus: Step=%1$s\nExtended Bolus: [Step=%2$s, Duration=%3$smin-%4$sh]\nBasal: Step=%5$s\nTBR: %6$s (by %7$s), Duration=%8$smin-%9$sh\n%10$s + + VPUMP + Pump integration for pumps which don\'t have any driver yet (Open Loop) + VIRTUAL PUMP + Virtual pump settings + + diff --git a/plugins/main/src/main/res/xml/pref_virtual_pump.xml b/pump/virtual/src/main/res/xml/pref_virtual_pump.xml similarity index 100% rename from plugins/main/src/main/res/xml/pref_virtual_pump.xml rename to pump/virtual/src/main/res/xml/pref_virtual_pump.xml diff --git a/pump/virtual/src/test/java/info/nightscout/androidaps/TestBase.kt b/pump/virtual/src/test/java/info/nightscout/androidaps/TestBase.kt new file mode 100644 index 0000000000..4fd2aef548 --- /dev/null +++ b/pump/virtual/src/test/java/info/nightscout/androidaps/TestBase.kt @@ -0,0 +1,37 @@ +package info.nightscout.androidaps + +import info.nightscout.rx.AapsSchedulers +import info.nightscout.rx.TestAapsSchedulers +import info.nightscout.rx.logging.AAPSLoggerTest +import org.junit.jupiter.api.BeforeEach +import org.junit.jupiter.api.extension.ExtendWith +import org.mockito.Mockito +import org.mockito.junit.jupiter.MockitoExtension +import org.mockito.junit.jupiter.MockitoSettings +import org.mockito.quality.Strictness +import java.util.Locale + +@ExtendWith(MockitoExtension::class) +@MockitoSettings(strictness = Strictness.LENIENT) +open class TestBase { + + val aapsLogger = AAPSLoggerTest() + val aapsSchedulers: AapsSchedulers = TestAapsSchedulers() + + @BeforeEach + fun setupLocale() { + Locale.setDefault(Locale.ENGLISH) + System.setProperty("disableFirebase", "true") + } + + // Workaround for Kotlin nullability. + // https://medium.com/@elye.project/befriending-kotlin-and-mockito-1c2e7b0ef791 + // https://stackoverflow.com/questions/30305217/is-it-possible-to-use-mockito-in-kotlin + fun anyObject(): T { + Mockito.any() + return uninitialized() + } + + @Suppress("Unchecked_Cast") + fun uninitialized(): T = null as T +} \ No newline at end of file diff --git a/plugins/main/src/test/java/info/nightscout/plugins/pump/virtual/VirtualPumpPluginUTest.kt b/pump/virtual/src/test/java/info/nightscout/pump/virtual/VirtualPumpPluginUTest.kt similarity index 87% rename from plugins/main/src/test/java/info/nightscout/plugins/pump/virtual/VirtualPumpPluginUTest.kt rename to pump/virtual/src/test/java/info/nightscout/pump/virtual/VirtualPumpPluginUTest.kt index 7cc6f28978..872bb7c8eb 100644 --- a/plugins/main/src/test/java/info/nightscout/plugins/pump/virtual/VirtualPumpPluginUTest.kt +++ b/pump/virtual/src/test/java/info/nightscout/pump/virtual/VirtualPumpPluginUTest.kt @@ -1,4 +1,4 @@ -package info.nightscout.plugins.pump.virtual +package info.nightscout.pump.virtual import dagger.android.AndroidInjector import info.nightscout.androidaps.TestBase @@ -13,7 +13,7 @@ import info.nightscout.rx.bus.RxBus import info.nightscout.shared.interfaces.ResourceHelper import info.nightscout.shared.sharedPreferences.SP import info.nightscout.shared.utils.DateUtil -import org.junit.Assert +import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test import org.mockito.Mock @@ -32,7 +32,7 @@ class VirtualPumpPluginUTest : TestBase() { @Mock lateinit var pumpSync: PumpSync @Mock lateinit var config: Config - lateinit var virtualPumpPlugin: VirtualPumpPlugin + private lateinit var virtualPumpPlugin: VirtualPumpPlugin @BeforeEach fun prepareMocks() { @@ -43,7 +43,7 @@ class VirtualPumpPluginUTest : TestBase() { fun refreshConfiguration() { `when`(sp.getString(info.nightscout.core.utils.R.string.key_virtualpump_type, "Generic AAPS")).thenReturn("Accu-Chek Combo") virtualPumpPlugin.refreshConfiguration() - Assert.assertEquals(PumpType.ACCU_CHEK_COMBO, virtualPumpPlugin.pumpType) + Assertions.assertEquals(PumpType.ACCU_CHEK_COMBO, virtualPumpPlugin.pumpType) } @Test @@ -52,6 +52,6 @@ class VirtualPumpPluginUTest : TestBase() { virtualPumpPlugin.refreshConfiguration() `when`(sp.getString(info.nightscout.core.utils.R.string.key_virtualpump_type, "Generic AAPS")).thenReturn("Accu-Chek Combo") virtualPumpPlugin.refreshConfiguration() - Assert.assertEquals(PumpType.ACCU_CHEK_COMBO, virtualPumpPlugin.pumpType) + Assertions.assertEquals(PumpType.ACCU_CHEK_COMBO, virtualPumpPlugin.pumpType) } } \ No newline at end of file diff --git a/settings.gradle b/settings.gradle index 6a419e7a21..994e5fa516 100644 --- a/settings.gradle +++ b/settings.gradle @@ -18,10 +18,12 @@ include ':implementation' include ':plugins:aps' include ':plugins:automation' include ':plugins:configuration' +include ':plugins:insulin' include ':plugins:main' include ':plugins:openhumans' include ':plugins:sensitivity' -include ':plugins:support' +include ':plugins:source' +include ':plugins:constraints' include ':pump:combo' include ':pump:combov2' include ':pump:combov2:comboctl' @@ -39,5 +41,6 @@ include ':pump:omnipod-dash' include ':pump:pump-common' include ':pump:pump-core' include ':pump:rileylink' +include ':pump:virtual' include ':plugins:sync' include ':workflow' diff --git a/ui/src/main/java/info/nightscout/ui/activities/ErrorHelperActivity.kt b/ui/src/main/java/info/nightscout/ui/activities/ErrorHelperActivity.kt index 055dfa9a49..f3339c054d 100644 --- a/ui/src/main/java/info/nightscout/ui/activities/ErrorHelperActivity.kt +++ b/ui/src/main/java/info/nightscout/ui/activities/ErrorHelperActivity.kt @@ -1,7 +1,7 @@ package info.nightscout.ui.activities import android.os.Bundle -import info.nightscout.core.services.AlarmSoundService +import info.nightscout.ui.services.AlarmSoundService import info.nightscout.core.ui.activities.DialogAppCompatActivity import info.nightscout.database.impl.AppRepository import info.nightscout.database.impl.transactions.InsertTherapyEventAnnouncementTransaction diff --git a/ui/src/main/java/info/nightscout/ui/di/UiModule.kt b/ui/src/main/java/info/nightscout/ui/di/UiModule.kt index 7cc9ab99d0..47158c0980 100644 --- a/ui/src/main/java/info/nightscout/ui/di/UiModule.kt +++ b/ui/src/main/java/info/nightscout/ui/di/UiModule.kt @@ -32,6 +32,7 @@ import info.nightscout.ui.dialogs.TempTargetDialog import info.nightscout.ui.dialogs.TreatmentDialog import info.nightscout.ui.dialogs.WizardDialog import info.nightscout.ui.dialogs.WizardInfoDialog +import info.nightscout.ui.services.AlarmSoundService import info.nightscout.ui.widget.Widget import info.nightscout.ui.widget.WidgetConfigureActivity @@ -39,6 +40,8 @@ import info.nightscout.ui.widget.WidgetConfigureActivity @Suppress("unused") abstract class UiModule { + @ContributesAndroidInjector abstract fun contributesAlarmSoundService(): AlarmSoundService + @ContributesAndroidInjector abstract fun contributesWidget(): Widget @ContributesAndroidInjector abstract fun contributesWidgetConfigureActivity(): WidgetConfigureActivity diff --git a/ui/src/main/java/info/nightscout/ui/dialogs/CarbsDialog.kt b/ui/src/main/java/info/nightscout/ui/dialogs/CarbsDialog.kt index 878f721741..4809067612 100644 --- a/ui/src/main/java/info/nightscout/ui/dialogs/CarbsDialog.kt +++ b/ui/src/main/java/info/nightscout/ui/dialogs/CarbsDialog.kt @@ -17,12 +17,11 @@ import info.nightscout.database.entities.UserEntry.Sources import info.nightscout.database.entities.ValueWithUnit import info.nightscout.database.impl.AppRepository import info.nightscout.database.impl.transactions.InsertAndCancelCurrentTemporaryTargetTransaction -import info.nightscout.interfaces.BolusTimer -import info.nightscout.interfaces.CarbTimer import info.nightscout.interfaces.Constants.CARBS_FAV1_DEFAULT import info.nightscout.interfaces.Constants.CARBS_FAV2_DEFAULT import info.nightscout.interfaces.Constants.CARBS_FAV3_DEFAULT import info.nightscout.interfaces.GlucoseUnit +import info.nightscout.interfaces.automation.Automation import info.nightscout.interfaces.constraints.Constraint import info.nightscout.interfaces.constraints.Constraints import info.nightscout.interfaces.iob.GlucoseStatusProvider @@ -62,8 +61,7 @@ class CarbsDialog : DialogFragmentWithDate() { @Inject lateinit var iobCobCalculator: IobCobCalculator @Inject lateinit var glucoseStatusProvider: GlucoseStatusProvider @Inject lateinit var uel: UserEntryLogger - @Inject lateinit var carbTimer: CarbTimer - @Inject lateinit var bolusTimer: BolusTimer + @Inject lateinit var automation: Automation @Inject lateinit var commandQueue: CommandQueue @Inject lateinit var repository: AppRepository @Inject lateinit var protectionCheck: ProtectionCheck @@ -372,16 +370,16 @@ class CarbsDialog : DialogFragmentWithDate() { ValueWithUnit.Hour(duration).takeIf { duration != 0 }) commandQueue.bolus(detailedBolusInfo, object : Callback() { override fun run() { - carbTimer.removeAutomationEventEatReminder() + automation.removeAutomationEventEatReminder() if (!result.success) { uiInteraction.runAlarm(result.comment, rh.gs(info.nightscout.core.ui.R.string.treatmentdeliveryerror), info.nightscout.core.ui.R.raw.boluserror) } else if (sp.getBoolean(info.nightscout.core.utils.R.string.key_usebolusreminder, false) && remindBolus) - bolusTimer.scheduleAutomationEventBolusReminder() + automation.scheduleAutomationEventBolusReminder() } }) } if (useAlarm && carbs > 0 && timeOffset > 0) { - carbTimer.scheduleTimeToEatReminder(T.mins(timeOffset.toLong()).secs().toInt()) + automation.scheduleTimeToEatReminder(T.mins(timeOffset.toLong()).secs().toInt()) } }, null) } diff --git a/ui/src/main/java/info/nightscout/ui/dialogs/InsulinDialog.kt b/ui/src/main/java/info/nightscout/ui/dialogs/InsulinDialog.kt index 2d8854343b..d60a56e887 100644 --- a/ui/src/main/java/info/nightscout/ui/dialogs/InsulinDialog.kt +++ b/ui/src/main/java/info/nightscout/ui/dialogs/InsulinDialog.kt @@ -16,12 +16,12 @@ import info.nightscout.database.entities.UserEntry import info.nightscout.database.entities.ValueWithUnit import info.nightscout.database.impl.AppRepository import info.nightscout.database.impl.transactions.InsertAndCancelCurrentTemporaryTargetTransaction -import info.nightscout.interfaces.BolusTimer import info.nightscout.interfaces.Config import info.nightscout.interfaces.Constants.INSULIN_PLUS1_DEFAULT import info.nightscout.interfaces.Constants.INSULIN_PLUS2_DEFAULT import info.nightscout.interfaces.Constants.INSULIN_PLUS3_DEFAULT import info.nightscout.interfaces.GlucoseUnit +import info.nightscout.interfaces.automation.Automation import info.nightscout.interfaces.constraints.Constraint import info.nightscout.interfaces.constraints.Constraints import info.nightscout.interfaces.db.PersistenceLayer @@ -65,7 +65,7 @@ class InsulinDialog : DialogFragmentWithDate() { @Inject lateinit var ctx: Context @Inject lateinit var repository: AppRepository @Inject lateinit var config: Config - @Inject lateinit var bolusTimer: BolusTimer + @Inject lateinit var automation: Automation @Inject lateinit var uel: UserEntryLogger @Inject lateinit var protectionCheck: ProtectionCheck @Inject lateinit var uiInteraction: UiInteraction @@ -256,7 +256,7 @@ class InsulinDialog : DialogFragmentWithDate() { ValueWithUnit.Minute(timeOffset).takeIf { timeOffset != 0 }) persistenceLayer.insertOrUpdateBolus(detailedBolusInfo.createBolus()) if (timeOffset == 0) - bolusTimer.removeAutomationEventBolusReminder() + automation.removeAutomationEventBolusReminder() } else { uel.log( UserEntry.Action.BOLUS, UserEntry.Sources.InsulinDialog, @@ -268,7 +268,7 @@ class InsulinDialog : DialogFragmentWithDate() { if (!result.success) { uiInteraction.runAlarm(result.comment, rh.gs(info.nightscout.core.ui.R.string.treatmentdeliveryerror), info.nightscout.core.ui.R.raw.boluserror) } else { - bolusTimer.removeAutomationEventBolusReminder() + automation.removeAutomationEventBolusReminder() } } }) diff --git a/core/main/src/main/java/info/nightscout/core/services/AlarmSoundService.kt b/ui/src/main/java/info/nightscout/ui/services/AlarmSoundService.kt similarity index 99% rename from core/main/src/main/java/info/nightscout/core/services/AlarmSoundService.kt rename to ui/src/main/java/info/nightscout/ui/services/AlarmSoundService.kt index 8932c239d1..86e1aabe8e 100644 --- a/core/main/src/main/java/info/nightscout/core/services/AlarmSoundService.kt +++ b/ui/src/main/java/info/nightscout/ui/services/AlarmSoundService.kt @@ -1,4 +1,4 @@ -package info.nightscout.core.services +package info.nightscout.ui.services import android.content.Context import android.content.Intent diff --git a/core/main/src/main/java/info/nightscout/core/services/AlarmSoundServiceHelper.kt b/ui/src/main/java/info/nightscout/ui/services/AlarmSoundServiceHelper.kt similarity index 98% rename from core/main/src/main/java/info/nightscout/core/services/AlarmSoundServiceHelper.kt rename to ui/src/main/java/info/nightscout/ui/services/AlarmSoundServiceHelper.kt index 042f462afb..42aca554a5 100644 --- a/core/main/src/main/java/info/nightscout/core/services/AlarmSoundServiceHelper.kt +++ b/ui/src/main/java/info/nightscout/ui/services/AlarmSoundServiceHelper.kt @@ -1,4 +1,4 @@ -package info.nightscout.core.services +package info.nightscout.ui.services import android.content.ComponentName import android.content.Context diff --git a/wear/src/test/java/info/nightscout/androidaps/testing/mocks/BundleMock.java b/wear/src/test/java/info/nightscout/androidaps/testing/mocks/BundleMock.java index 47586d3597..0f04d47276 100644 --- a/wear/src/test/java/info/nightscout/androidaps/testing/mocks/BundleMock.java +++ b/wear/src/test/java/info/nightscout/androidaps/testing/mocks/BundleMock.java @@ -28,7 +28,7 @@ import java.util.HashMap; @SuppressWarnings({"unused", "rawtypes", "SuspiciousMethodCalls", "unchecked"}) public final class BundleMock { - +/* public static Bundle mock() { return mock(new HashMap<>()); } @@ -180,4 +180,5 @@ public final class BundleMock { return bundle; } + */ } \ No newline at end of file diff --git a/workflow/src/main/java/info/nightscout/workflow/PrepareIobAutosensGraphDataWorker.kt b/workflow/src/main/java/info/nightscout/workflow/PrepareIobAutosensGraphDataWorker.kt index 40bb033065..27898f8724 100644 --- a/workflow/src/main/java/info/nightscout/workflow/PrepareIobAutosensGraphDataWorker.kt +++ b/workflow/src/main/java/info/nightscout/workflow/PrepareIobAutosensGraphDataWorker.kt @@ -17,12 +17,12 @@ import info.nightscout.core.graph.data.Scale import info.nightscout.core.graph.data.ScaledDataPoint import info.nightscout.core.iob.combine import info.nightscout.core.iob.copy -import info.nightscout.core.iob.iobCobCalculator.data.AutosensDataObject import info.nightscout.core.utils.receivers.DataWorkerStorage import info.nightscout.core.utils.worker.LoggingWorker import info.nightscout.core.workflow.CalculationWorkflow import info.nightscout.database.ValueWrapper import info.nightscout.database.impl.AppRepository +import info.nightscout.interfaces.aps.AutosensData import info.nightscout.interfaces.aps.AutosensResult import info.nightscout.interfaces.aps.SMBDefaults import info.nightscout.interfaces.iob.IobCobCalculator @@ -94,7 +94,7 @@ class PrepareIobAutosensGraphDataWorker( } class AutosensDataPoint( - private val ad: AutosensDataObject, + private val ad: AutosensData, private val scale: Scale, private val chartTime: Long, private val rh: ResourceHelper @@ -163,7 +163,7 @@ class PrepareIobAutosensGraphDataWorker( val iob = data.iobCobCalculator.calculateFromTreatmentsAndTemps(time, profile) val baseBasalIob = data.iobCobCalculator.calculateAbsoluteIobFromBaseBasals(time) val absIob = IobTotal.combine(iob, baseBasalIob) - val autosensData = adsData.getAutosensDataAtTime(time) as AutosensDataObject? + val autosensData = adsData.getAutosensDataAtTime(time) if (abs(lastIob - iob.iob) > 0.02) { if (abs(lastIob - iob.iob) > 0.2) iobArray.add(ScaledDataPoint(time, lastIob, data.overviewData.iobScale)) iobArray.add(ScaledDataPoint(time, iob.iob, data.overviewData.iobScale)) diff --git a/workflow/src/main/java/info/nightscout/workflow/iob/IobCobOref1Worker.kt b/workflow/src/main/java/info/nightscout/workflow/iob/IobCobOref1Worker.kt index 795764b0bc..95657f8da3 100644 --- a/workflow/src/main/java/info/nightscout/workflow/iob/IobCobOref1Worker.kt +++ b/workflow/src/main/java/info/nightscout/workflow/iob/IobCobOref1Worker.kt @@ -7,7 +7,6 @@ import androidx.work.workDataOf import dagger.android.HasAndroidInjector import info.nightscout.core.events.EventIobCalculationProgress import info.nightscout.core.extensions.target -import info.nightscout.core.iob.iobCobCalculator.data.AutosensDataObject import info.nightscout.core.utils.fabric.FabricPrivacy import info.nightscout.core.utils.receivers.DataWorkerStorage import info.nightscout.core.utils.worker.LoggingWorker @@ -20,6 +19,7 @@ import info.nightscout.interfaces.aps.AutosensData import info.nightscout.interfaces.aps.SMBDefaults import info.nightscout.interfaces.iob.IobCobCalculator import info.nightscout.interfaces.plugin.ActivePlugin +import info.nightscout.interfaces.profile.Instantiator import info.nightscout.interfaces.profile.ProfileFunction import info.nightscout.interfaces.profiling.Profiler import info.nightscout.interfaces.utils.DecimalFormatter @@ -57,6 +57,7 @@ class IobCobOref1Worker( @Inject lateinit var dateUtil: DateUtil @Inject lateinit var repository: AppRepository @Inject lateinit var dataWorkerStorage: DataWorkerStorage + @Inject lateinit var instantiator: Instantiator class IobCobOref1WorkerData( val injector: HasAndroidInjector, @@ -115,7 +116,7 @@ class IobCobOref1Worker( } aapsLogger.debug(LTag.AUTOSENS, "Processing calculation thread: ${data.reason} ($i/${bucketedData.size})") val sens = profile.getIsfMgdl(bgTime) - val autosensData = AutosensDataObject(data.injector) + val autosensData = instantiator.provideAutosensDataObject() autosensData.time = bgTime if (previous != null) autosensData.activeCarbsList = previous.cloneCarbsList() else autosensData.activeCarbsList = ArrayList() diff --git a/workflow/src/main/java/info/nightscout/workflow/iob/IobCobOrefWorker.kt b/workflow/src/main/java/info/nightscout/workflow/iob/IobCobOrefWorker.kt index 9abf378e38..39b02048fe 100644 --- a/workflow/src/main/java/info/nightscout/workflow/iob/IobCobOrefWorker.kt +++ b/workflow/src/main/java/info/nightscout/workflow/iob/IobCobOrefWorker.kt @@ -6,7 +6,6 @@ import androidx.work.WorkerParameters import androidx.work.workDataOf import dagger.android.HasAndroidInjector import info.nightscout.core.events.EventIobCalculationProgress -import info.nightscout.core.iob.iobCobCalculator.data.AutosensDataObject import info.nightscout.core.utils.fabric.FabricPrivacy import info.nightscout.core.utils.receivers.DataWorkerStorage import info.nightscout.core.utils.worker.LoggingWorker @@ -18,6 +17,7 @@ import info.nightscout.interfaces.aps.AutosensData import info.nightscout.interfaces.aps.SMBDefaults import info.nightscout.interfaces.iob.IobCobCalculator import info.nightscout.interfaces.plugin.ActivePlugin +import info.nightscout.interfaces.profile.Instantiator import info.nightscout.interfaces.profile.ProfileFunction import info.nightscout.interfaces.profiling.Profiler import info.nightscout.interfaces.utils.DecimalFormatter @@ -53,10 +53,11 @@ class IobCobOrefWorker @Inject internal constructor( @Inject lateinit var dateUtil: DateUtil @Inject lateinit var repository: AppRepository @Inject lateinit var dataWorkerStorage: DataWorkerStorage + @Inject lateinit var instantiator: Instantiator class IobCobOrefWorkerData( val injector: HasAndroidInjector, - val iobCobCalculatorPlugin: IobCobCalculator, // cannot be injected : HistoryBrowser uses different instance + val iobCobCalculator: IobCobCalculator, // cannot be injected : HistoryBrowser uses different instance val reason: String, val end: Long, val limitDataToOldestAvailable: Boolean, @@ -75,9 +76,9 @@ class IobCobOrefWorker @Inject internal constructor( return Result.success(workDataOf("Error" to "app still initializing")) } //log.debug("Locking calculateSensitivityData"); - val oldestTimeWithData = data.iobCobCalculatorPlugin.calculateDetectionStart(data.end, data.limitDataToOldestAvailable) + val oldestTimeWithData = data.iobCobCalculator.calculateDetectionStart(data.end, data.limitDataToOldestAvailable) // work on local copy and set back when finished - val ads = data.iobCobCalculatorPlugin.ads.clone() + val ads = data.iobCobCalculator.ads.clone() val bucketedData = ads.bucketedData val autosensDataTable = ads.autosensDataTable if (bucketedData == null || bucketedData.size < 3) { @@ -110,7 +111,7 @@ class IobCobOrefWorker @Inject internal constructor( } aapsLogger.debug(LTag.AUTOSENS, "Processing calculation thread: ${data.reason} ($i/${bucketedData.size})") val sens = profile.getIsfMgdl(bgTime) - val autosensData = AutosensDataObject(data.injector) + val autosensData = instantiator.provideAutosensDataObject() autosensData.time = bgTime if (previous != null) autosensData.activeCarbsList = previous.cloneCarbsList() else autosensData.activeCarbsList = ArrayList() @@ -125,7 +126,7 @@ class IobCobOrefWorker @Inject internal constructor( autosensData.bg = bg delta = bg - bucketedData[i + 1].value avgDelta = (bg - bucketedData[i + 3].value) / 3 - val iob = data.iobCobCalculatorPlugin.calculateFromTreatmentsAndTemps(bgTime, profile) + val iob = data.iobCobCalculator.calculateFromTreatmentsAndTemps(bgTime, profile) val bgi = -iob.activity * sens * 5 val deviation = delta - bgi val avgDeviation = ((avgDelta - bgi) * 1000).roundToLong() / 1000.0 @@ -260,7 +261,7 @@ class IobCobOrefWorker @Inject internal constructor( autosensData.autosensResult = sensitivity aapsLogger.debug(LTag.AUTOSENS, autosensData.toString()) } - data.iobCobCalculatorPlugin.ads = ads + data.iobCobCalculator.ads = ads Thread { SystemClock.sleep(1000) rxBus.send(EventAutosensCalculationFinished(data.cause))