SW: accept MGDL values correctly
This commit is contained in:
parent
0a63a59bb6
commit
111093f7cd
1 changed files with 10 additions and 3 deletions
|
@ -9,6 +9,7 @@ import android.widget.TextView
|
||||||
import dagger.android.HasAndroidInjector
|
import dagger.android.HasAndroidInjector
|
||||||
import info.nightscout.configuration.setupwizard.SWNumberValidator
|
import info.nightscout.configuration.setupwizard.SWNumberValidator
|
||||||
import info.nightscout.core.ui.elements.NumberPicker
|
import info.nightscout.core.ui.elements.NumberPicker
|
||||||
|
import info.nightscout.interfaces.Constants
|
||||||
import info.nightscout.interfaces.GlucoseUnit
|
import info.nightscout.interfaces.GlucoseUnit
|
||||||
import info.nightscout.interfaces.profile.Profile
|
import info.nightscout.interfaces.profile.Profile
|
||||||
import info.nightscout.interfaces.profile.ProfileFunction
|
import info.nightscout.interfaces.profile.ProfileFunction
|
||||||
|
@ -16,12 +17,15 @@ import info.nightscout.shared.SafeParse
|
||||||
import java.text.DecimalFormat
|
import java.text.DecimalFormat
|
||||||
import javax.inject.Inject
|
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
|
@Inject lateinit var profileFunction: ProfileFunction
|
||||||
|
|
||||||
private val validator: SWNumberValidator =
|
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
|
private var updateDelay = 0
|
||||||
|
|
||||||
override fun generateDialog(layout: LinearLayout) {
|
override fun generateDialog(layout: LinearLayout) {
|
||||||
|
@ -44,7 +48,10 @@ class SWEditNumberWithUnits(injector: HasAndroidInjector, private val init: Doub
|
||||||
var initValue = sp.getDouble(preferenceId, init)
|
var initValue = sp.getDouble(preferenceId, init)
|
||||||
initValue = Profile.toCurrentUnits(profileFunction.getUnits(), initValue)
|
initValue = Profile.toCurrentUnits(profileFunction.getUnits(), initValue)
|
||||||
val numberPicker = NumberPicker(context)
|
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)
|
layout.addView(numberPicker)
|
||||||
val c = TextView(context)
|
val c = TextView(context)
|
||||||
|
|
Loading…
Reference in a new issue