diff --git a/omnipod-common/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/common/ui/wizard/activation/viewmodel/action/InitializePodViewModel.kt b/omnipod-common/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/common/ui/wizard/activation/viewmodel/action/InitializePodViewModel.kt index fcaf143c99..1b394cf7d8 100644 --- a/omnipod-common/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/common/ui/wizard/activation/viewmodel/action/InitializePodViewModel.kt +++ b/omnipod-common/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/common/ui/wizard/activation/viewmodel/action/InitializePodViewModel.kt @@ -1,3 +1,9 @@ package info.nightscout.androidaps.plugins.pump.omnipod.common.ui.wizard.activation.viewmodel.action -abstract class InitializePodViewModel : PodActivationActionViewModelBase() \ No newline at end of file +import dagger.android.HasAndroidInjector +import info.nightscout.androidaps.logging.AAPSLogger + +abstract class InitializePodViewModel( + injector: HasAndroidInjector, + logger: AAPSLogger +) : PodActivationActionViewModelBase(injector, logger) \ No newline at end of file diff --git a/omnipod-common/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/common/ui/wizard/activation/viewmodel/action/InsertCannulaViewModel.kt b/omnipod-common/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/common/ui/wizard/activation/viewmodel/action/InsertCannulaViewModel.kt index 73ebaa7bee..a07ce28eab 100644 --- a/omnipod-common/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/common/ui/wizard/activation/viewmodel/action/InsertCannulaViewModel.kt +++ b/omnipod-common/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/common/ui/wizard/activation/viewmodel/action/InsertCannulaViewModel.kt @@ -1,3 +1,9 @@ package info.nightscout.androidaps.plugins.pump.omnipod.common.ui.wizard.activation.viewmodel.action -abstract class InsertCannulaViewModel : PodActivationActionViewModelBase() \ No newline at end of file +import dagger.android.HasAndroidInjector +import info.nightscout.androidaps.logging.AAPSLogger + +abstract class InsertCannulaViewModel( + injector: HasAndroidInjector, + logger: AAPSLogger +) : PodActivationActionViewModelBase(injector, logger) \ No newline at end of file diff --git a/omnipod-common/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/common/ui/wizard/activation/viewmodel/action/PodActivationActionViewModelBase.kt b/omnipod-common/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/common/ui/wizard/activation/viewmodel/action/PodActivationActionViewModelBase.kt index 2f5d8b2f51..b71ede17bf 100644 --- a/omnipod-common/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/common/ui/wizard/activation/viewmodel/action/PodActivationActionViewModelBase.kt +++ b/omnipod-common/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/common/ui/wizard/activation/viewmodel/action/PodActivationActionViewModelBase.kt @@ -1,8 +1,13 @@ package info.nightscout.androidaps.plugins.pump.omnipod.common.ui.wizard.activation.viewmodel.action +import dagger.android.HasAndroidInjector +import info.nightscout.androidaps.logging.AAPSLogger import info.nightscout.androidaps.plugins.pump.omnipod.common.ui.wizard.common.viewmodel.ActionViewModelBase -abstract class PodActivationActionViewModelBase : ActionViewModelBase() { +abstract class PodActivationActionViewModelBase( + injector: HasAndroidInjector, + logger: AAPSLogger +) : ActionViewModelBase(injector, logger) { abstract fun isPodInAlarm(): Boolean diff --git a/omnipod-common/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/common/ui/wizard/common/viewmodel/ActionViewModelBase.kt b/omnipod-common/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/common/ui/wizard/common/viewmodel/ActionViewModelBase.kt index 290277f77d..23f175ae1d 100644 --- a/omnipod-common/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/common/ui/wizard/common/viewmodel/ActionViewModelBase.kt +++ b/omnipod-common/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/common/ui/wizard/common/viewmodel/ActionViewModelBase.kt @@ -7,12 +7,11 @@ import info.nightscout.androidaps.data.PumpEnactResult import info.nightscout.androidaps.logging.AAPSLogger import info.nightscout.androidaps.logging.LTag import io.reactivex.Single -import javax.inject.Inject -abstract class ActionViewModelBase : ViewModelBase() { - - @Inject lateinit var injector: HasAndroidInjector - @Inject lateinit var logger: AAPSLogger +abstract class ActionViewModelBase( + protected val injector: HasAndroidInjector, + protected val logger: AAPSLogger +) : ViewModelBase() { private val _isActionExecutingLiveData = MutableLiveData(false) val isActionExecutingLiveData: LiveData = _isActionExecutingLiveData diff --git a/omnipod-common/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/common/ui/wizard/deactivation/viewmodel/action/DeactivatePodViewModel.kt b/omnipod-common/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/common/ui/wizard/deactivation/viewmodel/action/DeactivatePodViewModel.kt index 15abe11e69..541013e82f 100644 --- a/omnipod-common/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/common/ui/wizard/deactivation/viewmodel/action/DeactivatePodViewModel.kt +++ b/omnipod-common/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/common/ui/wizard/deactivation/viewmodel/action/DeactivatePodViewModel.kt @@ -1,8 +1,13 @@ package info.nightscout.androidaps.plugins.pump.omnipod.common.ui.wizard.deactivation.viewmodel.action +import dagger.android.HasAndroidInjector +import info.nightscout.androidaps.logging.AAPSLogger import info.nightscout.androidaps.plugins.pump.omnipod.common.ui.wizard.common.viewmodel.ActionViewModelBase -abstract class DeactivatePodViewModel : ActionViewModelBase() { +abstract class DeactivatePodViewModel( + injector: HasAndroidInjector, + logger: AAPSLogger +) : ActionViewModelBase(injector, logger) { abstract fun discardPod() } \ No newline at end of file diff --git a/omnipod-dash/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/dash/driver/OmnipodDashManagerImpl.kt b/omnipod-dash/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/dash/driver/OmnipodDashManagerImpl.kt index e4c18b1d13..f40dace292 100644 --- a/omnipod-dash/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/dash/driver/OmnipodDashManagerImpl.kt +++ b/omnipod-dash/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/dash/driver/OmnipodDashManagerImpl.kt @@ -12,13 +12,13 @@ import info.nightscout.androidaps.plugins.pump.omnipod.dash.driver.pod.definitio import info.nightscout.androidaps.plugins.pump.omnipod.dash.driver.pod.definition.BasalProgram import info.nightscout.androidaps.plugins.pump.omnipod.dash.driver.pod.response.AlarmStatusResponse import info.nightscout.androidaps.plugins.pump.omnipod.dash.driver.pod.response.DefaultStatusResponse +import info.nightscout.androidaps.plugins.pump.omnipod.dash.driver.pod.response.Response import info.nightscout.androidaps.plugins.pump.omnipod.dash.driver.pod.response.SetUniqueIdResponse import info.nightscout.androidaps.plugins.pump.omnipod.dash.driver.pod.response.VersionResponse import info.nightscout.androidaps.plugins.pump.omnipod.dash.driver.pod.state.OmnipodDashPodStateManager +import info.nightscout.androidaps.utils.rx.AapsSchedulers import io.reactivex.Observable -import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.functions.Consumer -import io.reactivex.schedulers.Schedulers import java.util.* import javax.inject.Inject import javax.inject.Singleton @@ -27,7 +27,8 @@ import javax.inject.Singleton class OmnipodDashManagerImpl @Inject constructor( private val logger: AAPSLogger, private val podStateManager: OmnipodDashPodStateManager, - private val bleManager: OmnipodDashBleManager + private val bleManager: OmnipodDashBleManager, + private val aapsSchedulers: AapsSchedulers ) : OmnipodDashManager { private val observePodReadyForActivationPart1: Observable @@ -39,26 +40,28 @@ class OmnipodDashManagerImpl @Inject constructor( } } - private val connectToPod: Observable + private val observeConnectToPod: Observable get() = Observable.defer { bleManager.connect() } + private val observeSendGetVersionCommand: Observable + get() = Observable.defer { + bleManager.sendCommand(GetVersionCommand.Builder() // + .setSequenceNumber(podStateManager.messageSequenceNumber) // + .setUniqueId(DEFAULT_UNIQUE_ID) // + .build()) // + } + override fun activatePodPart1(): Observable { return Observable.concat( observePodReadyForActivationPart1, - connectToPod, - Observable.defer { - bleManager.sendCommand(GetVersionCommand.Builder() // - .setSequenceNumber(podStateManager.messageSequenceNumber) // - .setUniqueId(DEFAULT_UNIQUE_ID) // - .build()) // - } + observeConnectToPod, + observeSendGetVersionCommand // ... Send more commands ) // // TODO these would be common for any observable returned in a public function in this class .doOnNext(PodEventInterceptor()) // .doOnError(ErrorInterceptor()) - .subscribeOn(Schedulers.io()) // - .observeOn(AndroidSchedulers.mainThread()) + .subscribeOn(aapsSchedulers.io) } override fun activatePodPart2(): Observable { @@ -128,7 +131,6 @@ class OmnipodDashManagerImpl @Inject constructor( inner class PodEventInterceptor : Consumer { - // TODO split into separate methods override fun accept(event: PodEvent) { logger.debug(LTag.PUMP, "Intercepted PodEvent in OmnipodDashManagerImpl: ${event.javaClass.simpleName}") when (event) { @@ -147,23 +149,7 @@ class OmnipodDashManagerImpl @Inject constructor( is PodEvent.ResponseReceived -> { podStateManager.increaseMessageSequenceNumber() - when (event.response) { - is VersionResponse -> { - podStateManager.updateFromVersionResponse(event.response) - } - - is SetUniqueIdResponse -> { - podStateManager.updateFromSetUniqueIdResponse(event.response) - } - - is DefaultStatusResponse -> { - podStateManager.updateFromDefaultStatusResponse(event.response) - } - - is AlarmStatusResponse -> { - podStateManager.updateFromAlarmStatusResponse(event.response) - } - } + handleResponse(event.response) } else -> { @@ -172,6 +158,26 @@ class OmnipodDashManagerImpl @Inject constructor( } } + private fun handleResponse(response: Response) { + when (response) { + is VersionResponse -> { + podStateManager.updateFromVersionResponse(response) + } + + is SetUniqueIdResponse -> { + podStateManager.updateFromSetUniqueIdResponse(response) + } + + is DefaultStatusResponse -> { + podStateManager.updateFromDefaultStatusResponse(response) + } + + is AlarmStatusResponse -> { + podStateManager.updateFromAlarmStatusResponse(response) + } + } + } + } inner class ErrorInterceptor : Consumer { diff --git a/omnipod-dash/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/dash/driver/comm/OmnipodDashBleManagerImpl.kt b/omnipod-dash/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/dash/driver/comm/OmnipodDashBleManagerImpl.kt index bc795b6fc0..a9de3a3a11 100644 --- a/omnipod-dash/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/dash/driver/comm/OmnipodDashBleManagerImpl.kt +++ b/omnipod-dash/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/dash/driver/comm/OmnipodDashBleManagerImpl.kt @@ -94,7 +94,7 @@ class OmnipodDashBleManagerImpl @Inject constructor(private val context: Context val msgIO = MessageIO(aapsLogger, bleIO) val ltkExchanger = LTKExchanger(aapsLogger, msgIO) - emitter.onNext(PodEvent.NegotiatingLtkAndNoncePrefix) + emitter.onNext(PodEvent.Pairing) val ltk = ltkExchanger.negotiateLTKAndNonce() aapsLogger.info(LTag.PUMPCOMM, "Got LTK and Nonce Prefix: ${ltk}") @@ -102,7 +102,7 @@ class OmnipodDashBleManagerImpl @Inject constructor(private val context: Context emitter.onComplete() } catch (ex: Exception) { - emitter.onError(ex) // TODO is this necessary? + emitter.tryOnError(ex) // TODO is this necessary? } } diff --git a/omnipod-dash/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/dash/driver/comm/scan/PodScanner.kt b/omnipod-dash/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/dash/driver/comm/scan/PodScanner.kt index e41c428a39..e898b755fe 100644 --- a/omnipod-dash/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/dash/driver/comm/scan/PodScanner.kt +++ b/omnipod-dash/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/dash/driver/comm/scan/PodScanner.kt @@ -42,7 +42,7 @@ class PodScanner(private val logger: AAPSLogger, private val bluetoothAdapter: B companion object { const val SCAN_FOR_SERVICE_UUID = "00004024-0000-1000-8000-00805F9B34FB" - const val POD_ID_NOT_ACTIVATED = 4294967294L + const val POD_ID_NOT_ACTIVATED = 0xFFFFFFFFL private const val SCAN_DURATION_MS = 5000 } } \ No newline at end of file diff --git a/omnipod-dash/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/dash/driver/event/PodEvent.kt b/omnipod-dash/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/dash/driver/event/PodEvent.kt index 25386ca32a..0bc6bf5125 100644 --- a/omnipod-dash/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/dash/driver/event/PodEvent.kt +++ b/omnipod-dash/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/dash/driver/event/PodEvent.kt @@ -10,7 +10,9 @@ sealed class PodEvent { object Scanning : PodEvent() object BluetoothConnecting : PodEvent() class BluetoothConnected(val address: String) : PodEvent() - object NegotiatingLtkAndNoncePrefix : PodEvent() + object Pairing : PodEvent() + object Paired : PodEvent() + object EstablishingSession : PodEvent() class Connected(val uniqueId: Long) : PodEvent() /* Message exchange events */ diff --git a/omnipod-dash/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/dash/driver/pod/state/OmnipodDashPodStateManagerImpl.kt b/omnipod-dash/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/dash/driver/pod/state/OmnipodDashPodStateManagerImpl.kt index bfc345801f..04370dad68 100644 --- a/omnipod-dash/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/dash/driver/pod/state/OmnipodDashPodStateManagerImpl.kt +++ b/omnipod-dash/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/dash/driver/pod/state/OmnipodDashPodStateManagerImpl.kt @@ -34,8 +34,6 @@ class OmnipodDashPodStateManagerImpl @Inject constructor( store() } - // TODO: dynamic get() fun instead of assignment - override val isUniqueIdSet: Boolean get() = activationProgress.isAtLeast(ActivationProgress.SET_UNIQUE_ID) diff --git a/omnipod-dash/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/dash/ui/wizard/activation/viewmodel/action/DashInitializePodViewModel.kt b/omnipod-dash/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/dash/ui/wizard/activation/viewmodel/action/DashInitializePodViewModel.kt index f4781f6a5e..dd2daa8e3b 100644 --- a/omnipod-dash/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/dash/ui/wizard/activation/viewmodel/action/DashInitializePodViewModel.kt +++ b/omnipod-dash/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/dash/ui/wizard/activation/viewmodel/action/DashInitializePodViewModel.kt @@ -1,15 +1,22 @@ package info.nightscout.androidaps.plugins.pump.omnipod.dash.ui.wizard.activation.viewmodel.action import androidx.annotation.StringRes +import dagger.android.HasAndroidInjector import info.nightscout.androidaps.data.PumpEnactResult +import info.nightscout.androidaps.logging.AAPSLogger import info.nightscout.androidaps.logging.LTag import info.nightscout.androidaps.plugins.pump.omnipod.common.ui.wizard.activation.viewmodel.action.InitializePodViewModel import info.nightscout.androidaps.plugins.pump.omnipod.dash.R import info.nightscout.androidaps.plugins.pump.omnipod.dash.driver.OmnipodDashManager import io.reactivex.Single +import io.reactivex.rxkotlin.subscribeBy import javax.inject.Inject -class DashInitializePodViewModel @Inject constructor(private val omnipodManager: OmnipodDashManager) : InitializePodViewModel() { +class DashInitializePodViewModel @Inject constructor( + private val omnipodManager: OmnipodDashManager, + injector: HasAndroidInjector, + logger: AAPSLogger +) : InitializePodViewModel(injector, logger) { override fun isPodInAlarm(): Boolean = false // TODO @@ -19,13 +26,13 @@ class DashInitializePodViewModel @Inject constructor(private val omnipodManager: override fun doExecuteAction(): Single = Single.create { source -> - val disposable = omnipodManager.activatePodPart1().subscribe( - { podEvent -> logger.debug(LTag.PUMP, "Received PodEvent in Pod activation part 1: $podEvent") }, - { throwable -> + val disposable = omnipodManager.activatePodPart1().subscribeBy( + onNext = { podEvent -> logger.debug(LTag.PUMP, "Received PodEvent in Pod activation part 1: $podEvent") }, + onError = { throwable -> logger.error(LTag.PUMP, "Error in Pod activation part 1", throwable) source.onSuccess(PumpEnactResult(injector).success(false).comment(throwable.message)) }, - { + onComplete = { logger.debug("Pod activation part 1 completed") source.onSuccess(PumpEnactResult(injector).success(true)) } diff --git a/omnipod-dash/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/dash/ui/wizard/activation/viewmodel/action/DashInsertCannulaViewModel.kt b/omnipod-dash/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/dash/ui/wizard/activation/viewmodel/action/DashInsertCannulaViewModel.kt index f3086ffa92..0b5ef6bc66 100644 --- a/omnipod-dash/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/dash/ui/wizard/activation/viewmodel/action/DashInsertCannulaViewModel.kt +++ b/omnipod-dash/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/dash/ui/wizard/activation/viewmodel/action/DashInsertCannulaViewModel.kt @@ -1,14 +1,20 @@ package info.nightscout.androidaps.plugins.pump.omnipod.dash.ui.wizard.activation.viewmodel.action import androidx.annotation.StringRes +import dagger.android.HasAndroidInjector import info.nightscout.androidaps.data.PumpEnactResult import info.nightscout.androidaps.interfaces.ProfileFunction +import info.nightscout.androidaps.logging.AAPSLogger import info.nightscout.androidaps.plugins.pump.omnipod.common.ui.wizard.activation.viewmodel.action.InsertCannulaViewModel import info.nightscout.androidaps.plugins.pump.omnipod.dash.R import io.reactivex.Single import javax.inject.Inject -class DashInsertCannulaViewModel @Inject constructor(private val profileFunction: ProfileFunction) : InsertCannulaViewModel() { +class DashInsertCannulaViewModel @Inject constructor( + private val profileFunction: ProfileFunction, + injector: HasAndroidInjector, + logger: AAPSLogger +) : InsertCannulaViewModel(injector, logger) { override fun isPodInAlarm(): Boolean = false // TODO diff --git a/omnipod-dash/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/dash/ui/wizard/deactivation/viewmodel/action/DashDeactivatePodViewModel.kt b/omnipod-dash/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/dash/ui/wizard/deactivation/viewmodel/action/DashDeactivatePodViewModel.kt index 28e773252b..8d7c393cf4 100644 --- a/omnipod-dash/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/dash/ui/wizard/deactivation/viewmodel/action/DashDeactivatePodViewModel.kt +++ b/omnipod-dash/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/dash/ui/wizard/deactivation/viewmodel/action/DashDeactivatePodViewModel.kt @@ -1,13 +1,18 @@ package info.nightscout.androidaps.plugins.pump.omnipod.dash.ui.wizard.deactivation.viewmodel.action import androidx.annotation.StringRes +import dagger.android.HasAndroidInjector import info.nightscout.androidaps.data.PumpEnactResult +import info.nightscout.androidaps.logging.AAPSLogger import info.nightscout.androidaps.plugins.pump.omnipod.common.R import info.nightscout.androidaps.plugins.pump.omnipod.common.ui.wizard.deactivation.viewmodel.action.DeactivatePodViewModel import io.reactivex.Single import javax.inject.Inject -class DashDeactivatePodViewModel @Inject constructor() : DeactivatePodViewModel() { +class DashDeactivatePodViewModel @Inject constructor( + injector: HasAndroidInjector, + logger: AAPSLogger +) : DeactivatePodViewModel(injector, logger) { override fun doExecuteAction(): Single = Single.just(PumpEnactResult(injector).success(false).comment("TODO")) // TODO diff --git a/omnipod-eros/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/eros/ui/wizard/activation/viewmodel/action/ErosInitializePodViewModel.kt b/omnipod-eros/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/eros/ui/wizard/activation/viewmodel/action/ErosInitializePodViewModel.kt index a08d79a2b3..e7cfd81ed5 100644 --- a/omnipod-eros/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/eros/ui/wizard/activation/viewmodel/action/ErosInitializePodViewModel.kt +++ b/omnipod-eros/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/eros/ui/wizard/activation/viewmodel/action/ErosInitializePodViewModel.kt @@ -1,7 +1,9 @@ package info.nightscout.androidaps.plugins.pump.omnipod.eros.ui.wizard.activation.viewmodel.action import androidx.annotation.StringRes +import dagger.android.HasAndroidInjector import info.nightscout.androidaps.data.PumpEnactResult +import info.nightscout.androidaps.logging.AAPSLogger import info.nightscout.androidaps.plugins.pump.omnipod.common.ui.wizard.activation.viewmodel.action.InitializePodViewModel import info.nightscout.androidaps.plugins.pump.omnipod.eros.R import info.nightscout.androidaps.plugins.pump.omnipod.eros.driver.definition.ActivationProgress @@ -12,8 +14,10 @@ import javax.inject.Inject class ErosInitializePodViewModel @Inject constructor( private val aapsOmnipodManager: AapsOmnipodErosManager, - private val podStateManager: AapsErosPodStateManager -) : InitializePodViewModel() { + private val podStateManager: AapsErosPodStateManager, + injector: HasAndroidInjector, + logger: AAPSLogger +) : InitializePodViewModel(injector, logger) { override fun isPodInAlarm(): Boolean = podStateManager.isPodFaulted diff --git a/omnipod-eros/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/eros/ui/wizard/activation/viewmodel/action/ErosInsertCannulaViewModel.kt b/omnipod-eros/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/eros/ui/wizard/activation/viewmodel/action/ErosInsertCannulaViewModel.kt index cb7c7c98fb..f28b6d1e9b 100644 --- a/omnipod-eros/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/eros/ui/wizard/activation/viewmodel/action/ErosInsertCannulaViewModel.kt +++ b/omnipod-eros/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/eros/ui/wizard/activation/viewmodel/action/ErosInsertCannulaViewModel.kt @@ -1,8 +1,10 @@ package info.nightscout.androidaps.plugins.pump.omnipod.eros.ui.wizard.activation.viewmodel.action import androidx.annotation.StringRes +import dagger.android.HasAndroidInjector import info.nightscout.androidaps.data.PumpEnactResult import info.nightscout.androidaps.interfaces.ProfileFunction +import info.nightscout.androidaps.logging.AAPSLogger import info.nightscout.androidaps.plugins.pump.omnipod.common.ui.wizard.activation.viewmodel.action.InsertCannulaViewModel import info.nightscout.androidaps.plugins.pump.omnipod.eros.R import info.nightscout.androidaps.plugins.pump.omnipod.eros.driver.definition.ActivationProgress @@ -14,8 +16,10 @@ import javax.inject.Inject class ErosInsertCannulaViewModel @Inject constructor( private val aapsOmnipodManager: AapsOmnipodErosManager, private val podStateManager: AapsErosPodStateManager, - private val profileFunction: ProfileFunction -) : InsertCannulaViewModel() { + private val profileFunction: ProfileFunction, + injector: HasAndroidInjector, + logger: AAPSLogger +) : InsertCannulaViewModel(injector, logger) { override fun isPodInAlarm(): Boolean = podStateManager.isPodFaulted diff --git a/omnipod-eros/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/eros/ui/wizard/deactivation/viewmodel/action/ErosDeactivatePodViewModel.kt b/omnipod-eros/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/eros/ui/wizard/deactivation/viewmodel/action/ErosDeactivatePodViewModel.kt index 099aa87bf0..2546e6426c 100644 --- a/omnipod-eros/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/eros/ui/wizard/deactivation/viewmodel/action/ErosDeactivatePodViewModel.kt +++ b/omnipod-eros/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/eros/ui/wizard/deactivation/viewmodel/action/ErosDeactivatePodViewModel.kt @@ -1,8 +1,10 @@ package info.nightscout.androidaps.plugins.pump.omnipod.eros.ui.wizard.deactivation.viewmodel.action import androidx.annotation.StringRes +import dagger.android.HasAndroidInjector import info.nightscout.androidaps.data.PumpEnactResult import info.nightscout.androidaps.interfaces.CommandQueueProvider +import info.nightscout.androidaps.logging.AAPSLogger import info.nightscout.androidaps.plugins.pump.omnipod.common.R import info.nightscout.androidaps.plugins.pump.omnipod.common.queue.command.CommandDeactivatePod import info.nightscout.androidaps.plugins.pump.omnipod.common.ui.wizard.deactivation.viewmodel.action.DeactivatePodViewModel @@ -13,8 +15,10 @@ import javax.inject.Inject class ErosDeactivatePodViewModel @Inject constructor( private val aapsOmnipodManager: AapsOmnipodErosManager, - private val commandQueueProvider: CommandQueueProvider -) : DeactivatePodViewModel() { + private val commandQueueProvider: CommandQueueProvider, + injector: HasAndroidInjector, + logger: AAPSLogger +) : DeactivatePodViewModel(injector, logger) { override fun doExecuteAction(): Single = Single.create { source ->