From c955ca5b579327eeec41e193aee11b45e7b478b4 Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Mon, 31 Oct 2022 20:20:41 +0100 Subject: [PATCH] ui, implementation module --- app/build.gradle | 2 + .../nightscout/androidaps/di/AppComponent.kt | 4 +- .../nightscout/androidaps/di/AppModule.kt | 6 +++ .../androidaps/di/FragmentsModule.kt | 4 -- .../androidaps/dialogs/CareDialog.kt | 2 +- .../androidaps/dialogs/ExtendedBolusDialog.kt | 2 +- .../androidaps/dialogs/InsulinDialog.kt | 11 ++--- .../androidaps/dialogs/TempBasalDialog.kt | 4 +- .../androidaps/dialogs/TreatmentDialog.kt | 6 +-- .../androidaps/dialogs/WizardDialog.kt | 2 +- .../nsclient/NSClientAddUpdateWorker.kt | 2 +- .../general/overview/OverviewFragment.kt | 4 +- .../wear/wearintegration/DataHandlerMobile.kt | 10 ++--- .../androidaps/plugins/source/DexcomPlugin.kt | 2 +- .../plugins/source/EversensePlugin.kt | 2 +- .../androidaps/plugins/source/GlimpPlugin.kt | 2 +- .../plugins/source/GlunovoPlugin.kt | 2 +- .../plugins/source/IntelligoPlugin.kt | 2 +- .../androidaps/plugins/source/MM640gPlugin.kt | 2 +- .../plugins/source/NSClientSourcePlugin.kt | 2 +- .../plugins/source/PoctechPlugin.kt | 2 +- .../plugins/source/RandomBgPlugin.kt | 2 +- .../androidaps/plugins/source/TomatoPlugin.kt | 2 +- .../androidaps/utils/wizard/BolusWizard.kt | 12 +++--- app/src/main/res/layout/dialog_care.xml | 4 +- app/src/main/res/layout/dialog_treatment.xml | 4 +- app/src/main/res/layout/dialog_wizard.xml | 12 +++--- app/src/main/res/layout/dialog_wizardinfo.xml | 4 +- .../res/layout/overview_buttons_layout.xml | 4 +- app/src/main/res/values-bg-rBG/strings.xml | 4 +- app/src/main/res/values-cs-rCZ/strings.xml | 4 +- app/src/main/res/values-da-rDK/strings.xml | 4 +- app/src/main/res/values-de-rDE/strings.xml | 4 +- app/src/main/res/values-es-rES/strings.xml | 4 +- app/src/main/res/values-fr-rFR/strings.xml | 4 +- app/src/main/res/values-it-rIT/strings.xml | 4 +- app/src/main/res/values-iw-rIL/strings.xml | 4 +- app/src/main/res/values-lt-rLT/strings.xml | 4 +- app/src/main/res/values-nl-rNL/strings.xml | 4 +- app/src/main/res/values-no-rNO/strings.xml | 4 +- app/src/main/res/values-pl-rPL/strings.xml | 4 +- app/src/main/res/values-pt-rBR/strings.xml | 2 +- app/src/main/res/values-pt-rPT/strings.xml | 4 +- app/src/main/res/values-ro-rRO/strings.xml | 4 +- app/src/main/res/values-ru-rRU/strings.xml | 4 +- app/src/main/res/values-sk-rSK/strings.xml | 4 +- app/src/main/res/values-sv-rSE/strings.xml | 4 +- app/src/main/res/values-tr-rTR/strings.xml | 4 +- app/src/main/res/values-zh-rCN/strings.xml | 4 +- app/src/main/res/values/strings.xml | 31 +------------- app/src/main/res/xml/pref_overview.xml | 6 +-- app/src/main/res/xml/pref_wear.xml | 2 +- .../SmsCommunicatorPluginTest.kt | 2 +- .../androidaps/interfaces/BolusTimer.kt | 14 +++++++ .../androidaps/interfaces/CarbTimer.kt | 21 ++++++++++ .../androidaps/interfaces/XDripBroadcast.kt | 13 ++++++ .../androidaps/receivers/Intents.kt | 0 .../nightscout/androidaps/utils/TimerUtil.kt | 6 +-- core/src/main/res/values/strings.xml | 11 +++++ implementation/.gitignore | 1 + implementation/build.gradle | 20 +++++++++ implementation/consumer-rules.pro | 0 implementation/proguard-rules.pro | 21 ++++++++++ implementation/src/main/AndroidManifest.xml | 4 ++ .../implementation/BolusTimerImpl.kt | 16 ++++---- .../implementation/CarbTimerImpl.kt | 34 ++++++++++----- .../implementation/XDripBroadcastImpl.kt | 27 ++++++------ .../src/main/res/values/strings.xml | 15 +++++++ settings.gradle | 4 +- ui/.gitignore | 1 + ui/build.gradle | 19 +++++++++ ui/consumer-rules.pro | 0 ui/proguard-rules.pro | 21 ++++++++++ ui/src/main/AndroidManifest.xml | 4 ++ .../java/info/nightscout/ui/di/UiModule.kt | 14 +++++++ .../ui}/dialogs/CalibrationDialog.kt | 41 +++++++++++-------- .../nightscout/ui}/dialogs/CarbsDialog.kt | 33 +++++++-------- .../main/res/layout/dialog_calibration.xml | 6 +-- .../src/main/res/layout/dialog_carbs.xml | 8 ++-- ui/src/main/res/values/strings.xml | 10 +++++ 80 files changed, 396 insertions(+), 206 deletions(-) create mode 100644 core/src/main/java/info/nightscout/androidaps/interfaces/BolusTimer.kt create mode 100644 core/src/main/java/info/nightscout/androidaps/interfaces/CarbTimer.kt create mode 100644 core/src/main/java/info/nightscout/androidaps/interfaces/XDripBroadcast.kt rename {app => core}/src/main/java/info/nightscout/androidaps/receivers/Intents.kt (100%) create mode 100644 implementation/.gitignore create mode 100644 implementation/build.gradle create mode 100644 implementation/consumer-rules.pro create mode 100644 implementation/proguard-rules.pro create mode 100644 implementation/src/main/AndroidManifest.xml rename app/src/main/java/info/nightscout/androidaps/utils/BolusTimer.kt => implementation/src/main/java/info/nightscout/implementation/BolusTimerImpl.kt (84%) rename app/src/main/java/info/nightscout/androidaps/utils/CarbTimer.kt => implementation/src/main/java/info/nightscout/implementation/CarbTimerImpl.kt (81%) rename app/src/main/java/info/nightscout/androidaps/utils/XDripBroadcast.kt => implementation/src/main/java/info/nightscout/implementation/XDripBroadcastImpl.kt (88%) create mode 100644 implementation/src/main/res/values/strings.xml create mode 100644 ui/.gitignore create mode 100644 ui/build.gradle create mode 100644 ui/consumer-rules.pro create mode 100644 ui/proguard-rules.pro create mode 100644 ui/src/main/AndroidManifest.xml create mode 100644 ui/src/main/java/info/nightscout/ui/di/UiModule.kt rename {app/src/main/java/info/nightscout/androidaps => ui/src/main/java/info/nightscout/ui}/dialogs/CalibrationDialog.kt (71%) rename {app/src/main/java/info/nightscout/androidaps => ui/src/main/java/info/nightscout/ui}/dialogs/CarbsDialog.kt (92%) rename {app => ui}/src/main/res/layout/dialog_calibration.xml (94%) rename {app => ui}/src/main/res/layout/dialog_carbs.xml (97%) create mode 100644 ui/src/main/res/values/strings.xml diff --git a/app/build.gradle b/app/build.gradle index 196a0503e6..8c4b7cee20 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -176,6 +176,8 @@ dependencies { implementation project(':libraries') implementation project(':shared') implementation project(':core') + implementation project(':ui') + implementation project(':implementation') implementation project(':automation') implementation project(':combo') implementation project(':database') diff --git a/app/src/main/java/info/nightscout/androidaps/di/AppComponent.kt b/app/src/main/java/info/nightscout/androidaps/di/AppComponent.kt index fb5bc21397..ce05242c68 100644 --- a/app/src/main/java/info/nightscout/androidaps/di/AppComponent.kt +++ b/app/src/main/java/info/nightscout/androidaps/di/AppComponent.kt @@ -23,6 +23,7 @@ import info.nightscout.androidaps.plugins.pump.medtronic.di.MedtronicModule import info.nightscout.androidaps.plugins.pump.omnipod.dash.di.OmnipodDashModule import info.nightscout.androidaps.plugins.pump.omnipod.eros.di.OmnipodErosModule import info.nightscout.shared.di.SharedModule +import info.nightscout.ui.di.UiModule import javax.inject.Singleton @Singleton @@ -65,7 +66,8 @@ import javax.inject.Singleton WorkersModule::class, DiaconnG8Module::class, OpenHumansModule::class, - SharedModule::class + SharedModule::class, + UiModule::class ] ) interface AppComponent : AndroidInjector { 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 6e80c5767a..25509a99ce 100644 --- a/app/src/main/java/info/nightscout/androidaps/di/AppModule.kt +++ b/app/src/main/java/info/nightscout/androidaps/di/AppModule.kt @@ -33,10 +33,13 @@ import info.nightscout.androidaps.utils.buildHelper.BuildHelperImpl import info.nightscout.androidaps.utils.buildHelper.ConfigImpl import info.nightscout.androidaps.utils.resources.IconsProviderImplementation import info.nightscout.androidaps.interfaces.ResourceHelper +import info.nightscout.implementation.XDripBroadcastImpl import info.nightscout.androidaps.utils.rx.AapsSchedulers import info.nightscout.androidaps.utils.rx.DefaultAapsSchedulers import info.nightscout.androidaps.utils.storage.FileStorage import info.nightscout.androidaps.utils.storage.Storage +import info.nightscout.implementation.BolusTimerImpl +import info.nightscout.implementation.CarbTimerImpl import info.nightscout.shared.sharedPreferences.SP import javax.inject.Singleton @@ -107,6 +110,9 @@ open class AppModule { @Binds fun bindDataSyncSelector(dataSyncSelectorImplementation: DataSyncSelectorImplementation): DataSyncSelector @Binds fun bindPumpSync(pumpSyncImplementation: PumpSyncImplementation): PumpSync + @Binds fun bindXDripBroadcast(xDripBroadcastImpl: XDripBroadcastImpl): XDripBroadcast + @Binds fun bindCarbTimer(carbTimer: CarbTimerImpl): CarbTimer + @Binds fun bindBolusTimer(bolusTimer: BolusTimerImpl): BolusTimer } } diff --git a/app/src/main/java/info/nightscout/androidaps/di/FragmentsModule.kt b/app/src/main/java/info/nightscout/androidaps/di/FragmentsModule.kt index 4e4afffa2e..a4a9da1115 100644 --- a/app/src/main/java/info/nightscout/androidaps/di/FragmentsModule.kt +++ b/app/src/main/java/info/nightscout/androidaps/di/FragmentsModule.kt @@ -10,8 +10,6 @@ import info.nightscout.androidaps.activities.fragments.TreatmentsProfileSwitchFr import info.nightscout.androidaps.activities.fragments.TreatmentsTempTargetFragment import info.nightscout.androidaps.activities.fragments.TreatmentsTemporaryBasalsFragment import info.nightscout.androidaps.activities.fragments.TreatmentsUserEntryFragment -import info.nightscout.androidaps.dialogs.CalibrationDialog -import info.nightscout.androidaps.dialogs.CarbsDialog import info.nightscout.androidaps.dialogs.CareDialog import info.nightscout.androidaps.dialogs.ExtendedBolusDialog import info.nightscout.androidaps.dialogs.FillDialog @@ -88,8 +86,6 @@ abstract class FragmentsModule { @ContributesAndroidInjector abstract fun contributesVirtualPumpFragment(): VirtualPumpFragment - @ContributesAndroidInjector abstract fun contributesCalibrationDialog(): CalibrationDialog - @ContributesAndroidInjector abstract fun contributesCarbsDialog(): CarbsDialog @ContributesAndroidInjector abstract fun contributesCareDialog(): CareDialog @ContributesAndroidInjector abstract fun contributesEditActionDialog(): EditActionDialog @ContributesAndroidInjector abstract fun contributesEditEventDialog(): EditEventDialog diff --git a/app/src/main/java/info/nightscout/androidaps/dialogs/CareDialog.kt b/app/src/main/java/info/nightscout/androidaps/dialogs/CareDialog.kt index 102177366f..6e80ae72b5 100644 --- a/app/src/main/java/info/nightscout/androidaps/dialogs/CareDialog.kt +++ b/app/src/main/java/info/nightscout/androidaps/dialogs/CareDialog.kt @@ -203,7 +203,7 @@ class CareDialog : DialogFragmentWithDate() { else -> TherapyEvent.MeterType.MANUAL } actions.add(rh.gs(R.string.careportal_newnstreatment_glucosetype) + ": " + translator.translate(meterType)) - actions.add(rh.gs(R.string.treatments_wizard_bg_label) + ": " + Profile.toCurrentUnitsString(profileFunction, binding.bg.value) + " " + rh.gs(unitResId)) + actions.add(rh.gs(R.string.bg_label) + ": " + Profile.toCurrentUnitsString(profileFunction, binding.bg.value) + " " + rh.gs(unitResId)) therapyEvent.glucoseType = meterType therapyEvent.glucose = binding.bg.value valuesWithUnit.add(ValueWithUnit.fromGlucoseUnit(binding.bg.value, profileFunction.getUnits().asText)) diff --git a/app/src/main/java/info/nightscout/androidaps/dialogs/ExtendedBolusDialog.kt b/app/src/main/java/info/nightscout/androidaps/dialogs/ExtendedBolusDialog.kt index d068a8b1d1..4e5e82d903 100644 --- a/app/src/main/java/info/nightscout/androidaps/dialogs/ExtendedBolusDialog.kt +++ b/app/src/main/java/info/nightscout/androidaps/dialogs/ExtendedBolusDialog.kt @@ -93,7 +93,7 @@ class ExtendedBolusDialog : DialogFragmentWithDate() { actions.add(rh.gs(R.string.formatinsulinunits, insulinAfterConstraint)) actions.add(rh.gs(R.string.duration) + ": " + rh.gs(R.string.format_mins, durationInMinutes)) if (abs(insulinAfterConstraint - insulin) > 0.01) - actions.add(rh.gs(R.string.constraintapllied).formatColor(context, rh, R.attr.warningColor)) + actions.add(rh.gs(R.string.constraint_applied).formatColor(context, rh, R.attr.warningColor)) activity?.let { activity -> OKDialog.showConfirmation(activity, rh.gs(R.string.extended_bolus), HtmlHelper.fromHtml(Joiner.on("
").join(actions)), { diff --git a/app/src/main/java/info/nightscout/androidaps/dialogs/InsulinDialog.kt b/app/src/main/java/info/nightscout/androidaps/dialogs/InsulinDialog.kt index 25143f9feb..2e28e6a0d9 100644 --- a/app/src/main/java/info/nightscout/androidaps/dialogs/InsulinDialog.kt +++ b/app/src/main/java/info/nightscout/androidaps/dialogs/InsulinDialog.kt @@ -31,6 +31,7 @@ import info.nightscout.androidaps.utils.extensions.toSignedString import info.nightscout.androidaps.utils.protection.ProtectionCheck import info.nightscout.androidaps.utils.protection.ProtectionCheck.Protection.BOLUS import info.nightscout.androidaps.interfaces.ResourceHelper +import info.nightscout.androidaps.interfaces.BolusTimer import info.nightscout.shared.SafeParse import io.reactivex.rxjava3.disposables.CompositeDisposable import io.reactivex.rxjava3.kotlin.plusAssign @@ -83,11 +84,11 @@ class InsulinDialog : DialogFragmentWithDate() { val maxInsulin = constraintChecker.getMaxBolusAllowed().value() if (abs(binding.time.value.toInt()) > 12 * 60) { binding.time.value = 0.0 - ToastUtils.warnToast(context, R.string.constraintapllied) + ToastUtils.warnToast(context, R.string.constraint_applied) } if (binding.amount.value > maxInsulin) { binding.amount.value = 0.0 - ToastUtils.warnToast(context, R.string.bolusconstraintapplied) + ToastUtils.warnToast(context, R.string.bolus_constraint_applied) } } @@ -181,7 +182,7 @@ class InsulinDialog : DialogFragmentWithDate() { val eatingSoonTTDuration = defaultValueHelper.determineEatingSoonTTDuration() val eatingSoonTT = defaultValueHelper.determineEatingSoonTT() if (eatingSoonChecked) - actions.add(rh.gs(R.string.temptargetshort) + ": " + (DecimalFormatter.to1Decimal(eatingSoonTT) + " " + unitLabel + " (" + rh.gs(R.string.format_mins, eatingSoonTTDuration) + ")") + actions.add(rh.gs(R.string.temp_target_short) + ": " + (DecimalFormatter.to1Decimal(eatingSoonTT) + " " + unitLabel + " (" + rh.gs(R.string.format_mins, eatingSoonTTDuration) + ")") .formatColor(context, rh, R.attr.tempTargetConfirmation)) val timeOffset = binding.time.value.toInt() @@ -234,7 +235,7 @@ class InsulinDialog : DialogFragmentWithDate() { { aapsLogger.error(LTag.DATABASE, "Error while saving bolus", it) } ) if (timeOffset == 0) - bolusTimer.removeBolusReminder() + bolusTimer.removeAutomationEventBolusReminder() } else { uel.log(Action.BOLUS, Sources.InsulinDialog, notes, @@ -244,7 +245,7 @@ class InsulinDialog : DialogFragmentWithDate() { if (!result.success) { ErrorHelperActivity.runAlarm(ctx, result.comment, rh.gs(R.string.treatmentdeliveryerror), R.raw.boluserror) } else { - bolusTimer.removeBolusReminder() + bolusTimer.removeAutomationEventBolusReminder() } } }) diff --git a/app/src/main/java/info/nightscout/androidaps/dialogs/TempBasalDialog.kt b/app/src/main/java/info/nightscout/androidaps/dialogs/TempBasalDialog.kt index 8940d1fb94..c22b3653fb 100644 --- a/app/src/main/java/info/nightscout/androidaps/dialogs/TempBasalDialog.kt +++ b/app/src/main/java/info/nightscout/androidaps/dialogs/TempBasalDialog.kt @@ -111,14 +111,14 @@ class TempBasalDialog : DialogFragmentWithDate() { percent = constraintChecker.applyBasalPercentConstraints(Constraint(basalPercentInput), profile).value() actions.add(rh.gs(R.string.tempbasal_label) + ": $percent%") actions.add(rh.gs(R.string.duration) + ": " + rh.gs(R.string.format_mins, durationInMinutes)) - if (percent != basalPercentInput) actions.add(rh.gs(R.string.constraintapllied)) + if (percent != basalPercentInput) actions.add(rh.gs(R.string.constraint_applied)) } else { val basalAbsoluteInput = SafeParse.stringToDouble(binding.basalAbsoluteInput.text) absolute = constraintChecker.applyBasalConstraints(Constraint(basalAbsoluteInput), profile).value() actions.add(rh.gs(R.string.tempbasal_label) + ": " + rh.gs(R.string.pump_basebasalrate, absolute)) actions.add(rh.gs(R.string.duration) + ": " + rh.gs(R.string.format_mins, durationInMinutes)) if (abs(absolute - basalAbsoluteInput) > 0.01) - actions.add(rh.gs(R.string.constraintapllied).formatColor(context, rh, R.attr.warningColor)) + actions.add(rh.gs(R.string.constraint_applied).formatColor(context, rh, R.attr.warningColor)) } activity?.let { activity -> OKDialog.showConfirmation(activity, rh.gs(R.string.tempbasal_label), HtmlHelper.fromHtml(Joiner.on("
").join(actions)), { diff --git a/app/src/main/java/info/nightscout/androidaps/dialogs/TreatmentDialog.kt b/app/src/main/java/info/nightscout/androidaps/dialogs/TreatmentDialog.kt index 14f18a193d..de5a2a5457 100644 --- a/app/src/main/java/info/nightscout/androidaps/dialogs/TreatmentDialog.kt +++ b/app/src/main/java/info/nightscout/androidaps/dialogs/TreatmentDialog.kt @@ -72,11 +72,11 @@ class TreatmentDialog : DialogFragmentWithDate() { val maxInsulin = constraintChecker.getMaxBolusAllowed().value() if (SafeParse.stringToInt(binding.carbs.text) > maxCarbs) { binding.carbs.value = 0.0 - ToastUtils.warnToast(context, R.string.carbsconstraintapplied) + ToastUtils.warnToast(context, R.string.carbs_constraint_applied) } if (SafeParse.stringToDouble(binding.insulin.text) > maxInsulin) { binding.insulin.value = 0.0 - ToastUtils.warnToast(context, R.string.bolusconstraintapplied) + ToastUtils.warnToast(context, R.string.bolus_constraint_applied) } } @@ -137,7 +137,7 @@ class TreatmentDialog : DialogFragmentWithDate() { if (carbsAfterConstraints > 0) { actions.add(rh.gs(R.string.carbs) + ": " + rh.gs(R.string.format_carbs, carbsAfterConstraints).formatColor(context, rh, R.attr.carbsColor)) if (carbsAfterConstraints != carbs) - actions.add(rh.gs(R.string.carbsconstraintapplied).formatColor(context, rh, R.attr.warningColor)) + actions.add(rh.gs(R.string.carbs_constraint_applied).formatColor(context, rh, R.attr.warningColor)) } if (insulinAfterConstraints > 0 || carbsAfterConstraints > 0) { activity?.let { activity -> diff --git a/app/src/main/java/info/nightscout/androidaps/dialogs/WizardDialog.kt b/app/src/main/java/info/nightscout/androidaps/dialogs/WizardDialog.kt index d6788dd0ce..ac8adc39d3 100644 --- a/app/src/main/java/info/nightscout/androidaps/dialogs/WizardDialog.kt +++ b/app/src/main/java/info/nightscout/androidaps/dialogs/WizardDialog.kt @@ -411,7 +411,7 @@ class WizardDialog : DaggerDialogFragment() { val carbsAfterConstraint = constraintChecker.applyCarbsConstraints(Constraint(carbs)).value() if (abs(carbs - carbsAfterConstraint) > 0.01) { binding.carbsInput.value = 0.0 - ToastUtils.warnToast(ctx, R.string.carbsconstraintapplied) + ToastUtils.warnToast(ctx, R.string.carbs_constraint_applied) return } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/general/nsclient/NSClientAddUpdateWorker.kt b/app/src/main/java/info/nightscout/androidaps/plugins/general/nsclient/NSClientAddUpdateWorker.kt index 14b289546b..2424a667ba 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/general/nsclient/NSClientAddUpdateWorker.kt +++ b/app/src/main/java/info/nightscout/androidaps/plugins/general/nsclient/NSClientAddUpdateWorker.kt @@ -28,7 +28,7 @@ import info.nightscout.androidaps.utils.DateUtil import info.nightscout.androidaps.utils.JsonHelper import info.nightscout.androidaps.utils.JsonHelper.safeGetLong import info.nightscout.androidaps.interfaces.BuildHelper -import info.nightscout.androidaps.utils.XDripBroadcast +import info.nightscout.androidaps.interfaces.XDripBroadcast import info.nightscout.shared.sharedPreferences.SP import java.util.concurrent.TimeUnit import javax.inject.Inject diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/OverviewFragment.kt b/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/OverviewFragment.kt index 664a03ef92..9c6693f8b7 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/OverviewFragment.kt +++ b/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/OverviewFragment.kt @@ -35,8 +35,8 @@ import info.nightscout.androidaps.database.entities.UserEntry.Action import info.nightscout.androidaps.database.entities.UserEntry.Sources import info.nightscout.androidaps.database.interfaces.end import info.nightscout.androidaps.databinding.OverviewFragmentBinding -import info.nightscout.androidaps.dialogs.CalibrationDialog -import info.nightscout.androidaps.dialogs.CarbsDialog +import info.nightscout.ui.dialogs.CalibrationDialog +import info.nightscout.ui.dialogs.CarbsDialog import info.nightscout.androidaps.dialogs.InsulinDialog import info.nightscout.androidaps.dialogs.LoopDialog import info.nightscout.androidaps.dialogs.ProfileSwitchDialog diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/general/wear/wearintegration/DataHandlerMobile.kt b/app/src/main/java/info/nightscout/androidaps/plugins/general/wear/wearintegration/DataHandlerMobile.kt index 64623dbf12..cd4169347b 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/general/wear/wearintegration/DataHandlerMobile.kt +++ b/app/src/main/java/info/nightscout/androidaps/plugins/general/wear/wearintegration/DataHandlerMobile.kt @@ -12,7 +12,7 @@ import info.nightscout.androidaps.database.entities.* import info.nightscout.androidaps.database.interfaces.end import info.nightscout.androidaps.database.transactions.CancelCurrentTemporaryTargetIfAnyTransaction import info.nightscout.androidaps.database.transactions.InsertAndCancelCurrentTemporaryTargetTransaction -import info.nightscout.androidaps.dialogs.CarbsDialog +import info.nightscout.ui.dialogs.CarbsDialog import info.nightscout.androidaps.dialogs.InsulinDialog import info.nightscout.androidaps.events.EventMobileToWear import info.nightscout.androidaps.extensions.convertedToAbsolute @@ -469,7 +469,7 @@ class DataHandlerMobile @Inject constructor( message += rh.gs(R.string.bolus) + ": " + insulinAfterConstraints + "U\n" message += rh.gs(R.string.carbs) + ": " + carbsAfterConstraints + "g" if (insulinAfterConstraints - command.insulin != 0.0 || carbsAfterConstraints - command.carbs != 0) - message += "\n" + rh.gs(R.string.constraintapllied) + message += "\n" + rh.gs(R.string.constraint_applied) rxBus.send( EventMobileToWear( EventData.ConfirmAction( @@ -487,7 +487,7 @@ class DataHandlerMobile @Inject constructor( "\n" + rh.gs(R.string.time) + ": " + dateUtil.timeString(startTimeStamp) + "\n" + rh.gs(R.string.duration) + ": " + command.duration + "h" if (carbsAfterConstraints - command.carbs != 0) { - message += "\n" + rh.gs(R.string.constraintapllied) + message += "\n" + rh.gs(R.string.constraint_applied) } if (carbsAfterConstraints <= 0) { sendError("Carbs = 0! No action taken!") @@ -512,7 +512,7 @@ class DataHandlerMobile @Inject constructor( } val insulinAfterConstraints = constraintChecker.applyBolusConstraints(Constraint(amount)).value() var message = rh.gs(R.string.primefill) + ": " + insulinAfterConstraints + "U" - if (insulinAfterConstraints - amount != 0.0) message += "\n" + rh.gs(R.string.constraintapllied) + if (insulinAfterConstraints - amount != 0.0) message += "\n" + rh.gs(R.string.constraint_applied) rxBus.send( EventMobileToWear( EventData.ConfirmAction( @@ -526,7 +526,7 @@ class DataHandlerMobile @Inject constructor( private fun handleFillPreCheck(command: EventData.ActionFillPreCheck) { val insulinAfterConstraints = constraintChecker.applyBolusConstraints(Constraint(command.insulin)).value() var message = rh.gs(R.string.primefill) + ": " + insulinAfterConstraints + "U" - if (insulinAfterConstraints - command.insulin != 0.0) message += "\n" + rh.gs(R.string.constraintapllied) + if (insulinAfterConstraints - command.insulin != 0.0) message += "\n" + rh.gs(R.string.constraint_applied) rxBus.send( EventMobileToWear( EventData.ConfirmAction( diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/source/DexcomPlugin.kt b/app/src/main/java/info/nightscout/androidaps/plugins/source/DexcomPlugin.kt index aba5f07102..b48dc49fd4 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/source/DexcomPlugin.kt +++ b/app/src/main/java/info/nightscout/androidaps/plugins/source/DexcomPlugin.kt @@ -31,7 +31,7 @@ import info.nightscout.androidaps.logging.UserEntryLogger import info.nightscout.androidaps.receivers.DataWorkerStorage import info.nightscout.androidaps.utils.DateUtil import info.nightscout.androidaps.utils.T -import info.nightscout.androidaps.utils.XDripBroadcast +import info.nightscout.androidaps.interfaces.XDripBroadcast import info.nightscout.shared.logging.AAPSLogger import info.nightscout.shared.logging.LTag import info.nightscout.shared.sharedPreferences.SP diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/source/EversensePlugin.kt b/app/src/main/java/info/nightscout/androidaps/plugins/source/EversensePlugin.kt index a339180fd0..92b24df2df 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/source/EversensePlugin.kt +++ b/app/src/main/java/info/nightscout/androidaps/plugins/source/EversensePlugin.kt @@ -19,7 +19,7 @@ import info.nightscout.shared.logging.AAPSLogger import info.nightscout.shared.logging.LTag import info.nightscout.androidaps.receivers.DataWorkerStorage import info.nightscout.androidaps.utils.DateUtil -import info.nightscout.androidaps.utils.XDripBroadcast +import info.nightscout.androidaps.interfaces.XDripBroadcast import info.nightscout.androidaps.interfaces.ResourceHelper import info.nightscout.shared.sharedPreferences.SP import java.util.* diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/source/GlimpPlugin.kt b/app/src/main/java/info/nightscout/androidaps/plugins/source/GlimpPlugin.kt index 8efc9651df..2daf641769 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/source/GlimpPlugin.kt +++ b/app/src/main/java/info/nightscout/androidaps/plugins/source/GlimpPlugin.kt @@ -16,7 +16,7 @@ import info.nightscout.androidaps.interfaces.PluginDescription import info.nightscout.androidaps.interfaces.PluginType import info.nightscout.shared.logging.AAPSLogger import info.nightscout.shared.logging.LTag -import info.nightscout.androidaps.utils.XDripBroadcast +import info.nightscout.androidaps.interfaces.XDripBroadcast import info.nightscout.androidaps.interfaces.ResourceHelper import info.nightscout.shared.sharedPreferences.SP import javax.inject.Inject diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/source/GlunovoPlugin.kt b/app/src/main/java/info/nightscout/androidaps/plugins/source/GlunovoPlugin.kt index 6a02daa322..12dabeff51 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/source/GlunovoPlugin.kt +++ b/app/src/main/java/info/nightscout/androidaps/plugins/source/GlunovoPlugin.kt @@ -23,8 +23,8 @@ import info.nightscout.androidaps.logging.UserEntryLogger import info.nightscout.androidaps.utils.DateUtil import info.nightscout.androidaps.utils.FabricPrivacy import info.nightscout.androidaps.utils.T -import info.nightscout.androidaps.utils.XDripBroadcast import info.nightscout.androidaps.interfaces.ResourceHelper +import info.nightscout.androidaps.interfaces.XDripBroadcast import info.nightscout.shared.sharedPreferences.SP import io.reactivex.rxjava3.disposables.CompositeDisposable import javax.inject.Inject diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/source/IntelligoPlugin.kt b/app/src/main/java/info/nightscout/androidaps/plugins/source/IntelligoPlugin.kt index 3f328b2fc5..1183c22fa7 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/source/IntelligoPlugin.kt +++ b/app/src/main/java/info/nightscout/androidaps/plugins/source/IntelligoPlugin.kt @@ -25,7 +25,7 @@ import info.nightscout.androidaps.logging.UserEntryLogger import info.nightscout.androidaps.utils.DateUtil import info.nightscout.androidaps.utils.FabricPrivacy import info.nightscout.androidaps.utils.T -import info.nightscout.androidaps.utils.XDripBroadcast +import info.nightscout.androidaps.interfaces.XDripBroadcast import info.nightscout.shared.logging.AAPSLogger import info.nightscout.shared.logging.LTag import info.nightscout.shared.sharedPreferences.SP diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/source/MM640gPlugin.kt b/app/src/main/java/info/nightscout/androidaps/plugins/source/MM640gPlugin.kt index 2e7b8300cf..b21599a57f 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/source/MM640gPlugin.kt +++ b/app/src/main/java/info/nightscout/androidaps/plugins/source/MM640gPlugin.kt @@ -17,7 +17,7 @@ import info.nightscout.shared.logging.AAPSLogger import info.nightscout.shared.logging.LTag import info.nightscout.androidaps.receivers.DataWorkerStorage import info.nightscout.androidaps.utils.DateUtil -import info.nightscout.androidaps.utils.XDripBroadcast +import info.nightscout.androidaps.interfaces.XDripBroadcast import info.nightscout.androidaps.interfaces.ResourceHelper import info.nightscout.shared.sharedPreferences.SP import org.json.JSONArray diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/source/NSClientSourcePlugin.kt b/app/src/main/java/info/nightscout/androidaps/plugins/source/NSClientSourcePlugin.kt index 247c65adb2..8d8ba5ef8c 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/source/NSClientSourcePlugin.kt +++ b/app/src/main/java/info/nightscout/androidaps/plugins/source/NSClientSourcePlugin.kt @@ -24,7 +24,7 @@ import info.nightscout.androidaps.plugins.general.overview.notifications.Notific import info.nightscout.androidaps.receivers.DataWorkerStorage import info.nightscout.androidaps.utils.DateUtil import info.nightscout.androidaps.utils.T -import info.nightscout.androidaps.utils.XDripBroadcast +import info.nightscout.androidaps.interfaces.XDripBroadcast import info.nightscout.androidaps.interfaces.ResourceHelper import info.nightscout.shared.sharedPreferences.SP import org.json.JSONObject diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/source/PoctechPlugin.kt b/app/src/main/java/info/nightscout/androidaps/plugins/source/PoctechPlugin.kt index 072d1953bc..2047be6e7a 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/source/PoctechPlugin.kt +++ b/app/src/main/java/info/nightscout/androidaps/plugins/source/PoctechPlugin.kt @@ -17,7 +17,7 @@ import info.nightscout.androidaps.interfaces.PluginType import info.nightscout.shared.logging.AAPSLogger import info.nightscout.shared.logging.LTag import info.nightscout.androidaps.utils.JsonHelper.safeGetString -import info.nightscout.androidaps.utils.XDripBroadcast +import info.nightscout.androidaps.interfaces.XDripBroadcast import info.nightscout.androidaps.interfaces.ResourceHelper import info.nightscout.shared.sharedPreferences.SP import org.json.JSONArray diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/source/RandomBgPlugin.kt b/app/src/main/java/info/nightscout/androidaps/plugins/source/RandomBgPlugin.kt index c2115d53e3..751c4463fb 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/source/RandomBgPlugin.kt +++ b/app/src/main/java/info/nightscout/androidaps/plugins/source/RandomBgPlugin.kt @@ -12,7 +12,7 @@ import info.nightscout.androidaps.interfaces.* import info.nightscout.shared.logging.AAPSLogger import info.nightscout.shared.logging.LTag import info.nightscout.androidaps.utils.T -import info.nightscout.androidaps.utils.XDripBroadcast +import info.nightscout.androidaps.interfaces.XDripBroadcast import info.nightscout.androidaps.plugins.pump.virtual.VirtualPumpPlugin import info.nightscout.androidaps.utils.extensions.isRunningTest import info.nightscout.shared.sharedPreferences.SP diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/source/TomatoPlugin.kt b/app/src/main/java/info/nightscout/androidaps/plugins/source/TomatoPlugin.kt index da48d8f46a..719357cf81 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/source/TomatoPlugin.kt +++ b/app/src/main/java/info/nightscout/androidaps/plugins/source/TomatoPlugin.kt @@ -15,7 +15,7 @@ import info.nightscout.androidaps.interfaces.PluginDescription import info.nightscout.androidaps.interfaces.PluginType import info.nightscout.shared.logging.AAPSLogger import info.nightscout.shared.logging.LTag -import info.nightscout.androidaps.utils.XDripBroadcast +import info.nightscout.androidaps.interfaces.XDripBroadcast import info.nightscout.androidaps.interfaces.ResourceHelper import info.nightscout.shared.sharedPreferences.SP import javax.inject.Inject diff --git a/app/src/main/java/info/nightscout/androidaps/utils/wizard/BolusWizard.kt b/app/src/main/java/info/nightscout/androidaps/utils/wizard/BolusWizard.kt index 449af8dd64..e0d66a5cb7 100644 --- a/app/src/main/java/info/nightscout/androidaps/utils/wizard/BolusWizard.kt +++ b/app/src/main/java/info/nightscout/androidaps/utils/wizard/BolusWizard.kt @@ -1,7 +1,6 @@ package info.nightscout.androidaps.utils.wizard import android.content.Context -import android.content.Intent import android.text.Spanned import com.google.common.base.Joiner import dagger.android.HasAndroidInjector @@ -32,6 +31,7 @@ import info.nightscout.androidaps.queue.Callback import info.nightscout.androidaps.utils.* import info.nightscout.androidaps.utils.alertDialogs.OKDialog import info.nightscout.androidaps.interfaces.ResourceHelper +import info.nightscout.androidaps.interfaces.BolusTimer import info.nightscout.shared.sharedPreferences.SP import io.reactivex.rxjava3.disposables.CompositeDisposable import io.reactivex.rxjava3.kotlin.plusAssign @@ -349,11 +349,11 @@ class BolusWizard @Inject constructor( } accepted = true if (calculatedTotalInsulin > 0.0) - bolusTimer.removeBolusReminder() + bolusTimer.removeAutomationEventBolusReminder() if (carbs > 0.0) - carbTimer.removeEatReminder() + carbTimer.removeAutomationEventEatReminder() if (sp.getBoolean(R.string.key_usebolusadvisor, false) && Profile.toMgdl(bg, profile.units) > 180 && carbs > 0 && carbTime >= 0) - OKDialog.showYesNoCancel(ctx, rh.gs(R.string.bolusadvisor), rh.gs(R.string.bolusadvisormessage), + OKDialog.showYesNoCancel(ctx, rh.gs(R.string.bolus_advisor), rh.gs(R.string.bolus_advisor_message), { bolusAdvisorProcessing(ctx) }, { commonProcessing(ctx) } ) @@ -390,7 +390,7 @@ class BolusWizard @Inject constructor( if (!result.success) { ErrorHelperActivity.runAlarm(ctx, result.comment, rh.gs(R.string.treatmentdeliveryerror), R.raw.boluserror) } else - carbTimer.scheduleEatReminder() + carbTimer.scheduleAutomationEventEatReminder() } }) } @@ -487,7 +487,7 @@ class BolusWizard @Inject constructor( } if (useAlarm && carbs > 0 && carbTime > 0) { - carbTimer.scheduleReminder(T.mins(carbTime.toLong()).secs().toInt()) + carbTimer.scheduleTimeToEatReminder(T.mins(carbTime.toLong()).secs().toInt()) } } }) diff --git a/app/src/main/res/layout/dialog_care.xml b/app/src/main/res/layout/dialog_care.xml index 63478f5441..b0cb311f67 100644 --- a/app/src/main/res/layout/dialog_care.xml +++ b/app/src/main/res/layout/dialog_care.xml @@ -90,7 +90,7 @@ android:layout_gravity="center_horizontal" android:width="120dp" android:padding="10dp" - android:text="@string/treatments_wizard_bg_label" + android:text="@string/bg_label" android:textAppearance="@style/TextAppearance.AppCompat.Small" android:textStyle="bold" /> @@ -99,7 +99,7 @@ android:layout_width="130dp" android:layout_height="40dp" android:layout_marginBottom="2dp" - app:customContentDescription="@string/treatments_wizard_bg_label" /> + app:customContentDescription="@string/bg_label" /> @@ -112,7 +112,7 @@ android:id="@+id/carbs" android:layout_width="130dp" android:layout_height="40dp" - app:customContentDescription="@string/treatments_wizard_carbs_label" /> + app:customContentDescription="@string/carbs" /> @@ -95,7 +95,7 @@ android:layout_weight="1" android:labelFor="@id/carbs_input" android:padding="10dp" - android:text="@string/treatments_wizard_carbs_label" + android:text="@string/carbs" android:textAppearance="@style/TextAppearance.AppCompat.Small" android:textStyle="bold" /> @@ -105,7 +105,7 @@ android:layout_height="40dp" android:layout_gravity="center_horizontal" android:layout_marginBottom="2dp" - app:customContentDescription="@string/treatments_wizard_carbs_label" /> + app:customContentDescription="@string/carbs" /> @@ -436,7 +436,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:checked="true" - android:text="@string/treatments_wizard_bg_label" /> + android:text="@string/bg_label" /> diff --git a/app/src/main/res/layout/dialog_wizardinfo.xml b/app/src/main/res/layout/dialog_wizardinfo.xml index 4931058f2a..bc36dc0873 100644 --- a/app/src/main/res/layout/dialog_wizardinfo.xml +++ b/app/src/main/res/layout/dialog_wizardinfo.xml @@ -62,7 +62,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:width="24dp" - android:text="@string/treatments_wizard_bg_label" + android:text="@string/bg_label" android:textAppearance="?android:attr/textAppearanceSmall" /> @@ -102,7 +102,7 @@ android:drawableTop="@drawable/ic_calibration" android:ellipsize="end" android:singleLine="true" - android:text="@string/overview_calibration" + android:text="@string/calibration" android:textColor="?attr/icCalibrationColor" android:visibility="gone" app:iconPadding="-4dp" /> diff --git a/app/src/main/res/values-bg-rBG/strings.xml b/app/src/main/res/values-bg-rBG/strings.xml index 7a274f7bc9..b3d6e507a9 100644 --- a/app/src/main/res/values-bg-rBG/strings.xml +++ b/app/src/main/res/values-bg-rBG/strings.xml @@ -652,7 +652,7 @@ Възстанови настройките по подразбиране Грешка в NSClient. Рестартирайте Nightscout и NSClient времево отместване - Напомни за болус по-късно + Напомни за болус по-късно Предпочитаният режим на APS Общо Калк @@ -809,7 +809,7 @@ Използвай напомняне за старт на хранене вместо съветника по време на висока гликемия (\"пре-болус\") Време за ядене!\nИзпълнете болус съветника и направете изчисления отново. Време е за ядене - Болус подсещане + Болус подсещане Включи подсещането за болус Използвай подсещане за болус по-късно със съветник (\"след-болус\") Време е за болус!\nВключи болус съветника и направи изчисление отново. diff --git a/app/src/main/res/values-cs-rCZ/strings.xml b/app/src/main/res/values-cs-rCZ/strings.xml index 4e292bed02..7ad657dcda 100644 --- a/app/src/main/res/values-cs-rCZ/strings.xml +++ b/app/src/main/res/values-cs-rCZ/strings.xml @@ -692,7 +692,7 @@ Obnovit výchozí Chyba NSClienta. Zvažte restart NS a NSClienta. Časový posun - Upozornit později na bolus + Upozornit později na bolus Preferovaný režim APS Výsledek Kalk @@ -864,7 +864,7 @@ Při vysoké glykémii použijte připomenutí, abyste začali jíst později, namísto výsledku z kalkulátoru („prebolus“) Čas k jídlu!\nSpusťte Bolusovou kalkulačku a proveďte výpočet znovu. Čas k jídlu - Připomenutí bolusu + Připomenutí bolusu Povolit připomínání bolusu Použijte připomenutí pro pozdější bolus s kalkulátorem (\"zpožděný bolus\") diff --git a/app/src/main/res/values-da-rDK/strings.xml b/app/src/main/res/values-da-rDK/strings.xml index c29ea202df..0a7e65b4c5 100644 --- a/app/src/main/res/values-da-rDK/strings.xml +++ b/app/src/main/res/values-da-rDK/strings.xml @@ -679,7 +679,7 @@ Nulstil til standardindstillinger NSClient funktionsfejl. Overvej NS og NSClient genstart. Tidsforskydning - Påmind om at bolus senere + Påmind om at bolus senere Foretrukket APS-tilstand I alt Beregn @@ -847,7 +847,7 @@ Brug påmindelse om at begynde at spise senere i stedet for guiden under høj glykæmi (\"pre-bolus\") Tid til at spise!\nKør Bolus guiden og lav beregning igen. Tid til at spise - Boluspåminder + Boluspåminder Aktivér boluspåminder Brug påmindelse til bolus senere med guiden (\"post-bolus\") diff --git a/app/src/main/res/values-de-rDE/strings.xml b/app/src/main/res/values-de-rDE/strings.xml index 3bb76ddb15..535ac15aed 100644 --- a/app/src/main/res/values-de-rDE/strings.xml +++ b/app/src/main/res/values-de-rDE/strings.xml @@ -679,7 +679,7 @@ Auf Standardwerte zurücksetzen NSClient Störung. Ziehe einen Neustart von NS und NSClient in Betracht. Zeitversatz - Später an Bolus erinnern + Später an Bolus erinnern Bevorzugter APS-Modus Gesamt Berech. @@ -848,7 +848,7 @@ Unerwartetes Verhalten. Option zur Erinnerung an späteres Essen (z.B. bei hohen BZ-Werten) im Bolus-Rechner (\"Spritz-Ess-Abstand\") Zeit zum Essen!\nStarte den Bolus-Rechner und gib die KH ein. Zeit zum Essen - Bolus-Erinnerung + Bolus-Erinnerung Bolus-Erinnerung aktivieren Erinnerung an späteren Bolus mit dem Assistenten verwenden (\"Post-Bolus\") diff --git a/app/src/main/res/values-es-rES/strings.xml b/app/src/main/res/values-es-rES/strings.xml index c1fba36884..f9569554b5 100644 --- a/app/src/main/res/values-es-rES/strings.xml +++ b/app/src/main/res/values-es-rES/strings.xml @@ -692,7 +692,7 @@ Restablecer valores predeterminados NSClient fallando. Considera reiniciar NS y NSClient. Retardo - Recordar ejecutar el bolo más tarde + Recordar ejecutar el bolo más tarde Modo preferido de APS Total Cálculo @@ -864,7 +864,7 @@ Utiliza un recordatorio para empezar a comer más tarde, en lugar del resultado del asistente durante una glucemia alta (\"pre-bolo\") ¡Hora de comer!\nEjecutar el asistente de bolo y calcular de nuevo. Hora de comer - Recordatorio de bolo + Recordatorio de bolo Habilitar recordatorio de bolo Usa recordatorio de bolo más tarde con el asistente (\"post-bolus\") diff --git a/app/src/main/res/values-fr-rFR/strings.xml b/app/src/main/res/values-fr-rFR/strings.xml index 323627ac2f..7f12aeff28 100644 --- a/app/src/main/res/values-fr-rFR/strings.xml +++ b/app/src/main/res/values-fr-rFR/strings.xml @@ -693,7 +693,7 @@ L\'ENSEMBLE DES RISQUES LIÉS À LA QUALITÉ ET À LA PERFORMANCE DU PROGRAMME S Réinitialiser les valeurs par défaut Dysfonctionnement NSClient. Redémarrez NS et NSClient. Décalage horaire - Rappel du bolus plus tard + Rappel du bolus plus tard Mode APS préféré Total Calc @@ -865,7 +865,7 @@ L\'ENSEMBLE DES RISQUES LIÉS À LA QUALITÉ ET À LA PERFORMANCE DU PROGRAMME S Utiliser un rappel pour commencer le repas à la place du résultat de l\'assistant quand la glycémie est élevée (\"pré-bolus\") Il est temps de manger !\nExécutez l\'assistant Bolus et refaites le calcul. Il est temps de manger - Rappel bolus + Rappel bolus Activer le rappel bolus Utiliser un rappel pour faire le bolus plus tard avec l\'Assistant (\"post-bolus\") Il est temps de faire le bolus !\nExécutez l\'Assistant et faites de nouveau le calcul. diff --git a/app/src/main/res/values-it-rIT/strings.xml b/app/src/main/res/values-it-rIT/strings.xml index 96c3b36c66..0d0991ebc6 100644 --- a/app/src/main/res/values-it-rIT/strings.xml +++ b/app/src/main/res/values-it-rIT/strings.xml @@ -682,7 +682,7 @@ Ripristina valori predefiniti Malfunzionamento NSClient. Considera il riavvio di NS e NSClient. Offset - Ricorda di fare il bolo + Ricorda di fare il bolo Modalità APS preferita Totale Calc @@ -850,7 +850,7 @@ Usa un promemoria per iniziare a mangiare invece del risultato del calcolatore durante la glicemia alta (\"pre-bolo\") Tempo di mangiare!\nEsegui il calcolatore e fai di nuovi i calcoli. Tempo di mangiare - Promemoria bolo + Promemoria bolo Abilita promemoria bolo Usa promemoria bolo con calcolatore (\"post-bolo\") diff --git a/app/src/main/res/values-iw-rIL/strings.xml b/app/src/main/res/values-iw-rIL/strings.xml index 11170d158b..1c27e4e33c 100644 --- a/app/src/main/res/values-iw-rIL/strings.xml +++ b/app/src/main/res/values-iw-rIL/strings.xml @@ -681,7 +681,7 @@ אפס לברירת המחדל תקלה ב-NSClient. שקלו להפעיל את Nightscout ו-NSClient מחדש. היסט זמן - תזכורת להזרקת בולוס אח\"כ + תזכורת להזרקת בולוס אח\"כ מצב APS מועדף סה\"כ חישוב @@ -849,7 +849,7 @@ מציג תזכורת לאכול אחר כך במקום להזריק את המינון שהומלץ ע\"י האשף בעת היפרגליקמיה (\"בולוס מקדים\") זמן לאכול!\nהפעילו את אשף הבולוסים וחשבו בולוס חדש. זמן לאכול - תזכורת בולוס + תזכורת בולוס אפשר את תזכורת בולוס השתמש בתזכורת כדי להזריק בולוס מאוחר יותר במחשבון (\"פוסט-בולוס\") diff --git a/app/src/main/res/values-lt-rLT/strings.xml b/app/src/main/res/values-lt-rLT/strings.xml index 5febaf52c1..9845e822fe 100644 --- a/app/src/main/res/values-lt-rLT/strings.xml +++ b/app/src/main/res/values-lt-rLT/strings.xml @@ -659,7 +659,7 @@ Atkurti numatytuosius NSClient sutrikimas. Reikėtų paleisti iš naujo NS ir NSClient. Laiko poslinkis - Priminti apie bolusą vėliau + Priminti apie bolusą vėliau Pageidaujamas DKS režimas Viso Skaič. @@ -819,7 +819,7 @@ Galimybė priminti jums valgyti vėliau (pvz., esant aukštai glikemijai) boliuso vedlyje („po susileidimo palaukti ir valgyti vėliau“) Laikas valgyti!\nĮjunkite Boluso patarėją ir atlikite skaičiavimą dar kartą. Laikas valgyti - Priminimas apie bolusą + Priminimas apie bolusą Įgalinti priminimą apie bolusą Naudoti priminimus apie bolusą su skaičiuotuvu („post-bolusas“) Laikas bolusui!\nĮjunkite Skaičiuotuvą ir pakartokite skaičiavimus. diff --git a/app/src/main/res/values-nl-rNL/strings.xml b/app/src/main/res/values-nl-rNL/strings.xml index b78d4afb99..cd676a86be 100644 --- a/app/src/main/res/values-nl-rNL/strings.xml +++ b/app/src/main/res/values-nl-rNL/strings.xml @@ -679,7 +679,7 @@ Terug naar standaardinstellingen NSClient werkt niet goed. Overweg een herstart van NS en NSClient. Tijdverschuiving - Herinner later te bolussen + Herinner later te bolussen Voorkeur APS-modus Totaal Calc @@ -847,7 +847,7 @@ Gebruik bij een hoge bloedglucose niet het resultaat van de wizard, maar een herinnering om later met eten te beginnen (\"pre-bolus\") Tijd om te eten!\nVoer de boluswizard opnieuw uit. Tijd om te eten - Bolus herinnering + Bolus herinnering Bolus herinnering inschakelen Gebruik herinnering om later te bolussen met de wizard (\"post-bolus\") diff --git a/app/src/main/res/values-no-rNO/strings.xml b/app/src/main/res/values-no-rNO/strings.xml index e7010322d2..bc8bc16995 100644 --- a/app/src/main/res/values-no-rNO/strings.xml +++ b/app/src/main/res/values-no-rNO/strings.xml @@ -682,7 +682,7 @@ Gjenopprett standardinnstillinger NSClient feil. Vurder omstart av NS og NSClient. Tidsforskyvning - Påminnelse til å gi bolus senere + Påminnelse til å gi bolus senere Foretrukket APS modus Total Kalkyle @@ -850,7 +850,7 @@ Bruk en påminnelse om å spise senere enn kalkulator resultatet fra wizard ved høyt blodsukker (\"pre-bolus\") Nå må du spise!\Bruk bolus veiviseren og beregn på nytt. Nå må du spise - Bolus påminnelse + Bolus påminnelse Aktiver bolus påminnelse Bruk påminnelse for å sette bolus dosen senere med veiviseren («post bolus») diff --git a/app/src/main/res/values-pl-rPL/strings.xml b/app/src/main/res/values-pl-rPL/strings.xml index 1d143fc45c..7db90e36d4 100644 --- a/app/src/main/res/values-pl-rPL/strings.xml +++ b/app/src/main/res/values-pl-rPL/strings.xml @@ -661,7 +661,7 @@ Przywróć ustawienia domyślne Usterka NSClient. Spróbuj zrestartować NS i NSClient. Przesunięcie czasu - Przypomnij o bolusie + Przypomnij o bolusie Preferowany tryb APS Razem Kalk @@ -824,7 +824,7 @@ Użyj przypomnienia, aby rozpocząć jedzenie później podczas wysokiej glikemii (\"pre-bolus\") Czas jeść!\nUruchom kreatora bolusa i zrób obliczenia ponownie. Czas na jedzenie - Przypomnienie bolusa + Przypomnienie bolusa Włącz przypomnienie bolusa Użyj przypomnienia o potrzebie obliczenia i podania bolusa kalkulatorem (\"opóźniony bolus\") Czas na bolus!\nUruchom Kalkulator bolusa aby ponownie wykonać obliczenia. diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index f25b33ced0..2d607714f2 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -785,7 +785,7 @@ Ativar o assistente de bolus Hora de comer!\nAbra o assistente de bolus e faça o cálculo novamente. Hora de comer - Lembrete de bolus + Lembrete de bolus Ativar lembrete de bolus Usar lembrete para adiar o bolus com o assistente (\"pós-bolus\") diff --git a/app/src/main/res/values-pt-rPT/strings.xml b/app/src/main/res/values-pt-rPT/strings.xml index e2a9e97583..1490f8b74e 100644 --- a/app/src/main/res/values-pt-rPT/strings.xml +++ b/app/src/main/res/values-pt-rPT/strings.xml @@ -659,7 +659,7 @@ Repor definições por defeito Erro de funcionamento do ClienteNS. Pondere reiniciar o NS e ClienteNS. Fuso horário - Lembrete para bólus mais tarde + Lembrete para bólus mais tarde Modo APS preferido Total Calc @@ -819,7 +819,7 @@ Use lembrete para começar a comer mais tarde em vez di resultado do assistente durante a glicemia alta (\"pré-bolus\") Hora de comer!\nExecutar assistente de Bólus e fazer cálculo novamente. Hora de comer - Lembrete de bólus + Lembrete de bólus Ativar lembrete de bólus Usar lembrete para bólus mais tarde com o assistente (\"pós-bólus\") diff --git a/app/src/main/res/values-ro-rRO/strings.xml b/app/src/main/res/values-ro-rRO/strings.xml index efe5cb7a15..4f9363be6a 100644 --- a/app/src/main/res/values-ro-rRO/strings.xml +++ b/app/src/main/res/values-ro-rRO/strings.xml @@ -659,7 +659,7 @@ Resetare la setările implicite Funcționare incorectă a NSClient. Aveți în vedere un restart al NS și al NSClient. Decalaj - Amintește-mi sa fac bolus mai târziu + Amintește-mi sa fac bolus mai târziu Modul APS preferat Total Calc @@ -819,7 +819,7 @@ Folosește o alarma de reamintire pentru a începe sa mănânci mai târziu în loc de alerta de la calculatorul de bolus din timpul hiperglicemiei (\"pre-bolus\") Timpul sa mănânci!\nRuleaza Calculatorul de Bolus pentru a face calculele din nou. Timpul sa mănânci - Memento bolus + Memento bolus Activează memento bolus Folosește memento pentru a bolusa mai târziu cu asistentul (\"post-bolus\") diff --git a/app/src/main/res/values-ru-rRU/strings.xml b/app/src/main/res/values-ru-rRU/strings.xml index 3d4c783324..3b7967b2f5 100644 --- a/app/src/main/res/values-ru-rRU/strings.xml +++ b/app/src/main/res/values-ru-rRU/strings.xml @@ -682,7 +682,7 @@ Восстановить значения по умолчанию Некорректная работа NSClient. Возможно следует перезапустить NS и NSClient. Смещение по времени - Напомнить о болюсе позже + Напомнить о болюсе позже Предпочитаемый режим APS Итого Кальк @@ -850,7 +850,7 @@ Используйте напоминание для того, чтобы начать есть позже, вместо того, чтобы воспользоваться помощником болюса на высоких значениях ГК (\"пре-болюс\") Пора есть!\nЗапустите помощник болюса снова для подсчета. Пора есть - Напоминание о болюсе + Напоминание о болюсе Включить напоминание о болюсе Применить напоминание о болюсе с помощью мастера (постболюс) Пора дать болюс!\nЗапустите помощник болюса и повторите расчет. diff --git a/app/src/main/res/values-sk-rSK/strings.xml b/app/src/main/res/values-sk-rSK/strings.xml index 124171c210..905deb7fe0 100644 --- a/app/src/main/res/values-sk-rSK/strings.xml +++ b/app/src/main/res/values-sk-rSK/strings.xml @@ -692,7 +692,7 @@ Obnoviť predvolené Chyba NSClienta. Zvážte reštart NS a NSClienta. Časový posun - Upozorniť na bolus neskôr + Upozorniť na bolus neskôr Preferovaný režim APS Spolu Kalk @@ -864,7 +864,7 @@ Pri vysokej glykémii spustiť pripomienku namiesto výsledku z kalkulačky, aby ste začali jesť neskôr (tzv. \"prebolus\") Čas na jedlo!\nSpustite Bolusovú kalkulačku a urobte výpočet znova. Čas na jedlo - Pripomenutie bolusu + Pripomenutie bolusu Zapnúť pripomínanie bolusu Použite pripomenutie pre neskorší bolus s kalkulačkou (\"oneskorený bolus\") diff --git a/app/src/main/res/values-sv-rSE/strings.xml b/app/src/main/res/values-sv-rSE/strings.xml index 22fa8f03d6..db64001d80 100644 --- a/app/src/main/res/values-sv-rSE/strings.xml +++ b/app/src/main/res/values-sv-rSE/strings.xml @@ -664,7 +664,7 @@ Eversense-appen. Återställ standardinställningar Fel på NSClient. Överväg att starta om NSClient och Nightscout-webbplatsen. KH-tid - Påminn om bolus senare + Påminn om bolus senare Föredraget APS-läge Total Kalkyl @@ -826,7 +826,7 @@ Eversense-appen. Få en påminnelse om att börja äta senare (istället för kalkylatorns resultat) om du ligger högt i BG Dags att äta!\nKör bolusguiden igen för ny beräkning. Dags att äta - Boluspåminnelse + Boluspåminnelse Aktivera boluspåminnelse Använd påminnelse för att ge bolus senare (\"post-bolus\") diff --git a/app/src/main/res/values-tr-rTR/strings.xml b/app/src/main/res/values-tr-rTR/strings.xml index 1bc93bc24b..e0650e303e 100644 --- a/app/src/main/res/values-tr-rTR/strings.xml +++ b/app/src/main/res/values-tr-rTR/strings.xml @@ -679,7 +679,7 @@ Aktif Karbonhidratın ne kadar hızlı sindirildiğine ve KŞ\'nin beklenenden d Varsayılanlara sıfırla NSClient arızası. NS ve NSClient yeniden başlatmayı düşünün. Saat farkı - Bolusu daha sonra hatırlat + Bolusu daha sonra hatırlat Tercih edilen APS modu Toplam Hesap @@ -846,7 +846,7 @@ Aktif Karbonhidratın ne kadar hızlı sindirildiğine ve KŞ\'nin beklenenden d Yüksek glisemi sırasında sihirbaz sonucu yerine daha sonra yemeye başlamak için hatırlatıcı kullanın (\"pre-bolus\") Yemek zamanı!\nBolus sihirbazını çalıştırın ve yeniden hesaplama yapın. Yemek zamanı - Bolus hatırlatıcısı + Bolus hatırlatıcısı Bolus hatırlatıcıyı etkinleştir Sihirbazla daha sonra bolus için hatırlatıcı kullanın (\"bolus sonrası\") diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index 9ac12f84aa..f7842dace8 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -669,7 +669,7 @@ 重置为默认值 NSClient故障。 考虑Nightscout和NSClient重启。 时区偏移 - 稍后提醒输注大剂量 + 稍后提醒输注大剂量 首选的APS模式 总计 计算 @@ -833,7 +833,7 @@ 在高血糖期间(\"预测大剂量\"),使用延迟吃饭的提醒功能,来替代大剂量向导结果 吃饭时间到了!\n请运行大剂量向导,然后进行计算。 吃饭时间 - 大剂量提醒 + 大剂量提醒 启用大剂量提醒 使用大剂量向导稍后推注的提醒功能 (“稍后注射大剂量”) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 5a94b2dadf..a5db896d96 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -108,9 +108,7 @@ Ins: IOB: Total IOB: - BG TT - Carbs Corr Bolus IOB Run now @@ -151,11 +149,9 @@ Safety Plugin is disabled Constraints violation - Bolus reported an error. Manually check real delivered amount Accept new temp basal: Treatment Calculator - Constraint applied! Bolus: Basal: Change your input! @@ -171,8 +167,6 @@ Carbs Suggestion Unsupported version of Nightscout Basal IOB - Bolus constraint applied - Carbs constraint applied Other Meter Sensor @@ -345,9 +339,6 @@ Attention!\nNormally you do not have to change these values below. Please CLICK HERE and READ the text and make sure you UNDERSTAND it before change any of these values. http://openaps.readthedocs.io/en/latest/docs/walkthrough/phase-3/beyond-low-glucose-suspend.html Invalid SMS phone number - Calibration - xDrip+ not installed - Calibration sent to xDrip+ Calibration sent. Receiving must be enabled in xDrip+. xDrip+ is not receiving calibrations Pump suspended @@ -496,7 +487,6 @@ Interval for autosens [h] Amount of hours in the past for sensitivity detection (carbs absorption time is excluded) openapsama_autosens_period - nsclient_localbroadcasts OpenAPS Uploader Sensitivity detection @@ -593,7 +583,6 @@ Minimum Carbs Required For Suggestion Minimum grams of carbs to display a carbs suggestion alert. Carbs suggestions below this number will not trigger a notification. Send BG data to xDrip+ - dexcomg5_xdripupload In xDrip+ select 640g/Eversense data source NSClient BG NS BG @@ -642,9 +631,6 @@ insulin_button_increment_1 insulin_button_increment_2 insulin_button_increment_3 - carbs_button_increment_1 - carbs_button_increment_2 - carbs_button_increment_3 Number of carbs to add when button is pressed Amount of insulin to add when button is pressed Could not launch CGM application. Make sure it is installed. @@ -671,7 +657,6 @@ Dexcom app is not installed. Start Activity TT Start Eating soon TT - TT Do not bolus, record only Category Subcategory @@ -684,7 +669,6 @@ Carbs On Board Insulin On Board Basals - No action selected, nothing will happen Start Hypo TT Running dev version. Closed loop is disabled. Engineering mode enabled @@ -846,7 +830,7 @@ Reset to defaults NSClient malfunction. Consider NS and NSClient restart. Time offset - Remind to bolus later + Remind to bolus later aps_mode Preferred APS mode Total @@ -1048,20 +1032,10 @@ Send SMS if unreachable pump event is triggered Report pump unreachable Run alarm when is time to eat - Run alarm in %1$d min - Bolus advisor - You have high glycemia. Instead of eating now it\'s recommended to wait for better glycemia. Do you want to do a correction bolus now and remind you when it\'s time to eat? In this case no carbs will be recorded and you must use wizard again when we remind you. use_bolus_advisor - Enable bolus advisor - Use reminder to start eating later instead of wizard result during high glycemia ("pre-bolus") Time to eat!\nRun Bolus wizard and do calculation again. - Time to eat - Bolus reminder - use_bolus_reminder Enable bolus reminder - Use reminder to bolus later with wizard - ("post-bolus") - Time to bolus!\nRun Bolus wizard and do calculation again. + Use reminder to bolus later with wizard ("post-bolus") Crash logs upload disabled! Graph Chart menu @@ -1219,7 +1193,6 @@ Show loop %1$d selected Sort - Dialog canceled Very low Low High diff --git a/app/src/main/res/xml/pref_overview.xml b/app/src/main/res/xml/pref_overview.xml index bfeee6b32e..bd9cda2bf9 100644 --- a/app/src/main/res/xml/pref_overview.xml +++ b/app/src/main/res/xml/pref_overview.xml @@ -132,7 +132,7 @@ android:defaultValue="true" android:key="@string/key_show_calibration_button" android:summary="@string/show_calibration_button_summary" - android:title="@string/overview_calibration" /> + android:title="@string/calibration" /> @@ -489,8 +489,8 @@ + android:summary="@string/enable_bolus_advisor_summary" + android:title="@string/enable_bolus_advisor" /> + android:title="@string/bg_label" /> autotune_additional_log key_autotune_plugin key_autotune_last_run + dexcomg5_xdripupload + nsclient_localbroadcasts + use_bolus_reminder + carbs_button_increment_1 + carbs_button_increment_2 + carbs_button_increment_3 Refresh @@ -188,6 +194,11 @@ Add new Add new above Data is coming from different pump. Change pump driver to reset pump state. + BG + Calibration + Run alarm in %1$d min + Bolus reported an error. Manually check real delivered amount + Bolus reminder Limiting max basal rate to %1$.2f U/h because of %2$s diff --git a/implementation/.gitignore b/implementation/.gitignore new file mode 100644 index 0000000000..42afabfd2a --- /dev/null +++ b/implementation/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/implementation/build.gradle b/implementation/build.gradle new file mode 100644 index 0000000000..be1039c0b6 --- /dev/null +++ b/implementation/build.gradle @@ -0,0 +1,20 @@ +apply plugin: 'com.android.library' +apply plugin: 'kotlin-android' +apply plugin: 'kotlin-kapt' +apply plugin: 'kotlin-allopen' +apply plugin: 'com.hiya.jacoco-android' + +apply from: "${project.rootDir}/core/android_dependencies.gradle" +apply from: "${project.rootDir}/core/android_module_dependencies.gradle" +apply from: "${project.rootDir}/core/test_dependencies.gradle" +apply from: "${project.rootDir}/core/jacoco_global.gradle" +android { + namespace 'info.nightscout.implementation' +} + +dependencies { + implementation project(':core') + implementation project(':shared') + implementation project(':database') + implementation project(':automation') +} \ No newline at end of file diff --git a/implementation/consumer-rules.pro b/implementation/consumer-rules.pro new file mode 100644 index 0000000000..e69de29bb2 diff --git a/implementation/proguard-rules.pro b/implementation/proguard-rules.pro new file mode 100644 index 0000000000..481bb43481 --- /dev/null +++ b/implementation/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/implementation/src/main/AndroidManifest.xml b/implementation/src/main/AndroidManifest.xml new file mode 100644 index 0000000000..a5918e68ab --- /dev/null +++ b/implementation/src/main/AndroidManifest.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/app/src/main/java/info/nightscout/androidaps/utils/BolusTimer.kt b/implementation/src/main/java/info/nightscout/implementation/BolusTimerImpl.kt similarity index 84% rename from app/src/main/java/info/nightscout/androidaps/utils/BolusTimer.kt rename to implementation/src/main/java/info/nightscout/implementation/BolusTimerImpl.kt index a582bfa40c..5eca0312ae 100644 --- a/app/src/main/java/info/nightscout/androidaps/utils/BolusTimer.kt +++ b/implementation/src/main/java/info/nightscout/implementation/BolusTimerImpl.kt @@ -1,7 +1,7 @@ -package info.nightscout.androidaps.utils +package info.nightscout.implementation import dagger.android.HasAndroidInjector -import info.nightscout.androidaps.R +import info.nightscout.androidaps.interfaces.BolusTimer import info.nightscout.androidaps.interfaces.GlucoseUnit import info.nightscout.androidaps.plugins.general.automation.AutomationEvent import info.nightscout.androidaps.plugins.general.automation.AutomationPlugin @@ -17,15 +17,15 @@ import javax.inject.Inject import javax.inject.Singleton @Singleton -class BolusTimer @Inject constructor( +class BolusTimerImpl @Inject constructor( private val injector: HasAndroidInjector, private val rh: ResourceHelper, private val automationPlugin: AutomationPlugin, -) { +) : BolusTimer { - fun scheduleBolusReminder() { + override fun scheduleAutomationEventBolusReminder() { val event = AutomationEvent(injector).apply { - title = rh.gs(R.string.bolusreminder) + title = rh.gs(R.string.bolus_reminder) readOnly = true systemAction = true autoRemove = true @@ -46,9 +46,9 @@ class BolusTimer @Inject constructor( automationPlugin.addIfNotExists(event) } - fun removeBolusReminder() { + override fun removeAutomationEventBolusReminder() { val event = AutomationEvent(injector).apply { - title = rh.gs(R.string.bolusreminder) + title = rh.gs(R.string.bolus_reminder) } automationPlugin.removeIfExists(event) } diff --git a/app/src/main/java/info/nightscout/androidaps/utils/CarbTimer.kt b/implementation/src/main/java/info/nightscout/implementation/CarbTimerImpl.kt similarity index 81% rename from app/src/main/java/info/nightscout/androidaps/utils/CarbTimer.kt rename to implementation/src/main/java/info/nightscout/implementation/CarbTimerImpl.kt index 0652e312db..4dc0ce1a00 100644 --- a/app/src/main/java/info/nightscout/androidaps/utils/CarbTimer.kt +++ b/implementation/src/main/java/info/nightscout/implementation/CarbTimerImpl.kt @@ -1,35 +1,44 @@ -package info.nightscout.androidaps.utils +package info.nightscout.implementation import dagger.android.HasAndroidInjector -import info.nightscout.androidaps.R +import info.nightscout.androidaps.interfaces.CarbTimer import info.nightscout.androidaps.interfaces.GlucoseUnit import info.nightscout.androidaps.plugins.general.automation.AutomationEvent import info.nightscout.androidaps.plugins.general.automation.AutomationPlugin import info.nightscout.androidaps.plugins.general.automation.actions.ActionAlarm -import info.nightscout.androidaps.plugins.general.automation.elements.Comparator import info.nightscout.androidaps.plugins.general.automation.elements.InputDelta import info.nightscout.androidaps.plugins.general.automation.triggers.TriggerBg import info.nightscout.androidaps.plugins.general.automation.triggers.TriggerConnector import info.nightscout.androidaps.plugins.general.automation.triggers.TriggerDelta +import info.nightscout.androidaps.plugins.general.automation.elements.Comparator import info.nightscout.androidaps.interfaces.ResourceHelper +import info.nightscout.androidaps.utils.TimerUtil import java.text.DecimalFormat import javax.inject.Inject import javax.inject.Singleton @Singleton -class CarbTimer @Inject constructor( +class CarbTimerImpl @Inject constructor( private val injector: HasAndroidInjector, private val rh: ResourceHelper, private val automationPlugin: AutomationPlugin, private val timerUtil: TimerUtil -) { +) : CarbTimer { - fun scheduleReminder(seconds: Int, text: String? = null) = - timerUtil.scheduleReminder(seconds, text ?: rh.gs(R.string.timetoeat)) + /** + * 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)) - fun scheduleEatReminder() { + /** + * Create new Automation event to alarm when is time to eat + */ + override fun scheduleAutomationEventEatReminder() { val event = AutomationEvent(injector).apply { - title = rh.gs(R.string.bolusadvisor) + title = rh.gs(R.string.bolus_advisor) readOnly = true systemAction = true autoRemove = true @@ -60,9 +69,12 @@ class CarbTimer @Inject constructor( automationPlugin.addIfNotExists(event) } - fun removeEatReminder() { + /** + * Remove Automation event + */ + override fun removeAutomationEventEatReminder() { val event = AutomationEvent(injector).apply { - title = rh.gs(R.string.bolusadvisor) + title = rh.gs(R.string.bolus_advisor) } automationPlugin.removeIfExists(event) } diff --git a/app/src/main/java/info/nightscout/androidaps/utils/XDripBroadcast.kt b/implementation/src/main/java/info/nightscout/implementation/XDripBroadcastImpl.kt similarity index 88% rename from app/src/main/java/info/nightscout/androidaps/utils/XDripBroadcast.kt rename to implementation/src/main/java/info/nightscout/implementation/XDripBroadcastImpl.kt index aa67a1964a..92ea49f14b 100644 --- a/app/src/main/java/info/nightscout/androidaps/utils/XDripBroadcast.kt +++ b/implementation/src/main/java/info/nightscout/implementation/XDripBroadcastImpl.kt @@ -1,16 +1,17 @@ -package info.nightscout.androidaps.utils +package info.nightscout.implementation import android.content.Context import android.content.Intent import android.os.Bundle -import info.nightscout.androidaps.R import info.nightscout.androidaps.annotations.OpenForTesting import info.nightscout.androidaps.database.entities.GlucoseValue import info.nightscout.androidaps.extensions.safeQueryBroadcastReceivers import info.nightscout.androidaps.interfaces.GlucoseUnit import info.nightscout.androidaps.interfaces.ProfileFunction import info.nightscout.androidaps.interfaces.ResourceHelper +import info.nightscout.androidaps.interfaces.XDripBroadcast import info.nightscout.androidaps.receivers.Intents +import info.nightscout.androidaps.utils.ToastUtils import info.nightscout.shared.logging.AAPSLogger import info.nightscout.shared.logging.LTag import info.nightscout.shared.sharedPreferences.SP @@ -25,15 +26,15 @@ import javax.inject.Singleton @Suppress("SpellCheckingInspection") @OpenForTesting @Singleton -class XDripBroadcast @Inject constructor( +class XDripBroadcastImpl @Inject constructor( private val context: Context, private val aapsLogger: AAPSLogger, private val sp: SP, private val rh: ResourceHelper, private val profileFunction: ProfileFunction -) { +) : XDripBroadcast { - fun sendCalibration(bg: Double): Boolean { + override fun sendCalibration(bg: Double): Boolean { val bundle = Bundle() bundle.putDouble("glucose_number", bg) bundle.putString("units", if (profileFunction.getUnits() == GlucoseUnit.MGDL) "mgdl" else "mmol") @@ -44,18 +45,18 @@ class XDripBroadcast @Inject constructor( context.sendBroadcast(intent) val q = context.packageManager.safeQueryBroadcastReceivers(intent, 0) return if (q.isEmpty()) { - ToastUtils.errorToast(context, R.string.xdripnotinstalled) - aapsLogger.debug(rh.gs(R.string.xdripnotinstalled)) + ToastUtils.errorToast(context, R.string.xdrip_not_installed) + aapsLogger.debug(rh.gs(R.string.xdrip_not_installed)) false } else { - ToastUtils.errorToast(context, R.string.calibrationsent) - aapsLogger.debug(rh.gs(R.string.calibrationsent)) + ToastUtils.errorToast(context, R.string.calibration_sent) + aapsLogger.debug(rh.gs(R.string.calibration_sent)) true } } // sent in 640G mode - fun send(glucoseValue: GlucoseValue) { + override fun send(glucoseValue: GlucoseValue) { if (sp.getBoolean(R.string.key_dexcomg5_xdripupload, false)) { val format = SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ", Locale.US) try { @@ -89,7 +90,7 @@ class XDripBroadcast @Inject constructor( } // sent in NSClient dbaccess mode - fun sendProfile(profileStoreJson: JSONObject) { + override fun sendProfile(profileStoreJson: JSONObject) { if (sp.getBoolean(R.string.key_nsclient_localbroadcasts, false)) broadcast( Intent(Intents.ACTION_NEW_PROFILE).apply { @@ -101,7 +102,7 @@ class XDripBroadcast @Inject constructor( } // sent in NSClient dbaccess mode - fun sendTreatments(addedOrUpdatedTreatments: JSONArray) { + override fun sendTreatments(addedOrUpdatedTreatments: JSONArray) { if (sp.getBoolean(R.string.key_nsclient_localbroadcasts, false)) splitArray(addedOrUpdatedTreatments).forEach { part -> broadcast( @@ -114,7 +115,7 @@ class XDripBroadcast @Inject constructor( } // sent in NSClient dbaccess mode - fun sendSgvs(sgvs: JSONArray) { + override fun sendSgvs(sgvs: JSONArray) { if (sp.getBoolean(R.string.key_nsclient_localbroadcasts, false)) splitArray(sgvs).forEach { part -> broadcast( diff --git a/implementation/src/main/res/values/strings.xml b/implementation/src/main/res/values/strings.xml new file mode 100644 index 0000000000..4ccd5d28b4 --- /dev/null +++ b/implementation/src/main/res/values/strings.xml @@ -0,0 +1,15 @@ + + + xDrip+ not installed + Calibration sent to xDrip+ + + BG + + Time to eat + Enable bolus advisor + Use reminder to start eating later instead of wizard result during high glycemia ("pre-bolus") + Bolus advisor + You have high glycemia. Instead of eating now it\'s recommended to wait for better glycemia. Do you want to do a correction bolus now and remind you when it\'s time to eat? In this case no carbs will be recorded and you must use wizard again when we remind you. + Time to bolus!\nRun Bolus wizard and do calculation again. + + diff --git a/settings.gradle b/settings.gradle index d9bc0fcfdf..9225e1de8c 100644 --- a/settings.gradle +++ b/settings.gradle @@ -18,4 +18,6 @@ include ':diaconn' include ':openhumans' include ':shared' include ':graphview' -include ':libraries' \ No newline at end of file +include ':libraries' +include ':ui' +include ':implementation' diff --git a/ui/.gitignore b/ui/.gitignore new file mode 100644 index 0000000000..42afabfd2a --- /dev/null +++ b/ui/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/ui/build.gradle b/ui/build.gradle new file mode 100644 index 0000000000..cae8d77b2a --- /dev/null +++ b/ui/build.gradle @@ -0,0 +1,19 @@ +apply plugin: 'com.android.library' +apply plugin: 'kotlin-android' +apply plugin: 'kotlin-kapt' +apply plugin: 'kotlin-allopen' +apply plugin: 'com.hiya.jacoco-android' + +apply from: "${project.rootDir}/core/android_dependencies.gradle" +apply from: "${project.rootDir}/core/android_module_dependencies.gradle" +apply from: "${project.rootDir}/core/test_dependencies.gradle" +apply from: "${project.rootDir}/core/jacoco_global.gradle" +android { + namespace 'info.nightscout.ui' +} + +dependencies { + implementation project(':core') + implementation project(':shared') + implementation project(':database') +} \ No newline at end of file diff --git a/ui/consumer-rules.pro b/ui/consumer-rules.pro new file mode 100644 index 0000000000..e69de29bb2 diff --git a/ui/proguard-rules.pro b/ui/proguard-rules.pro new file mode 100644 index 0000000000..481bb43481 --- /dev/null +++ b/ui/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/ui/src/main/AndroidManifest.xml b/ui/src/main/AndroidManifest.xml new file mode 100644 index 0000000000..a5918e68ab --- /dev/null +++ b/ui/src/main/AndroidManifest.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/ui/src/main/java/info/nightscout/ui/di/UiModule.kt b/ui/src/main/java/info/nightscout/ui/di/UiModule.kt new file mode 100644 index 0000000000..f2c4c70594 --- /dev/null +++ b/ui/src/main/java/info/nightscout/ui/di/UiModule.kt @@ -0,0 +1,14 @@ +package info.nightscout.ui.di + +import dagger.Module +import dagger.android.ContributesAndroidInjector +import info.nightscout.ui.dialogs.CalibrationDialog +import info.nightscout.ui.dialogs.CarbsDialog + +@Module +@Suppress("unused") +abstract class UiModule { + + @ContributesAndroidInjector abstract fun contributesCalibrationDialog(): CalibrationDialog + @ContributesAndroidInjector abstract fun contributesCarbsDialog(): CarbsDialog +} \ No newline at end of file diff --git a/app/src/main/java/info/nightscout/androidaps/dialogs/CalibrationDialog.kt b/ui/src/main/java/info/nightscout/ui/dialogs/CalibrationDialog.kt similarity index 71% rename from app/src/main/java/info/nightscout/androidaps/dialogs/CalibrationDialog.kt rename to ui/src/main/java/info/nightscout/ui/dialogs/CalibrationDialog.kt index 23aa3a8874..3d1aafa0d1 100644 --- a/app/src/main/java/info/nightscout/androidaps/dialogs/CalibrationDialog.kt +++ b/ui/src/main/java/info/nightscout/ui/dialogs/CalibrationDialog.kt @@ -1,4 +1,4 @@ -package info.nightscout.androidaps.dialogs +package info.nightscout.ui.dialogs import android.os.Bundle import android.view.LayoutInflater @@ -6,20 +6,21 @@ import android.view.View import android.view.ViewGroup import com.google.common.base.Joiner import dagger.android.HasAndroidInjector -import info.nightscout.androidaps.R +import info.nightscout.ui.R +import info.nightscout.ui.databinding.DialogCalibrationBinding import info.nightscout.androidaps.database.entities.UserEntry.Action import info.nightscout.androidaps.database.entities.UserEntry.Sources import info.nightscout.androidaps.database.entities.ValueWithUnit -import info.nightscout.androidaps.databinding.DialogCalibrationBinding +import info.nightscout.androidaps.dialogs.DialogFragmentWithDate import info.nightscout.androidaps.interfaces.GlucoseUnit import info.nightscout.androidaps.interfaces.Profile import info.nightscout.androidaps.interfaces.ProfileFunction +import info.nightscout.androidaps.interfaces.ResourceHelper +import info.nightscout.androidaps.interfaces.XDripBroadcast import info.nightscout.androidaps.logging.UserEntryLogger import info.nightscout.androidaps.plugins.iob.iobCobCalculator.GlucoseStatusProvider import info.nightscout.androidaps.utils.HtmlHelper -import info.nightscout.androidaps.utils.XDripBroadcast import info.nightscout.androidaps.utils.alertDialogs.OKDialog -import info.nightscout.androidaps.interfaces.ResourceHelper import java.text.DecimalFormat import java.util.* import javax.inject.Inject @@ -44,8 +45,10 @@ class CalibrationDialog : DialogFragmentWithDate() { savedInstanceState.putDouble("bg", binding.bg.value) } - override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, - savedInstanceState: Bundle?): View { + override fun onCreateView( + inflater: LayoutInflater, container: ViewGroup?, + savedInstanceState: Bundle? + ): View { onCreateViewGeneral() _binding = DialogCalibrationBinding.inflate(inflater, container, false) return binding.root @@ -55,14 +58,20 @@ class CalibrationDialog : DialogFragmentWithDate() { super.onViewCreated(view, savedInstanceState) val units = profileFunction.getUnits() - val bg = Profile.fromMgdlToUnits(glucoseStatusProvider.glucoseStatusData?.glucose - ?: 0.0, units) + val bg = Profile.fromMgdlToUnits( + glucoseStatusProvider.glucoseStatusData?.glucose + ?: 0.0, units + ) if (units == GlucoseUnit.MMOL) - binding.bg.setParams(savedInstanceState?.getDouble("bg") - ?: bg, 2.0, 30.0, 0.1, DecimalFormat("0.0"), false, binding.okcancel.ok) + binding.bg.setParams( + savedInstanceState?.getDouble("bg") + ?: bg, 2.0, 30.0, 0.1, DecimalFormat("0.0"), false, binding.okcancel.ok + ) else - binding.bg.setParams(savedInstanceState?.getDouble("bg") - ?: bg, 36.0, 500.0, 1.0, DecimalFormat("0"), false, binding.okcancel.ok) + binding.bg.setParams( + savedInstanceState?.getDouble("bg") + ?: bg, 36.0, 500.0, 1.0, DecimalFormat("0"), false, binding.okcancel.ok + ) binding.units.text = if (units == GlucoseUnit.MMOL) rh.gs(R.string.mmol) else rh.gs(R.string.mgdl) binding.bgLabel.labelFor = binding.bg.editTextId } @@ -78,17 +87,17 @@ class CalibrationDialog : DialogFragmentWithDate() { val unitLabel = if (units == GlucoseUnit.MMOL) rh.gs(R.string.mmol) else rh.gs(R.string.mgdl) val actions: LinkedList = LinkedList() val bg = binding.bg.value - actions.add(rh.gs(R.string.treatments_wizard_bg_label) + ": " + Profile.toCurrentUnitsString(profileFunction, bg) + " " + unitLabel) + actions.add(rh.gs(R.string.bg_label) + ": " + Profile.toCurrentUnitsString(profileFunction, bg) + " " + unitLabel) if (bg > 0) { activity?.let { activity -> - OKDialog.showConfirmation(activity, rh.gs(R.string.overview_calibration), HtmlHelper.fromHtml(Joiner.on("
").join(actions)), { + OKDialog.showConfirmation(activity, rh.gs(R.string.calibration), HtmlHelper.fromHtml(Joiner.on("
").join(actions)), { uel.log(Action.CALIBRATION, Sources.CalibrationDialog, ValueWithUnit.fromGlucoseUnit(bg, units.asText)) xDripBroadcast.sendCalibration(bg) }) } } else activity?.let { activity -> - OKDialog.show(activity, rh.gs(R.string.overview_calibration), rh.gs(R.string.no_action_selected)) + OKDialog.show(activity, rh.gs(R.string.calibration), rh.gs(R.string.no_action_selected)) } return true } diff --git a/app/src/main/java/info/nightscout/androidaps/dialogs/CarbsDialog.kt b/ui/src/main/java/info/nightscout/ui/dialogs/CarbsDialog.kt similarity index 92% rename from app/src/main/java/info/nightscout/androidaps/dialogs/CarbsDialog.kt rename to ui/src/main/java/info/nightscout/ui/dialogs/CarbsDialog.kt index db221159ce..93dbe027c9 100644 --- a/app/src/main/java/info/nightscout/androidaps/dialogs/CarbsDialog.kt +++ b/ui/src/main/java/info/nightscout/ui/dialogs/CarbsDialog.kt @@ -1,4 +1,4 @@ -package info.nightscout.androidaps.dialogs +package info.nightscout.ui.dialogs import android.content.Context import android.os.Bundle @@ -8,7 +8,6 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import com.google.common.base.Joiner -import info.nightscout.androidaps.R import info.nightscout.androidaps.activities.ErrorHelperActivity import info.nightscout.androidaps.data.DetailedBolusInfo import info.nightscout.androidaps.database.AppRepository @@ -17,7 +16,7 @@ import info.nightscout.androidaps.database.entities.UserEntry.Action import info.nightscout.androidaps.database.entities.UserEntry.Sources import info.nightscout.androidaps.database.entities.ValueWithUnit import info.nightscout.androidaps.database.transactions.InsertAndCancelCurrentTemporaryTargetTransaction -import info.nightscout.androidaps.databinding.DialogCarbsBinding +import info.nightscout.androidaps.dialogs.DialogFragmentWithDate import info.nightscout.androidaps.extensions.formatColor import info.nightscout.androidaps.interfaces.* import info.nightscout.shared.logging.LTag @@ -30,6 +29,8 @@ import info.nightscout.androidaps.utils.alertDialogs.OKDialog import info.nightscout.androidaps.utils.protection.ProtectionCheck import info.nightscout.androidaps.utils.protection.ProtectionCheck.Protection.BOLUS import info.nightscout.androidaps.interfaces.ResourceHelper +import info.nightscout.ui.R +import info.nightscout.ui.databinding.DialogCarbsBinding import io.reactivex.rxjava3.disposables.CompositeDisposable import io.reactivex.rxjava3.kotlin.plusAssign import java.text.DecimalFormat @@ -78,15 +79,15 @@ class CarbsDialog : DialogFragmentWithDate() { val time = binding.time.value.toInt() if (time > 12 * 60 || time < -7 * 24 * 60) { binding.time.value = 0.0 - ToastUtils.warnToast(ctx, R.string.constraintapllied) + ToastUtils.warnToast(ctx, R.string.constraint_applied) } if (binding.duration.value > 10) { binding.duration.value = 0.0 - ToastUtils.warnToast(ctx, R.string.constraintapllied) + ToastUtils.warnToast(ctx, R.string.constraint_applied) } if (binding.carbs.value.toInt() > maxCarbs) { binding.carbs.value = 0.0 - ToastUtils.warnToast(ctx, R.string.carbsconstraintapplied) + ToastUtils.warnToast(ctx, R.string.carbs_constraint_applied) } } @@ -143,7 +144,7 @@ class CarbsDialog : DialogFragmentWithDate() { ) val plus1text = toSignedString(sp.getInt(R.string.key_carbs_button_increment_1, FAV1_DEFAULT)) binding.plus1.text = plus1text - binding.plus1.contentDescription = rh.gs(R.string.treatments_wizard_carbs_label) + " " + plus1text + binding.plus1.contentDescription = rh.gs(R.string.carbs) + " " + plus1text binding.plus1.setOnClickListener { binding.carbs.value = max( 0.0, binding.carbs.value @@ -155,7 +156,7 @@ class CarbsDialog : DialogFragmentWithDate() { val plus2text = toSignedString(sp.getInt(R.string.key_carbs_button_increment_2, FAV2_DEFAULT)) binding.plus2.text = plus2text - binding.plus2.contentDescription = rh.gs(R.string.treatments_wizard_carbs_label) + " " + plus2text + binding.plus2.contentDescription = rh.gs(R.string.carbs) + " " + plus2text binding.plus2.setOnClickListener { binding.carbs.value = max( 0.0, binding.carbs.value @@ -166,7 +167,7 @@ class CarbsDialog : DialogFragmentWithDate() { } val plus3text = toSignedString(sp.getInt(R.string.key_carbs_button_increment_3, FAV3_DEFAULT)) binding.plus3.text = plus3text - binding.plus2.contentDescription = rh.gs(R.string.treatments_wizard_carbs_label) + " " + plus3text + binding.plus2.contentDescription = rh.gs(R.string.carbs) + " " + plus3text binding.plus3.setOnClickListener { binding.carbs.value = max( 0.0, binding.carbs.value @@ -233,7 +234,7 @@ class CarbsDialog : DialogFragmentWithDate() { val activitySelected = binding.activityTt.isChecked if (activitySelected) actions.add( - rh.gs(R.string.temptargetshort) + ": " + (DecimalFormatter.to1Decimal(activityTT) + " " + unitLabel + " (" + rh.gs(R.string.format_mins, activityTTDuration) + ")").formatColor( + rh.gs(R.string.temp_target_short) + ": " + (DecimalFormatter.to1Decimal(activityTT) + " " + unitLabel + " (" + rh.gs(R.string.format_mins, activityTTDuration) + ")").formatColor( context, rh, R.attr.tempTargetConfirmation @@ -242,7 +243,7 @@ class CarbsDialog : DialogFragmentWithDate() { val eatingSoonSelected = binding.eatingSoonTt.isChecked if (eatingSoonSelected) actions.add( - rh.gs(R.string.temptargetshort) + ": " + (DecimalFormatter.to1Decimal(eatingSoonTT) + " " + unitLabel + " (" + rh.gs( + rh.gs(R.string.temp_target_short) + ": " + (DecimalFormatter.to1Decimal(eatingSoonTT) + " " + unitLabel + " (" + rh.gs( R.string.format_mins, eatingSoonTTDuration ) + ")").formatColor(context, rh, R.attr.tempTargetConfirmation) @@ -250,7 +251,7 @@ class CarbsDialog : DialogFragmentWithDate() { val hypoSelected = binding.hypoTt.isChecked if (hypoSelected) actions.add( - rh.gs(R.string.temptargetshort) + ": " + (DecimalFormatter.to1Decimal(hypoTT) + " " + unitLabel + " (" + rh.gs(R.string.format_mins, hypoTTDuration) + ")").formatColor( + rh.gs(R.string.temp_target_short) + ": " + (DecimalFormatter.to1Decimal(hypoTT) + " " + unitLabel + " (" + rh.gs(R.string.format_mins, hypoTTDuration) + ")").formatColor( context, rh, R.attr.tempTargetConfirmation @@ -266,7 +267,7 @@ class CarbsDialog : DialogFragmentWithDate() { if (carbsAfterConstraints > 0) { actions.add(rh.gs(R.string.carbs) + ": " + "" + rh.gs(R.string.format_carbs, carbsAfterConstraints) + "") if (carbsAfterConstraints != carbs) - actions.add("" + rh.gs(R.string.carbsconstraintapplied) + "") + actions.add("" + rh.gs(R.string.carbs_constraint_applied) + "") } val notes = binding.notesLayout.notes.text.toString() if (notes.isNotEmpty()) @@ -364,16 +365,16 @@ class CarbsDialog : DialogFragmentWithDate() { ValueWithUnit.Hour(duration).takeIf { duration != 0 }) commandQueue.bolus(detailedBolusInfo, object : Callback() { override fun run() { - carbTimer.removeEatReminder() + carbTimer.removeAutomationEventEatReminder() if (!result.success) { ErrorHelperActivity.runAlarm(ctx, result.comment, rh.gs(R.string.treatmentdeliveryerror), R.raw.boluserror) } else if (sp.getBoolean(R.string.key_usebolusreminder, false) && remindBolus) - bolusTimer.scheduleBolusReminder() + bolusTimer.scheduleAutomationEventBolusReminder() } }) } if (useAlarm && carbs > 0 && timeOffset > 0) { - carbTimer.scheduleReminder(T.mins(timeOffset.toLong()).secs().toInt()) + carbTimer.scheduleTimeToEatReminder(T.mins(timeOffset.toLong()).secs().toInt()) } }, null) } diff --git a/app/src/main/res/layout/dialog_calibration.xml b/ui/src/main/res/layout/dialog_calibration.xml similarity index 94% rename from app/src/main/res/layout/dialog_calibration.xml rename to ui/src/main/res/layout/dialog_calibration.xml index dc4fc27176..cdfb3c95ea 100644 --- a/app/src/main/res/layout/dialog_calibration.xml +++ b/ui/src/main/res/layout/dialog_calibration.xml @@ -33,7 +33,7 @@ android:layout_gravity="center" android:layout_marginStart="10dp" android:layout_marginEnd="10dp" - android:text="@string/overview_calibration" + android:text="@string/calibration" android:textAlignment="center" android:textAppearance="?android:attr/textAppearanceLarge" /> @@ -60,7 +60,7 @@ android:layout_gravity="center_horizontal" android:width="120dp" android:padding="10dp" - android:text="@string/treatments_wizard_bg_label" + android:text="@string/bg_label" android:textAppearance="@style/TextAppearance.AppCompat.Small" android:textStyle="bold" /> @@ -68,7 +68,7 @@ android:id="@+id/bg" android:layout_width="130dp" android:layout_height="40dp" - app:customContentDescription="@string/treatments_wizard_bg_label" /> + app:customContentDescription="@string/bg_label" /> + tools:context="info.nightscout.ui.dialogs.CarbsDialog"> @@ -194,7 +194,7 @@ android:id="@+id/carbs" android:layout_width="130dp" android:layout_height="40dp" - app:customContentDescription="@string/treatments_wizard_carbs_label" /> + app:customContentDescription="@string/carbs" /> diff --git a/ui/src/main/res/values/strings.xml b/ui/src/main/res/values/strings.xml new file mode 100644 index 0000000000..d43cb2176d --- /dev/null +++ b/ui/src/main/res/values/strings.xml @@ -0,0 +1,10 @@ + + + No action selected, nothing will happen + Constraint applied! + Bolus constraint applied + Carbs constraint applied + TT + Dialog canceled + +