Small improvements and import order
This commit is contained in:
parent
ddd9687425
commit
8911bcd508
5 changed files with 96 additions and 77 deletions
omnipod/src/main
java/info/nightscout/androidaps/plugins/pump/omnipod
res/layout
|
@ -66,12 +66,12 @@ import info.nightscout.androidaps.plugins.pump.common.hw.rileylink.service.Riley
|
||||||
import info.nightscout.androidaps.plugins.pump.common.hw.rileylink.service.tasks.ResetRileyLinkConfigurationTask;
|
import info.nightscout.androidaps.plugins.pump.common.hw.rileylink.service.tasks.ResetRileyLinkConfigurationTask;
|
||||||
import info.nightscout.androidaps.plugins.pump.common.hw.rileylink.service.tasks.ServiceTaskExecutor;
|
import info.nightscout.androidaps.plugins.pump.common.hw.rileylink.service.tasks.ServiceTaskExecutor;
|
||||||
import info.nightscout.androidaps.plugins.pump.common.utils.DateTimeUtil;
|
import info.nightscout.androidaps.plugins.pump.common.utils.DateTimeUtil;
|
||||||
import info.nightscout.androidaps.plugins.pump.omnipod.definition.OmnipodStorageKeys;
|
|
||||||
import info.nightscout.androidaps.plugins.pump.omnipod.driver.communication.message.response.podinfo.PodInfoRecentPulseLog;
|
|
||||||
import info.nightscout.androidaps.plugins.pump.omnipod.data.RLHistoryItemOmnipod;
|
import info.nightscout.androidaps.plugins.pump.omnipod.data.RLHistoryItemOmnipod;
|
||||||
import info.nightscout.androidaps.plugins.pump.omnipod.definition.OmnipodCommandType;
|
import info.nightscout.androidaps.plugins.pump.omnipod.definition.OmnipodCommandType;
|
||||||
import info.nightscout.androidaps.plugins.pump.omnipod.definition.OmnipodCustomActionType;
|
import info.nightscout.androidaps.plugins.pump.omnipod.definition.OmnipodCustomActionType;
|
||||||
import info.nightscout.androidaps.plugins.pump.omnipod.definition.OmnipodStatusRequestType;
|
import info.nightscout.androidaps.plugins.pump.omnipod.definition.OmnipodStatusRequestType;
|
||||||
|
import info.nightscout.androidaps.plugins.pump.omnipod.definition.OmnipodStorageKeys;
|
||||||
|
import info.nightscout.androidaps.plugins.pump.omnipod.driver.communication.message.response.podinfo.PodInfoRecentPulseLog;
|
||||||
import info.nightscout.androidaps.plugins.pump.omnipod.driver.definition.PodProgressStatus;
|
import info.nightscout.androidaps.plugins.pump.omnipod.driver.definition.PodProgressStatus;
|
||||||
import info.nightscout.androidaps.plugins.pump.omnipod.driver.manager.PodStateManager;
|
import info.nightscout.androidaps.plugins.pump.omnipod.driver.manager.PodStateManager;
|
||||||
import info.nightscout.androidaps.plugins.pump.omnipod.manager.AapsOmnipodManager;
|
import info.nightscout.androidaps.plugins.pump.omnipod.manager.AapsOmnipodManager;
|
||||||
|
|
|
@ -26,10 +26,10 @@ import info.nightscout.androidaps.plugins.pump.omnipod.driver.definition.AlertSl
|
||||||
import info.nightscout.androidaps.plugins.pump.omnipod.driver.definition.AlertType;
|
import info.nightscout.androidaps.plugins.pump.omnipod.driver.definition.AlertType;
|
||||||
import info.nightscout.androidaps.plugins.pump.omnipod.driver.definition.DeliveryStatus;
|
import info.nightscout.androidaps.plugins.pump.omnipod.driver.definition.DeliveryStatus;
|
||||||
import info.nightscout.androidaps.plugins.pump.omnipod.driver.definition.FirmwareVersion;
|
import info.nightscout.androidaps.plugins.pump.omnipod.driver.definition.FirmwareVersion;
|
||||||
|
import info.nightscout.androidaps.plugins.pump.omnipod.driver.definition.OmnipodConstants;
|
||||||
|
import info.nightscout.androidaps.plugins.pump.omnipod.driver.definition.OmnipodCrc;
|
||||||
import info.nightscout.androidaps.plugins.pump.omnipod.driver.definition.PodProgressStatus;
|
import info.nightscout.androidaps.plugins.pump.omnipod.driver.definition.PodProgressStatus;
|
||||||
import info.nightscout.androidaps.plugins.pump.omnipod.driver.definition.schedule.BasalSchedule;
|
import info.nightscout.androidaps.plugins.pump.omnipod.driver.definition.schedule.BasalSchedule;
|
||||||
import info.nightscout.androidaps.plugins.pump.omnipod.driver.definition.OmnipodCrc;
|
|
||||||
import info.nightscout.androidaps.plugins.pump.omnipod.driver.definition.OmnipodConstants;
|
|
||||||
|
|
||||||
// TODO add nullchecks on some setters
|
// TODO add nullchecks on some setters
|
||||||
public abstract class PodStateManager {
|
public abstract class PodStateManager {
|
||||||
|
@ -138,7 +138,7 @@ public abstract class PodStateManager {
|
||||||
}
|
}
|
||||||
|
|
||||||
public final void setMessageNumber(int messageNumber) {
|
public final void setMessageNumber(int messageNumber) {
|
||||||
setAndStore(() -> podState.setMessageNumber(messageNumber));
|
setAndStore(() -> podState.setMessageNumber(messageNumber), false);
|
||||||
}
|
}
|
||||||
|
|
||||||
public final int getPacketNumber() {
|
public final int getPacketNumber() {
|
||||||
|
@ -146,7 +146,7 @@ public abstract class PodStateManager {
|
||||||
}
|
}
|
||||||
|
|
||||||
public final void setPacketNumber(int packetNumber) {
|
public final void setPacketNumber(int packetNumber) {
|
||||||
setAndStore(() -> podState.setPacketNumber(packetNumber));
|
setAndStore(() -> podState.setPacketNumber(packetNumber), false);
|
||||||
}
|
}
|
||||||
|
|
||||||
public final void increaseMessageNumber() {
|
public final void increaseMessageNumber() {
|
||||||
|
@ -190,8 +190,8 @@ public abstract class PodStateManager {
|
||||||
return getSafe(() -> podState.getLastSuccessfulCommunication());
|
return getSafe(() -> podState.getLastSuccessfulCommunication());
|
||||||
}
|
}
|
||||||
|
|
||||||
public final void setLastSuccessfulCommunication(DateTime dateTime) {
|
public final void setLastSuccessfulCommunication(DateTime dateTime, boolean notifyPodStateChanged) {
|
||||||
setAndStore(() -> podState.setLastSuccessfulCommunication(dateTime));
|
setAndStore(() -> podState.setLastSuccessfulCommunication(dateTime), notifyPodStateChanged);
|
||||||
}
|
}
|
||||||
|
|
||||||
public final DateTime getLastFailedCommunication() {
|
public final DateTime getLastFailedCommunication() {
|
||||||
|
|
|
@ -17,16 +17,6 @@ import info.nightscout.androidaps.plugins.pump.common.hw.rileylink.ble.defs.RLMe
|
||||||
import info.nightscout.androidaps.plugins.pump.common.hw.rileylink.ble.defs.RileyLinkBLEError;
|
import info.nightscout.androidaps.plugins.pump.common.hw.rileylink.ble.defs.RileyLinkBLEError;
|
||||||
import info.nightscout.androidaps.plugins.pump.common.utils.ByteUtil;
|
import info.nightscout.androidaps.plugins.pump.common.utils.ByteUtil;
|
||||||
import info.nightscout.androidaps.plugins.pump.omnipod.driver.communication.action.OmnipodAction;
|
import info.nightscout.androidaps.plugins.pump.omnipod.driver.communication.action.OmnipodAction;
|
||||||
import info.nightscout.androidaps.plugins.pump.omnipod.driver.exception.CommunicationException;
|
|
||||||
import info.nightscout.androidaps.plugins.pump.omnipod.driver.exception.IllegalMessageAddressException;
|
|
||||||
import info.nightscout.androidaps.plugins.pump.omnipod.driver.exception.IllegalMessageSequenceNumberException;
|
|
||||||
import info.nightscout.androidaps.plugins.pump.omnipod.driver.exception.IllegalPacketTypeException;
|
|
||||||
import info.nightscout.androidaps.plugins.pump.omnipod.driver.exception.IllegalResponseException;
|
|
||||||
import info.nightscout.androidaps.plugins.pump.omnipod.driver.exception.NonceOutOfSyncException;
|
|
||||||
import info.nightscout.androidaps.plugins.pump.omnipod.driver.exception.NonceResyncException;
|
|
||||||
import info.nightscout.androidaps.plugins.pump.omnipod.driver.exception.NotEnoughDataException;
|
|
||||||
import info.nightscout.androidaps.plugins.pump.omnipod.driver.exception.PodFaultException;
|
|
||||||
import info.nightscout.androidaps.plugins.pump.omnipod.driver.exception.PodReturnedErrorResponseException;
|
|
||||||
import info.nightscout.androidaps.plugins.pump.omnipod.driver.communication.message.MessageBlock;
|
import info.nightscout.androidaps.plugins.pump.omnipod.driver.communication.message.MessageBlock;
|
||||||
import info.nightscout.androidaps.plugins.pump.omnipod.driver.communication.message.OmnipodMessage;
|
import info.nightscout.androidaps.plugins.pump.omnipod.driver.communication.message.OmnipodMessage;
|
||||||
import info.nightscout.androidaps.plugins.pump.omnipod.driver.communication.message.OmnipodPacket;
|
import info.nightscout.androidaps.plugins.pump.omnipod.driver.communication.message.OmnipodPacket;
|
||||||
|
@ -36,11 +26,21 @@ import info.nightscout.androidaps.plugins.pump.omnipod.driver.communication.mess
|
||||||
import info.nightscout.androidaps.plugins.pump.omnipod.driver.communication.message.response.podinfo.PodInfoFaultEvent;
|
import info.nightscout.androidaps.plugins.pump.omnipod.driver.communication.message.response.podinfo.PodInfoFaultEvent;
|
||||||
import info.nightscout.androidaps.plugins.pump.omnipod.driver.communication.message.response.podinfo.PodInfoResponse;
|
import info.nightscout.androidaps.plugins.pump.omnipod.driver.communication.message.response.podinfo.PodInfoResponse;
|
||||||
import info.nightscout.androidaps.plugins.pump.omnipod.driver.definition.MessageBlockType;
|
import info.nightscout.androidaps.plugins.pump.omnipod.driver.definition.MessageBlockType;
|
||||||
|
import info.nightscout.androidaps.plugins.pump.omnipod.driver.definition.OmnipodConstants;
|
||||||
import info.nightscout.androidaps.plugins.pump.omnipod.driver.definition.PacketType;
|
import info.nightscout.androidaps.plugins.pump.omnipod.driver.definition.PacketType;
|
||||||
import info.nightscout.androidaps.plugins.pump.omnipod.driver.definition.PodInfoType;
|
import info.nightscout.androidaps.plugins.pump.omnipod.driver.definition.PodInfoType;
|
||||||
import info.nightscout.androidaps.plugins.pump.omnipod.driver.manager.PodStateManager;
|
import info.nightscout.androidaps.plugins.pump.omnipod.driver.exception.CommunicationException;
|
||||||
|
import info.nightscout.androidaps.plugins.pump.omnipod.driver.exception.IllegalMessageAddressException;
|
||||||
|
import info.nightscout.androidaps.plugins.pump.omnipod.driver.exception.IllegalMessageSequenceNumberException;
|
||||||
|
import info.nightscout.androidaps.plugins.pump.omnipod.driver.exception.IllegalPacketTypeException;
|
||||||
|
import info.nightscout.androidaps.plugins.pump.omnipod.driver.exception.IllegalResponseException;
|
||||||
|
import info.nightscout.androidaps.plugins.pump.omnipod.driver.exception.NonceOutOfSyncException;
|
||||||
|
import info.nightscout.androidaps.plugins.pump.omnipod.driver.exception.NonceResyncException;
|
||||||
|
import info.nightscout.androidaps.plugins.pump.omnipod.driver.exception.NotEnoughDataException;
|
||||||
import info.nightscout.androidaps.plugins.pump.omnipod.driver.exception.OmnipodException;
|
import info.nightscout.androidaps.plugins.pump.omnipod.driver.exception.OmnipodException;
|
||||||
import info.nightscout.androidaps.plugins.pump.omnipod.driver.definition.OmnipodConstants;
|
import info.nightscout.androidaps.plugins.pump.omnipod.driver.exception.PodFaultException;
|
||||||
|
import info.nightscout.androidaps.plugins.pump.omnipod.driver.exception.PodReturnedErrorResponseException;
|
||||||
|
import info.nightscout.androidaps.plugins.pump.omnipod.driver.manager.PodStateManager;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by andy on 6/29/18.
|
* Created by andy on 6/29/18.
|
||||||
|
@ -125,12 +125,18 @@ public class OmnipodRileyLinkCommunicationManager extends RileyLinkCommunication
|
||||||
|
|
||||||
aapsLogger.debug(LTag.PUMPCOMM, "Received response from the Pod [responseMessageBlock={}]", responseMessageBlock);
|
aapsLogger.debug(LTag.PUMPCOMM, "Received response from the Pod [responseMessageBlock={}]", responseMessageBlock);
|
||||||
|
|
||||||
|
boolean isExpectedResponseType = responseClass.isInstance(responseMessageBlock);
|
||||||
|
// Set last successful communication before updating from status response to prevent duplicately notifying Pod state changes
|
||||||
|
// as podStateManager.updateFromStatusResponse() also notifies of Pod state changes.
|
||||||
|
if (isExpectedResponseType) {
|
||||||
|
podStateManager.setLastSuccessfulCommunication(DateTime.now(), !(responseMessageBlock instanceof StatusResponse));
|
||||||
|
}
|
||||||
|
|
||||||
if (responseMessageBlock instanceof StatusResponse) {
|
if (responseMessageBlock instanceof StatusResponse) {
|
||||||
podStateManager.updateFromStatusResponse((StatusResponse) responseMessageBlock);
|
podStateManager.updateFromStatusResponse((StatusResponse) responseMessageBlock);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (responseClass.isInstance(responseMessageBlock)) {
|
if (isExpectedResponseType) {
|
||||||
podStateManager.setLastSuccessfulCommunication(DateTime.now());
|
|
||||||
return (T) responseMessageBlock;
|
return (T) responseMessageBlock;
|
||||||
} else {
|
} else {
|
||||||
if (responseMessageBlock.getType() == MessageBlockType.ERROR_RESPONSE) {
|
if (responseMessageBlock.getType() == MessageBlockType.ERROR_RESPONSE) {
|
||||||
|
|
|
@ -23,8 +23,8 @@ import info.nightscout.androidaps.plugins.pump.omnipod.R
|
||||||
import info.nightscout.androidaps.plugins.pump.omnipod.definition.OmnipodStatusRequestType
|
import info.nightscout.androidaps.plugins.pump.omnipod.definition.OmnipodStatusRequestType
|
||||||
import info.nightscout.androidaps.plugins.pump.omnipod.driver.definition.PodProgressStatus
|
import info.nightscout.androidaps.plugins.pump.omnipod.driver.definition.PodProgressStatus
|
||||||
import info.nightscout.androidaps.plugins.pump.omnipod.driver.manager.PodStateManager
|
import info.nightscout.androidaps.plugins.pump.omnipod.driver.manager.PodStateManager
|
||||||
import info.nightscout.androidaps.plugins.pump.omnipod.manager.AapsOmnipodManager
|
|
||||||
import info.nightscout.androidaps.plugins.pump.omnipod.event.EventOmnipodPumpValuesChanged
|
import info.nightscout.androidaps.plugins.pump.omnipod.event.EventOmnipodPumpValuesChanged
|
||||||
|
import info.nightscout.androidaps.plugins.pump.omnipod.manager.AapsOmnipodManager
|
||||||
import info.nightscout.androidaps.plugins.pump.omnipod.util.AapsOmnipodUtil
|
import info.nightscout.androidaps.plugins.pump.omnipod.util.AapsOmnipodUtil
|
||||||
import info.nightscout.androidaps.queue.Callback
|
import info.nightscout.androidaps.queue.Callback
|
||||||
import info.nightscout.androidaps.utils.DateUtil
|
import info.nightscout.androidaps.utils.DateUtil
|
||||||
|
@ -61,10 +61,10 @@ class OmnipodFragment : DaggerFragment() {
|
||||||
@Inject lateinit var rileyLinkServiceData: RileyLinkServiceData
|
@Inject lateinit var rileyLinkServiceData: RileyLinkServiceData
|
||||||
@Inject lateinit var dateUtil: DateUtil
|
@Inject lateinit var dateUtil: DateUtil
|
||||||
@Inject lateinit var aapsOmnipodManager: AapsOmnipodManager
|
@Inject lateinit var aapsOmnipodManager: AapsOmnipodManager
|
||||||
|
@Inject lateinit var protectionCheck: ProtectionCheck
|
||||||
|
|
||||||
// TODO somehow obtain the pumpUnreachableThreshold in order to display last connection time red or white
|
// TODO somehow obtain the pumpUnreachableThreshold in order to display last connection time red or white
|
||||||
// @Inject lateinit var localAlertUtils: LocalAlertUtils
|
// @Inject lateinit var localAlertUtils: LocalAlertUtils
|
||||||
@Inject lateinit var protectionCheck: ProtectionCheck
|
|
||||||
|
|
||||||
private var disposables: CompositeDisposable = CompositeDisposable()
|
private var disposables: CompositeDisposable = CompositeDisposable()
|
||||||
|
|
||||||
|
@ -99,18 +99,16 @@ class OmnipodFragment : DaggerFragment() {
|
||||||
}
|
}
|
||||||
|
|
||||||
omnipod_refresh.setOnClickListener {
|
omnipod_refresh.setOnClickListener {
|
||||||
omnipod_pod_active_alerts_ack.isEnabled = false
|
disablePodActionButtons()
|
||||||
omnipod_refresh.isEnabled = false
|
|
||||||
omnipod_pod_debug.isEnabled = false
|
|
||||||
omnipodPumpPlugin.addPodStatusRequest(OmnipodStatusRequestType.GetPodState);
|
omnipodPumpPlugin.addPodStatusRequest(OmnipodStatusRequestType.GetPodState);
|
||||||
commandQueue.readStatus("Clicked Refresh", object : Callback() {
|
commandQueue.readStatus("Clicked Refresh", object : Callback() {
|
||||||
override fun run() {
|
override fun run() {
|
||||||
activity?.runOnUiThread { updateOmipodUiElements() }
|
activity?.runOnUiThread { updatePodActionButtons() }
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
omnipod_stats.setOnClickListener {
|
omnipod_rileylink_stats.setOnClickListener {
|
||||||
if (omnipodPumpPlugin.rileyLinkService?.verifyConfiguration() == true) {
|
if (omnipodPumpPlugin.rileyLinkService?.verifyConfiguration() == true) {
|
||||||
startActivity(Intent(context, RileyLinkStatusActivity::class.java))
|
startActivity(Intent(context, RileyLinkStatusActivity::class.java))
|
||||||
} else {
|
} else {
|
||||||
|
@ -122,13 +120,11 @@ class OmnipodFragment : DaggerFragment() {
|
||||||
if (omnipodPumpPlugin.rileyLinkService?.verifyConfiguration() != true) {
|
if (omnipodPumpPlugin.rileyLinkService?.verifyConfiguration() != true) {
|
||||||
displayNotConfiguredDialog()
|
displayNotConfiguredDialog()
|
||||||
} else {
|
} else {
|
||||||
omnipod_pod_active_alerts_ack.isEnabled = false
|
disablePodActionButtons()
|
||||||
omnipod_refresh.isEnabled = false
|
|
||||||
omnipod_pod_debug.isEnabled = false
|
|
||||||
omnipodPumpPlugin.addPodStatusRequest(OmnipodStatusRequestType.AcknowledgeAlerts);
|
omnipodPumpPlugin.addPodStatusRequest(OmnipodStatusRequestType.AcknowledgeAlerts);
|
||||||
commandQueue.readStatus("Clicked Alert Ack", object : Callback() {
|
commandQueue.readStatus("Clicked Alert Ack", object : Callback() {
|
||||||
override fun run() {
|
override fun run() {
|
||||||
activity?.runOnUiThread { updateOmipodUiElements() }
|
activity?.runOnUiThread { updatePodActionButtons() }
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@ -138,13 +134,11 @@ class OmnipodFragment : DaggerFragment() {
|
||||||
if (omnipodPumpPlugin.rileyLinkService?.verifyConfiguration() != true) {
|
if (omnipodPumpPlugin.rileyLinkService?.verifyConfiguration() != true) {
|
||||||
displayNotConfiguredDialog()
|
displayNotConfiguredDialog()
|
||||||
} else {
|
} else {
|
||||||
omnipod_pod_active_alerts_ack.isEnabled = false
|
disablePodActionButtons()
|
||||||
omnipod_refresh.isEnabled = false
|
|
||||||
omnipod_pod_debug.isEnabled = false
|
|
||||||
omnipodPumpPlugin.addPodStatusRequest(OmnipodStatusRequestType.GetPodPulseLog);
|
omnipodPumpPlugin.addPodStatusRequest(OmnipodStatusRequestType.GetPodPulseLog);
|
||||||
commandQueue.readStatus("Clicked Refresh", object : Callback() {
|
commandQueue.readStatus("Clicked Refresh", object : Callback() {
|
||||||
override fun run() {
|
override fun run() {
|
||||||
activity?.runOnUiThread { updateOmipodUiElements() }
|
activity?.runOnUiThread { updatePodActionButtons() }
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@ -157,36 +151,26 @@ class OmnipodFragment : DaggerFragment() {
|
||||||
disposables += rxBus
|
disposables += rxBus
|
||||||
.toObservable(EventRileyLinkDeviceStatusChange::class.java)
|
.toObservable(EventRileyLinkDeviceStatusChange::class.java)
|
||||||
.observeOn(AndroidSchedulers.mainThread())
|
.observeOn(AndroidSchedulers.mainThread())
|
||||||
.subscribe({ updateRileyLinkUiElements() }, { fabricPrivacy.logException(it) })
|
.subscribe({
|
||||||
|
updateRileyLinkStatus()
|
||||||
|
updatePodActionButtons()
|
||||||
|
}, { fabricPrivacy.logException(it) })
|
||||||
disposables += rxBus
|
disposables += rxBus
|
||||||
.toObservable(EventOmnipodPumpValuesChanged::class.java)
|
.toObservable(EventOmnipodPumpValuesChanged::class.java)
|
||||||
.observeOn(AndroidSchedulers.mainThread())
|
.observeOn(AndroidSchedulers.mainThread())
|
||||||
.subscribe({ updateOmipodUiElements() }, { fabricPrivacy.logException(it) })
|
.subscribe({
|
||||||
|
updateOmipodStatus()
|
||||||
|
updatePodActionButtons()
|
||||||
|
}, { fabricPrivacy.logException(it) })
|
||||||
disposables += rxBus
|
disposables += rxBus
|
||||||
.toObservable(EventPreferenceChange::class.java)
|
.toObservable(EventPreferenceChange::class.java)
|
||||||
.observeOn(Schedulers.io())
|
.observeOn(Schedulers.io())
|
||||||
.subscribe({
|
.subscribe({
|
||||||
setVisibilityOfPodDebugButton()
|
updatePulseLogButton()
|
||||||
}, { fabricPrivacy.logException(it) })
|
}, { fabricPrivacy.logException(it) })
|
||||||
updateUi()
|
updateUi()
|
||||||
}
|
}
|
||||||
|
|
||||||
fun setVisibilityOfPodDebugButton() {
|
|
||||||
if (aapsOmnipodManager.isPodDebuggingOptionsEnabled) {
|
|
||||||
omnipod_pod_debug.visibility = View.VISIBLE
|
|
||||||
omnipod_pod_debug.isEnabled = podStateManager.isPodActivationCompleted && rileyLinkServiceData.rileyLinkServiceState.isReady && !commandQueue.statusInQueue()
|
|
||||||
} else {
|
|
||||||
omnipod_pod_debug.visibility = View.GONE
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun displayNotConfiguredDialog() {
|
|
||||||
context?.let {
|
|
||||||
OKDialog.show(it, resourceHelper.gs(R.string.omnipod_warning),
|
|
||||||
resourceHelper.gs(R.string.omnipod_error_operation_not_possible_no_configuration), null)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onPause() {
|
override fun onPause() {
|
||||||
super.onPause()
|
super.onPause()
|
||||||
disposables.clear()
|
disposables.clear()
|
||||||
|
@ -194,12 +178,13 @@ class OmnipodFragment : DaggerFragment() {
|
||||||
}
|
}
|
||||||
|
|
||||||
fun updateUi() {
|
fun updateUi() {
|
||||||
updateRileyLinkUiElements()
|
updateRileyLinkStatus()
|
||||||
updateOmipodUiElements()
|
updateOmipodStatus()
|
||||||
|
updatePodActionButtons()
|
||||||
}
|
}
|
||||||
|
|
||||||
@Synchronized
|
@Synchronized
|
||||||
private fun updateRileyLinkUiElements() {
|
private fun updateRileyLinkStatus() {
|
||||||
val rileyLinkServiceState = rileyLinkServiceData.rileyLinkServiceState
|
val rileyLinkServiceState = rileyLinkServiceData.rileyLinkServiceState
|
||||||
|
|
||||||
val resourceId = rileyLinkServiceState.getResourceId()
|
val resourceId = rileyLinkServiceState.getResourceId()
|
||||||
|
@ -216,11 +201,9 @@ class OmnipodFragment : DaggerFragment() {
|
||||||
omnipod_rl_status.setTextColor(if (rileyLinkServiceState.isError || rileyLinkError != null) Color.RED else Color.WHITE)
|
omnipod_rl_status.setTextColor(if (rileyLinkServiceState.isError || rileyLinkError != null) Color.RED else Color.WHITE)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun updateOmipodUiElements() {
|
fun updateOmipodStatus() {
|
||||||
updateLastConnectionUiElements()
|
updateLastConnection()
|
||||||
updateAcknowledgeAlertsUiElements()
|
updatePodStatus()
|
||||||
updatePodStatusUiElements()
|
|
||||||
setVisibilityOfPodDebugButton()
|
|
||||||
|
|
||||||
val errors = ArrayList<String>();
|
val errors = ArrayList<String>();
|
||||||
val rileyLinkErrorDescription = omnipodPumpPlugin.rileyLinkService.errorDescription
|
val rileyLinkErrorDescription = omnipodPumpPlugin.rileyLinkService.errorDescription
|
||||||
|
@ -238,11 +221,11 @@ class OmnipodFragment : DaggerFragment() {
|
||||||
omnipod_pod_tid.text = "-"
|
omnipod_pod_tid.text = "-"
|
||||||
omnipod_pod_firmware_version.text = "-"
|
omnipod_pod_firmware_version.text = "-"
|
||||||
omnipod_pod_expiry.text = "-"
|
omnipod_pod_expiry.text = "-"
|
||||||
omnipod_basabasalrate.text = "-"
|
omnipod_base_basal_rate.text = "-"
|
||||||
omnipod_reservoir.text = "-"
|
omnipod_reservoir.text = "-"
|
||||||
omnipod_tempbasal.text = "-"
|
omnipod_tempbasal.text = "-"
|
||||||
omnipod_lastbolus.text = "-"
|
omnipod_lastbolus.text = "-"
|
||||||
omnipod_lastconnection.setTextColor(Color.WHITE)
|
omnipod_pod_active_alerts.text = "-"
|
||||||
} else {
|
} else {
|
||||||
omnipod_pod_address.text = podStateManager.address.toString()
|
omnipod_pod_address.text = podStateManager.address.toString()
|
||||||
omnipod_pod_lot.text = podStateManager.lot.toString()
|
omnipod_pod_lot.text = podStateManager.lot.toString()
|
||||||
|
@ -265,7 +248,7 @@ class OmnipodFragment : DaggerFragment() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// base basal rate
|
// base basal rate
|
||||||
omnipod_basabasalrate.text = resourceHelper.gs(R.string.pump_basebasalrate, omnipodPumpPlugin.model().determineCorrectBasalSize(omnipodPumpPlugin.baseBasalRate))
|
omnipod_base_basal_rate.text = resourceHelper.gs(R.string.pump_basebasalrate, omnipodPumpPlugin.model().determineCorrectBasalSize(omnipodPumpPlugin.baseBasalRate))
|
||||||
|
|
||||||
omnipod_tempbasal.text = activePlugin.activeTreatments
|
omnipod_tempbasal.text = activePlugin.activeTreatments
|
||||||
.getTempBasalFromHistory(System.currentTimeMillis())?.toStringFull() ?: "-"
|
.getTempBasalFromHistory(System.currentTimeMillis())?.toStringFull() ?: "-"
|
||||||
|
@ -278,6 +261,8 @@ class OmnipodFragment : DaggerFragment() {
|
||||||
omnipod_reservoir.text = resourceHelper.gs(R.string.omnipod_reservoir_left, podStateManager.reservoirLevel)
|
omnipod_reservoir.text = resourceHelper.gs(R.string.omnipod_reservoir_left, podStateManager.reservoirLevel)
|
||||||
warnColors.setColorInverse(omnipod_reservoir, podStateManager.reservoirLevel, 50.0, 20.0)
|
warnColors.setColorInverse(omnipod_reservoir, podStateManager.reservoirLevel, 50.0, 20.0)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
omnipod_pod_active_alerts.text = TextUtils.join(System.lineSeparator(), aapsOmnipodUtil.getTranslatedActiveAlerts(podStateManager))
|
||||||
}
|
}
|
||||||
|
|
||||||
if (errors.size == 0) {
|
if (errors.size == 0) {
|
||||||
|
@ -295,12 +280,9 @@ class OmnipodFragment : DaggerFragment() {
|
||||||
omnipod_queue.visibility = View.VISIBLE
|
omnipod_queue.visibility = View.VISIBLE
|
||||||
omnipod_queue.text = status
|
omnipod_queue.text = status
|
||||||
}
|
}
|
||||||
|
|
||||||
omnipod_refresh.isEnabled = rileyLinkServiceData.rileyLinkServiceState.isReady && podStateManager.isPodInitialized
|
|
||||||
&& podStateManager.podProgressStatus.isAtLeast(PodProgressStatus.PAIRING_COMPLETED) && !commandQueue.statusInQueue()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun updateLastConnectionUiElements() {
|
private fun updateLastConnection() {
|
||||||
if (podStateManager.isPodInitialized && podStateManager.lastSuccessfulCommunication != null) { // Null check for backwards compatibility
|
if (podStateManager.isPodInitialized && podStateManager.lastSuccessfulCommunication != null) { // Null check for backwards compatibility
|
||||||
omnipod_lastconnection.text = readableDuration(podStateManager.lastSuccessfulCommunication)
|
omnipod_lastconnection.text = readableDuration(podStateManager.lastSuccessfulCommunication)
|
||||||
omnipod_lastconnection.setTextColor(Color.WHITE)
|
omnipod_lastconnection.setTextColor(Color.WHITE)
|
||||||
|
@ -322,7 +304,7 @@ class OmnipodFragment : DaggerFragment() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun updatePodStatusUiElements() {
|
private fun updatePodStatus() {
|
||||||
if (!podStateManager.hasPodState()) {
|
if (!podStateManager.hasPodState()) {
|
||||||
omnipod_pod_status.text = resourceHelper.gs(R.string.omnipod_pod_status_no_active_pod)
|
omnipod_pod_status.text = resourceHelper.gs(R.string.omnipod_pod_status_no_active_pod)
|
||||||
} else if (!podStateManager.isPodActivationCompleted) {
|
} else if (!podStateManager.isPodActivationCompleted) {
|
||||||
|
@ -360,16 +342,47 @@ class OmnipodFragment : DaggerFragment() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun updateAcknowledgeAlertsUiElements() {
|
private fun updatePodActionButtons() {
|
||||||
|
updateRefreshStatusButton()
|
||||||
|
updateAcknowledgeAlertsButton()
|
||||||
|
updatePulseLogButton()
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun disablePodActionButtons() {
|
||||||
|
omnipod_pod_active_alerts_ack.isEnabled = false
|
||||||
|
omnipod_refresh.isEnabled = false
|
||||||
|
omnipod_pod_debug.isEnabled = false
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun updateRefreshStatusButton() {
|
||||||
|
omnipod_refresh.isEnabled = rileyLinkServiceData.rileyLinkServiceState.isReady && podStateManager.isPodInitialized
|
||||||
|
&& podStateManager.podProgressStatus.isAtLeast(PodProgressStatus.PAIRING_COMPLETED) && !commandQueue.statusInQueue()
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun updateAcknowledgeAlertsButton() {
|
||||||
if (podStateManager.isPodInitialized && podStateManager.hasActiveAlerts() && !podStateManager.isPodDead) {
|
if (podStateManager.isPodInitialized && podStateManager.hasActiveAlerts() && !podStateManager.isPodDead) {
|
||||||
omnipod_pod_active_alerts.text = TextUtils.join(System.lineSeparator(), aapsOmnipodUtil.getTranslatedActiveAlerts(podStateManager))
|
|
||||||
omnipod_pod_active_alerts_ack.isEnabled = rileyLinkServiceData.rileyLinkServiceState.isReady && !commandQueue.statusInQueue()
|
omnipod_pod_active_alerts_ack.isEnabled = rileyLinkServiceData.rileyLinkServiceState.isReady && !commandQueue.statusInQueue()
|
||||||
} else {
|
} else {
|
||||||
omnipod_pod_active_alerts.text = "-"
|
|
||||||
omnipod_pod_active_alerts_ack.isEnabled = false
|
omnipod_pod_active_alerts_ack.isEnabled = false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun updatePulseLogButton() {
|
||||||
|
if (aapsOmnipodManager.isPodDebuggingOptionsEnabled) {
|
||||||
|
omnipod_pod_debug.visibility = View.VISIBLE
|
||||||
|
omnipod_pod_debug.isEnabled = podStateManager.isPodActivationCompleted && rileyLinkServiceData.rileyLinkServiceState.isReady && !commandQueue.statusInQueue()
|
||||||
|
} else {
|
||||||
|
omnipod_pod_debug.visibility = View.GONE
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun displayNotConfiguredDialog() {
|
||||||
|
context?.let {
|
||||||
|
OKDialog.show(it, resourceHelper.gs(R.string.omnipod_warning),
|
||||||
|
resourceHelper.gs(R.string.omnipod_error_operation_not_possible_no_configuration), null)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private fun readableDuration(dateTime: DateTime): String {
|
private fun readableDuration(dateTime: DateTime): String {
|
||||||
val minutes = Duration(dateTime, DateTime.now()).standardMinutes.toInt()
|
val minutes = Duration(dateTime, DateTime.now()).standardMinutes.toInt()
|
||||||
when {
|
when {
|
||||||
|
|
|
@ -452,7 +452,7 @@
|
||||||
android:textSize="14sp" />
|
android:textSize="14sp" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/omnipod_basabasalrate"
|
android:id="@+id/omnipod_base_basal_rate"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_weight="1"
|
android:layout_weight="1"
|
||||||
|
@ -707,7 +707,7 @@
|
||||||
android:text="@string/omnipod_ack_short" />
|
android:text="@string/omnipod_ack_short" />
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
android:id="@+id/omnipod_stats"
|
android:id="@+id/omnipod_rileylink_stats"
|
||||||
style="@style/ButtonSmallFontStyle"
|
style="@style/ButtonSmallFontStyle"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue