Automation: do not run in suspended state

This commit is contained in:
Milos Kozak 2021-11-30 17:08:17 +01:00
parent a458ad5fd3
commit 5529f1120c

View file

@ -8,11 +8,7 @@ import dagger.android.HasAndroidInjector
import info.nightscout.androidaps.annotations.OpenForTesting import info.nightscout.androidaps.annotations.OpenForTesting
import info.nightscout.androidaps.automation.R import info.nightscout.androidaps.automation.R
import info.nightscout.androidaps.events.* import info.nightscout.androidaps.events.*
import info.nightscout.androidaps.interfaces.Config import info.nightscout.androidaps.interfaces.*
import info.nightscout.androidaps.interfaces.Loop
import info.nightscout.androidaps.interfaces.PluginBase
import info.nightscout.androidaps.interfaces.PluginDescription
import info.nightscout.androidaps.interfaces.PluginType
import info.nightscout.androidaps.logging.AAPSLogger import info.nightscout.androidaps.logging.AAPSLogger
import info.nightscout.androidaps.logging.LTag import info.nightscout.androidaps.logging.LTag
import info.nightscout.androidaps.plugins.bus.RxBus import info.nightscout.androidaps.plugins.bus.RxBus
@ -47,14 +43,15 @@ class AutomationPlugin @Inject constructor(
private val context: Context, private val context: Context,
private val sp: SP, private val sp: SP,
private val fabricPrivacy: FabricPrivacy, private val fabricPrivacy: FabricPrivacy,
private val loopPlugin: Loop, private val loop: Loop,
private val rxBus: RxBus, private val rxBus: RxBus,
private val constraintChecker: ConstraintChecker, private val constraintChecker: ConstraintChecker,
aapsLogger: AAPSLogger, aapsLogger: AAPSLogger,
private val aapsSchedulers: AapsSchedulers, private val aapsSchedulers: AapsSchedulers,
private val config: Config, private val config: Config,
private val locationServiceHelper: LocationServiceHelper, private val locationServiceHelper: LocationServiceHelper,
private val dateUtil: DateUtil private val dateUtil: DateUtil,
private val activePlugin: ActivePlugin
) : PluginBase( ) : PluginBase(
PluginDescription() PluginDescription()
.mainType(PluginType.GENERAL) .mainType(PluginType.GENERAL)
@ -187,12 +184,24 @@ class AutomationPlugin @Inject constructor(
@Synchronized @Synchronized
private fun processActions() { private fun processActions() {
var commonEventsEnabled = true var commonEventsEnabled = true
if (loopPlugin.isSuspended || !(loopPlugin as PluginBase).isEnabled()) { if (loop.isSuspended || !(loop as PluginBase).isEnabled()) {
aapsLogger.debug(LTag.AUTOMATION, "Loop deactivated") aapsLogger.debug(LTag.AUTOMATION, "Loop deactivated")
executionLog.add(rh.gs(R.string.loopisdisabled)) executionLog.add(rh.gs(R.string.loopisdisabled))
rxBus.send(EventAutomationUpdateGui()) rxBus.send(EventAutomationUpdateGui())
commonEventsEnabled = false commonEventsEnabled = false
} }
if (loop.isDisconnected || !(loop as PluginBase).isEnabled()) {
aapsLogger.debug(LTag.AUTOMATION, "Loop disconnected")
executionLog.add(rh.gs(R.string.disconnected))
rxBus.send(EventAutomationUpdateGui())
commonEventsEnabled = false
}
if (activePlugin.activePump.isSuspended()) {
aapsLogger.debug(LTag.AUTOMATION, "Pump suspended")
executionLog.add(rh.gs(R.string.waitingforpump))
rxBus.send(EventAutomationUpdateGui())
commonEventsEnabled = false
}
val enabled = constraintChecker.isAutomationEnabled() val enabled = constraintChecker.isAutomationEnabled()
if (!enabled.value()) { if (!enabled.value()) {
executionLog.add(enabled.getMostLimitedReasons(aapsLogger)) executionLog.add(enabled.getMostLimitedReasons(aapsLogger))