diff --git a/plugins/configuration/src/main/java/info/nightscout/configuration/setupwizard/elements/SWEditNumberWithUnits.kt b/plugins/configuration/src/main/java/info/nightscout/configuration/setupwizard/elements/SWEditNumberWithUnits.kt index a85d4ffe99..e03b1e1785 100644 --- a/plugins/configuration/src/main/java/info/nightscout/configuration/setupwizard/elements/SWEditNumberWithUnits.kt +++ b/plugins/configuration/src/main/java/info/nightscout/configuration/setupwizard/elements/SWEditNumberWithUnits.kt @@ -9,6 +9,7 @@ import android.widget.TextView import dagger.android.HasAndroidInjector import info.nightscout.configuration.setupwizard.SWNumberValidator import info.nightscout.core.ui.elements.NumberPicker +import info.nightscout.interfaces.Constants import info.nightscout.interfaces.GlucoseUnit import info.nightscout.interfaces.profile.Profile import info.nightscout.interfaces.profile.ProfileFunction @@ -16,12 +17,15 @@ import info.nightscout.shared.SafeParse import java.text.DecimalFormat import javax.inject.Inject -class SWEditNumberWithUnits(injector: HasAndroidInjector, private val init: Double, private val min: Double, private val max: Double) : SWItem(injector, Type.UNIT_NUMBER) { +class SWEditNumberWithUnits(injector: HasAndroidInjector, private val init: Double, private val minMmol: Double, private val maxMmol: Double) : SWItem(injector, Type.UNIT_NUMBER) { @Inject lateinit var profileFunction: ProfileFunction private val validator: SWNumberValidator = - SWNumberValidator { value -> value in min..max } + if (profileFunction.getUnits() == GlucoseUnit.MMOL) + SWNumberValidator { value -> value in minMmol..maxMmol } + else + SWNumberValidator { value -> value in minMmol * Constants.MMOLL_TO_MGDL..maxMmol * Constants.MMOLL_TO_MGDL } private var updateDelay = 0 override fun generateDialog(layout: LinearLayout) { @@ -44,7 +48,10 @@ class SWEditNumberWithUnits(injector: HasAndroidInjector, private val init: Doub var initValue = sp.getDouble(preferenceId, init) initValue = Profile.toCurrentUnits(profileFunction.getUnits(), initValue) val numberPicker = NumberPicker(context) - if (profileFunction.getUnits() == GlucoseUnit.MMOL) numberPicker.setParams(initValue, min, max, 0.1, DecimalFormat("0.0"), false, null, watcher) else numberPicker.setParams(initValue, min * 18, max * 18, 1.0, DecimalFormat("0"), false, null, watcher) + if (profileFunction.getUnits() == GlucoseUnit.MMOL) + numberPicker.setParams(initValue, minMmol, maxMmol, 0.1, DecimalFormat("0.0"), false, null, watcher) + else + numberPicker.setParams(initValue, minMmol * Constants.MMOLL_TO_MGDL, maxMmol * Constants.MMOLL_TO_MGDL, 1.0, DecimalFormat("0"), false, null, watcher) layout.addView(numberPicker) val c = TextView(context)