Merge remote-tracking branch 'Nightscout/dev' into UserEntryImprovement
This commit is contained in:
commit
ac3baab3f3
71 changed files with 243 additions and 359 deletions
|
@ -38,20 +38,20 @@ class CarbTimer @Inject constructor(
|
||||||
// Bg under 180 mgdl and dropping by 15 mgdl
|
// Bg under 180 mgdl and dropping by 15 mgdl
|
||||||
list.add(TriggerConnector(injector, TriggerConnector.Type.AND).apply {
|
list.add(TriggerConnector(injector, TriggerConnector.Type.AND).apply {
|
||||||
list.add(TriggerBg(injector, 180.0, Constants.MGDL, Comparator.Compare.IS_LESSER))
|
list.add(TriggerBg(injector, 180.0, Constants.MGDL, Comparator.Compare.IS_LESSER))
|
||||||
list.add(TriggerDelta(injector, InputDelta(injector, -15.0, -360.0, 360.0, 1.0, DecimalFormat("0"), InputDelta.DeltaType.DELTA), Constants.MGDL, Comparator.Compare.IS_EQUAL_OR_LESSER))
|
list.add(TriggerDelta(injector, InputDelta(resourceHelper, -15.0, -360.0, 360.0, 1.0, DecimalFormat("0"), InputDelta.DeltaType.DELTA), Constants.MGDL, Comparator.Compare.IS_EQUAL_OR_LESSER))
|
||||||
list.add(TriggerDelta(injector, InputDelta(injector, -8.0, -360.0, 360.0, 1.0, DecimalFormat("0"), InputDelta.DeltaType.SHORT_AVERAGE), Constants.MGDL, Comparator.Compare.IS_EQUAL_OR_LESSER))
|
list.add(TriggerDelta(injector, InputDelta(resourceHelper, -8.0, -360.0, 360.0, 1.0, DecimalFormat("0"), InputDelta.DeltaType.SHORT_AVERAGE), Constants.MGDL, Comparator.Compare.IS_EQUAL_OR_LESSER))
|
||||||
})
|
})
|
||||||
// Bg under 160 mgdl and dropping by 9 mgdl
|
// Bg under 160 mgdl and dropping by 9 mgdl
|
||||||
list.add(TriggerConnector(injector, TriggerConnector.Type.AND).apply {
|
list.add(TriggerConnector(injector, TriggerConnector.Type.AND).apply {
|
||||||
list.add(TriggerBg(injector, 160.0, Constants.MGDL, Comparator.Compare.IS_LESSER))
|
list.add(TriggerBg(injector, 160.0, Constants.MGDL, Comparator.Compare.IS_LESSER))
|
||||||
list.add(TriggerDelta(injector, InputDelta(injector, -9.0, -360.0, 360.0, 1.0, DecimalFormat("0"), InputDelta.DeltaType.DELTA), Constants.MGDL, Comparator.Compare.IS_EQUAL_OR_LESSER))
|
list.add(TriggerDelta(injector, InputDelta(resourceHelper, -9.0, -360.0, 360.0, 1.0, DecimalFormat("0"), InputDelta.DeltaType.DELTA), Constants.MGDL, Comparator.Compare.IS_EQUAL_OR_LESSER))
|
||||||
list.add(TriggerDelta(injector, InputDelta(injector, -5.0, -360.0, 360.0, 1.0, DecimalFormat("0"), InputDelta.DeltaType.SHORT_AVERAGE), Constants.MGDL, Comparator.Compare.IS_EQUAL_OR_LESSER))
|
list.add(TriggerDelta(injector, InputDelta(resourceHelper, -5.0, -360.0, 360.0, 1.0, DecimalFormat("0"), InputDelta.DeltaType.SHORT_AVERAGE), Constants.MGDL, Comparator.Compare.IS_EQUAL_OR_LESSER))
|
||||||
})
|
})
|
||||||
// Bg under 145 mgdl and dropping
|
// Bg under 145 mgdl and dropping
|
||||||
list.add(TriggerConnector(injector, TriggerConnector.Type.AND).apply {
|
list.add(TriggerConnector(injector, TriggerConnector.Type.AND).apply {
|
||||||
list.add(TriggerBg(injector, 145.0, Constants.MGDL, Comparator.Compare.IS_LESSER))
|
list.add(TriggerBg(injector, 145.0, Constants.MGDL, Comparator.Compare.IS_LESSER))
|
||||||
list.add(TriggerDelta(injector, InputDelta(injector, 0.0, -360.0, 360.0, 1.0, DecimalFormat("0"), InputDelta.DeltaType.DELTA), Constants.MGDL, Comparator.Compare.IS_EQUAL_OR_LESSER))
|
list.add(TriggerDelta(injector, InputDelta(resourceHelper, 0.0, -360.0, 360.0, 1.0, DecimalFormat("0"), InputDelta.DeltaType.DELTA), Constants.MGDL, Comparator.Compare.IS_EQUAL_OR_LESSER))
|
||||||
list.add(TriggerDelta(injector, InputDelta(injector, 0.0, -360.0, 360.0, 1.0, DecimalFormat("0"), InputDelta.DeltaType.SHORT_AVERAGE), Constants.MGDL, Comparator.Compare.IS_EQUAL_OR_LESSER))
|
list.add(TriggerDelta(injector, InputDelta(resourceHelper, 0.0, -360.0, 360.0, 1.0, DecimalFormat("0"), InputDelta.DeltaType.SHORT_AVERAGE), Constants.MGDL, Comparator.Compare.IS_EQUAL_OR_LESSER))
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
actions.add(ActionAlarm(injector, resourceHelper.gs(R.string.time_to_eat)))
|
actions.add(ActionAlarm(injector, resourceHelper.gs(R.string.time_to_eat)))
|
||||||
|
|
|
@ -44,27 +44,4 @@ abstract class AutomationModule {
|
||||||
@ContributesAndroidInjector abstract fun actionStartTempTargetInjector(): ActionStartTempTarget
|
@ContributesAndroidInjector abstract fun actionStartTempTargetInjector(): ActionStartTempTarget
|
||||||
@ContributesAndroidInjector abstract fun actionStopTempTargetInjector(): ActionStopTempTarget
|
@ContributesAndroidInjector abstract fun actionStopTempTargetInjector(): ActionStopTempTarget
|
||||||
@ContributesAndroidInjector abstract fun actionDummyInjector(): ActionDummy
|
@ContributesAndroidInjector abstract fun actionDummyInjector(): ActionDummy
|
||||||
|
|
||||||
@ContributesAndroidInjector abstract fun elementInjector(): Element
|
|
||||||
@ContributesAndroidInjector abstract fun inputBgInjector(): InputBg
|
|
||||||
@ContributesAndroidInjector abstract fun inputButtonInjector(): InputButton
|
|
||||||
@ContributesAndroidInjector abstract fun comparatorInjector(): Comparator
|
|
||||||
@ContributesAndroidInjector abstract fun comparatorConnectInjector(): ComparatorConnect
|
|
||||||
@ContributesAndroidInjector abstract fun comparatorExistsInjector(): ComparatorExists
|
|
||||||
@ContributesAndroidInjector abstract fun inputDateTimeInjector(): InputDateTime
|
|
||||||
@ContributesAndroidInjector abstract fun inputDeltaInjector(): InputDelta
|
|
||||||
@ContributesAndroidInjector abstract fun inputDoubleInjector(): InputDouble
|
|
||||||
@ContributesAndroidInjector abstract fun inputDropdownMenuInjector(): InputDropdownMenu
|
|
||||||
@ContributesAndroidInjector abstract fun inputDurationInjector(): InputDuration
|
|
||||||
@ContributesAndroidInjector abstract fun inputInsulinInjector(): InputInsulin
|
|
||||||
@ContributesAndroidInjector abstract fun inputLocationModeInjector(): InputLocationMode
|
|
||||||
@ContributesAndroidInjector abstract fun inputPercentInjector(): InputPercent
|
|
||||||
@ContributesAndroidInjector abstract fun inputProfileNameInjector(): InputProfileName
|
|
||||||
@ContributesAndroidInjector abstract fun inputStringInjector(): InputString
|
|
||||||
@ContributesAndroidInjector abstract fun inputTempTargetInjector(): InputTempTarget
|
|
||||||
@ContributesAndroidInjector abstract fun inputTimeRangeInjector(): InputTimeRange
|
|
||||||
@ContributesAndroidInjector abstract fun inputTimeInjector(): InputTime
|
|
||||||
@ContributesAndroidInjector abstract fun inputWeekDayInjector(): InputWeekDay
|
|
||||||
@ContributesAndroidInjector abstract fun labelWithElementInjector(): LabelWithElement
|
|
||||||
@ContributesAndroidInjector abstract fun staticLabelInjector(): StaticLabel
|
|
||||||
}
|
}
|
|
@ -26,10 +26,10 @@ class ActionAlarm(injector: HasAndroidInjector) : Action(injector) {
|
||||||
@Inject lateinit var context: Context
|
@Inject lateinit var context: Context
|
||||||
@Inject lateinit var timerUtil: TimerUtil
|
@Inject lateinit var timerUtil: TimerUtil
|
||||||
|
|
||||||
var text = InputString(injector)
|
var text = InputString()
|
||||||
|
|
||||||
constructor(injector: HasAndroidInjector, text: String) : this(injector) {
|
constructor(injector: HasAndroidInjector, text: String) : this(injector) {
|
||||||
this.text = InputString(injector, text)
|
this.text = InputString(text)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun friendlyName(): Int = R.string.alarm
|
override fun friendlyName(): Int = R.string.alarm
|
||||||
|
@ -62,7 +62,7 @@ class ActionAlarm(injector: HasAndroidInjector) : Action(injector) {
|
||||||
|
|
||||||
override fun generateDialog(root: LinearLayout) {
|
override fun generateDialog(root: LinearLayout) {
|
||||||
LayoutBuilder()
|
LayoutBuilder()
|
||||||
.add(LabelWithElement(injector, resourceHelper.gs(R.string.alarm_short), "", text))
|
.add(LabelWithElement(resourceHelper, resourceHelper.gs(R.string.alarm_short), "", text))
|
||||||
.build(root)
|
.build(root)
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -22,7 +22,7 @@ class ActionLoopSuspend(injector: HasAndroidInjector) : Action(injector) {
|
||||||
@Inject lateinit var loopPlugin: LoopInterface
|
@Inject lateinit var loopPlugin: LoopInterface
|
||||||
@Inject lateinit var rxBus: RxBusWrapper
|
@Inject lateinit var rxBus: RxBusWrapper
|
||||||
|
|
||||||
var minutes = InputDuration(injector, 30, InputDuration.TimeUnit.MINUTES)
|
var minutes = InputDuration(30, InputDuration.TimeUnit.MINUTES)
|
||||||
|
|
||||||
override fun friendlyName(): Int = R.string.suspendloop
|
override fun friendlyName(): Int = R.string.suspendloop
|
||||||
override fun shortDescription(): String = resourceHelper.gs(R.string.suspendloopforXmin, minutes.getMinutes())
|
override fun shortDescription(): String = resourceHelper.gs(R.string.suspendloopforXmin, minutes.getMinutes())
|
||||||
|
@ -56,7 +56,7 @@ class ActionLoopSuspend(injector: HasAndroidInjector) : Action(injector) {
|
||||||
|
|
||||||
override fun generateDialog(root: LinearLayout) {
|
override fun generateDialog(root: LinearLayout) {
|
||||||
LayoutBuilder()
|
LayoutBuilder()
|
||||||
.add(LabelWithElement(injector, resourceHelper.gs(R.string.duration_min_label), "", minutes))
|
.add(LabelWithElement(resourceHelper, resourceHelper.gs(R.string.duration_min_label), "", minutes))
|
||||||
.build(root)
|
.build(root)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -25,7 +25,7 @@ class ActionNotification(injector: HasAndroidInjector) : Action(injector) {
|
||||||
@Inject lateinit var rxBus: RxBusWrapper
|
@Inject lateinit var rxBus: RxBusWrapper
|
||||||
@Inject lateinit var nsUpload: NSUpload
|
@Inject lateinit var nsUpload: NSUpload
|
||||||
|
|
||||||
var text = InputString(injector)
|
var text = InputString()
|
||||||
|
|
||||||
override fun friendlyName(): Int = R.string.notification
|
override fun friendlyName(): Int = R.string.notification
|
||||||
override fun shortDescription(): String = resourceHelper.gs(R.string.notification_message, text.value)
|
override fun shortDescription(): String = resourceHelper.gs(R.string.notification_message, text.value)
|
||||||
|
@ -57,7 +57,7 @@ class ActionNotification(injector: HasAndroidInjector) : Action(injector) {
|
||||||
|
|
||||||
override fun generateDialog(root: LinearLayout) {
|
override fun generateDialog(root: LinearLayout) {
|
||||||
LayoutBuilder()
|
LayoutBuilder()
|
||||||
.add(LabelWithElement(injector, resourceHelper.gs(R.string.message_short), "", text))
|
.add(LabelWithElement(resourceHelper, resourceHelper.gs(R.string.message_short), "", text))
|
||||||
.build(root)
|
.build(root)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -23,7 +23,7 @@ class ActionProfileSwitch(injector: HasAndroidInjector) : Action(injector) {
|
||||||
@Inject lateinit var activePlugin: ActivePluginProvider
|
@Inject lateinit var activePlugin: ActivePluginProvider
|
||||||
@Inject lateinit var profileFunction: ProfileFunction
|
@Inject lateinit var profileFunction: ProfileFunction
|
||||||
|
|
||||||
var inputProfileName: InputProfileName = InputProfileName(injector, "")
|
var inputProfileName: InputProfileName = InputProfileName(resourceHelper, activePlugin, "")
|
||||||
|
|
||||||
override fun friendlyName(): Int = R.string.profilename
|
override fun friendlyName(): Int = R.string.profilename
|
||||||
override fun shortDescription(): String = resourceHelper.gs(R.string.changengetoprofilename, inputProfileName.value)
|
override fun shortDescription(): String = resourceHelper.gs(R.string.changengetoprofilename, inputProfileName.value)
|
||||||
|
@ -59,7 +59,7 @@ class ActionProfileSwitch(injector: HasAndroidInjector) : Action(injector) {
|
||||||
|
|
||||||
override fun generateDialog(root: LinearLayout) {
|
override fun generateDialog(root: LinearLayout) {
|
||||||
LayoutBuilder()
|
LayoutBuilder()
|
||||||
.add(LabelWithElement(injector, resourceHelper.gs(R.string.profilename), "", inputProfileName))
|
.add(LabelWithElement(resourceHelper, resourceHelper.gs(R.string.profilename), "", inputProfileName))
|
||||||
.build(root)
|
.build(root)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -22,8 +22,8 @@ class ActionProfileSwitchPercent(injector: HasAndroidInjector) : Action(injector
|
||||||
@Inject lateinit var resourceHelper: ResourceHelper
|
@Inject lateinit var resourceHelper: ResourceHelper
|
||||||
@Inject lateinit var activePlugin: ActivePluginProvider
|
@Inject lateinit var activePlugin: ActivePluginProvider
|
||||||
|
|
||||||
var pct = InputPercent(injector)
|
var pct = InputPercent()
|
||||||
var duration = InputDuration(injector, 30, InputDuration.TimeUnit.MINUTES)
|
var duration = InputDuration(30, InputDuration.TimeUnit.MINUTES)
|
||||||
|
|
||||||
override fun friendlyName(): Int = R.string.profilepercentage
|
override fun friendlyName(): Int = R.string.profilepercentage
|
||||||
override fun shortDescription(): String =
|
override fun shortDescription(): String =
|
||||||
|
@ -43,8 +43,8 @@ class ActionProfileSwitchPercent(injector: HasAndroidInjector) : Action(injector
|
||||||
|
|
||||||
override fun generateDialog(root: LinearLayout) {
|
override fun generateDialog(root: LinearLayout) {
|
||||||
LayoutBuilder()
|
LayoutBuilder()
|
||||||
.add(LabelWithElement(injector, resourceHelper.gs(R.string.percent_u), "", pct))
|
.add(LabelWithElement(resourceHelper, resourceHelper.gs(R.string.percent_u), "", pct))
|
||||||
.add(LabelWithElement(injector, resourceHelper.gs(R.string.duration_min_label), "", duration))
|
.add(LabelWithElement(resourceHelper, resourceHelper.gs(R.string.duration_min_label), "", duration))
|
||||||
.build(root)
|
.build(root)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -19,7 +19,7 @@ class ActionSendSMS(injector: HasAndroidInjector) : Action(injector) {
|
||||||
@Inject lateinit var resourceHelper: ResourceHelper
|
@Inject lateinit var resourceHelper: ResourceHelper
|
||||||
@Inject lateinit var smsCommunicatorPlugin: SmsCommunicatorInterface
|
@Inject lateinit var smsCommunicatorPlugin: SmsCommunicatorInterface
|
||||||
|
|
||||||
var text = InputString(injector)
|
var text = InputString()
|
||||||
|
|
||||||
override fun friendlyName(): Int = R.string.sendsmsactiondescription
|
override fun friendlyName(): Int = R.string.sendsmsactiondescription
|
||||||
override fun shortDescription(): String = resourceHelper.gs(R.string.sendsmsactionlabel, text.value)
|
override fun shortDescription(): String = resourceHelper.gs(R.string.sendsmsactionlabel, text.value)
|
||||||
|
@ -50,7 +50,7 @@ class ActionSendSMS(injector: HasAndroidInjector) : Action(injector) {
|
||||||
|
|
||||||
override fun generateDialog(root: LinearLayout) {
|
override fun generateDialog(root: LinearLayout) {
|
||||||
LayoutBuilder()
|
LayoutBuilder()
|
||||||
.add(LabelWithElement(injector, resourceHelper.gs(R.string.sendsmsactiontext), "", text))
|
.add(LabelWithElement(resourceHelper, resourceHelper.gs(R.string.sendsmsactiontext), "", text))
|
||||||
.build(root)
|
.build(root)
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -11,6 +11,7 @@ import info.nightscout.androidaps.database.AppRepository
|
||||||
import info.nightscout.androidaps.database.entities.TemporaryTarget
|
import info.nightscout.androidaps.database.entities.TemporaryTarget
|
||||||
import info.nightscout.androidaps.database.transactions.InsertTemporaryTargetAndCancelCurrentTransaction
|
import info.nightscout.androidaps.database.transactions.InsertTemporaryTargetAndCancelCurrentTransaction
|
||||||
import info.nightscout.androidaps.interfaces.ActivePluginProvider
|
import info.nightscout.androidaps.interfaces.ActivePluginProvider
|
||||||
|
import info.nightscout.androidaps.interfaces.ProfileFunction
|
||||||
import info.nightscout.androidaps.logging.LTag
|
import info.nightscout.androidaps.logging.LTag
|
||||||
import info.nightscout.androidaps.plugins.general.automation.elements.ComparatorExists
|
import info.nightscout.androidaps.plugins.general.automation.elements.ComparatorExists
|
||||||
import info.nightscout.androidaps.plugins.general.automation.elements.InputDuration
|
import info.nightscout.androidaps.plugins.general.automation.elements.InputDuration
|
||||||
|
@ -37,11 +38,12 @@ class ActionStartTempTarget(injector: HasAndroidInjector) : Action(injector) {
|
||||||
@Inject lateinit var activePlugin: ActivePluginProvider
|
@Inject lateinit var activePlugin: ActivePluginProvider
|
||||||
@Inject lateinit var repository: AppRepository
|
@Inject lateinit var repository: AppRepository
|
||||||
@Inject lateinit var nsUpload: NSUpload
|
@Inject lateinit var nsUpload: NSUpload
|
||||||
|
@Inject lateinit var profileFunction: ProfileFunction
|
||||||
|
|
||||||
private val disposable = CompositeDisposable()
|
private val disposable = CompositeDisposable()
|
||||||
|
|
||||||
var value = InputTempTarget(injector)
|
var value = InputTempTarget(profileFunction)
|
||||||
var duration = InputDuration(injector, 30, InputDuration.TimeUnit.MINUTES)
|
var duration = InputDuration(30, InputDuration.TimeUnit.MINUTES)
|
||||||
|
|
||||||
init {
|
init {
|
||||||
precondition = TriggerTempTarget(injector, ComparatorExists.Compare.NOT_EXISTS)
|
precondition = TriggerTempTarget(injector, ComparatorExists.Compare.NOT_EXISTS)
|
||||||
|
@ -66,8 +68,8 @@ class ActionStartTempTarget(injector: HasAndroidInjector) : Action(injector) {
|
||||||
override fun generateDialog(root: LinearLayout) {
|
override fun generateDialog(root: LinearLayout) {
|
||||||
val unitResId = if (value.units == Constants.MGDL) R.string.mgdl else R.string.mmol
|
val unitResId = if (value.units == Constants.MGDL) R.string.mgdl else R.string.mmol
|
||||||
LayoutBuilder()
|
LayoutBuilder()
|
||||||
.add(LabelWithElement(injector, resourceHelper.gs(R.string.careportal_temporarytarget) + "\n[" + resourceHelper.gs(unitResId) + "]", "", value))
|
.add(LabelWithElement(resourceHelper, resourceHelper.gs(R.string.careportal_temporarytarget) + "\n[" + resourceHelper.gs(unitResId) + "]", "", value))
|
||||||
.add(LabelWithElement(injector, resourceHelper.gs(R.string.duration_min_label), "", duration))
|
.add(LabelWithElement(resourceHelper, resourceHelper.gs(R.string.duration_min_label), "", duration))
|
||||||
.build(root)
|
.build(root)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -6,14 +6,10 @@ import android.widget.ArrayAdapter
|
||||||
import android.widget.LinearLayout
|
import android.widget.LinearLayout
|
||||||
import android.widget.Spinner
|
import android.widget.Spinner
|
||||||
import androidx.annotation.StringRes
|
import androidx.annotation.StringRes
|
||||||
import dagger.android.HasAndroidInjector
|
|
||||||
import info.nightscout.androidaps.automation.R
|
import info.nightscout.androidaps.automation.R
|
||||||
import info.nightscout.androidaps.utils.resources.ResourceHelper
|
import info.nightscout.androidaps.utils.resources.ResourceHelper
|
||||||
import java.util.*
|
|
||||||
import javax.inject.Inject
|
|
||||||
|
|
||||||
class Comparator(injector: HasAndroidInjector) : Element(injector) {
|
class Comparator(private val resourceHelper: ResourceHelper) : Element() {
|
||||||
@Inject lateinit var resourceHelper: ResourceHelper
|
|
||||||
|
|
||||||
enum class Compare {
|
enum class Compare {
|
||||||
IS_LESSER,
|
IS_LESSER,
|
||||||
|
@ -56,7 +52,7 @@ class Comparator(injector: HasAndroidInjector) : Element(injector) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
constructor(injector: HasAndroidInjector, value: Compare) : this(injector) {
|
constructor(resourceHelper: ResourceHelper, value: Compare) : this(resourceHelper) {
|
||||||
this.value = value
|
this.value = value
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -6,14 +6,10 @@ import android.widget.ArrayAdapter
|
||||||
import android.widget.LinearLayout
|
import android.widget.LinearLayout
|
||||||
import android.widget.Spinner
|
import android.widget.Spinner
|
||||||
import androidx.annotation.StringRes
|
import androidx.annotation.StringRes
|
||||||
import dagger.android.HasAndroidInjector
|
|
||||||
import info.nightscout.androidaps.automation.R
|
import info.nightscout.androidaps.automation.R
|
||||||
import info.nightscout.androidaps.utils.resources.ResourceHelper
|
import info.nightscout.androidaps.utils.resources.ResourceHelper
|
||||||
import java.util.*
|
|
||||||
import javax.inject.Inject
|
|
||||||
|
|
||||||
class ComparatorConnect(injector: HasAndroidInjector) : Element(injector) {
|
class ComparatorConnect(private val resourceHelper: ResourceHelper) : Element() {
|
||||||
@Inject lateinit var resourceHelper: ResourceHelper
|
|
||||||
|
|
||||||
enum class Compare {
|
enum class Compare {
|
||||||
ON_CONNECT, ON_DISCONNECT;
|
ON_CONNECT, ON_DISCONNECT;
|
||||||
|
@ -33,7 +29,7 @@ class ComparatorConnect(injector: HasAndroidInjector) : Element(injector) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
constructor(injector: HasAndroidInjector, value: Compare) : this(injector) {
|
constructor(resourceHelper: ResourceHelper, value: Compare) : this(resourceHelper) {
|
||||||
this.value = value
|
this.value = value
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -6,14 +6,10 @@ import android.widget.ArrayAdapter
|
||||||
import android.widget.LinearLayout
|
import android.widget.LinearLayout
|
||||||
import android.widget.Spinner
|
import android.widget.Spinner
|
||||||
import androidx.annotation.StringRes
|
import androidx.annotation.StringRes
|
||||||
import dagger.android.HasAndroidInjector
|
|
||||||
import info.nightscout.androidaps.automation.R
|
import info.nightscout.androidaps.automation.R
|
||||||
import info.nightscout.androidaps.utils.resources.ResourceHelper
|
import info.nightscout.androidaps.utils.resources.ResourceHelper
|
||||||
import java.util.*
|
|
||||||
import javax.inject.Inject
|
|
||||||
|
|
||||||
class ComparatorExists(injector: HasAndroidInjector) : Element(injector) {
|
class ComparatorExists(private val resourceHelper: ResourceHelper, var value: Compare = Compare.EXISTS) : Element() {
|
||||||
@Inject lateinit var resourceHelper: ResourceHelper
|
|
||||||
|
|
||||||
enum class Compare {
|
enum class Compare {
|
||||||
EXISTS, NOT_EXISTS;
|
EXISTS, NOT_EXISTS;
|
||||||
|
@ -33,12 +29,6 @@ class ComparatorExists(injector: HasAndroidInjector) : Element(injector) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
constructor(injector: HasAndroidInjector, value: Compare) : this(injector) {
|
|
||||||
this.value = value
|
|
||||||
}
|
|
||||||
|
|
||||||
var value = Compare.EXISTS
|
|
||||||
|
|
||||||
override fun addToLayout(root: LinearLayout) {
|
override fun addToLayout(root: LinearLayout) {
|
||||||
val spinner = Spinner(root.context)
|
val spinner = Spinner(root.context)
|
||||||
val spinnerArrayAdapter = ArrayAdapter(root.context, R.layout.spinner_centered, Compare.labels(resourceHelper))
|
val spinnerArrayAdapter = ArrayAdapter(root.context, R.layout.spinner_centered, Compare.labels(resourceHelper))
|
||||||
|
|
|
@ -1,13 +1,9 @@
|
||||||
package info.nightscout.androidaps.plugins.general.automation.elements
|
package info.nightscout.androidaps.plugins.general.automation.elements
|
||||||
|
|
||||||
import android.widget.LinearLayout
|
import android.widget.LinearLayout
|
||||||
import dagger.android.HasAndroidInjector
|
|
||||||
|
|
||||||
abstract class Element(val injector: HasAndroidInjector) {
|
abstract class Element {
|
||||||
|
|
||||||
abstract fun addToLayout(root: LinearLayout)
|
abstract fun addToLayout(root: LinearLayout)
|
||||||
|
|
||||||
init {
|
|
||||||
injector.androidInjector().inject(this)
|
|
||||||
}
|
|
||||||
}
|
}
|
|
@ -1,16 +1,13 @@
|
||||||
package info.nightscout.androidaps.plugins.general.automation.elements
|
package info.nightscout.androidaps.plugins.general.automation.elements
|
||||||
|
|
||||||
import android.widget.LinearLayout
|
import android.widget.LinearLayout
|
||||||
import dagger.android.HasAndroidInjector
|
|
||||||
import info.nightscout.androidaps.Constants
|
import info.nightscout.androidaps.Constants
|
||||||
import info.nightscout.androidaps.automation.R
|
import info.nightscout.androidaps.automation.R
|
||||||
import info.nightscout.androidaps.interfaces.ProfileFunction
|
import info.nightscout.androidaps.interfaces.ProfileFunction
|
||||||
import info.nightscout.androidaps.utils.ui.NumberPicker
|
import info.nightscout.androidaps.utils.ui.NumberPicker
|
||||||
import java.text.DecimalFormat
|
import java.text.DecimalFormat
|
||||||
import javax.inject.Inject
|
|
||||||
|
|
||||||
class InputBg(injector: HasAndroidInjector) : Element(injector) {
|
class InputBg(profileFunction: ProfileFunction) : Element() {
|
||||||
@Inject lateinit var profileFunction: ProfileFunction
|
|
||||||
|
|
||||||
var units = Constants.MGDL
|
var units = Constants.MGDL
|
||||||
var value = 0.0
|
var value = 0.0
|
||||||
|
@ -19,7 +16,7 @@ class InputBg(injector: HasAndroidInjector) : Element(injector) {
|
||||||
private var step = 0.0
|
private var step = 0.0
|
||||||
private var decimalFormat: DecimalFormat? = null
|
private var decimalFormat: DecimalFormat? = null
|
||||||
|
|
||||||
constructor(injector: HasAndroidInjector, value: Double, units: String) : this(injector) {
|
constructor(profileFunction: ProfileFunction, value: Double, units: String) : this(profileFunction) {
|
||||||
setUnits(units)
|
setUnits(units)
|
||||||
this.value = value
|
this.value = value
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,13 +2,12 @@ package info.nightscout.androidaps.plugins.general.automation.elements
|
||||||
|
|
||||||
import android.widget.Button
|
import android.widget.Button
|
||||||
import android.widget.LinearLayout
|
import android.widget.LinearLayout
|
||||||
import dagger.android.HasAndroidInjector
|
|
||||||
|
|
||||||
class InputButton(injector: HasAndroidInjector) : Element(injector) {
|
class InputButton() : Element() {
|
||||||
var text: String? = null
|
var text: String? = null
|
||||||
var runnable: Runnable? = null
|
var runnable: Runnable? = null
|
||||||
|
|
||||||
constructor(injector: HasAndroidInjector, text: String, runnable: Runnable) : this(injector) {
|
constructor(text: String, runnable: Runnable) : this() {
|
||||||
this.text = text
|
this.text = text
|
||||||
this.runnable = runnable
|
this.runnable = runnable
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,29 +2,17 @@ package info.nightscout.androidaps.plugins.general.automation.elements
|
||||||
|
|
||||||
import android.app.DatePickerDialog
|
import android.app.DatePickerDialog
|
||||||
import android.app.TimePickerDialog
|
import android.app.TimePickerDialog
|
||||||
import android.content.Context
|
|
||||||
import android.graphics.Typeface
|
import android.graphics.Typeface
|
||||||
import android.text.format.DateFormat
|
import android.text.format.DateFormat
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
import android.widget.LinearLayout
|
import android.widget.LinearLayout
|
||||||
import android.widget.TextView
|
import android.widget.TextView
|
||||||
import dagger.android.HasAndroidInjector
|
|
||||||
import info.nightscout.androidaps.automation.R
|
import info.nightscout.androidaps.automation.R
|
||||||
import info.nightscout.androidaps.utils.DateUtil
|
import info.nightscout.androidaps.utils.DateUtil
|
||||||
import info.nightscout.androidaps.utils.resources.ResourceHelper
|
import info.nightscout.androidaps.utils.resources.ResourceHelper
|
||||||
import java.util.*
|
import java.util.*
|
||||||
import javax.inject.Inject
|
|
||||||
|
|
||||||
class InputDateTime(injector: HasAndroidInjector) : Element(injector) {
|
class InputDateTime(private val resourceHelper: ResourceHelper, private val dateUtil: DateUtil, var value: Long = DateUtil.now()) : Element() {
|
||||||
@Inject lateinit var resourceHelper: ResourceHelper
|
|
||||||
@Inject lateinit var context: Context
|
|
||||||
@Inject lateinit var dateUtil: DateUtil
|
|
||||||
|
|
||||||
var value: Long = DateUtil.now()
|
|
||||||
|
|
||||||
@Suppress("unused") constructor(injector: HasAndroidInjector, value: Long) : this(injector) {
|
|
||||||
this.value = value
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun addToLayout(root: LinearLayout) {
|
override fun addToLayout(root: LinearLayout) {
|
||||||
val label = TextView(root.context)
|
val label = TextView(root.context)
|
||||||
|
@ -74,7 +62,7 @@ class InputDateTime(injector: HasAndroidInjector) : Element(injector) {
|
||||||
TimePickerDialog(it, timeSetListener,
|
TimePickerDialog(it, timeSetListener,
|
||||||
cal.get(Calendar.HOUR_OF_DAY),
|
cal.get(Calendar.HOUR_OF_DAY),
|
||||||
cal.get(Calendar.MINUTE),
|
cal.get(Calendar.MINUTE),
|
||||||
DateFormat.is24HourFormat(context)
|
DateFormat.is24HourFormat(it)
|
||||||
).show()
|
).show()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,16 +7,12 @@ import android.widget.ArrayAdapter
|
||||||
import android.widget.LinearLayout
|
import android.widget.LinearLayout
|
||||||
import android.widget.Spinner
|
import android.widget.Spinner
|
||||||
import androidx.annotation.StringRes
|
import androidx.annotation.StringRes
|
||||||
import dagger.android.HasAndroidInjector
|
|
||||||
import info.nightscout.androidaps.automation.R
|
import info.nightscout.androidaps.automation.R
|
||||||
import info.nightscout.androidaps.utils.ui.NumberPicker
|
import info.nightscout.androidaps.utils.ui.NumberPicker
|
||||||
import info.nightscout.androidaps.utils.resources.ResourceHelper
|
import info.nightscout.androidaps.utils.resources.ResourceHelper
|
||||||
import java.text.DecimalFormat
|
import java.text.DecimalFormat
|
||||||
import java.util.*
|
|
||||||
import javax.inject.Inject
|
|
||||||
|
|
||||||
class InputDelta(injector: HasAndroidInjector) : Element(injector) {
|
class InputDelta(private val resourceHelper: ResourceHelper) : Element() {
|
||||||
@Inject lateinit var resourceHelper: ResourceHelper
|
|
||||||
|
|
||||||
enum class DeltaType {
|
enum class DeltaType {
|
||||||
DELTA, SHORT_AVERAGE, LONG_AVERAGE;
|
DELTA, SHORT_AVERAGE, LONG_AVERAGE;
|
||||||
|
@ -46,7 +42,7 @@ class InputDelta(injector: HasAndroidInjector) : Element(injector) {
|
||||||
private var decimalFormat: DecimalFormat? = null
|
private var decimalFormat: DecimalFormat? = null
|
||||||
var deltaType: DeltaType = DeltaType.DELTA
|
var deltaType: DeltaType = DeltaType.DELTA
|
||||||
|
|
||||||
constructor(injector: HasAndroidInjector, value: Double, minValue: Double, maxValue: Double, step: Double, decimalFormat: DecimalFormat, deltaType: DeltaType) : this(injector) {
|
constructor(resourceHelper: ResourceHelper, value: Double, minValue: Double, maxValue: Double, step: Double, decimalFormat: DecimalFormat, deltaType: DeltaType) : this(resourceHelper) {
|
||||||
this.value = value
|
this.value = value
|
||||||
this.minValue = minValue
|
this.minValue = minValue
|
||||||
this.maxValue = maxValue
|
this.maxValue = maxValue
|
||||||
|
@ -55,7 +51,7 @@ class InputDelta(injector: HasAndroidInjector) : Element(injector) {
|
||||||
this.deltaType = deltaType
|
this.deltaType = deltaType
|
||||||
}
|
}
|
||||||
|
|
||||||
constructor(injector: HasAndroidInjector, inputDelta: InputDelta) : this(injector) {
|
constructor(resourceHelper: ResourceHelper, inputDelta: InputDelta) : this(resourceHelper) {
|
||||||
value = inputDelta.value
|
value = inputDelta.value
|
||||||
minValue = inputDelta.minValue
|
minValue = inputDelta.minValue
|
||||||
maxValue = inputDelta.maxValue
|
maxValue = inputDelta.maxValue
|
||||||
|
|
|
@ -1,12 +1,11 @@
|
||||||
package info.nightscout.androidaps.plugins.general.automation.elements
|
package info.nightscout.androidaps.plugins.general.automation.elements
|
||||||
|
|
||||||
import android.widget.LinearLayout
|
import android.widget.LinearLayout
|
||||||
import dagger.android.HasAndroidInjector
|
|
||||||
import info.nightscout.androidaps.automation.R
|
import info.nightscout.androidaps.automation.R
|
||||||
import info.nightscout.androidaps.utils.ui.NumberPicker
|
import info.nightscout.androidaps.utils.ui.NumberPicker
|
||||||
import java.text.DecimalFormat
|
import java.text.DecimalFormat
|
||||||
|
|
||||||
class InputDouble(injector: HasAndroidInjector) : Element(injector) {
|
class InputDouble() : Element() {
|
||||||
var value = 0.0
|
var value = 0.0
|
||||||
private var minValue = 0.0
|
private var minValue = 0.0
|
||||||
private var maxValue = 0.0
|
private var maxValue = 0.0
|
||||||
|
@ -14,7 +13,7 @@ class InputDouble(injector: HasAndroidInjector) : Element(injector) {
|
||||||
private var decimalFormat: DecimalFormat? = null
|
private var decimalFormat: DecimalFormat? = null
|
||||||
private var numberPicker: NumberPicker? = null
|
private var numberPicker: NumberPicker? = null
|
||||||
|
|
||||||
constructor(injector: HasAndroidInjector, value: Double, minValue: Double, maxValue: Double, step: Double, decimalFormat: DecimalFormat) : this(injector) {
|
constructor(value: Double, minValue: Double, maxValue: Double, step: Double, decimalFormat: DecimalFormat) : this() {
|
||||||
this.value = value
|
this.value = value
|
||||||
this.minValue = minValue
|
this.minValue = minValue
|
||||||
this.maxValue = maxValue
|
this.maxValue = maxValue
|
||||||
|
@ -22,7 +21,7 @@ class InputDouble(injector: HasAndroidInjector) : Element(injector) {
|
||||||
this.decimalFormat = decimalFormat
|
this.decimalFormat = decimalFormat
|
||||||
}
|
}
|
||||||
|
|
||||||
constructor(injector: HasAndroidInjector, inputDouble: InputDouble) : this(injector) {
|
constructor(inputDouble: InputDouble) : this() {
|
||||||
this.value = inputDouble.value
|
this.value = inputDouble.value
|
||||||
this.minValue = inputDouble.minValue
|
this.minValue = inputDouble.minValue
|
||||||
this.maxValue = inputDouble.maxValue
|
this.maxValue = inputDouble.maxValue
|
||||||
|
|
|
@ -6,23 +6,21 @@ import android.widget.AdapterView
|
||||||
import android.widget.ArrayAdapter
|
import android.widget.ArrayAdapter
|
||||||
import android.widget.LinearLayout
|
import android.widget.LinearLayout
|
||||||
import android.widget.Spinner
|
import android.widget.Spinner
|
||||||
import dagger.android.HasAndroidInjector
|
|
||||||
import info.nightscout.androidaps.automation.R
|
import info.nightscout.androidaps.automation.R
|
||||||
import info.nightscout.androidaps.utils.resources.ResourceHelper
|
import info.nightscout.androidaps.utils.resources.ResourceHelper
|
||||||
import java.util.*
|
import java.util.*
|
||||||
import javax.inject.Inject
|
|
||||||
|
|
||||||
class InputDropdownMenu(injector: HasAndroidInjector) : Element(injector) {
|
class InputDropdownMenu(private val resourceHelper: ResourceHelper) : Element() {
|
||||||
@Inject lateinit var resourceHelper: ResourceHelper
|
|
||||||
|
|
||||||
private var itemList: ArrayList<CharSequence> = ArrayList()
|
private var itemList: ArrayList<CharSequence> = ArrayList()
|
||||||
var value: String = ""
|
var value: String = ""
|
||||||
|
|
||||||
constructor(injector: HasAndroidInjector, name: String) : this(injector) {
|
constructor(resourceHelper: ResourceHelper, name: String) : this(resourceHelper) {
|
||||||
value = name
|
value = name
|
||||||
}
|
}
|
||||||
|
|
||||||
@Suppress("unused") constructor(injector: HasAndroidInjector, another: InputDropdownMenu) : this(injector) {
|
@Suppress("unused")
|
||||||
|
constructor(resourceHelper: ResourceHelper, another: InputDropdownMenu) : this(resourceHelper) {
|
||||||
value = another.value
|
value = another.value
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,27 +1,22 @@
|
||||||
package info.nightscout.androidaps.plugins.general.automation.elements
|
package info.nightscout.androidaps.plugins.general.automation.elements
|
||||||
|
|
||||||
import android.widget.LinearLayout
|
import android.widget.LinearLayout
|
||||||
import dagger.android.HasAndroidInjector
|
|
||||||
import info.nightscout.androidaps.automation.R
|
import info.nightscout.androidaps.automation.R
|
||||||
import info.nightscout.androidaps.utils.ui.MinutesNumberPicker
|
import info.nightscout.androidaps.utils.ui.MinutesNumberPicker
|
||||||
import info.nightscout.androidaps.utils.ui.NumberPicker
|
import info.nightscout.androidaps.utils.ui.NumberPicker
|
||||||
import java.text.DecimalFormat
|
import java.text.DecimalFormat
|
||||||
|
|
||||||
class InputDuration(injector: HasAndroidInjector) : Element(injector) {
|
class InputDuration(
|
||||||
|
var value: Int = 0,
|
||||||
|
var unit: TimeUnit = TimeUnit.MINUTES,
|
||||||
|
) : Element() {
|
||||||
|
|
||||||
enum class TimeUnit {
|
enum class TimeUnit {
|
||||||
MINUTES, HOURS
|
MINUTES, HOURS
|
||||||
}
|
}
|
||||||
|
|
||||||
constructor(injector: HasAndroidInjector, value: Int, unit: TimeUnit) : this(injector) {
|
|
||||||
this.unit = unit
|
|
||||||
this.value = value
|
|
||||||
}
|
|
||||||
|
|
||||||
var unit: TimeUnit = TimeUnit.MINUTES
|
|
||||||
var value: Int = 0
|
|
||||||
|
|
||||||
override fun addToLayout(root: LinearLayout) {
|
override fun addToLayout(root: LinearLayout) {
|
||||||
val numberPicker : NumberPicker
|
val numberPicker: NumberPicker
|
||||||
if (unit == TimeUnit.MINUTES) {
|
if (unit == TimeUnit.MINUTES) {
|
||||||
numberPicker = MinutesNumberPicker(root.context, null)
|
numberPicker = MinutesNumberPicker(root.context, null)
|
||||||
numberPicker.setParams(value.toDouble(), 5.0, 24 * 60.0, 10.0, DecimalFormat("0"), false, root.findViewById(R.id.ok))
|
numberPicker.setParams(value.toDouble(), 5.0, 24 * 60.0, 10.0, DecimalFormat("0"), false, root.findViewById(R.id.ok))
|
||||||
|
@ -34,7 +29,7 @@ class InputDuration(injector: HasAndroidInjector) : Element(injector) {
|
||||||
}
|
}
|
||||||
|
|
||||||
fun duplicate(): InputDuration {
|
fun duplicate(): InputDuration {
|
||||||
val i = InputDuration(injector)
|
val i = InputDuration()
|
||||||
i.unit = unit
|
i.unit = unit
|
||||||
i.value = value
|
i.value = value
|
||||||
return i
|
return i
|
||||||
|
|
|
@ -1,15 +1,14 @@
|
||||||
package info.nightscout.androidaps.plugins.general.automation.elements
|
package info.nightscout.androidaps.plugins.general.automation.elements
|
||||||
|
|
||||||
import android.widget.LinearLayout
|
import android.widget.LinearLayout
|
||||||
import dagger.android.HasAndroidInjector
|
|
||||||
import info.nightscout.androidaps.automation.R
|
import info.nightscout.androidaps.automation.R
|
||||||
import info.nightscout.androidaps.utils.ui.NumberPicker
|
import info.nightscout.androidaps.utils.ui.NumberPicker
|
||||||
import java.text.DecimalFormat
|
import java.text.DecimalFormat
|
||||||
|
|
||||||
class InputInsulin(injector: HasAndroidInjector) : Element(injector) {
|
class InputInsulin() : Element() {
|
||||||
var value = 0.0
|
var value = 0.0
|
||||||
|
|
||||||
constructor(injector: HasAndroidInjector, another: InputInsulin) : this(injector) {
|
constructor(another: InputInsulin) : this() {
|
||||||
value = another.value
|
value = another.value
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -6,14 +6,10 @@ import android.widget.ArrayAdapter
|
||||||
import android.widget.LinearLayout
|
import android.widget.LinearLayout
|
||||||
import android.widget.Spinner
|
import android.widget.Spinner
|
||||||
import androidx.annotation.StringRes
|
import androidx.annotation.StringRes
|
||||||
import dagger.android.HasAndroidInjector
|
|
||||||
import info.nightscout.androidaps.automation.R
|
import info.nightscout.androidaps.automation.R
|
||||||
import info.nightscout.androidaps.utils.resources.ResourceHelper
|
import info.nightscout.androidaps.utils.resources.ResourceHelper
|
||||||
import java.util.*
|
|
||||||
import javax.inject.Inject
|
|
||||||
|
|
||||||
class InputLocationMode(injector: HasAndroidInjector) : Element(injector) {
|
class InputLocationMode(private val resourceHelper: ResourceHelper) : Element() {
|
||||||
@Inject lateinit var resourceHelper: ResourceHelper
|
|
||||||
|
|
||||||
enum class Mode {
|
enum class Mode {
|
||||||
INSIDE, OUTSIDE, GOING_IN, GOING_OUT;
|
INSIDE, OUTSIDE, GOING_IN, GOING_OUT;
|
||||||
|
@ -46,7 +42,7 @@ class InputLocationMode(injector: HasAndroidInjector) : Element(injector) {
|
||||||
|
|
||||||
var value: Mode = Mode.INSIDE
|
var value: Mode = Mode.INSIDE
|
||||||
|
|
||||||
constructor(injector: HasAndroidInjector, value: InputLocationMode.Mode) : this(injector) {
|
constructor(resourceHelper: ResourceHelper, value: InputLocationMode.Mode) : this(resourceHelper) {
|
||||||
this.value = value
|
this.value = value
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,15 +1,15 @@
|
||||||
package info.nightscout.androidaps.plugins.general.automation.elements
|
package info.nightscout.androidaps.plugins.general.automation.elements
|
||||||
|
|
||||||
import android.widget.LinearLayout
|
import android.widget.LinearLayout
|
||||||
import dagger.android.HasAndroidInjector
|
|
||||||
import info.nightscout.androidaps.automation.R
|
import info.nightscout.androidaps.automation.R
|
||||||
import info.nightscout.androidaps.utils.ui.NumberPicker
|
import info.nightscout.androidaps.utils.ui.NumberPicker
|
||||||
import java.text.DecimalFormat
|
import java.text.DecimalFormat
|
||||||
|
|
||||||
class InputPercent(injector: HasAndroidInjector) : Element(injector) {
|
class InputPercent() : Element() {
|
||||||
|
|
||||||
var value: Double = 100.0
|
var value: Double = 100.0
|
||||||
|
|
||||||
constructor(injector: HasAndroidInjector, value: Double) : this(injector) {
|
constructor(value: Double) : this() {
|
||||||
this.value = value
|
this.value = value
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -22,6 +22,7 @@ class InputPercent(injector: HasAndroidInjector) : Element(injector) {
|
||||||
}
|
}
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
|
|
||||||
const val MIN = 70.0
|
const val MIN = 70.0
|
||||||
const val MAX = 130.0
|
const val MAX = 130.0
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,21 +6,13 @@ import android.widget.AdapterView
|
||||||
import android.widget.ArrayAdapter
|
import android.widget.ArrayAdapter
|
||||||
import android.widget.LinearLayout
|
import android.widget.LinearLayout
|
||||||
import android.widget.Spinner
|
import android.widget.Spinner
|
||||||
import dagger.android.HasAndroidInjector
|
|
||||||
import info.nightscout.androidaps.automation.R
|
import info.nightscout.androidaps.automation.R
|
||||||
import info.nightscout.androidaps.interfaces.ActivePluginProvider
|
import info.nightscout.androidaps.interfaces.ActivePluginProvider
|
||||||
import info.nightscout.androidaps.utils.resources.ResourceHelper
|
import info.nightscout.androidaps.utils.resources.ResourceHelper
|
||||||
import javax.inject.Inject
|
|
||||||
|
|
||||||
class InputProfileName(injector: HasAndroidInjector) : Element(injector) {
|
class InputProfileName(private val resourceHelper: ResourceHelper, private val activePlugin: ActivePluginProvider, val name: String = "") : Element() {
|
||||||
@Inject lateinit var resourceHelper: ResourceHelper
|
|
||||||
@Inject lateinit var activePlugin: ActivePluginProvider
|
|
||||||
|
|
||||||
var value: String = ""
|
var value: String = name
|
||||||
|
|
||||||
constructor(injector: HasAndroidInjector, name: String) : this(injector) {
|
|
||||||
value = name
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun addToLayout(root: LinearLayout) {
|
override fun addToLayout(root: LinearLayout) {
|
||||||
val profileStore = activePlugin.activeProfileInterface.profile ?: return
|
val profileStore = activePlugin.activeProfileInterface.profile ?: return
|
||||||
|
|
|
@ -5,21 +5,15 @@ import android.text.TextWatcher
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
import android.widget.EditText
|
import android.widget.EditText
|
||||||
import android.widget.LinearLayout
|
import android.widget.LinearLayout
|
||||||
import dagger.android.HasAndroidInjector
|
|
||||||
|
|
||||||
class InputString(injector: HasAndroidInjector) : Element(injector) {
|
class InputString(var value: String = "") : Element() {
|
||||||
var textWatcher: TextWatcher = object : TextWatcher {
|
private val textWatcher: TextWatcher = object : TextWatcher {
|
||||||
override fun beforeTextChanged(s: CharSequence, start: Int, count: Int, after: Int) {}
|
override fun beforeTextChanged(s: CharSequence, start: Int, count: Int, after: Int) {}
|
||||||
override fun onTextChanged(s: CharSequence, start: Int, before: Int, count: Int) {}
|
override fun onTextChanged(s: CharSequence, start: Int, before: Int, count: Int) {}
|
||||||
override fun afterTextChanged(s: Editable) {
|
override fun afterTextChanged(s: Editable) {
|
||||||
value = s.toString()
|
value = s.toString()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
var value = ""
|
|
||||||
|
|
||||||
constructor(injector: HasAndroidInjector, value: String) : this(injector) {
|
|
||||||
this.value = value
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun addToLayout(root: LinearLayout) {
|
override fun addToLayout(root: LinearLayout) {
|
||||||
val editText = EditText(root.context)
|
val editText = EditText(root.context)
|
||||||
|
|
|
@ -1,34 +1,31 @@
|
||||||
package info.nightscout.androidaps.plugins.general.automation.elements
|
package info.nightscout.androidaps.plugins.general.automation.elements
|
||||||
|
|
||||||
import android.widget.LinearLayout
|
import android.widget.LinearLayout
|
||||||
import dagger.android.HasAndroidInjector
|
|
||||||
import info.nightscout.androidaps.Constants
|
import info.nightscout.androidaps.Constants
|
||||||
import info.nightscout.androidaps.automation.R
|
import info.nightscout.androidaps.automation.R
|
||||||
import info.nightscout.androidaps.interfaces.ProfileFunction
|
import info.nightscout.androidaps.interfaces.ProfileFunction
|
||||||
import info.nightscout.androidaps.utils.ui.NumberPicker
|
import info.nightscout.androidaps.utils.ui.NumberPicker
|
||||||
import java.text.DecimalFormat
|
import java.text.DecimalFormat
|
||||||
import javax.inject.Inject
|
|
||||||
|
|
||||||
class InputTempTarget(injector: HasAndroidInjector) : Element(injector) {
|
class InputTempTarget(profileFunction: ProfileFunction) : Element() {
|
||||||
var units = Constants.MGDL
|
var units: String = Constants.MGDL
|
||||||
var value = 0.0
|
var value = 0.0
|
||||||
@Inject lateinit var profileFunction: ProfileFunction
|
|
||||||
|
|
||||||
init {
|
init {
|
||||||
units = profileFunction.getUnits()
|
units = profileFunction.getUnits()
|
||||||
value = if (units == Constants.MMOL) 6.0 else 110.0
|
value = if (units == Constants.MMOL) 6.0 else 110.0
|
||||||
}
|
}
|
||||||
|
|
||||||
constructor(injector: HasAndroidInjector, inputTempTarget: InputTempTarget) : this(injector) {
|
constructor(profileFunction: ProfileFunction, inputTempTarget: InputTempTarget) : this(profileFunction) {
|
||||||
value = inputTempTarget.value
|
value = inputTempTarget.value
|
||||||
units = inputTempTarget.units
|
units = inputTempTarget.units
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun addToLayout(root: LinearLayout) {
|
override fun addToLayout(root: LinearLayout) {
|
||||||
var minValue: Double
|
val minValue: Double
|
||||||
var maxValue: Double
|
val maxValue: Double
|
||||||
var step: Double
|
val step: Double
|
||||||
var decimalFormat: DecimalFormat?
|
val decimalFormat: DecimalFormat?
|
||||||
if (units == Constants.MMOL) { // mmol
|
if (units == Constants.MMOL) { // mmol
|
||||||
minValue = Constants.MIN_TT_MMOL
|
minValue = Constants.MIN_TT_MMOL
|
||||||
maxValue = Constants.MAX_TT_MMOL
|
maxValue = Constants.MAX_TT_MMOL
|
||||||
|
|
|
@ -1,25 +1,19 @@
|
||||||
package info.nightscout.androidaps.plugins.general.automation.elements
|
package info.nightscout.androidaps.plugins.general.automation.elements
|
||||||
|
|
||||||
import android.app.TimePickerDialog
|
import android.app.TimePickerDialog
|
||||||
import android.content.Context
|
|
||||||
import android.graphics.Typeface
|
import android.graphics.Typeface
|
||||||
import android.text.format.DateFormat
|
import android.text.format.DateFormat
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
import android.widget.LinearLayout
|
import android.widget.LinearLayout
|
||||||
import android.widget.TextView
|
import android.widget.TextView
|
||||||
import dagger.android.HasAndroidInjector
|
|
||||||
import info.nightscout.androidaps.automation.R
|
import info.nightscout.androidaps.automation.R
|
||||||
import info.nightscout.androidaps.data.Profile
|
import info.nightscout.androidaps.data.Profile
|
||||||
import info.nightscout.androidaps.utils.DateUtil
|
import info.nightscout.androidaps.utils.DateUtil
|
||||||
import info.nightscout.androidaps.utils.MidnightTime
|
import info.nightscout.androidaps.utils.MidnightTime
|
||||||
import info.nightscout.androidaps.utils.resources.ResourceHelper
|
import info.nightscout.androidaps.utils.resources.ResourceHelper
|
||||||
import java.util.*
|
import java.util.*
|
||||||
import javax.inject.Inject
|
|
||||||
|
|
||||||
class InputTime(injector: HasAndroidInjector) : Element(injector) {
|
class InputTime(private val resourceHelper: ResourceHelper, private val dateUtil: DateUtil) : Element() {
|
||||||
@Inject lateinit var resourceHelper: ResourceHelper
|
|
||||||
@Inject lateinit var context: Context
|
|
||||||
@Inject lateinit var dateUtil: DateUtil
|
|
||||||
|
|
||||||
var value: Int = getMinSinceMidnight(DateUtil.now())
|
var value: Int = getMinSinceMidnight(DateUtil.now())
|
||||||
|
|
||||||
|
@ -40,7 +34,7 @@ class InputTime(injector: HasAndroidInjector) : Element(injector) {
|
||||||
TimePickerDialog(it, startTimeSetListener,
|
TimePickerDialog(it, startTimeSetListener,
|
||||||
cal.get(Calendar.HOUR_OF_DAY),
|
cal.get(Calendar.HOUR_OF_DAY),
|
||||||
cal.get(Calendar.MINUTE),
|
cal.get(Calendar.MINUTE),
|
||||||
DateFormat.is24HourFormat(context)
|
DateFormat.is24HourFormat(it)
|
||||||
).show()
|
).show()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,25 +1,19 @@
|
||||||
package info.nightscout.androidaps.plugins.general.automation.elements
|
package info.nightscout.androidaps.plugins.general.automation.elements
|
||||||
|
|
||||||
import android.app.TimePickerDialog
|
import android.app.TimePickerDialog
|
||||||
import android.content.Context
|
|
||||||
import android.graphics.Typeface
|
import android.graphics.Typeface
|
||||||
import android.text.format.DateFormat
|
import android.text.format.DateFormat
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
import android.widget.LinearLayout
|
import android.widget.LinearLayout
|
||||||
import android.widget.TextView
|
import android.widget.TextView
|
||||||
import dagger.android.HasAndroidInjector
|
|
||||||
import info.nightscout.androidaps.automation.R
|
import info.nightscout.androidaps.automation.R
|
||||||
import info.nightscout.androidaps.data.Profile
|
import info.nightscout.androidaps.data.Profile
|
||||||
import info.nightscout.androidaps.utils.DateUtil
|
import info.nightscout.androidaps.utils.DateUtil
|
||||||
import info.nightscout.androidaps.utils.MidnightTime
|
import info.nightscout.androidaps.utils.MidnightTime
|
||||||
import info.nightscout.androidaps.utils.resources.ResourceHelper
|
import info.nightscout.androidaps.utils.resources.ResourceHelper
|
||||||
import java.util.*
|
import java.util.*
|
||||||
import javax.inject.Inject
|
|
||||||
|
|
||||||
class InputTimeRange(injector: HasAndroidInjector) : Element(injector) {
|
class InputTimeRange(private val resourceHelper: ResourceHelper, private val dateUtil: DateUtil) : Element() {
|
||||||
@Inject lateinit var resourceHelper: ResourceHelper
|
|
||||||
@Inject lateinit var context: Context
|
|
||||||
@Inject lateinit var dateUtil: DateUtil
|
|
||||||
|
|
||||||
var start: Int = getMinSinceMidnight(DateUtil.now())
|
var start: Int = getMinSinceMidnight(DateUtil.now())
|
||||||
var end: Int = getMinSinceMidnight(DateUtil.now())
|
var end: Int = getMinSinceMidnight(DateUtil.now())
|
||||||
|
@ -44,7 +38,7 @@ class InputTimeRange(injector: HasAndroidInjector) : Element(injector) {
|
||||||
TimePickerDialog(it, startTimeSetListener,
|
TimePickerDialog(it, startTimeSetListener,
|
||||||
cal.get(Calendar.HOUR_OF_DAY),
|
cal.get(Calendar.HOUR_OF_DAY),
|
||||||
cal.get(Calendar.MINUTE),
|
cal.get(Calendar.MINUTE),
|
||||||
DateFormat.is24HourFormat(context)
|
DateFormat.is24HourFormat(it)
|
||||||
).show()
|
).show()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -61,7 +55,7 @@ class InputTimeRange(injector: HasAndroidInjector) : Element(injector) {
|
||||||
TimePickerDialog(it, endTimeSetListener,
|
TimePickerDialog(it, endTimeSetListener,
|
||||||
cal.get(Calendar.HOUR_OF_DAY),
|
cal.get(Calendar.HOUR_OF_DAY),
|
||||||
cal.get(Calendar.MINUTE),
|
cal.get(Calendar.MINUTE),
|
||||||
DateFormat.is24HourFormat(context)
|
DateFormat.is24HourFormat(it)
|
||||||
).show()
|
).show()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,7 +7,7 @@ import info.nightscout.androidaps.automation.R
|
||||||
import info.nightscout.androidaps.utils.ui.WeekdayPicker
|
import info.nightscout.androidaps.utils.ui.WeekdayPicker
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
||||||
class InputWeekDay(injector: HasAndroidInjector) : Element(injector) {
|
class InputWeekDay : Element() {
|
||||||
|
|
||||||
enum class DayOfWeek {
|
enum class DayOfWeek {
|
||||||
MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY;
|
MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY;
|
||||||
|
|
|
@ -5,22 +5,14 @@ import android.view.ViewGroup
|
||||||
import android.widget.LinearLayout
|
import android.widget.LinearLayout
|
||||||
import android.widget.TableLayout
|
import android.widget.TableLayout
|
||||||
import android.widget.TextView
|
import android.widget.TextView
|
||||||
import dagger.android.HasAndroidInjector
|
|
||||||
import info.nightscout.androidaps.utils.resources.ResourceHelper
|
import info.nightscout.androidaps.utils.resources.ResourceHelper
|
||||||
import javax.inject.Inject
|
|
||||||
|
|
||||||
class LabelWithElement(injector: HasAndroidInjector) : Element(injector) {
|
class LabelWithElement(
|
||||||
@Inject lateinit var resourceHelper: ResourceHelper
|
private val resourceHelper: ResourceHelper,
|
||||||
|
var textPre: String = "",
|
||||||
var element: Element? = null
|
var textPost: String = "",
|
||||||
var textPre: String = ""
|
var element: Element? = null,
|
||||||
var textPost: String = ""
|
) : Element() {
|
||||||
|
|
||||||
constructor(injector: HasAndroidInjector, textPre: String, textPost: String, element: Element) : this(injector) {
|
|
||||||
this.textPre = textPre
|
|
||||||
this.textPost = textPost
|
|
||||||
this.element = element
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun addToLayout(root: LinearLayout) { // container layout
|
override fun addToLayout(root: LinearLayout) { // container layout
|
||||||
val layout = LinearLayout(root.context)
|
val layout = LinearLayout(root.context)
|
||||||
|
|
|
@ -1,16 +1,16 @@
|
||||||
package info.nightscout.androidaps.plugins.general.automation.elements
|
package info.nightscout.androidaps.plugins.general.automation.elements
|
||||||
|
|
||||||
import android.widget.LinearLayout
|
import android.widget.LinearLayout
|
||||||
import java.util.*
|
|
||||||
|
|
||||||
class LayoutBuilder {
|
class LayoutBuilder {
|
||||||
|
|
||||||
var mElements = ArrayList<Element>()
|
var mElements = ArrayList<Element>()
|
||||||
fun add(element: Element): LayoutBuilder {
|
fun add(element: Element): LayoutBuilder {
|
||||||
mElements.add(element)
|
mElements.add(element)
|
||||||
return this
|
return this
|
||||||
}
|
}
|
||||||
|
|
||||||
fun add(element: Element, condition: Boolean): LayoutBuilder {
|
fun maybeAdd(element: Element, condition: Boolean): LayoutBuilder {
|
||||||
if (condition) mElements.add(element)
|
if (condition) mElements.add(element)
|
||||||
return this
|
return this
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,18 +9,17 @@ import info.nightscout.androidaps.plugins.general.automation.triggers.Trigger
|
||||||
import info.nightscout.androidaps.utils.resources.ResourceHelper
|
import info.nightscout.androidaps.utils.resources.ResourceHelper
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
class StaticLabel(injector: HasAndroidInjector) : Element(injector) {
|
class StaticLabel(private val resourceHelper: ResourceHelper) : Element() {
|
||||||
@Inject lateinit var resourceHelper: ResourceHelper
|
|
||||||
|
|
||||||
var label = ""
|
var label = ""
|
||||||
var trigger: Trigger? = null
|
var trigger: Trigger? = null
|
||||||
|
|
||||||
constructor(injector: HasAndroidInjector, label: String, trigger: Trigger) : this(injector) {
|
constructor(resourceHelper: ResourceHelper, label: String, trigger: Trigger) : this(resourceHelper) {
|
||||||
this.label = label
|
this.label = label
|
||||||
this.trigger = trigger
|
this.trigger = trigger
|
||||||
}
|
}
|
||||||
|
|
||||||
constructor(injector: HasAndroidInjector, resourceId: Int, trigger: Trigger) : this(injector) {
|
constructor(resourceHelper: ResourceHelper, resourceId: Int, trigger: Trigger) : this(resourceHelper) {
|
||||||
label = resourceHelper.gs(resourceId)
|
label = resourceHelper.gs(resourceId)
|
||||||
this.trigger = trigger
|
this.trigger = trigger
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,13 +20,13 @@ class TriggerAutosensValue(injector: HasAndroidInjector) : Trigger(injector) {
|
||||||
private val maxValue = (sp.getDouble(R.string.key_openapsama_autosens_max, 1.2) * 100).toInt()
|
private val maxValue = (sp.getDouble(R.string.key_openapsama_autosens_max, 1.2) * 100).toInt()
|
||||||
private val step = 1.0
|
private val step = 1.0
|
||||||
private val decimalFormat = DecimalFormat("1")
|
private val decimalFormat = DecimalFormat("1")
|
||||||
var autosens: InputDouble = InputDouble(injector, 100.0, minValue.toDouble(), maxValue.toDouble(), step, decimalFormat)
|
var autosens: InputDouble = InputDouble(100.0, minValue.toDouble(), maxValue.toDouble(), step, decimalFormat)
|
||||||
|
|
||||||
var comparator: Comparator = Comparator(injector)
|
var comparator: Comparator = Comparator(resourceHelper)
|
||||||
|
|
||||||
private constructor(injector: HasAndroidInjector, triggerAutosensValue: TriggerAutosensValue) : this(injector) {
|
private constructor(injector: HasAndroidInjector, triggerAutosensValue: TriggerAutosensValue) : this(injector) {
|
||||||
autosens = InputDouble(injector, triggerAutosensValue.autosens)
|
autosens = InputDouble(triggerAutosensValue.autosens)
|
||||||
comparator = Comparator(injector, triggerAutosensValue.comparator.value)
|
comparator = Comparator(resourceHelper, triggerAutosensValue.comparator.value)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun shouldRun(): Boolean {
|
override fun shouldRun(): Boolean {
|
||||||
|
@ -74,9 +74,9 @@ class TriggerAutosensValue(injector: HasAndroidInjector) : Trigger(injector) {
|
||||||
|
|
||||||
override fun generateDialog(root: LinearLayout) {
|
override fun generateDialog(root: LinearLayout) {
|
||||||
LayoutBuilder()
|
LayoutBuilder()
|
||||||
.add(StaticLabel(injector, R.string.autosenslabel, this))
|
.add(StaticLabel(resourceHelper, R.string.autosenslabel, this))
|
||||||
.add(comparator)
|
.add(comparator)
|
||||||
.add(LabelWithElement(injector, resourceHelper.gs(R.string.autosenslabel) + ": ", "", autosens))
|
.add(LabelWithElement(resourceHelper, resourceHelper.gs(R.string.autosenslabel) + ": ", "", autosens))
|
||||||
.build(root)
|
.build(root)
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -22,11 +22,11 @@ class TriggerBTDevice(injector: HasAndroidInjector) : Trigger(injector) {
|
||||||
@Inject lateinit var context: Context
|
@Inject lateinit var context: Context
|
||||||
@Inject lateinit var automationPlugin: AutomationPlugin
|
@Inject lateinit var automationPlugin: AutomationPlugin
|
||||||
|
|
||||||
var btDevice = InputDropdownMenu(injector, "")
|
var btDevice = InputDropdownMenu(resourceHelper, "")
|
||||||
var comparator: ComparatorConnect = ComparatorConnect(injector)
|
var comparator: ComparatorConnect = ComparatorConnect(resourceHelper)
|
||||||
|
|
||||||
private constructor(injector: HasAndroidInjector, triggerBTDevice: TriggerBTDevice) : this(injector) {
|
private constructor(injector: HasAndroidInjector, triggerBTDevice: TriggerBTDevice) : this(injector) {
|
||||||
comparator = ComparatorConnect(injector, triggerBTDevice.comparator.value)
|
comparator = ComparatorConnect(resourceHelper, triggerBTDevice.comparator.value)
|
||||||
btDevice.value = triggerBTDevice.btDevice.value
|
btDevice.value = triggerBTDevice.btDevice.value
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -69,7 +69,7 @@ class TriggerBTDevice(injector: HasAndroidInjector) : Trigger(injector) {
|
||||||
val pairedDevices = devicesPaired()
|
val pairedDevices = devicesPaired()
|
||||||
btDevice.setList(pairedDevices)
|
btDevice.setList(pairedDevices)
|
||||||
LayoutBuilder()
|
LayoutBuilder()
|
||||||
.add(StaticLabel(injector, R.string.btdevice, this))
|
.add(StaticLabel(resourceHelper, R.string.btdevice, this))
|
||||||
.add(btDevice)
|
.add(btDevice)
|
||||||
.add(comparator)
|
.add(comparator)
|
||||||
.build(root)
|
.build(root)
|
||||||
|
|
|
@ -17,17 +17,17 @@ import info.nightscout.androidaps.utils.JsonHelper
|
||||||
import org.json.JSONObject
|
import org.json.JSONObject
|
||||||
|
|
||||||
class TriggerBg(injector: HasAndroidInjector) : Trigger(injector) {
|
class TriggerBg(injector: HasAndroidInjector) : Trigger(injector) {
|
||||||
var bg = InputBg(injector)
|
var bg = InputBg(profileFunction)
|
||||||
var comparator = Comparator(injector)
|
var comparator = Comparator(resourceHelper)
|
||||||
|
|
||||||
constructor(injector: HasAndroidInjector, value: Double, units: String, compare: Comparator.Compare) : this(injector) {
|
constructor(injector: HasAndroidInjector, value: Double, units: String, compare: Comparator.Compare) : this(injector) {
|
||||||
bg = InputBg(injector, value, units)
|
bg = InputBg(profileFunction, value, units)
|
||||||
comparator = Comparator(injector, compare)
|
comparator = Comparator(resourceHelper, compare)
|
||||||
}
|
}
|
||||||
|
|
||||||
constructor(injector: HasAndroidInjector, triggerBg: TriggerBg) : this(injector) {
|
constructor(injector: HasAndroidInjector, triggerBg: TriggerBg) : this(injector) {
|
||||||
bg = InputBg(injector, triggerBg.bg.value, triggerBg.bg.units)
|
bg = InputBg(profileFunction, triggerBg.bg.value, triggerBg.bg.units)
|
||||||
comparator = Comparator(injector, triggerBg.comparator.value)
|
comparator = Comparator(resourceHelper, triggerBg.comparator.value)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun setUnits(units: String): TriggerBg {
|
fun setUnits(units: String): TriggerBg {
|
||||||
|
@ -97,9 +97,9 @@ class TriggerBg(injector: HasAndroidInjector) : Trigger(injector) {
|
||||||
|
|
||||||
override fun generateDialog(root: LinearLayout) {
|
override fun generateDialog(root: LinearLayout) {
|
||||||
LayoutBuilder()
|
LayoutBuilder()
|
||||||
.add(StaticLabel(injector, R.string.glucose, this))
|
.add(StaticLabel(resourceHelper, R.string.glucose, this))
|
||||||
.add(comparator)
|
.add(comparator)
|
||||||
.add(LabelWithElement(injector, resourceHelper.gs(R.string.glucose_u, bg.units), "", bg))
|
.add(LabelWithElement(resourceHelper, resourceHelper.gs(R.string.glucose_u, bg.units), "", bg))
|
||||||
.build(root)
|
.build(root)
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -16,12 +16,12 @@ import info.nightscout.androidaps.utils.JsonHelper.safeGetString
|
||||||
import org.json.JSONObject
|
import org.json.JSONObject
|
||||||
|
|
||||||
class TriggerBolusAgo(injector: HasAndroidInjector) : Trigger(injector) {
|
class TriggerBolusAgo(injector: HasAndroidInjector) : Trigger(injector) {
|
||||||
var minutesAgo: InputDuration = InputDuration(injector, 30, InputDuration.TimeUnit.MINUTES)
|
var minutesAgo: InputDuration = InputDuration( 30, InputDuration.TimeUnit.MINUTES)
|
||||||
var comparator: Comparator = Comparator(injector)
|
var comparator: Comparator = Comparator(resourceHelper)
|
||||||
|
|
||||||
private constructor(injector: HasAndroidInjector, triggerBolusAgo: TriggerBolusAgo) : this(injector) {
|
private constructor(injector: HasAndroidInjector, triggerBolusAgo: TriggerBolusAgo) : this(injector) {
|
||||||
minutesAgo = InputDuration(injector, triggerBolusAgo.minutesAgo.value, InputDuration.TimeUnit.MINUTES)
|
minutesAgo = InputDuration(triggerBolusAgo.minutesAgo.value, InputDuration.TimeUnit.MINUTES)
|
||||||
comparator = Comparator(injector, triggerBolusAgo.comparator.value)
|
comparator = Comparator(resourceHelper, triggerBolusAgo.comparator.value)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun setValue(value: Int): TriggerBolusAgo {
|
fun setValue(value: Int): TriggerBolusAgo {
|
||||||
|
@ -83,9 +83,9 @@ class TriggerBolusAgo(injector: HasAndroidInjector) : Trigger(injector) {
|
||||||
|
|
||||||
override fun generateDialog(root: LinearLayout) {
|
override fun generateDialog(root: LinearLayout) {
|
||||||
LayoutBuilder()
|
LayoutBuilder()
|
||||||
.add(StaticLabel(injector, R.string.lastboluslabel, this))
|
.add(StaticLabel(resourceHelper, R.string.lastboluslabel, this))
|
||||||
.add(comparator)
|
.add(comparator)
|
||||||
.add(LabelWithElement(injector, resourceHelper.gs(R.string.lastboluslabel) + ": ", "", minutesAgo))
|
.add(LabelWithElement(resourceHelper, resourceHelper.gs(R.string.lastboluslabel) + ": ", "", minutesAgo))
|
||||||
.build(root)
|
.build(root)
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -18,12 +18,12 @@ import java.text.DecimalFormat
|
||||||
class TriggerCOB(injector: HasAndroidInjector) : Trigger(injector) {
|
class TriggerCOB(injector: HasAndroidInjector) : Trigger(injector) {
|
||||||
private val minValue = 0
|
private val minValue = 0
|
||||||
private val maxValue = sp.getInt(R.string.key_treatmentssafety_maxcarbs, 48)
|
private val maxValue = sp.getInt(R.string.key_treatmentssafety_maxcarbs, 48)
|
||||||
var cob: InputDouble = InputDouble(injector, 0.0, minValue.toDouble(), maxValue.toDouble(), 1.0, DecimalFormat("1"))
|
var cob: InputDouble = InputDouble(0.0, minValue.toDouble(), maxValue.toDouble(), 1.0, DecimalFormat("1"))
|
||||||
var comparator: Comparator = Comparator(injector)
|
var comparator: Comparator = Comparator(resourceHelper)
|
||||||
|
|
||||||
private constructor(injector: HasAndroidInjector, triggerCOB: TriggerCOB) : this(injector) {
|
private constructor(injector: HasAndroidInjector, triggerCOB: TriggerCOB) : this(injector) {
|
||||||
cob = InputDouble(injector, triggerCOB.cob)
|
cob = InputDouble(triggerCOB.cob)
|
||||||
comparator = Comparator(injector, triggerCOB.comparator.value)
|
comparator = Comparator(resourceHelper, triggerCOB.comparator.value)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun setValue(value:Double) : TriggerCOB {
|
fun setValue(value:Double) : TriggerCOB {
|
||||||
|
@ -83,9 +83,9 @@ class TriggerCOB(injector: HasAndroidInjector) : Trigger(injector) {
|
||||||
|
|
||||||
override fun generateDialog(root: LinearLayout) {
|
override fun generateDialog(root: LinearLayout) {
|
||||||
LayoutBuilder()
|
LayoutBuilder()
|
||||||
.add(StaticLabel(injector, R.string.triggercoblabel, this))
|
.add(StaticLabel(resourceHelper, R.string.triggercoblabel, this))
|
||||||
.add(comparator)
|
.add(comparator)
|
||||||
.add(LabelWithElement(injector, resourceHelper.gs(R.string.triggercoblabel) + ": ", "", cob))
|
.add(LabelWithElement(resourceHelper, resourceHelper.gs(R.string.triggercoblabel) + ": ", "", cob))
|
||||||
.build(root)
|
.build(root)
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -21,8 +21,8 @@ import java.text.DecimalFormat
|
||||||
class TriggerDelta(injector: HasAndroidInjector) : Trigger(injector) {
|
class TriggerDelta(injector: HasAndroidInjector) : Trigger(injector) {
|
||||||
|
|
||||||
var units: String = Constants.MGDL
|
var units: String = Constants.MGDL
|
||||||
var delta: InputDelta = InputDelta(injector)
|
var delta: InputDelta = InputDelta(resourceHelper)
|
||||||
var comparator: Comparator = Comparator(injector)
|
var comparator: Comparator = Comparator(resourceHelper)
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
private const val MMOL_MAX = 4.0
|
private const val MMOL_MAX = 4.0
|
||||||
|
@ -31,8 +31,8 @@ class TriggerDelta(injector: HasAndroidInjector) : Trigger(injector) {
|
||||||
|
|
||||||
init {
|
init {
|
||||||
units = profileFunction.getUnits()
|
units = profileFunction.getUnits()
|
||||||
delta = if (units == Constants.MMOL) InputDelta(injector, 0.0, (-MMOL_MAX), MMOL_MAX, 0.1, DecimalFormat("0.1"), DeltaType.DELTA)
|
delta = if (units == Constants.MMOL) InputDelta(resourceHelper, 0.0, (-MMOL_MAX), MMOL_MAX, 0.1, DecimalFormat("0.1"), DeltaType.DELTA)
|
||||||
else InputDelta(injector, 0.0, (-MGDL_MAX), MGDL_MAX, 1.0, DecimalFormat("1"), DeltaType.DELTA)
|
else InputDelta(resourceHelper, 0.0, (-MGDL_MAX), MGDL_MAX, 1.0, DecimalFormat("1"), DeltaType.DELTA)
|
||||||
}
|
}
|
||||||
|
|
||||||
constructor(injector: HasAndroidInjector, inputDelta: InputDelta, units: String, comparator: Comparator.Compare) : this(injector) {
|
constructor(injector: HasAndroidInjector, inputDelta: InputDelta, units: String, comparator: Comparator.Compare) : this(injector) {
|
||||||
|
@ -43,8 +43,8 @@ class TriggerDelta(injector: HasAndroidInjector) : Trigger(injector) {
|
||||||
|
|
||||||
private constructor(injector: HasAndroidInjector, triggerDelta: TriggerDelta) : this(injector) {
|
private constructor(injector: HasAndroidInjector, triggerDelta: TriggerDelta) : this(injector) {
|
||||||
units = triggerDelta.units
|
units = triggerDelta.units
|
||||||
delta = InputDelta(injector, triggerDelta.delta)
|
delta = InputDelta(resourceHelper, triggerDelta.delta)
|
||||||
comparator = Comparator(injector, triggerDelta.comparator.value)
|
comparator = Comparator(resourceHelper, triggerDelta.comparator.value)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun units(units: String): TriggerDelta {
|
fun units(units: String): TriggerDelta {
|
||||||
|
@ -103,8 +103,8 @@ class TriggerDelta(injector: HasAndroidInjector) : Trigger(injector) {
|
||||||
val type = DeltaType.valueOf(JsonHelper.safeGetString(d, "deltaType", ""))
|
val type = DeltaType.valueOf(JsonHelper.safeGetString(d, "deltaType", ""))
|
||||||
val value = JsonHelper.safeGetDouble(d, "value")
|
val value = JsonHelper.safeGetDouble(d, "value")
|
||||||
delta =
|
delta =
|
||||||
if (units == Constants.MMOL) InputDelta(injector, value, (-MMOL_MAX), MMOL_MAX, 0.1, DecimalFormat("0.1"), type)
|
if (units == Constants.MMOL) InputDelta(resourceHelper, value, (-MMOL_MAX), MMOL_MAX, 0.1, DecimalFormat("0.1"), type)
|
||||||
else InputDelta(injector, value, (-MGDL_MAX), MGDL_MAX, 1.0, DecimalFormat("1"), type)
|
else InputDelta(resourceHelper, value, (-MGDL_MAX), MGDL_MAX, 1.0, DecimalFormat("1"), type)
|
||||||
comparator.setValue(Comparator.Compare.valueOf(JsonHelper.safeGetString(d, "comparator")!!))
|
comparator.setValue(Comparator.Compare.valueOf(JsonHelper.safeGetString(d, "comparator")!!))
|
||||||
return this
|
return this
|
||||||
}
|
}
|
||||||
|
@ -120,9 +120,9 @@ class TriggerDelta(injector: HasAndroidInjector) : Trigger(injector) {
|
||||||
|
|
||||||
override fun generateDialog(root: LinearLayout) {
|
override fun generateDialog(root: LinearLayout) {
|
||||||
LayoutBuilder()
|
LayoutBuilder()
|
||||||
.add(StaticLabel(injector, R.string.deltalabel, this))
|
.add(StaticLabel(resourceHelper, R.string.deltalabel, this))
|
||||||
.add(comparator)
|
.add(comparator)
|
||||||
.add(LabelWithElement(injector, resourceHelper.gs(R.string.deltalabel_u, units) + ": ", "", delta))
|
.add(LabelWithElement(resourceHelper, resourceHelper.gs(R.string.deltalabel_u, units) + ": ", "", delta))
|
||||||
.build(root)
|
.build(root)
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -15,12 +15,12 @@ import info.nightscout.androidaps.utils.JsonHelper
|
||||||
import org.json.JSONObject
|
import org.json.JSONObject
|
||||||
|
|
||||||
class TriggerIob(injector: HasAndroidInjector) : Trigger(injector) {
|
class TriggerIob(injector: HasAndroidInjector) : Trigger(injector) {
|
||||||
var insulin = InputInsulin(injector)
|
var insulin = InputInsulin()
|
||||||
var comparator: Comparator = Comparator(injector)
|
var comparator: Comparator = Comparator(resourceHelper)
|
||||||
|
|
||||||
constructor(injector: HasAndroidInjector, triggerIob: TriggerIob) : this(injector) {
|
constructor(injector: HasAndroidInjector, triggerIob: TriggerIob) : this(injector) {
|
||||||
insulin = InputInsulin(injector, triggerIob.insulin)
|
insulin = InputInsulin(triggerIob.insulin)
|
||||||
comparator = Comparator(injector, triggerIob.comparator.value)
|
comparator = Comparator(resourceHelper, triggerIob.comparator.value)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun setValue(value: Double): TriggerIob {
|
fun setValue(value: Double): TriggerIob {
|
||||||
|
@ -72,9 +72,9 @@ class TriggerIob(injector: HasAndroidInjector) : Trigger(injector) {
|
||||||
|
|
||||||
override fun generateDialog(root: LinearLayout) {
|
override fun generateDialog(root: LinearLayout) {
|
||||||
LayoutBuilder()
|
LayoutBuilder()
|
||||||
.add(StaticLabel(injector, R.string.iob, this))
|
.add(StaticLabel(resourceHelper, R.string.iob, this))
|
||||||
.add(comparator)
|
.add(comparator)
|
||||||
.add(LabelWithElement(injector, resourceHelper.gs(R.string.iob_u), "", insulin))
|
.add(LabelWithElement(resourceHelper, resourceHelper.gs(R.string.iob_u), "", insulin))
|
||||||
.build(root)
|
.build(root)
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -12,11 +12,11 @@ import org.json.JSONObject
|
||||||
import java.text.DecimalFormat
|
import java.text.DecimalFormat
|
||||||
|
|
||||||
class TriggerLocation(injector: HasAndroidInjector) : Trigger(injector) {
|
class TriggerLocation(injector: HasAndroidInjector) : Trigger(injector) {
|
||||||
var latitude = InputDouble(injector, 0.0, -90.0, +90.0, 0.000001, DecimalFormat("0.000000"))
|
var latitude = InputDouble(0.0, -90.0, +90.0, 0.000001, DecimalFormat("0.000000"))
|
||||||
var longitude = InputDouble(injector, 0.0, -180.0, +180.0, 0.000001, DecimalFormat("0.000000"))
|
var longitude = InputDouble(0.0, -180.0, +180.0, 0.000001, DecimalFormat("0.000000"))
|
||||||
var distance = InputDouble(injector, 200.0, 0.0, 100000.0, 10.0, DecimalFormat("0"))
|
var distance = InputDouble(200.0, 0.0, 100000.0, 10.0, DecimalFormat("0"))
|
||||||
var modeSelected = InputLocationMode(injector)
|
var modeSelected = InputLocationMode(resourceHelper)
|
||||||
var name: InputString = InputString(injector)
|
var name: InputString = InputString()
|
||||||
|
|
||||||
var lastMode = InputLocationMode.Mode.INSIDE
|
var lastMode = InputLocationMode.Mode.INSIDE
|
||||||
private val buttonAction = Runnable {
|
private val buttonAction = Runnable {
|
||||||
|
@ -28,10 +28,10 @@ class TriggerLocation(injector: HasAndroidInjector) : Trigger(injector) {
|
||||||
}
|
}
|
||||||
|
|
||||||
private constructor(injector: HasAndroidInjector, triggerLocation: TriggerLocation) : this(injector) {
|
private constructor(injector: HasAndroidInjector, triggerLocation: TriggerLocation) : this(injector) {
|
||||||
latitude = InputDouble(injector, triggerLocation.latitude)
|
latitude = InputDouble(triggerLocation.latitude)
|
||||||
longitude = InputDouble(injector, triggerLocation.longitude)
|
longitude = InputDouble(triggerLocation.longitude)
|
||||||
distance = InputDouble(injector, triggerLocation.distance)
|
distance = InputDouble(triggerLocation.distance)
|
||||||
modeSelected = InputLocationMode(injector, triggerLocation.modeSelected.value)
|
modeSelected = InputLocationMode(resourceHelper, triggerLocation.modeSelected.value)
|
||||||
if (modeSelected.value == InputLocationMode.Mode.GOING_OUT)
|
if (modeSelected.value == InputLocationMode.Mode.GOING_OUT)
|
||||||
lastMode = InputLocationMode.Mode.OUTSIDE
|
lastMode = InputLocationMode.Mode.OUTSIDE
|
||||||
name = triggerLocation.name
|
name = triggerLocation.name
|
||||||
|
@ -91,13 +91,13 @@ class TriggerLocation(injector: HasAndroidInjector) : Trigger(injector) {
|
||||||
|
|
||||||
override fun generateDialog(root: LinearLayout) {
|
override fun generateDialog(root: LinearLayout) {
|
||||||
LayoutBuilder()
|
LayoutBuilder()
|
||||||
.add(StaticLabel(injector, R.string.location, this))
|
.add(StaticLabel(resourceHelper, R.string.location, this))
|
||||||
.add(LabelWithElement(injector, resourceHelper.gs(R.string.name_short), "", name))
|
.add(LabelWithElement(resourceHelper, resourceHelper.gs(R.string.name_short), "", name))
|
||||||
.add(LabelWithElement(injector, resourceHelper.gs(R.string.latitude_short), "", latitude))
|
.add(LabelWithElement(resourceHelper, resourceHelper.gs(R.string.latitude_short), "", latitude))
|
||||||
.add(LabelWithElement(injector, resourceHelper.gs(R.string.longitude_short), "", longitude))
|
.add(LabelWithElement(resourceHelper, resourceHelper.gs(R.string.longitude_short), "", longitude))
|
||||||
.add(LabelWithElement(injector, resourceHelper.gs(R.string.distance_short), "", distance))
|
.add(LabelWithElement(resourceHelper, resourceHelper.gs(R.string.distance_short), "", distance))
|
||||||
.add(LabelWithElement(injector, resourceHelper.gs(R.string.location_mode), "", modeSelected))
|
.add(LabelWithElement(resourceHelper, resourceHelper.gs(R.string.location_mode), "", modeSelected))
|
||||||
.add(InputButton(injector, resourceHelper.gs(R.string.currentlocation), buttonAction), locationDataContainer.lastLocation != null)
|
.maybeAdd(InputButton(resourceHelper.gs(R.string.currentlocation), buttonAction), locationDataContainer.lastLocation != null)
|
||||||
.build(root)
|
.build(root)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -14,17 +14,17 @@ import info.nightscout.androidaps.utils.JsonHelper
|
||||||
import org.json.JSONObject
|
import org.json.JSONObject
|
||||||
|
|
||||||
class TriggerProfilePercent(injector: HasAndroidInjector) : Trigger(injector) {
|
class TriggerProfilePercent(injector: HasAndroidInjector) : Trigger(injector) {
|
||||||
var pct = InputPercent(injector)
|
var pct = InputPercent()
|
||||||
var comparator = Comparator(injector)
|
var comparator = Comparator(resourceHelper)
|
||||||
|
|
||||||
constructor(injector: HasAndroidInjector, value: Double, compare: Comparator.Compare) : this(injector) {
|
constructor(injector: HasAndroidInjector, value: Double, compare: Comparator.Compare) : this(injector) {
|
||||||
pct = InputPercent(injector, value)
|
pct = InputPercent( value)
|
||||||
comparator = Comparator(injector, compare)
|
comparator = Comparator(resourceHelper, compare)
|
||||||
}
|
}
|
||||||
|
|
||||||
constructor(injector: HasAndroidInjector, triggerProfilePercent: TriggerProfilePercent) : this(injector) {
|
constructor(injector: HasAndroidInjector, triggerProfilePercent: TriggerProfilePercent) : this(injector) {
|
||||||
pct = InputPercent(injector, triggerProfilePercent.pct.value)
|
pct = InputPercent(triggerProfilePercent.pct.value)
|
||||||
comparator = Comparator(injector, triggerProfilePercent.comparator.value)
|
comparator = Comparator(resourceHelper, triggerProfilePercent.comparator.value)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun setValue(value: Double): TriggerProfilePercent {
|
fun setValue(value: Double): TriggerProfilePercent {
|
||||||
|
@ -83,9 +83,9 @@ class TriggerProfilePercent(injector: HasAndroidInjector) : Trigger(injector) {
|
||||||
|
|
||||||
override fun generateDialog(root: LinearLayout) {
|
override fun generateDialog(root: LinearLayout) {
|
||||||
LayoutBuilder()
|
LayoutBuilder()
|
||||||
.add(StaticLabel(injector, R.string.profilepercentage, this))
|
.add(StaticLabel(resourceHelper, R.string.profilepercentage, this))
|
||||||
.add(comparator)
|
.add(comparator)
|
||||||
.add(LabelWithElement(injector, resourceHelper.gs(R.string.percent_u), "", pct))
|
.add(LabelWithElement(resourceHelper, resourceHelper.gs(R.string.percent_u), "", pct))
|
||||||
.build(root)
|
.build(root)
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -16,18 +16,18 @@ import info.nightscout.androidaps.utils.JsonHelper.safeGetString
|
||||||
import org.json.JSONObject
|
import org.json.JSONObject
|
||||||
|
|
||||||
class TriggerPumpLastConnection(injector: HasAndroidInjector) : Trigger(injector) {
|
class TriggerPumpLastConnection(injector: HasAndroidInjector) : Trigger(injector) {
|
||||||
var minutesAgo = InputDuration(injector)
|
var minutesAgo = InputDuration()
|
||||||
var comparator = Comparator(injector)
|
var comparator = Comparator(resourceHelper)
|
||||||
|
|
||||||
@Suppress("unused")
|
@Suppress("unused")
|
||||||
constructor(injector: HasAndroidInjector, value: Int, unit: InputDuration.TimeUnit, compare: Comparator.Compare) : this(injector) {
|
constructor(injector: HasAndroidInjector, value: Int, unit: InputDuration.TimeUnit, compare: Comparator.Compare) : this(injector) {
|
||||||
minutesAgo = InputDuration(injector, value, unit)
|
minutesAgo = InputDuration(value, unit)
|
||||||
comparator = Comparator(injector, compare)
|
comparator = Comparator(resourceHelper, compare)
|
||||||
}
|
}
|
||||||
|
|
||||||
constructor(injector: HasAndroidInjector, triggerPumpLastConnection: TriggerPumpLastConnection) : this(injector) {
|
constructor(injector: HasAndroidInjector, triggerPumpLastConnection: TriggerPumpLastConnection) : this(injector) {
|
||||||
minutesAgo = InputDuration(injector, triggerPumpLastConnection.minutesAgo.value, triggerPumpLastConnection.minutesAgo.unit)
|
minutesAgo = InputDuration(triggerPumpLastConnection.minutesAgo.value, triggerPumpLastConnection.minutesAgo.unit)
|
||||||
comparator = Comparator(injector, triggerPumpLastConnection.comparator.value)
|
comparator = Comparator(resourceHelper, triggerPumpLastConnection.comparator.value)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun setValue(value: Int): TriggerPumpLastConnection {
|
fun setValue(value: Int): TriggerPumpLastConnection {
|
||||||
|
@ -84,9 +84,9 @@ class TriggerPumpLastConnection(injector: HasAndroidInjector) : Trigger(injector
|
||||||
|
|
||||||
override fun generateDialog(root: LinearLayout) {
|
override fun generateDialog(root: LinearLayout) {
|
||||||
LayoutBuilder()
|
LayoutBuilder()
|
||||||
.add(StaticLabel(injector, R.string.automation_trigger_pump_last_connection_label, this))
|
.add(StaticLabel(resourceHelper, R.string.automation_trigger_pump_last_connection_label, this))
|
||||||
.add(comparator)
|
.add(comparator)
|
||||||
.add(LabelWithElement(injector, resourceHelper.gs(R.string.automation_trigger_pump_last_connection_description) + ": ", "", minutesAgo))
|
.add(LabelWithElement(resourceHelper, resourceHelper.gs(R.string.automation_trigger_pump_last_connection_description) + ": ", "", minutesAgo))
|
||||||
.build(root)
|
.build(root)
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -20,8 +20,8 @@ import javax.inject.Inject
|
||||||
class TriggerRecurringTime(injector: HasAndroidInjector) : Trigger(injector) {
|
class TriggerRecurringTime(injector: HasAndroidInjector) : Trigger(injector) {
|
||||||
@Inject lateinit var dateUtil: DateUtil
|
@Inject lateinit var dateUtil: DateUtil
|
||||||
|
|
||||||
val days = InputWeekDay(injector)
|
val days = InputWeekDay()
|
||||||
val time = InputTime(injector)
|
val time = InputTime(resourceHelper, dateUtil)
|
||||||
|
|
||||||
constructor(injector: HasAndroidInjector, triggerRecurringTime: TriggerRecurringTime) : this(injector) {
|
constructor(injector: HasAndroidInjector, triggerRecurringTime: TriggerRecurringTime) : this(injector) {
|
||||||
this.time.value = triggerRecurringTime.time.value
|
this.time.value = triggerRecurringTime.time.value
|
||||||
|
@ -100,7 +100,7 @@ class TriggerRecurringTime(injector: HasAndroidInjector) : Trigger(injector) {
|
||||||
|
|
||||||
override fun generateDialog(root: LinearLayout) {
|
override fun generateDialog(root: LinearLayout) {
|
||||||
LayoutBuilder()
|
LayoutBuilder()
|
||||||
.add(StaticLabel(injector, R.string.recurringTime, this))
|
.add(StaticLabel(resourceHelper, R.string.recurringTime, this))
|
||||||
.add(days)
|
.add(days)
|
||||||
.add(time)
|
.add(time)
|
||||||
.build(root)
|
.build(root)
|
||||||
|
|
|
@ -20,14 +20,14 @@ class TriggerTempTarget(injector: HasAndroidInjector) : Trigger(injector) {
|
||||||
@Inject lateinit var repository: AppRepository
|
@Inject lateinit var repository: AppRepository
|
||||||
@Inject lateinit var dateUtil: DateUtil
|
@Inject lateinit var dateUtil: DateUtil
|
||||||
|
|
||||||
var comparator = ComparatorExists(injector)
|
var comparator = ComparatorExists(resourceHelper)
|
||||||
|
|
||||||
constructor(injector: HasAndroidInjector, compare: ComparatorExists.Compare) : this(injector) {
|
constructor(injector: HasAndroidInjector, compare: ComparatorExists.Compare) : this(injector) {
|
||||||
comparator = ComparatorExists(injector, compare)
|
comparator = ComparatorExists(resourceHelper, compare)
|
||||||
}
|
}
|
||||||
|
|
||||||
constructor(injector: HasAndroidInjector, triggerTempTarget: TriggerTempTarget) : this(injector) {
|
constructor(injector: HasAndroidInjector, triggerTempTarget: TriggerTempTarget) : this(injector) {
|
||||||
comparator = ComparatorExists(injector, triggerTempTarget.comparator.value)
|
comparator = ComparatorExists(resourceHelper, triggerTempTarget.comparator.value)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun comparator(comparator: ComparatorExists.Compare): TriggerTempTarget {
|
fun comparator(comparator: ComparatorExists.Compare): TriggerTempTarget {
|
||||||
|
@ -75,7 +75,7 @@ class TriggerTempTarget(injector: HasAndroidInjector) : Trigger(injector) {
|
||||||
|
|
||||||
override fun generateDialog(root: LinearLayout) {
|
override fun generateDialog(root: LinearLayout) {
|
||||||
LayoutBuilder()
|
LayoutBuilder()
|
||||||
.add(StaticLabel(injector, R.string.careportal_temporarytarget, this))
|
.add(StaticLabel(resourceHelper, R.string.careportal_temporarytarget, this))
|
||||||
.add(comparator)
|
.add(comparator)
|
||||||
.build(root)
|
.build(root)
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
package info.nightscout.androidaps.plugins.general.automation.triggers
|
package info.nightscout.androidaps.plugins.general.automation.triggers
|
||||||
|
|
||||||
|
import android.content.Context
|
||||||
import android.widget.LinearLayout
|
import android.widget.LinearLayout
|
||||||
import com.google.common.base.Optional
|
import com.google.common.base.Optional
|
||||||
import dagger.android.HasAndroidInjector
|
import dagger.android.HasAndroidInjector
|
||||||
|
@ -17,7 +18,7 @@ import javax.inject.Inject
|
||||||
class TriggerTime(injector: HasAndroidInjector) : Trigger(injector) {
|
class TriggerTime(injector: HasAndroidInjector) : Trigger(injector) {
|
||||||
@Inject lateinit var dateUtil: DateUtil
|
@Inject lateinit var dateUtil: DateUtil
|
||||||
|
|
||||||
var time = InputDateTime(injector)
|
var time = InputDateTime(resourceHelper, dateUtil)
|
||||||
|
|
||||||
constructor(injector: HasAndroidInjector, runAt: Long) : this(injector) {
|
constructor(injector: HasAndroidInjector, runAt: Long) : this(injector) {
|
||||||
this.time.value = runAt
|
this.time.value = runAt
|
||||||
|
@ -68,7 +69,7 @@ class TriggerTime(injector: HasAndroidInjector) : Trigger(injector) {
|
||||||
|
|
||||||
override fun generateDialog(root: LinearLayout) {
|
override fun generateDialog(root: LinearLayout) {
|
||||||
LayoutBuilder()
|
LayoutBuilder()
|
||||||
.add(StaticLabel(injector, R.string.time, this))
|
.add(StaticLabel(resourceHelper, R.string.time, this))
|
||||||
.add(time)
|
.add(time)
|
||||||
.build(root)
|
.build(root)
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,7 +21,7 @@ class TriggerTimeRange(injector: HasAndroidInjector) : Trigger(injector) {
|
||||||
@Inject lateinit var dateUtil: DateUtil
|
@Inject lateinit var dateUtil: DateUtil
|
||||||
|
|
||||||
// in minutes since midnight 60 means 1AM
|
// in minutes since midnight 60 means 1AM
|
||||||
var range = InputTimeRange(injector)
|
var range = InputTimeRange(resourceHelper, dateUtil)
|
||||||
|
|
||||||
constructor(injector: HasAndroidInjector, start: Int, end: Int) : this(injector) {
|
constructor(injector: HasAndroidInjector, start: Int, end: Int) : this(injector) {
|
||||||
range.start = start
|
range.start = start
|
||||||
|
@ -84,7 +84,7 @@ class TriggerTimeRange(injector: HasAndroidInjector) : Trigger(injector) {
|
||||||
|
|
||||||
override fun generateDialog(root: LinearLayout) {
|
override fun generateDialog(root: LinearLayout) {
|
||||||
LayoutBuilder()
|
LayoutBuilder()
|
||||||
.add(StaticLabel(injector, R.string.time_range, this))
|
.add(StaticLabel(resourceHelper, R.string.time_range, this))
|
||||||
.add(range)
|
.add(range)
|
||||||
.build(root)
|
.build(root)
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,17 +18,17 @@ import javax.inject.Inject
|
||||||
class TriggerWifiSsid(injector: HasAndroidInjector) : Trigger(injector) {
|
class TriggerWifiSsid(injector: HasAndroidInjector) : Trigger(injector) {
|
||||||
@Inject lateinit var receiverStatusStore: ReceiverStatusStore
|
@Inject lateinit var receiverStatusStore: ReceiverStatusStore
|
||||||
|
|
||||||
var ssid = InputString(injector)
|
var ssid = InputString()
|
||||||
var comparator = Comparator(injector)
|
var comparator = Comparator(resourceHelper)
|
||||||
|
|
||||||
@Suppress("unused") constructor(injector: HasAndroidInjector, ssid: String, compare: Comparator.Compare) : this(injector) {
|
@Suppress("unused") constructor(injector: HasAndroidInjector, ssid: String, compare: Comparator.Compare) : this(injector) {
|
||||||
this.ssid = InputString(injector, ssid)
|
this.ssid = InputString(ssid)
|
||||||
comparator = Comparator(injector, compare)
|
comparator = Comparator(resourceHelper, compare)
|
||||||
}
|
}
|
||||||
|
|
||||||
constructor(injector: HasAndroidInjector, triggerWifiSsid: TriggerWifiSsid) : this(injector) {
|
constructor(injector: HasAndroidInjector, triggerWifiSsid: TriggerWifiSsid) : this(injector) {
|
||||||
this.ssid = InputString(injector, triggerWifiSsid.ssid.value)
|
this.ssid = InputString(triggerWifiSsid.ssid.value)
|
||||||
comparator = Comparator(injector, triggerWifiSsid.comparator.value)
|
comparator = Comparator(resourceHelper, triggerWifiSsid.comparator.value)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun setValue(ssid: String): TriggerWifiSsid {
|
fun setValue(ssid: String): TriggerWifiSsid {
|
||||||
|
@ -83,9 +83,9 @@ class TriggerWifiSsid(injector: HasAndroidInjector) : Trigger(injector) {
|
||||||
|
|
||||||
override fun generateDialog(root: LinearLayout) {
|
override fun generateDialog(root: LinearLayout) {
|
||||||
LayoutBuilder()
|
LayoutBuilder()
|
||||||
.add(StaticLabel(injector, R.string.ns_wifi_ssids, this))
|
.add(StaticLabel(resourceHelper, R.string.ns_wifi_ssids, this))
|
||||||
.add(comparator)
|
.add(comparator)
|
||||||
.add(LabelWithElement(injector, resourceHelper.gs(R.string.ns_wifi_ssids) + ": ", "", ssid))
|
.add(LabelWithElement(resourceHelper, resourceHelper.gs(R.string.ns_wifi_ssids) + ": ", "", ssid))
|
||||||
.build(root)
|
.build(root)
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -60,7 +60,7 @@ class ActionAlarmTest : TestBase() {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test fun shortDescriptionTest() {
|
@Test fun shortDescriptionTest() {
|
||||||
sut.text = InputString(injector, "Asd")
|
sut.text = InputString("Asd")
|
||||||
Assert.assertEquals("Alarm: %s", sut.shortDescription())
|
Assert.assertEquals("Alarm: %s", sut.shortDescription())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -81,12 +81,12 @@ class ActionAlarmTest : TestBase() {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test fun toJSONTest() {
|
@Test fun toJSONTest() {
|
||||||
sut.text = InputString(injector, "Asd")
|
sut.text = InputString("Asd")
|
||||||
Assert.assertEquals("{\"data\":{\"text\":\"Asd\"},\"type\":\"info.nightscout.androidaps.plugins.general.automation.actions.ActionAlarm\"}", sut.toJSON())
|
Assert.assertEquals("{\"data\":{\"text\":\"Asd\"},\"type\":\"info.nightscout.androidaps.plugins.general.automation.actions.ActionAlarm\"}", sut.toJSON())
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test fun fromJSONTest() {
|
@Test fun fromJSONTest() {
|
||||||
sut.text = InputString(injector, "Asd")
|
sut.text = InputString("Asd")
|
||||||
sut.fromJSON("{\"text\":\"Asd\"}")
|
sut.fromJSON("{\"text\":\"Asd\"}")
|
||||||
Assert.assertEquals("Asd", sut.text.value)
|
Assert.assertEquals("Asd", sut.text.value)
|
||||||
}
|
}
|
||||||
|
|
|
@ -31,7 +31,7 @@ class ActionLoopSuspendTest : ActionsTestBase() {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test fun shortDescriptionTest() {
|
@Test fun shortDescriptionTest() {
|
||||||
sut.minutes = InputDuration(injector, 30, InputDuration.TimeUnit.MINUTES)
|
sut.minutes = InputDuration(30, InputDuration.TimeUnit.MINUTES)
|
||||||
Assert.assertEquals("Suspend loop for %d min", sut.shortDescription())
|
Assert.assertEquals("Suspend loop for %d min", sut.shortDescription())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -41,7 +41,7 @@ class ActionLoopSuspendTest : ActionsTestBase() {
|
||||||
|
|
||||||
@Test fun doActionTest() {
|
@Test fun doActionTest() {
|
||||||
`when`(loopPlugin.isSuspended).thenReturn(false)
|
`when`(loopPlugin.isSuspended).thenReturn(false)
|
||||||
sut.minutes = InputDuration(injector, 30, InputDuration.TimeUnit.MINUTES)
|
sut.minutes = InputDuration(30, InputDuration.TimeUnit.MINUTES)
|
||||||
sut.doAction(object : Callback() {
|
sut.doAction(object : Callback() {
|
||||||
override fun run() {}
|
override fun run() {}
|
||||||
})
|
})
|
||||||
|
@ -57,7 +57,7 @@ class ActionLoopSuspendTest : ActionsTestBase() {
|
||||||
|
|
||||||
@Test fun applyTest() {
|
@Test fun applyTest() {
|
||||||
val a = ActionLoopSuspend(injector)
|
val a = ActionLoopSuspend(injector)
|
||||||
a.minutes = InputDuration(injector, 20, InputDuration.TimeUnit.MINUTES)
|
a.minutes = InputDuration(20, InputDuration.TimeUnit.MINUTES)
|
||||||
val b = ActionLoopSuspend(injector)
|
val b = ActionLoopSuspend(injector)
|
||||||
b.apply(a)
|
b.apply(a)
|
||||||
Assert.assertEquals(20, b.minutes.getMinutes().toLong())
|
Assert.assertEquals(20, b.minutes.getMinutes().toLong())
|
||||||
|
|
|
@ -57,7 +57,7 @@ class ActionNotificationTest : TestBase() {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test fun shortDescriptionTest() {
|
@Test fun shortDescriptionTest() {
|
||||||
sut.text = InputString(injector, "Asd")
|
sut.text = InputString("Asd")
|
||||||
Assert.assertEquals("Notification: %s", sut.shortDescription())
|
Assert.assertEquals("Notification: %s", sut.shortDescription())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -80,12 +80,12 @@ class ActionNotificationTest : TestBase() {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test fun toJSONTest() {
|
@Test fun toJSONTest() {
|
||||||
sut.text = InputString(injector, "Asd")
|
sut.text = InputString("Asd")
|
||||||
Assert.assertEquals("{\"data\":{\"text\":\"Asd\"},\"type\":\"info.nightscout.androidaps.plugins.general.automation.actions.ActionNotification\"}", sut.toJSON())
|
Assert.assertEquals("{\"data\":{\"text\":\"Asd\"},\"type\":\"info.nightscout.androidaps.plugins.general.automation.actions.ActionNotification\"}", sut.toJSON())
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test fun fromJSONTest() {
|
@Test fun fromJSONTest() {
|
||||||
sut.text = InputString(injector, "Asd")
|
sut.text = InputString("Asd")
|
||||||
sut.fromJSON("{\"text\":\"Asd\"}")
|
sut.fromJSON("{\"text\":\"Asd\"}")
|
||||||
Assert.assertEquals("Asd", sut.text.value)
|
Assert.assertEquals("Asd", sut.text.value)
|
||||||
}
|
}
|
||||||
|
|
|
@ -32,8 +32,8 @@ class ActionProfileSwitchPercentTest : ActionsTestBase() {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test fun shortDescriptionTest() {
|
@Test fun shortDescriptionTest() {
|
||||||
sut.pct = InputPercent(injector, 100.0)
|
sut.pct = InputPercent(100.0)
|
||||||
sut.duration = InputDuration(injector, 30, InputDuration.TimeUnit.MINUTES)
|
sut.duration = InputDuration(30, InputDuration.TimeUnit.MINUTES)
|
||||||
Assert.assertNull(sut.shortDescription()) // not mocked
|
Assert.assertNull(sut.shortDescription()) // not mocked
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -42,8 +42,8 @@ class ActionProfileSwitchPercentTest : ActionsTestBase() {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test fun doActionTest() {
|
@Test fun doActionTest() {
|
||||||
sut.pct = InputPercent(injector, 110.0)
|
sut.pct = InputPercent(110.0)
|
||||||
sut.duration = InputDuration(injector, 30, InputDuration.TimeUnit.MINUTES)
|
sut.duration = InputDuration(30, InputDuration.TimeUnit.MINUTES)
|
||||||
sut.doAction(object : Callback() {
|
sut.doAction(object : Callback() {
|
||||||
override fun run() {
|
override fun run() {
|
||||||
Assert.assertTrue(result.success)
|
Assert.assertTrue(result.success)
|
||||||
|
@ -57,8 +57,8 @@ class ActionProfileSwitchPercentTest : ActionsTestBase() {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test fun toJSONTest() {
|
@Test fun toJSONTest() {
|
||||||
sut.pct = InputPercent(injector, 100.0)
|
sut.pct = InputPercent(100.0)
|
||||||
sut.duration = InputDuration(injector, 30, InputDuration.TimeUnit.MINUTES)
|
sut.duration = InputDuration(30, InputDuration.TimeUnit.MINUTES)
|
||||||
Assert.assertEquals("{\"data\":{\"percentage\":100,\"durationInMinutes\":30},\"type\":\"info.nightscout.androidaps.plugins.general.automation.actions.ActionProfileSwitchPercent\"}", sut.toJSON())
|
Assert.assertEquals("{\"data\":{\"percentage\":100,\"durationInMinutes\":30},\"type\":\"info.nightscout.androidaps.plugins.general.automation.actions.ActionProfileSwitchPercent\"}", sut.toJSON())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -44,7 +44,7 @@ class ActionProfileSwitchTest : ActionsTestBase() {
|
||||||
@Test fun doAction() {
|
@Test fun doAction() {
|
||||||
//Empty input
|
//Empty input
|
||||||
`when`(profileFunction.getProfileName()).thenReturn("Test")
|
`when`(profileFunction.getProfileName()).thenReturn("Test")
|
||||||
sut.inputProfileName = InputProfileName(injector, "")
|
sut.inputProfileName = InputProfileName(resourceHelper, activePlugin, "")
|
||||||
sut.doAction(object : Callback() {
|
sut.doAction(object : Callback() {
|
||||||
override fun run() {
|
override fun run() {
|
||||||
Assert.assertFalse(result.success)
|
Assert.assertFalse(result.success)
|
||||||
|
@ -53,7 +53,7 @@ class ActionProfileSwitchTest : ActionsTestBase() {
|
||||||
|
|
||||||
//Not initialized profileStore
|
//Not initialized profileStore
|
||||||
`when`(profileFunction.getProfile()).thenReturn(null)
|
`when`(profileFunction.getProfile()).thenReturn(null)
|
||||||
sut.inputProfileName = InputProfileName(injector, "someProfile")
|
sut.inputProfileName = InputProfileName(resourceHelper, activePlugin, "someProfile")
|
||||||
sut.doAction(object : Callback() {
|
sut.doAction(object : Callback() {
|
||||||
override fun run() {
|
override fun run() {
|
||||||
Assert.assertFalse(result.success)
|
Assert.assertFalse(result.success)
|
||||||
|
@ -63,7 +63,7 @@ class ActionProfileSwitchTest : ActionsTestBase() {
|
||||||
//profile already set
|
//profile already set
|
||||||
`when`(profileFunction.getProfile()).thenReturn(validProfile)
|
`when`(profileFunction.getProfile()).thenReturn(validProfile)
|
||||||
`when`(profileFunction.getProfileName()).thenReturn("Test")
|
`when`(profileFunction.getProfileName()).thenReturn("Test")
|
||||||
sut.inputProfileName = InputProfileName(injector, "Test")
|
sut.inputProfileName = InputProfileName(resourceHelper, activePlugin, "Test")
|
||||||
sut.doAction(object : Callback() {
|
sut.doAction(object : Callback() {
|
||||||
override fun run() {
|
override fun run() {
|
||||||
Assert.assertTrue(result.success)
|
Assert.assertTrue(result.success)
|
||||||
|
@ -73,7 +73,7 @@ class ActionProfileSwitchTest : ActionsTestBase() {
|
||||||
|
|
||||||
// profile doesn't exists
|
// profile doesn't exists
|
||||||
`when`(profileFunction.getProfileName()).thenReturn("Active")
|
`when`(profileFunction.getProfileName()).thenReturn("Active")
|
||||||
sut.inputProfileName = InputProfileName(injector, "Test")
|
sut.inputProfileName = InputProfileName(resourceHelper, activePlugin, "Test")
|
||||||
sut.doAction(object : Callback() {
|
sut.doAction(object : Callback() {
|
||||||
override fun run() {
|
override fun run() {
|
||||||
Assert.assertFalse(result.success)
|
Assert.assertFalse(result.success)
|
||||||
|
@ -83,7 +83,7 @@ class ActionProfileSwitchTest : ActionsTestBase() {
|
||||||
|
|
||||||
// do profile switch
|
// do profile switch
|
||||||
`when`(profileFunction.getProfileName()).thenReturn("Test")
|
`when`(profileFunction.getProfileName()).thenReturn("Test")
|
||||||
sut.inputProfileName = InputProfileName(injector, TESTPROFILENAME)
|
sut.inputProfileName = InputProfileName(resourceHelper, activePlugin, TESTPROFILENAME)
|
||||||
sut.doAction(object : Callback() {
|
sut.doAction(object : Callback() {
|
||||||
override fun run() {
|
override fun run() {
|
||||||
Assert.assertTrue(result.success)
|
Assert.assertTrue(result.success)
|
||||||
|
@ -98,7 +98,7 @@ class ActionProfileSwitchTest : ActionsTestBase() {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test fun toJSONTest() {
|
@Test fun toJSONTest() {
|
||||||
sut.inputProfileName = InputProfileName(injector, "Test")
|
sut.inputProfileName = InputProfileName(resourceHelper, activePlugin, "Test")
|
||||||
Assert.assertEquals(stringJson, sut.toJSON())
|
Assert.assertEquals(stringJson, sut.toJSON())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -40,7 +40,7 @@ class ActionSendSMSTest : ActionsTestBase() {
|
||||||
|
|
||||||
@Test fun doActionTest() {
|
@Test fun doActionTest() {
|
||||||
`when`(smsCommunicatorPlugin.sendNotificationToAllNumbers(anyString())).thenReturn(true)
|
`when`(smsCommunicatorPlugin.sendNotificationToAllNumbers(anyString())).thenReturn(true)
|
||||||
sut.text = InputString(injector, "Asd")
|
sut.text = InputString("Asd")
|
||||||
sut.doAction(object : Callback() {
|
sut.doAction(object : Callback() {
|
||||||
override fun run() {
|
override fun run() {
|
||||||
Assert.assertTrue(result.success)
|
Assert.assertTrue(result.success)
|
||||||
|
@ -53,7 +53,7 @@ class ActionSendSMSTest : ActionsTestBase() {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test fun toJSONTest() {
|
@Test fun toJSONTest() {
|
||||||
sut.text = InputString(injector, "Asd")
|
sut.text = InputString("Asd")
|
||||||
Assert.assertEquals("{\"data\":{\"text\":\"Asd\"},\"type\":\"info.nightscout.androidaps.plugins.general.automation.actions.ActionSendSMS\"}", sut.toJSON())
|
Assert.assertEquals("{\"data\":{\"text\":\"Asd\"},\"type\":\"info.nightscout.androidaps.plugins.general.automation.actions.ActionSendSMS\"}", sut.toJSON())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -35,9 +35,9 @@ class ActionStartTempTargetTest : ActionsTestBase() {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test fun shortDescriptionTest() {
|
@Test fun shortDescriptionTest() {
|
||||||
sut.value = InputTempTarget(injector)
|
sut.value = InputTempTarget(profileFunction)
|
||||||
sut.value.value = 100.0
|
sut.value.value = 100.0
|
||||||
sut.duration = InputDuration(injector, 30, InputDuration.TimeUnit.MINUTES)
|
sut.duration = InputDuration(30, InputDuration.TimeUnit.MINUTES)
|
||||||
Assert.assertEquals("Start temp target: 100mg/dl@null(Automation)", sut.shortDescription())
|
Assert.assertEquals("Start temp target: 100mg/dl@null(Automation)", sut.shortDescription())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -94,9 +94,9 @@ class ActionStartTempTargetTest : ActionsTestBase() {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test fun toJSONTest() {
|
@Test fun toJSONTest() {
|
||||||
sut.value = InputTempTarget(injector)
|
sut.value = InputTempTarget(profileFunction)
|
||||||
sut.value.value = 100.0
|
sut.value.value = 100.0
|
||||||
sut.duration = InputDuration(injector, 30, InputDuration.TimeUnit.MINUTES)
|
sut.duration = InputDuration(30, InputDuration.TimeUnit.MINUTES)
|
||||||
Assert.assertEquals("{\"data\":{\"durationInMinutes\":30,\"units\":\"mg/dl\",\"value\":100},\"type\":\"info.nightscout.androidaps.plugins.general.automation.actions.ActionStartTempTarget\"}", sut.toJSON())
|
Assert.assertEquals("{\"data\":{\"durationInMinutes\":30,\"units\":\"mg/dl\",\"value\":100},\"type\":\"info.nightscout.androidaps.plugins.general.automation.actions.ActionStartTempTarget\"}", sut.toJSON())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -11,12 +11,14 @@ import info.nightscout.androidaps.interfaces.*
|
||||||
import info.nightscout.androidaps.logging.AAPSLogger
|
import info.nightscout.androidaps.logging.AAPSLogger
|
||||||
import info.nightscout.androidaps.plugins.bus.RxBusWrapper
|
import info.nightscout.androidaps.plugins.bus.RxBusWrapper
|
||||||
import info.nightscout.androidaps.plugins.general.automation.elements.InputTempTarget
|
import info.nightscout.androidaps.plugins.general.automation.elements.InputTempTarget
|
||||||
|
import info.nightscout.androidaps.plugins.general.automation.triggers.Trigger
|
||||||
import info.nightscout.androidaps.utils.resources.ResourceHelper
|
import info.nightscout.androidaps.utils.resources.ResourceHelper
|
||||||
import info.nightscout.androidaps.utils.sharedPreferences.SP
|
import info.nightscout.androidaps.utils.sharedPreferences.SP
|
||||||
import org.junit.Before
|
import org.junit.Before
|
||||||
import org.mockito.Mock
|
import org.mockito.Mock
|
||||||
import org.mockito.Mockito.`when`
|
import org.mockito.Mockito.`when`
|
||||||
import org.powermock.core.classloader.annotations.PrepareForTest
|
import org.powermock.core.classloader.annotations.PrepareForTest
|
||||||
|
import javax.inject.Inject
|
||||||
|
|
||||||
@PrepareForTest(RxBusWrapper::class, ActionsTestBase.TestLoopPlugin::class, AppRepository::class)
|
@PrepareForTest(RxBusWrapper::class, ActionsTestBase.TestLoopPlugin::class, AppRepository::class)
|
||||||
open class ActionsTestBase : TestBaseWithProfile() {
|
open class ActionsTestBase : TestBaseWithProfile() {
|
||||||
|
@ -63,6 +65,7 @@ open class ActionsTestBase : TestBaseWithProfile() {
|
||||||
it.resourceHelper = resourceHelper
|
it.resourceHelper = resourceHelper
|
||||||
it.activePlugin = activePlugin
|
it.activePlugin = activePlugin
|
||||||
it.repository = repository
|
it.repository = repository
|
||||||
|
it.profileFunction = profileFunction
|
||||||
}
|
}
|
||||||
if (it is ActionSendSMS) {
|
if (it is ActionSendSMS) {
|
||||||
it.aapsLogger = aapsLogger
|
it.aapsLogger = aapsLogger
|
||||||
|
@ -110,7 +113,8 @@ open class ActionsTestBase : TestBaseWithProfile() {
|
||||||
if (it is PumpEnactResult) {
|
if (it is PumpEnactResult) {
|
||||||
it.resourceHelper = resourceHelper
|
it.resourceHelper = resourceHelper
|
||||||
}
|
}
|
||||||
if (it is InputTempTarget) {
|
if(it is Trigger) {
|
||||||
|
it.resourceHelper = resourceHelper
|
||||||
it.profileFunction = profileFunction
|
it.profileFunction = profileFunction
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,7 +14,7 @@ class ComparatorConnectTest : TriggerTestBase() {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test fun setValueTest() {
|
@Test fun setValueTest() {
|
||||||
val c = ComparatorConnect(injector)
|
val c = ComparatorConnect(resourceHelper)
|
||||||
c.value = ComparatorConnect.Compare.ON_DISCONNECT
|
c.value = ComparatorConnect.Compare.ON_DISCONNECT
|
||||||
Assert.assertEquals(ComparatorConnect.Compare.ON_DISCONNECT, c.value)
|
Assert.assertEquals(ComparatorConnect.Compare.ON_DISCONNECT, c.value)
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,7 +14,7 @@ class ComparatorExistsTest : TriggerTestBase() {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test fun setValueTest() {
|
@Test fun setValueTest() {
|
||||||
val c = ComparatorExists(injector)
|
val c = ComparatorExists(resourceHelper)
|
||||||
c.value = ComparatorExists.Compare.NOT_EXISTS
|
c.value = ComparatorExists.Compare.NOT_EXISTS
|
||||||
Assert.assertEquals(ComparatorExists.Compare.NOT_EXISTS, c.value)
|
Assert.assertEquals(ComparatorExists.Compare.NOT_EXISTS, c.value)
|
||||||
}
|
}
|
||||||
|
|
|
@ -32,7 +32,7 @@ class ComparatorTest : TriggerTestBase() {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun setValueTest() {
|
fun setValueTest() {
|
||||||
val c: Comparator = Comparator(injector).setValue(Comparator.Compare.IS_EQUAL_OR_GREATER)
|
val c: Comparator = Comparator(resourceHelper).setValue(Comparator.Compare.IS_EQUAL_OR_GREATER)
|
||||||
Assert.assertEquals(Comparator.Compare.IS_EQUAL_OR_GREATER, c.value)
|
Assert.assertEquals(Comparator.Compare.IS_EQUAL_OR_GREATER, c.value)
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -16,10 +16,10 @@ class InputBgTest : TriggerTestBase() {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun setValueTest() {
|
fun setValueTest() {
|
||||||
var i: InputBg = InputBg(injector).setUnits(Constants.MMOL).setValue(5.0)
|
var i: InputBg = InputBg(profileFunction).setUnits(Constants.MMOL).setValue(5.0)
|
||||||
Assert.assertEquals(5.0, i.value, 0.01)
|
Assert.assertEquals(5.0, i.value, 0.01)
|
||||||
Assert.assertEquals(InputBg.MMOL_MIN, i.minValue, 0.01)
|
Assert.assertEquals(InputBg.MMOL_MIN, i.minValue, 0.01)
|
||||||
i = InputBg(injector).setValue(100.0).setUnits(Constants.MGDL)
|
i = InputBg(profileFunction).setValue(100.0).setUnits(Constants.MGDL)
|
||||||
Assert.assertEquals(100.0, i.value, 0.01)
|
Assert.assertEquals(100.0, i.value, 0.01)
|
||||||
Assert.assertEquals(InputBg.MGDL_MIN, i.minValue, 0.01)
|
Assert.assertEquals(InputBg.MGDL_MIN, i.minValue, 0.01)
|
||||||
Assert.assertEquals(Constants.MGDL, i.units)
|
Assert.assertEquals(Constants.MGDL, i.units)
|
||||||
|
|
|
@ -10,10 +10,10 @@ import org.powermock.modules.junit4.PowerMockRunner
|
||||||
class InputDurationTest : TriggerTestBase() {
|
class InputDurationTest : TriggerTestBase() {
|
||||||
|
|
||||||
@Test fun setValueTest() {
|
@Test fun setValueTest() {
|
||||||
var i = InputDuration(injector, 5, InputDuration.TimeUnit.MINUTES)
|
var i = InputDuration( 5, InputDuration.TimeUnit.MINUTES)
|
||||||
Assert.assertEquals(5, i.value)
|
Assert.assertEquals(5, i.value)
|
||||||
Assert.assertEquals(InputDuration.TimeUnit.MINUTES, i.unit)
|
Assert.assertEquals(InputDuration.TimeUnit.MINUTES, i.unit)
|
||||||
i = InputDuration(injector, 5, InputDuration.TimeUnit.HOURS)
|
i = InputDuration(5, InputDuration.TimeUnit.HOURS)
|
||||||
Assert.assertEquals(5, i.value)
|
Assert.assertEquals(5, i.value)
|
||||||
Assert.assertEquals(InputDuration.TimeUnit.HOURS, i.unit)
|
Assert.assertEquals(InputDuration.TimeUnit.HOURS, i.unit)
|
||||||
Assert.assertEquals(5 * 60, i.getMinutes())
|
Assert.assertEquals(5 * 60, i.getMinutes())
|
||||||
|
|
|
@ -10,7 +10,7 @@ import org.powermock.modules.junit4.PowerMockRunner
|
||||||
class InputInsulinTest : TriggerTestBase() {
|
class InputInsulinTest : TriggerTestBase() {
|
||||||
|
|
||||||
@Test fun setValueTest() {
|
@Test fun setValueTest() {
|
||||||
val i = InputInsulin(injector)
|
val i = InputInsulin()
|
||||||
i.value = 5.0
|
i.value = 5.0
|
||||||
Assert.assertEquals(5.0, i.value, 0.01)
|
Assert.assertEquals(5.0, i.value, 0.01)
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,7 +10,7 @@ import org.powermock.modules.junit4.PowerMockRunner
|
||||||
class InputPercentTest : TriggerTestBase() {
|
class InputPercentTest : TriggerTestBase() {
|
||||||
|
|
||||||
@Test fun setValueTest() {
|
@Test fun setValueTest() {
|
||||||
val i = InputPercent(injector)
|
val i = InputPercent()
|
||||||
i.value = 10.0
|
i.value = 10.0
|
||||||
Assert.assertEquals(10.0, i.value, 0.01)
|
Assert.assertEquals(10.0, i.value, 0.01)
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,7 +10,7 @@ import org.powermock.modules.junit4.PowerMockRunner
|
||||||
class InputProfileNameTest : TriggerTestBase() {
|
class InputProfileNameTest : TriggerTestBase() {
|
||||||
|
|
||||||
@Test fun setValue() {
|
@Test fun setValue() {
|
||||||
val inputProfileName = InputProfileName(injector, "Test")
|
val inputProfileName = InputProfileName(resourceHelper, activePlugin, "Test")
|
||||||
Assert.assertEquals("Test", inputProfileName.value)
|
Assert.assertEquals("Test", inputProfileName.value)
|
||||||
inputProfileName.value = "Test2"
|
inputProfileName.value = "Test2"
|
||||||
Assert.assertEquals("Test2", inputProfileName.value)
|
Assert.assertEquals("Test2", inputProfileName.value)
|
||||||
|
|
|
@ -10,7 +10,7 @@ import org.powermock.modules.junit4.PowerMockRunner
|
||||||
class InputStringTest : TriggerTestBase() {
|
class InputStringTest : TriggerTestBase() {
|
||||||
|
|
||||||
@Test fun setValueTest() {
|
@Test fun setValueTest() {
|
||||||
val i = InputString(injector)
|
val i = InputString()
|
||||||
i.value = "asd"
|
i.value = "asd"
|
||||||
Assert.assertEquals("asd", i.value)
|
Assert.assertEquals("asd", i.value)
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,7 +13,7 @@ import org.powermock.modules.junit4.PowerMockRunner
|
||||||
class InputTempTargetTest : TriggerTestBase() {
|
class InputTempTargetTest : TriggerTestBase() {
|
||||||
|
|
||||||
@Test fun setValueTest() {
|
@Test fun setValueTest() {
|
||||||
val i = InputTempTarget(injector)
|
val i = InputTempTarget(profileFunction)
|
||||||
i.units = Constants.MMOL
|
i.units = Constants.MMOL
|
||||||
i.value = 5.0
|
i.value = 5.0
|
||||||
Assert.assertEquals(5.0, i.value, 0.01)
|
Assert.assertEquals(5.0, i.value, 0.01)
|
||||||
|
|
|
@ -11,7 +11,7 @@ class LabelWithElementTest : TriggerTestBase() {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun constructorTest() {
|
fun constructorTest() {
|
||||||
val l = LabelWithElement(injector, "A", "B", InputInsulin(injector))
|
val l = LabelWithElement(resourceHelper, "A", "B", InputInsulin())
|
||||||
Assert.assertEquals("A", l.textPre)
|
Assert.assertEquals("A", l.textPre)
|
||||||
Assert.assertEquals("B", l.textPost)
|
Assert.assertEquals("B", l.textPost)
|
||||||
Assert.assertEquals(InputInsulin::class.java, l.element!!.javaClass)
|
Assert.assertEquals(InputInsulin::class.java, l.element!!.javaClass)
|
||||||
|
|
|
@ -15,17 +15,17 @@ class LayoutBuilderTest : TestBase() {
|
||||||
|
|
||||||
@Test fun addTest() {
|
@Test fun addTest() {
|
||||||
val layoutBuilder = LayoutBuilder()
|
val layoutBuilder = LayoutBuilder()
|
||||||
val inputInsulin = InputInsulin(injector)
|
val inputInsulin = InputInsulin()
|
||||||
layoutBuilder.add(inputInsulin)
|
layoutBuilder.add(inputInsulin)
|
||||||
Assert.assertEquals(1, layoutBuilder.mElements.size)
|
Assert.assertEquals(1, layoutBuilder.mElements.size)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test fun addConditionalTest() {
|
@Test fun addConditionalTest() {
|
||||||
val layoutBuilder = LayoutBuilder()
|
val layoutBuilder = LayoutBuilder()
|
||||||
val inputInsulin = InputInsulin(injector)
|
val inputInsulin = InputInsulin()
|
||||||
layoutBuilder.add(inputInsulin, true)
|
layoutBuilder.maybeAdd(inputInsulin, true)
|
||||||
Assert.assertEquals(1, layoutBuilder.mElements.size)
|
Assert.assertEquals(1, layoutBuilder.mElements.size)
|
||||||
layoutBuilder.add(inputInsulin, false)
|
layoutBuilder.maybeAdd(inputInsulin, false)
|
||||||
Assert.assertEquals(1, layoutBuilder.mElements.size)
|
Assert.assertEquals(1, layoutBuilder.mElements.size)
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -13,10 +13,10 @@ import org.powermock.modules.junit4.PowerMockRunner
|
||||||
class StaticLabelTest : TriggerTestBase() {
|
class StaticLabelTest : TriggerTestBase() {
|
||||||
|
|
||||||
@Test fun constructor() {
|
@Test fun constructor() {
|
||||||
var sl = StaticLabel(injector, "any", TriggerDummy(injector))
|
var sl = StaticLabel(resourceHelper, "any", TriggerDummy(injector))
|
||||||
Assert.assertEquals("any", sl.label)
|
Assert.assertEquals("any", sl.label)
|
||||||
`when`(resourceHelper.gs(R.string.pumplimit)).thenReturn("pump limit")
|
`when`(resourceHelper.gs(R.string.pumplimit)).thenReturn("pump limit")
|
||||||
sl = StaticLabel(injector, R.string.pumplimit, TriggerDummy(injector))
|
sl = StaticLabel(resourceHelper, R.string.pumplimit, TriggerDummy(injector))
|
||||||
Assert.assertEquals("pump limit", sl.label)
|
Assert.assertEquals("pump limit", sl.label)
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -79,15 +79,6 @@ open class TriggerTestBase : TestBaseWithProfile() {
|
||||||
if (it is TriggerWifiSsid) {
|
if (it is TriggerWifiSsid) {
|
||||||
it.receiverStatusStore = receiverStatusStore
|
it.receiverStatusStore = receiverStatusStore
|
||||||
}
|
}
|
||||||
if (it is InputBg) {
|
|
||||||
it.profileFunction = profileFunction
|
|
||||||
}
|
|
||||||
if (it is InputTempTarget) {
|
|
||||||
it.profileFunction = profileFunction
|
|
||||||
}
|
|
||||||
if (it is StaticLabel) {
|
|
||||||
it.resourceHelper = resourceHelper
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -39,6 +39,7 @@ open class DatabaseModule {
|
||||||
private val migration6to7 = object : Migration(6, 7) {
|
private val migration6to7 = object : Migration(6, 7) {
|
||||||
override fun migrate(database: SupportSQLiteDatabase) {
|
override fun migrate(database: SupportSQLiteDatabase) {
|
||||||
database.execSQL("CREATE TABLE IF NOT EXISTS foods (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `version` INTEGER NOT NULL, `dateCreated` INTEGER NOT NULL, `isValid` INTEGER NOT NULL, `referenceId` INTEGER, `name` TEXT NOT NULL, `category` TEXT, `subCategory` TEXT, `portion` REAL NOT NULL, `carbs` INTEGER NOT NULL, `fat` INTEGER, `protein` INTEGER, `energy` INTEGER, `unit` TEXT NOT NULL, `gi` INTEGER, `nightscoutSystemId` TEXT, `nightscoutId` TEXT, `pumpType` TEXT, `pumpSerial` TEXT, `pumpId` INTEGER, `startId` INTEGER, `endId` INTEGER, FOREIGN KEY(`referenceId`) REFERENCES `foods`(`id`) ON UPDATE NO ACTION ON DELETE NO ACTION )")
|
database.execSQL("CREATE TABLE IF NOT EXISTS foods (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `version` INTEGER NOT NULL, `dateCreated` INTEGER NOT NULL, `isValid` INTEGER NOT NULL, `referenceId` INTEGER, `name` TEXT NOT NULL, `category` TEXT, `subCategory` TEXT, `portion` REAL NOT NULL, `carbs` INTEGER NOT NULL, `fat` INTEGER, `protein` INTEGER, `energy` INTEGER, `unit` TEXT NOT NULL, `gi` INTEGER, `nightscoutSystemId` TEXT, `nightscoutId` TEXT, `pumpType` TEXT, `pumpSerial` TEXT, `pumpId` INTEGER, `startId` INTEGER, `endId` INTEGER, FOREIGN KEY(`referenceId`) REFERENCES `foods`(`id`) ON UPDATE NO ACTION ON DELETE NO ACTION )")
|
||||||
|
database.execSQL("CREATE INDEX IF NOT EXISTS `index_foods_referenceId` ON `foods` (`referenceId`)")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
2
gradle/wrapper/gradle-wrapper.properties
vendored
2
gradle/wrapper/gradle-wrapper.properties
vendored
|
@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
|
||||||
distributionPath=wrapper/dists
|
distributionPath=wrapper/dists
|
||||||
zipStoreBase=GRADLE_USER_HOME
|
zipStoreBase=GRADLE_USER_HOME
|
||||||
zipStorePath=wrapper/dists
|
zipStorePath=wrapper/dists
|
||||||
distributionUrl = https\://services.gradle.org/distributions/gradle-6.5-all.zip
|
distributionUrl = https://services.gradle.org/distributions/gradle-6.8.2-all.zip
|
||||||
|
|
Loading…
Reference in a new issue