Address review findings
This commit is contained in:
parent
634b9c20e7
commit
aa14843d33
16 changed files with 116 additions and 59 deletions
omnipod-common/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/common/ui/wizard
activation/viewmodel/action
common/viewmodel
deactivation/viewmodel/action
omnipod-dash/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/dash
driver
ui/wizard
activation/viewmodel/action
deactivation/viewmodel/action
omnipod-eros/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/eros/ui/wizard
activation/viewmodel/action
deactivation/viewmodel/action
|
@ -1,3 +1,9 @@
|
||||||
package info.nightscout.androidaps.plugins.pump.omnipod.common.ui.wizard.activation.viewmodel.action
|
package info.nightscout.androidaps.plugins.pump.omnipod.common.ui.wizard.activation.viewmodel.action
|
||||||
|
|
||||||
abstract class InitializePodViewModel : PodActivationActionViewModelBase()
|
import dagger.android.HasAndroidInjector
|
||||||
|
import info.nightscout.androidaps.logging.AAPSLogger
|
||||||
|
|
||||||
|
abstract class InitializePodViewModel(
|
||||||
|
injector: HasAndroidInjector,
|
||||||
|
logger: AAPSLogger
|
||||||
|
) : PodActivationActionViewModelBase(injector, logger)
|
|
@ -1,3 +1,9 @@
|
||||||
package info.nightscout.androidaps.plugins.pump.omnipod.common.ui.wizard.activation.viewmodel.action
|
package info.nightscout.androidaps.plugins.pump.omnipod.common.ui.wizard.activation.viewmodel.action
|
||||||
|
|
||||||
abstract class InsertCannulaViewModel : PodActivationActionViewModelBase()
|
import dagger.android.HasAndroidInjector
|
||||||
|
import info.nightscout.androidaps.logging.AAPSLogger
|
||||||
|
|
||||||
|
abstract class InsertCannulaViewModel(
|
||||||
|
injector: HasAndroidInjector,
|
||||||
|
logger: AAPSLogger
|
||||||
|
) : PodActivationActionViewModelBase(injector, logger)
|
|
@ -1,8 +1,13 @@
|
||||||
package info.nightscout.androidaps.plugins.pump.omnipod.common.ui.wizard.activation.viewmodel.action
|
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
|
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
|
abstract fun isPodInAlarm(): Boolean
|
||||||
|
|
||||||
|
|
|
@ -7,12 +7,11 @@ import info.nightscout.androidaps.data.PumpEnactResult
|
||||||
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 io.reactivex.Single
|
import io.reactivex.Single
|
||||||
import javax.inject.Inject
|
|
||||||
|
|
||||||
abstract class ActionViewModelBase : ViewModelBase() {
|
abstract class ActionViewModelBase(
|
||||||
|
protected val injector: HasAndroidInjector,
|
||||||
@Inject lateinit var injector: HasAndroidInjector
|
protected val logger: AAPSLogger
|
||||||
@Inject lateinit var logger: AAPSLogger
|
) : ViewModelBase() {
|
||||||
|
|
||||||
private val _isActionExecutingLiveData = MutableLiveData(false)
|
private val _isActionExecutingLiveData = MutableLiveData(false)
|
||||||
val isActionExecutingLiveData: LiveData<Boolean> = _isActionExecutingLiveData
|
val isActionExecutingLiveData: LiveData<Boolean> = _isActionExecutingLiveData
|
||||||
|
|
|
@ -1,8 +1,13 @@
|
||||||
package info.nightscout.androidaps.plugins.pump.omnipod.common.ui.wizard.deactivation.viewmodel.action
|
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
|
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()
|
abstract fun discardPod()
|
||||||
}
|
}
|
|
@ -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.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.AlarmStatusResponse
|
||||||
import info.nightscout.androidaps.plugins.pump.omnipod.dash.driver.pod.response.DefaultStatusResponse
|
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.SetUniqueIdResponse
|
||||||
import info.nightscout.androidaps.plugins.pump.omnipod.dash.driver.pod.response.VersionResponse
|
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.plugins.pump.omnipod.dash.driver.pod.state.OmnipodDashPodStateManager
|
||||||
|
import info.nightscout.androidaps.utils.rx.AapsSchedulers
|
||||||
import io.reactivex.Observable
|
import io.reactivex.Observable
|
||||||
import io.reactivex.android.schedulers.AndroidSchedulers
|
|
||||||
import io.reactivex.functions.Consumer
|
import io.reactivex.functions.Consumer
|
||||||
import io.reactivex.schedulers.Schedulers
|
|
||||||
import java.util.*
|
import java.util.*
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
import javax.inject.Singleton
|
import javax.inject.Singleton
|
||||||
|
@ -27,7 +27,8 @@ import javax.inject.Singleton
|
||||||
class OmnipodDashManagerImpl @Inject constructor(
|
class OmnipodDashManagerImpl @Inject constructor(
|
||||||
private val logger: AAPSLogger,
|
private val logger: AAPSLogger,
|
||||||
private val podStateManager: OmnipodDashPodStateManager,
|
private val podStateManager: OmnipodDashPodStateManager,
|
||||||
private val bleManager: OmnipodDashBleManager
|
private val bleManager: OmnipodDashBleManager,
|
||||||
|
private val aapsSchedulers: AapsSchedulers
|
||||||
) : OmnipodDashManager {
|
) : OmnipodDashManager {
|
||||||
|
|
||||||
private val observePodReadyForActivationPart1: Observable<PodEvent>
|
private val observePodReadyForActivationPart1: Observable<PodEvent>
|
||||||
|
@ -39,26 +40,28 @@ class OmnipodDashManagerImpl @Inject constructor(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private val connectToPod: Observable<PodEvent>
|
private val observeConnectToPod: Observable<PodEvent>
|
||||||
get() = Observable.defer { bleManager.connect() }
|
get() = Observable.defer { bleManager.connect() }
|
||||||
|
|
||||||
|
private val observeSendGetVersionCommand: Observable<PodEvent>
|
||||||
|
get() = Observable.defer {
|
||||||
|
bleManager.sendCommand(GetVersionCommand.Builder() //
|
||||||
|
.setSequenceNumber(podStateManager.messageSequenceNumber) //
|
||||||
|
.setUniqueId(DEFAULT_UNIQUE_ID) //
|
||||||
|
.build()) //
|
||||||
|
}
|
||||||
|
|
||||||
override fun activatePodPart1(): Observable<PodEvent> {
|
override fun activatePodPart1(): Observable<PodEvent> {
|
||||||
return Observable.concat(
|
return Observable.concat(
|
||||||
observePodReadyForActivationPart1,
|
observePodReadyForActivationPart1,
|
||||||
connectToPod,
|
observeConnectToPod,
|
||||||
Observable.defer {
|
observeSendGetVersionCommand
|
||||||
bleManager.sendCommand(GetVersionCommand.Builder() //
|
|
||||||
.setSequenceNumber(podStateManager.messageSequenceNumber) //
|
|
||||||
.setUniqueId(DEFAULT_UNIQUE_ID) //
|
|
||||||
.build()) //
|
|
||||||
}
|
|
||||||
// ... Send more commands
|
// ... Send more commands
|
||||||
) //
|
) //
|
||||||
// TODO these would be common for any observable returned in a public function in this class
|
// TODO these would be common for any observable returned in a public function in this class
|
||||||
.doOnNext(PodEventInterceptor()) //
|
.doOnNext(PodEventInterceptor()) //
|
||||||
.doOnError(ErrorInterceptor())
|
.doOnError(ErrorInterceptor())
|
||||||
.subscribeOn(Schedulers.io()) //
|
.subscribeOn(aapsSchedulers.io)
|
||||||
.observeOn(AndroidSchedulers.mainThread())
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun activatePodPart2(): Observable<PodEvent> {
|
override fun activatePodPart2(): Observable<PodEvent> {
|
||||||
|
@ -128,7 +131,6 @@ class OmnipodDashManagerImpl @Inject constructor(
|
||||||
|
|
||||||
inner class PodEventInterceptor : Consumer<PodEvent> {
|
inner class PodEventInterceptor : Consumer<PodEvent> {
|
||||||
|
|
||||||
// TODO split into separate methods
|
|
||||||
override fun accept(event: PodEvent) {
|
override fun accept(event: PodEvent) {
|
||||||
logger.debug(LTag.PUMP, "Intercepted PodEvent in OmnipodDashManagerImpl: ${event.javaClass.simpleName}")
|
logger.debug(LTag.PUMP, "Intercepted PodEvent in OmnipodDashManagerImpl: ${event.javaClass.simpleName}")
|
||||||
when (event) {
|
when (event) {
|
||||||
|
@ -147,23 +149,7 @@ class OmnipodDashManagerImpl @Inject constructor(
|
||||||
|
|
||||||
is PodEvent.ResponseReceived -> {
|
is PodEvent.ResponseReceived -> {
|
||||||
podStateManager.increaseMessageSequenceNumber()
|
podStateManager.increaseMessageSequenceNumber()
|
||||||
when (event.response) {
|
handleResponse(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)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
else -> {
|
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<Throwable> {
|
inner class ErrorInterceptor : Consumer<Throwable> {
|
||||||
|
|
|
@ -94,7 +94,7 @@ class OmnipodDashBleManagerImpl @Inject constructor(private val context: Context
|
||||||
|
|
||||||
val msgIO = MessageIO(aapsLogger, bleIO)
|
val msgIO = MessageIO(aapsLogger, bleIO)
|
||||||
val ltkExchanger = LTKExchanger(aapsLogger, msgIO)
|
val ltkExchanger = LTKExchanger(aapsLogger, msgIO)
|
||||||
emitter.onNext(PodEvent.NegotiatingLtkAndNoncePrefix)
|
emitter.onNext(PodEvent.Pairing)
|
||||||
|
|
||||||
val ltk = ltkExchanger.negotiateLTKAndNonce()
|
val ltk = ltkExchanger.negotiateLTKAndNonce()
|
||||||
aapsLogger.info(LTag.PUMPCOMM, "Got LTK and Nonce Prefix: ${ltk}")
|
aapsLogger.info(LTag.PUMPCOMM, "Got LTK and Nonce Prefix: ${ltk}")
|
||||||
|
@ -102,7 +102,7 @@ class OmnipodDashBleManagerImpl @Inject constructor(private val context: Context
|
||||||
|
|
||||||
emitter.onComplete()
|
emitter.onComplete()
|
||||||
} catch (ex: Exception) {
|
} catch (ex: Exception) {
|
||||||
emitter.onError(ex) // TODO is this necessary?
|
emitter.tryOnError(ex) // TODO is this necessary?
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -42,7 +42,7 @@ class PodScanner(private val logger: AAPSLogger, private val bluetoothAdapter: B
|
||||||
companion object {
|
companion object {
|
||||||
|
|
||||||
const val SCAN_FOR_SERVICE_UUID = "00004024-0000-1000-8000-00805F9B34FB"
|
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
|
private const val SCAN_DURATION_MS = 5000
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -10,7 +10,9 @@ sealed class PodEvent {
|
||||||
object Scanning : PodEvent()
|
object Scanning : PodEvent()
|
||||||
object BluetoothConnecting : PodEvent()
|
object BluetoothConnecting : PodEvent()
|
||||||
class BluetoothConnected(val address: String) : 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()
|
class Connected(val uniqueId: Long) : PodEvent()
|
||||||
|
|
||||||
/* Message exchange events */
|
/* Message exchange events */
|
||||||
|
|
|
@ -34,8 +34,6 @@ class OmnipodDashPodStateManagerImpl @Inject constructor(
|
||||||
store()
|
store()
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: dynamic get() fun instead of assignment
|
|
||||||
|
|
||||||
override val isUniqueIdSet: Boolean
|
override val isUniqueIdSet: Boolean
|
||||||
get() = activationProgress.isAtLeast(ActivationProgress.SET_UNIQUE_ID)
|
get() = activationProgress.isAtLeast(ActivationProgress.SET_UNIQUE_ID)
|
||||||
|
|
||||||
|
|
|
@ -1,15 +1,22 @@
|
||||||
package info.nightscout.androidaps.plugins.pump.omnipod.dash.ui.wizard.activation.viewmodel.action
|
package info.nightscout.androidaps.plugins.pump.omnipod.dash.ui.wizard.activation.viewmodel.action
|
||||||
|
|
||||||
import androidx.annotation.StringRes
|
import androidx.annotation.StringRes
|
||||||
|
import dagger.android.HasAndroidInjector
|
||||||
import info.nightscout.androidaps.data.PumpEnactResult
|
import info.nightscout.androidaps.data.PumpEnactResult
|
||||||
|
import info.nightscout.androidaps.logging.AAPSLogger
|
||||||
import info.nightscout.androidaps.logging.LTag
|
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.common.ui.wizard.activation.viewmodel.action.InitializePodViewModel
|
||||||
import info.nightscout.androidaps.plugins.pump.omnipod.dash.R
|
import info.nightscout.androidaps.plugins.pump.omnipod.dash.R
|
||||||
import info.nightscout.androidaps.plugins.pump.omnipod.dash.driver.OmnipodDashManager
|
import info.nightscout.androidaps.plugins.pump.omnipod.dash.driver.OmnipodDashManager
|
||||||
import io.reactivex.Single
|
import io.reactivex.Single
|
||||||
|
import io.reactivex.rxkotlin.subscribeBy
|
||||||
import javax.inject.Inject
|
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
|
override fun isPodInAlarm(): Boolean = false // TODO
|
||||||
|
|
||||||
|
@ -19,13 +26,13 @@ class DashInitializePodViewModel @Inject constructor(private val omnipodManager:
|
||||||
|
|
||||||
override fun doExecuteAction(): Single<PumpEnactResult> =
|
override fun doExecuteAction(): Single<PumpEnactResult> =
|
||||||
Single.create { source ->
|
Single.create { source ->
|
||||||
val disposable = omnipodManager.activatePodPart1().subscribe(
|
val disposable = omnipodManager.activatePodPart1().subscribeBy(
|
||||||
{ podEvent -> logger.debug(LTag.PUMP, "Received PodEvent in Pod activation part 1: $podEvent") },
|
onNext = { podEvent -> logger.debug(LTag.PUMP, "Received PodEvent in Pod activation part 1: $podEvent") },
|
||||||
{ throwable ->
|
onError = { throwable ->
|
||||||
logger.error(LTag.PUMP, "Error in Pod activation part 1", throwable)
|
logger.error(LTag.PUMP, "Error in Pod activation part 1", throwable)
|
||||||
source.onSuccess(PumpEnactResult(injector).success(false).comment(throwable.message))
|
source.onSuccess(PumpEnactResult(injector).success(false).comment(throwable.message))
|
||||||
},
|
},
|
||||||
{
|
onComplete = {
|
||||||
logger.debug("Pod activation part 1 completed")
|
logger.debug("Pod activation part 1 completed")
|
||||||
source.onSuccess(PumpEnactResult(injector).success(true))
|
source.onSuccess(PumpEnactResult(injector).success(true))
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,14 +1,20 @@
|
||||||
package info.nightscout.androidaps.plugins.pump.omnipod.dash.ui.wizard.activation.viewmodel.action
|
package info.nightscout.androidaps.plugins.pump.omnipod.dash.ui.wizard.activation.viewmodel.action
|
||||||
|
|
||||||
import androidx.annotation.StringRes
|
import androidx.annotation.StringRes
|
||||||
|
import dagger.android.HasAndroidInjector
|
||||||
import info.nightscout.androidaps.data.PumpEnactResult
|
import info.nightscout.androidaps.data.PumpEnactResult
|
||||||
import info.nightscout.androidaps.interfaces.ProfileFunction
|
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.common.ui.wizard.activation.viewmodel.action.InsertCannulaViewModel
|
||||||
import info.nightscout.androidaps.plugins.pump.omnipod.dash.R
|
import info.nightscout.androidaps.plugins.pump.omnipod.dash.R
|
||||||
import io.reactivex.Single
|
import io.reactivex.Single
|
||||||
import javax.inject.Inject
|
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
|
override fun isPodInAlarm(): Boolean = false // TODO
|
||||||
|
|
||||||
|
|
|
@ -1,13 +1,18 @@
|
||||||
package info.nightscout.androidaps.plugins.pump.omnipod.dash.ui.wizard.deactivation.viewmodel.action
|
package info.nightscout.androidaps.plugins.pump.omnipod.dash.ui.wizard.deactivation.viewmodel.action
|
||||||
|
|
||||||
import androidx.annotation.StringRes
|
import androidx.annotation.StringRes
|
||||||
|
import dagger.android.HasAndroidInjector
|
||||||
import info.nightscout.androidaps.data.PumpEnactResult
|
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.R
|
||||||
import info.nightscout.androidaps.plugins.pump.omnipod.common.ui.wizard.deactivation.viewmodel.action.DeactivatePodViewModel
|
import info.nightscout.androidaps.plugins.pump.omnipod.common.ui.wizard.deactivation.viewmodel.action.DeactivatePodViewModel
|
||||||
import io.reactivex.Single
|
import io.reactivex.Single
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
class DashDeactivatePodViewModel @Inject constructor() : DeactivatePodViewModel() {
|
class DashDeactivatePodViewModel @Inject constructor(
|
||||||
|
injector: HasAndroidInjector,
|
||||||
|
logger: AAPSLogger
|
||||||
|
) : DeactivatePodViewModel(injector, logger) {
|
||||||
|
|
||||||
override fun doExecuteAction(): Single<PumpEnactResult> = Single.just(PumpEnactResult(injector).success(false).comment("TODO")) // TODO
|
override fun doExecuteAction(): Single<PumpEnactResult> = Single.just(PumpEnactResult(injector).success(false).comment("TODO")) // TODO
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,9 @@
|
||||||
package info.nightscout.androidaps.plugins.pump.omnipod.eros.ui.wizard.activation.viewmodel.action
|
package info.nightscout.androidaps.plugins.pump.omnipod.eros.ui.wizard.activation.viewmodel.action
|
||||||
|
|
||||||
import androidx.annotation.StringRes
|
import androidx.annotation.StringRes
|
||||||
|
import dagger.android.HasAndroidInjector
|
||||||
import info.nightscout.androidaps.data.PumpEnactResult
|
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.common.ui.wizard.activation.viewmodel.action.InitializePodViewModel
|
||||||
import info.nightscout.androidaps.plugins.pump.omnipod.eros.R
|
import info.nightscout.androidaps.plugins.pump.omnipod.eros.R
|
||||||
import info.nightscout.androidaps.plugins.pump.omnipod.eros.driver.definition.ActivationProgress
|
import info.nightscout.androidaps.plugins.pump.omnipod.eros.driver.definition.ActivationProgress
|
||||||
|
@ -12,8 +14,10 @@ import javax.inject.Inject
|
||||||
|
|
||||||
class ErosInitializePodViewModel @Inject constructor(
|
class ErosInitializePodViewModel @Inject constructor(
|
||||||
private val aapsOmnipodManager: AapsOmnipodErosManager,
|
private val aapsOmnipodManager: AapsOmnipodErosManager,
|
||||||
private val podStateManager: AapsErosPodStateManager
|
private val podStateManager: AapsErosPodStateManager,
|
||||||
) : InitializePodViewModel() {
|
injector: HasAndroidInjector,
|
||||||
|
logger: AAPSLogger
|
||||||
|
) : InitializePodViewModel(injector, logger) {
|
||||||
|
|
||||||
override fun isPodInAlarm(): Boolean = podStateManager.isPodFaulted
|
override fun isPodInAlarm(): Boolean = podStateManager.isPodFaulted
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,10 @@
|
||||||
package info.nightscout.androidaps.plugins.pump.omnipod.eros.ui.wizard.activation.viewmodel.action
|
package info.nightscout.androidaps.plugins.pump.omnipod.eros.ui.wizard.activation.viewmodel.action
|
||||||
|
|
||||||
import androidx.annotation.StringRes
|
import androidx.annotation.StringRes
|
||||||
|
import dagger.android.HasAndroidInjector
|
||||||
import info.nightscout.androidaps.data.PumpEnactResult
|
import info.nightscout.androidaps.data.PumpEnactResult
|
||||||
import info.nightscout.androidaps.interfaces.ProfileFunction
|
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.common.ui.wizard.activation.viewmodel.action.InsertCannulaViewModel
|
||||||
import info.nightscout.androidaps.plugins.pump.omnipod.eros.R
|
import info.nightscout.androidaps.plugins.pump.omnipod.eros.R
|
||||||
import info.nightscout.androidaps.plugins.pump.omnipod.eros.driver.definition.ActivationProgress
|
import info.nightscout.androidaps.plugins.pump.omnipod.eros.driver.definition.ActivationProgress
|
||||||
|
@ -14,8 +16,10 @@ import javax.inject.Inject
|
||||||
class ErosInsertCannulaViewModel @Inject constructor(
|
class ErosInsertCannulaViewModel @Inject constructor(
|
||||||
private val aapsOmnipodManager: AapsOmnipodErosManager,
|
private val aapsOmnipodManager: AapsOmnipodErosManager,
|
||||||
private val podStateManager: AapsErosPodStateManager,
|
private val podStateManager: AapsErosPodStateManager,
|
||||||
private val profileFunction: ProfileFunction
|
private val profileFunction: ProfileFunction,
|
||||||
) : InsertCannulaViewModel() {
|
injector: HasAndroidInjector,
|
||||||
|
logger: AAPSLogger
|
||||||
|
) : InsertCannulaViewModel(injector, logger) {
|
||||||
|
|
||||||
override fun isPodInAlarm(): Boolean = podStateManager.isPodFaulted
|
override fun isPodInAlarm(): Boolean = podStateManager.isPodFaulted
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,10 @@
|
||||||
package info.nightscout.androidaps.plugins.pump.omnipod.eros.ui.wizard.deactivation.viewmodel.action
|
package info.nightscout.androidaps.plugins.pump.omnipod.eros.ui.wizard.deactivation.viewmodel.action
|
||||||
|
|
||||||
import androidx.annotation.StringRes
|
import androidx.annotation.StringRes
|
||||||
|
import dagger.android.HasAndroidInjector
|
||||||
import info.nightscout.androidaps.data.PumpEnactResult
|
import info.nightscout.androidaps.data.PumpEnactResult
|
||||||
import info.nightscout.androidaps.interfaces.CommandQueueProvider
|
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.R
|
||||||
import info.nightscout.androidaps.plugins.pump.omnipod.common.queue.command.CommandDeactivatePod
|
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
|
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(
|
class ErosDeactivatePodViewModel @Inject constructor(
|
||||||
private val aapsOmnipodManager: AapsOmnipodErosManager,
|
private val aapsOmnipodManager: AapsOmnipodErosManager,
|
||||||
private val commandQueueProvider: CommandQueueProvider
|
private val commandQueueProvider: CommandQueueProvider,
|
||||||
) : DeactivatePodViewModel() {
|
injector: HasAndroidInjector,
|
||||||
|
logger: AAPSLogger
|
||||||
|
) : DeactivatePodViewModel(injector, logger) {
|
||||||
|
|
||||||
override fun doExecuteAction(): Single<PumpEnactResult> =
|
override fun doExecuteAction(): Single<PumpEnactResult> =
|
||||||
Single.create { source ->
|
Single.create { source ->
|
||||||
|
|
Loading…
Add table
Reference in a new issue