- started working on PodInitWizard
- changed OmnipodCommunicationManagerInterface a little to include operation Type and Receiver Interface (not fully done yet, but what is there can be used) - started working on PodManagamentActivity.kt
This commit is contained in:
parent
3203ad5cde
commit
b7b47970ed
16 changed files with 363 additions and 92 deletions
|
@ -124,7 +124,7 @@
|
|||
</receiver>
|
||||
|
||||
<!-- NSClient -->
|
||||
<receiver
|
||||
<receiver
|
||||
android:name=".plugins.general.nsclient.receivers.DBAccessReceiver"
|
||||
android:enabled="true"
|
||||
android:exported="true">
|
||||
|
@ -155,7 +155,7 @@
|
|||
<service
|
||||
android:name=".services.DataService"
|
||||
android:exported="false"
|
||||
android:permission="android.permission.BIND_JOB_SERVICE"/>
|
||||
android:permission="android.permission.BIND_JOB_SERVICE" />
|
||||
<service
|
||||
android:name=".services.LocationService"
|
||||
android:exported="false" />
|
||||
|
@ -306,6 +306,8 @@
|
|||
android:enabled="true"
|
||||
android:exported="true" />
|
||||
|
||||
<activity android:name=".plugins.pump.omnipod.dialogs.PodManagementActivity" />
|
||||
<activity android:name=".plugins.pump.omnipod.dialogs.InitPodWizard" />
|
||||
|
||||
<uses-library
|
||||
android:name="org.apache.http.legacy"
|
||||
|
|
|
@ -13,7 +13,7 @@ import info.nightscout.androidaps.utils.Round;
|
|||
|
||||
/**
|
||||
* Created by andy on 02/05/2018.
|
||||
*
|
||||
* <p>
|
||||
* Most of this defintions is intended for VirtualPump only, but they can be used by other plugins.
|
||||
*/
|
||||
|
||||
|
@ -60,7 +60,7 @@ public enum PumpType {
|
|||
0.02d, 0.01d, DoseStepSize.InsightBolus, PumpCapability.InsightCapabilities), //
|
||||
|
||||
// Animas
|
||||
AnimasVibe("Animas Vibe",ManufacturerType.Animas, "Vibe", 0.05d, null, // AnimasBolus?
|
||||
AnimasVibe("Animas Vibe", ManufacturerType.Animas, "Vibe", 0.05d, null, // AnimasBolus?
|
||||
new DoseSettings(0.05d, 30, 12 * 60, 0.05d), //
|
||||
PumpTempBasalType.Percent, //
|
||||
new DoseSettings(10, 30, 24 * 60, 0d, 300d), PumpCapability.BasalRate_Duration30minAllowed, //
|
||||
|
@ -91,7 +91,7 @@ public enum PumpType {
|
|||
|
||||
|
||||
// Insulet
|
||||
Insulet_Omnipod("Insulet Omnipod", ManufacturerType.Insulet, "Omnipod", 0.05d, null, //
|
||||
Insulet_Omnipod("Insulet Omnipod", ManufacturerType.Insulet, "Omnipod (Eros)", 0.05d, null, //
|
||||
new DoseSettings(0.05d, 30, 8 * 60, 0.05d), //
|
||||
PumpTempBasalType.Absolute, //
|
||||
new DoseSettings(0.05d, 30, 12 * 60, 0d, 30.0d), PumpCapability.BasalRate_Duration30minAllowed, // cannot exceed max basal rate 30u/hr
|
||||
|
@ -101,13 +101,13 @@ public enum PumpType {
|
|||
new DoseSettings(0.05d, 30, 8 * 60, 0.05d), //
|
||||
PumpTempBasalType.Absolute, //
|
||||
new DoseSettings(0.05d, 30, 12 * 60, 0d, 30.0d), PumpCapability.BasalRate_Duration30minAllowed, // cannot exceed max basal rate 30u/hr
|
||||
0.05d, 0.05d, null, PumpCapability.VirtualPumpCapabilities),
|
||||
0.05d, 0.05d, null, PumpCapability.VirtualPumpCapabilities), // TODO just copied OmniPod for now
|
||||
|
||||
// Medtronic
|
||||
Medtronic_512_712("Medtronic 512/712", ManufacturerType.Medtronic, "512/712", 0.1d, null, //
|
||||
new DoseSettings(0.05d, 30, 8 * 60, 0.05d), //
|
||||
PumpTempBasalType.Absolute, //
|
||||
new DoseSettings(0.05d, 30, 24*60, 0d, 35d), PumpCapability.BasalRate_Duration30minAllowed, //
|
||||
new DoseSettings(0.05d, 30, 24 * 60, 0d, 35d), PumpCapability.BasalRate_Duration30minAllowed, //
|
||||
0.05d, 0.05d, null, PumpCapability.MedtronicCapabilities), //
|
||||
|
||||
Medtronic_515_715("Medtronic 515/715", "515/715", Medtronic_512_712),
|
||||
|
@ -116,7 +116,7 @@ public enum PumpType {
|
|||
Medtronic_523_723_Revel("Medtronic 523/723 (Revel)", ManufacturerType.Medtronic, "523/723 (Revel)", 0.05d, null, //
|
||||
new DoseSettings(0.05d, 30, 8 * 60, 0.05d), //
|
||||
PumpTempBasalType.Absolute, //
|
||||
new DoseSettings(0.05d, 30, 24*60, 0d, 35d), PumpCapability.BasalRate_Duration30minAllowed, //
|
||||
new DoseSettings(0.05d, 30, 24 * 60, 0d, 35d), PumpCapability.BasalRate_Duration30minAllowed, //
|
||||
0.025d, 0.025d, DoseStepSize.MedtronicVeoBasal, PumpCapability.MedtronicCapabilities), //
|
||||
|
||||
Medtronic_554_754_Veo("Medtronic 554/754 (Veo)", "554/754 (Veo)", Medtronic_523_723_Revel), // TODO
|
||||
|
@ -139,8 +139,7 @@ public enum PumpType {
|
|||
TandemTSlimX2("Tandem t:slim X2", "t:slim X2", TandemTSlim), //
|
||||
|
||||
// MDI
|
||||
MDI("MDI", ManufacturerType.AndroidAPS, "MDI")
|
||||
;
|
||||
MDI("MDI", ManufacturerType.AndroidAPS, "MDI");
|
||||
|
||||
|
||||
private String description;
|
||||
|
@ -170,24 +169,21 @@ public enum PumpType {
|
|||
}
|
||||
|
||||
|
||||
PumpType(String description, String model, PumpType parent)
|
||||
{
|
||||
PumpType(String description, String model, PumpType parent) {
|
||||
this.description = description;
|
||||
this.parent = parent;
|
||||
this.model = model;
|
||||
}
|
||||
|
||||
|
||||
PumpType(String description, ManufacturerType manufacturer, String model)
|
||||
{
|
||||
PumpType(String description, ManufacturerType manufacturer, String model) {
|
||||
this.description = description;
|
||||
this.manufacturer = manufacturer;
|
||||
this.model = model;
|
||||
}
|
||||
|
||||
|
||||
PumpType(String description, String model, PumpType parent, PumpCapability pumpCapability)
|
||||
{
|
||||
PumpType(String description, String model, PumpType parent, PumpCapability pumpCapability) {
|
||||
this.description = description;
|
||||
this.parent = parent;
|
||||
this.pumpCapability = pumpCapability;
|
||||
|
@ -196,9 +192,8 @@ public enum PumpType {
|
|||
|
||||
PumpType(String description, ManufacturerType manufacturer, String model, double bolusSize, DoseStepSize specialBolusSize, //
|
||||
DoseSettings extendedBolusSettings, //
|
||||
PumpTempBasalType pumpTempBasalType, DoseSettings tbrSettings, PumpCapability specialBasalDurations, //
|
||||
double baseBasalMinValue, double baseBasalStep, DoseStepSize baseBasalSpecialSteps, PumpCapability pumpCapability)
|
||||
{
|
||||
PumpTempBasalType pumpTempBasalType, DoseSettings tbrSettings, PumpCapability specialBasalDurations, //
|
||||
double baseBasalMinValue, double baseBasalStep, DoseStepSize baseBasalSpecialSteps, PumpCapability pumpCapability) {
|
||||
this(description, manufacturer, model, bolusSize, specialBolusSize, extendedBolusSettings, pumpTempBasalType, tbrSettings, specialBasalDurations, baseBasalMinValue, null, baseBasalStep, baseBasalSpecialSteps, pumpCapability);
|
||||
}
|
||||
|
||||
|
|
|
@ -49,6 +49,7 @@ import info.nightscout.androidaps.plugins.pump.omnipod.comm.ui.OmnipodUITask;
|
|||
import info.nightscout.androidaps.plugins.pump.omnipod.defs.OmnipodCommandType;
|
||||
import info.nightscout.androidaps.plugins.pump.omnipod.defs.OmnipodCommunicationManagerInterface;
|
||||
import info.nightscout.androidaps.plugins.pump.omnipod.defs.OmnipodCustomActionType;
|
||||
import info.nightscout.androidaps.plugins.pump.omnipod.defs.OmnipodPodType;
|
||||
import info.nightscout.androidaps.plugins.pump.omnipod.defs.state.PodSessionState;
|
||||
import info.nightscout.androidaps.plugins.pump.omnipod.events.EventOmnipodPumpValuesChanged;
|
||||
import info.nightscout.androidaps.plugins.pump.omnipod.events.EventOmnipodRefreshButtonState;
|
||||
|
@ -104,6 +105,8 @@ public class OmnipodPumpPlugin extends PumpPluginAbstract implements PumpInterfa
|
|||
|
||||
displayConnectionMessages = false;
|
||||
|
||||
OmnipodUtil.setOmnipodPodType(OmnipodPodType.Eros);
|
||||
|
||||
if (omnipodCommunicationManager == null) {
|
||||
omnipodCommunicationManager = OmnipodCommunicationManager.getInstance();
|
||||
}
|
||||
|
|
|
@ -6,6 +6,7 @@ import org.slf4j.Logger;
|
|||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import info.nightscout.androidaps.data.Profile;
|
||||
import info.nightscout.androidaps.data.PumpEnactResult;
|
||||
import info.nightscout.androidaps.logging.L;
|
||||
import info.nightscout.androidaps.plugins.pump.common.data.TempBasalPair;
|
||||
import info.nightscout.androidaps.plugins.pump.common.hw.rileylink.RileyLinkCommunicationManager;
|
||||
|
@ -14,7 +15,6 @@ import info.nightscout.androidaps.plugins.pump.common.hw.rileylink.ble.RFSpy;
|
|||
import info.nightscout.androidaps.plugins.pump.common.hw.rileylink.ble.data.RLMessage;
|
||||
import info.nightscout.androidaps.plugins.pump.common.hw.rileylink.ble.defs.RLMessageType;
|
||||
import info.nightscout.androidaps.plugins.pump.omnipod.OmnipodManager;
|
||||
import info.nightscout.androidaps.plugins.pump.omnipod.comm.data.PodCommResponse;
|
||||
import info.nightscout.androidaps.plugins.pump.omnipod.defs.OmnipodCommunicationManagerInterface;
|
||||
import info.nightscout.androidaps.plugins.pump.omnipod.defs.state.PodSessionState;
|
||||
import info.nightscout.androidaps.plugins.pump.omnipod.util.OmnipodUtil;
|
||||
|
@ -95,7 +95,7 @@ public class OmnipodCommunicationManager extends RileyLinkCommunicationManager i
|
|||
|
||||
// This are just skeleton methods, we need to see what we can get returned and act accordingly
|
||||
|
||||
public PodCommResponse initPod() {
|
||||
public PumpEnactResult initPod() {
|
||||
omnipodManager.pairAndPrime();
|
||||
|
||||
|
||||
|
@ -103,41 +103,41 @@ public class OmnipodCommunicationManager extends RileyLinkCommunicationManager i
|
|||
}
|
||||
|
||||
|
||||
public PodCommResponse getPodStatus() {
|
||||
public PumpEnactResult getPodStatus() {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
public PodCommResponse deactivatePod() {
|
||||
public PumpEnactResult deactivatePod() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public PodCommResponse setBasalProfile(Profile profile) {
|
||||
public PumpEnactResult setBasalProfile(Profile profile) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public PodCommResponse resetPodStatus() {
|
||||
public PumpEnactResult resetPodStatus() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public PodCommResponse setBolus(Double parameter) {
|
||||
public PumpEnactResult setBolus(Double parameter) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public PodCommResponse cancelBolus() {
|
||||
public PumpEnactResult cancelBolus() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public PodCommResponse setTemporaryBasal(TempBasalPair tbr) {
|
||||
public PumpEnactResult setTemporaryBasal(TempBasalPair tbr) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public PodCommResponse cancelTemporaryBasal() {
|
||||
public PumpEnactResult cancelTemporaryBasal() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public PodCommResponse acknowledgeAlerts() {
|
||||
public PumpEnactResult acknowledgeAlerts() {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
|
|
@ -4,13 +4,15 @@ import org.slf4j.Logger;
|
|||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import info.nightscout.androidaps.data.Profile;
|
||||
import info.nightscout.androidaps.data.PumpEnactResult;
|
||||
import info.nightscout.androidaps.logging.L;
|
||||
import info.nightscout.androidaps.plugins.bus.RxBus;
|
||||
import info.nightscout.androidaps.plugins.pump.common.data.TempBasalPair;
|
||||
import info.nightscout.androidaps.plugins.pump.omnipod.comm.data.PodCommResponse;
|
||||
import info.nightscout.androidaps.plugins.pump.omnipod.defs.OmnipodCommandType;
|
||||
import info.nightscout.androidaps.plugins.pump.omnipod.defs.OmnipodCommunicationManagerInterface;
|
||||
import info.nightscout.androidaps.plugins.pump.omnipod.defs.PodDeviceState;
|
||||
import info.nightscout.androidaps.plugins.pump.omnipod.defs.PodInitActionType;
|
||||
import info.nightscout.androidaps.plugins.pump.omnipod.defs.PodInitReceiver;
|
||||
import info.nightscout.androidaps.plugins.pump.omnipod.defs.PodResponseType;
|
||||
import info.nightscout.androidaps.plugins.pump.omnipod.events.EventOmnipodDeviceStatusChange;
|
||||
import info.nightscout.androidaps.plugins.pump.omnipod.events.EventOmnipodPumpValuesChanged;
|
||||
|
@ -25,7 +27,7 @@ public class OmnipodUITask {
|
|||
private static final Logger LOG = LoggerFactory.getLogger(L.PUMP);
|
||||
|
||||
public OmnipodCommandType commandType;
|
||||
public PodCommResponse returnData;
|
||||
public PumpEnactResult returnData;
|
||||
private String errorDescription;
|
||||
private Object[] parameters;
|
||||
private PodResponseType responseType;
|
||||
|
@ -55,7 +57,7 @@ public class OmnipodUITask {
|
|||
// break;
|
||||
|
||||
case InitPod:
|
||||
returnData = communicationManager.initPod();
|
||||
returnData = communicationManager.initPod((PodInitActionType) parameters[0], (PodInitReceiver) parameters[1]);
|
||||
break;
|
||||
|
||||
case DeactivatePod:
|
||||
|
@ -188,7 +190,7 @@ public class OmnipodUITask {
|
|||
if (returnData == null) {
|
||||
return false;
|
||||
}
|
||||
return returnData.isAcknowledged();
|
||||
return returnData.success;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
package info.nightscout.androidaps.plugins.pump.omnipod.defs;
|
||||
|
||||
import info.nightscout.androidaps.data.Profile;
|
||||
import info.nightscout.androidaps.data.PumpEnactResult;
|
||||
import info.nightscout.androidaps.plugins.pump.common.data.TempBasalPair;
|
||||
import info.nightscout.androidaps.plugins.pump.omnipod.comm.data.PodCommResponse;
|
||||
|
||||
public interface OmnipodCommunicationManagerInterface {
|
||||
|
||||
|
@ -11,56 +11,56 @@ public interface OmnipodCommunicationManagerInterface {
|
|||
/**
|
||||
* Initialize Pod
|
||||
*/
|
||||
PodCommResponse initPod();
|
||||
PumpEnactResult initPod(PodInitActionType podInitActionType, PodInitReceiver podIniReceiver);
|
||||
|
||||
/**
|
||||
* Get Pod Status (is pod running, battery left ?, reservoir, etc)
|
||||
*/
|
||||
PodCommResponse getPodStatus();
|
||||
PumpEnactResult getPodStatus();
|
||||
|
||||
/**
|
||||
* Deactivate Pod
|
||||
*/
|
||||
PodCommResponse deactivatePod();
|
||||
PumpEnactResult deactivatePod();
|
||||
|
||||
/**
|
||||
* Set Basal Profile
|
||||
*/
|
||||
PodCommResponse setBasalProfile(Profile profile);
|
||||
PumpEnactResult setBasalProfile(Profile profile);
|
||||
|
||||
/**
|
||||
* Reset Pod status (if we forget to disconnect Pod and want to init new pod, and want to forget current pod)
|
||||
*/
|
||||
PodCommResponse resetPodStatus();
|
||||
PumpEnactResult resetPodStatus();
|
||||
|
||||
/**
|
||||
* Set Bolus
|
||||
*
|
||||
* @param amount amount of bolus in U
|
||||
*/
|
||||
PodCommResponse setBolus(Double amount);
|
||||
PumpEnactResult setBolus(Double amount);
|
||||
|
||||
/**
|
||||
* Cancel Bolus (if bolus is already stopped, return acknowledgment)
|
||||
*/
|
||||
PodCommResponse cancelBolus();
|
||||
PumpEnactResult cancelBolus();
|
||||
|
||||
/**
|
||||
* Set Temporary Basal
|
||||
*
|
||||
* @param tbr TempBasalPair object containg amount and duration in minutes
|
||||
* @param tbr TempBasalPair object containing amount and duration in minutes
|
||||
*/
|
||||
PodCommResponse setTemporaryBasal(TempBasalPair tbr);
|
||||
PumpEnactResult setTemporaryBasal(TempBasalPair tbr);
|
||||
|
||||
/**
|
||||
* Cancel Temporary Basal (if TB is already stopped, return acknowledgment)
|
||||
*/
|
||||
PodCommResponse cancelTemporaryBasal();
|
||||
PumpEnactResult cancelTemporaryBasal();
|
||||
|
||||
/**
|
||||
* Acknowledge alerts
|
||||
*/
|
||||
PodCommResponse acknowledgeAlerts();
|
||||
PumpEnactResult acknowledgeAlerts();
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,6 @@
|
|||
package info.nightscout.androidaps.plugins.pump.omnipod.defs;
|
||||
|
||||
public enum OmnipodPodType {
|
||||
Eros, //
|
||||
Dash
|
||||
}
|
|
@ -0,0 +1,23 @@
|
|||
package info.nightscout.androidaps.plugins.pump.omnipod.defs;
|
||||
|
||||
public enum PodInitActionType {
|
||||
|
||||
PairAndPrime, //
|
||||
PairPod(PairAndPrime), //
|
||||
PrimePod(PairAndPrime), //
|
||||
|
||||
|
||||
;
|
||||
|
||||
|
||||
PodInitActionType() {
|
||||
|
||||
}
|
||||
|
||||
|
||||
private PodInitActionType(PodInitActionType parent) {
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
package info.nightscout.androidaps.plugins.pump.omnipod.defs;
|
||||
|
||||
public interface PodInitReceiver {
|
||||
|
||||
void returnInitTaskStatus(PodInitActionType podInitActionType, boolean isSuccess, String errorMessage);
|
||||
|
||||
}
|
|
@ -0,0 +1,14 @@
|
|||
package info.nightscout.androidaps.plugins.pump.omnipod.dialogs
|
||||
|
||||
import info.nightscout.androidaps.activities.NoSplashAppCompatActivity
|
||||
|
||||
class InitPodWizard : NoSplashAppCompatActivity() {
|
||||
|
||||
|
||||
init {
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,41 @@
|
|||
package info.nightscout.androidaps.plugins.pump.omnipod.dialogs
|
||||
|
||||
import android.os.Bundle
|
||||
import info.nightscout.androidaps.R
|
||||
import info.nightscout.androidaps.activities.NoSplashActivity
|
||||
import kotlinx.android.synthetic.main.omnipod_pod_mgmt.*
|
||||
|
||||
class PodManagementActivity : NoSplashActivity() {
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
setContentView(R.layout.omnipod_pod_mgmt)
|
||||
|
||||
initpod_init_pod.setOnClickListener {
|
||||
initPodAction()
|
||||
}
|
||||
|
||||
initpod_remove_pod.setOnClickListener {
|
||||
removePodAction()
|
||||
}
|
||||
|
||||
initpod_reset_pod.setOnClickListener {
|
||||
resetPodAction()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
fun initPodAction() {
|
||||
|
||||
}
|
||||
|
||||
fun removePodAction() {
|
||||
|
||||
}
|
||||
|
||||
fun resetPodAction() {
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -27,6 +27,7 @@ import info.nightscout.androidaps.plugins.pump.common.hw.rileylink.data.RLHistor
|
|||
import info.nightscout.androidaps.plugins.pump.omnipod.OmnipodPumpPlugin;
|
||||
import info.nightscout.androidaps.plugins.pump.omnipod.comm.OmnipodCommunicationManager;
|
||||
import info.nightscout.androidaps.plugins.pump.omnipod.defs.OmnipodCommandType;
|
||||
import info.nightscout.androidaps.plugins.pump.omnipod.defs.OmnipodPodType;
|
||||
import info.nightscout.androidaps.plugins.pump.omnipod.defs.PodDeviceState;
|
||||
import info.nightscout.androidaps.plugins.pump.omnipod.defs.state.PodSessionState;
|
||||
import info.nightscout.androidaps.plugins.pump.omnipod.events.EventOmnipodDeviceStatusChange;
|
||||
|
@ -50,6 +51,7 @@ public class OmnipodUtil extends RileyLinkUtil {
|
|||
private static PodSessionState podSessionState;
|
||||
private static PodDeviceState podDeviceState;
|
||||
private static OmnipodPumpPlugin omnipodPumpPlugin;
|
||||
private static OmnipodPodType omnipodPodType;
|
||||
|
||||
public static Gson getGsonInstance() {
|
||||
return gsonInstance;
|
||||
|
@ -191,4 +193,11 @@ public class OmnipodUtil extends RileyLinkUtil {
|
|||
}
|
||||
|
||||
|
||||
public static void setOmnipodPodType(OmnipodPodType omnipodPodType) {
|
||||
OmnipodUtil.omnipodPodType = omnipodPodType;
|
||||
}
|
||||
|
||||
public static OmnipodPodType getOmnipodPodType() {
|
||||
return omnipodPodType;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,65 +1,36 @@
|
|||
package info.nightscout.androidaps.plugins.pump.omnipod_dash;
|
||||
|
||||
import android.content.ComponentName;
|
||||
import android.content.ServiceConnection;
|
||||
import android.os.Bundle;
|
||||
import android.os.IBinder;
|
||||
import android.os.SystemClock;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
import org.joda.time.LocalDateTime;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Calendar;
|
||||
import java.util.GregorianCalendar;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import info.nightscout.androidaps.BuildConfig;
|
||||
import info.nightscout.androidaps.MainApp;
|
||||
import info.nightscout.androidaps.R;
|
||||
import info.nightscout.androidaps.data.DetailedBolusInfo;
|
||||
import info.nightscout.androidaps.data.Profile;
|
||||
import info.nightscout.androidaps.data.PumpEnactResult;
|
||||
import info.nightscout.androidaps.db.Source;
|
||||
import info.nightscout.androidaps.db.TemporaryBasal;
|
||||
import info.nightscout.androidaps.events.EventRefreshOverview;
|
||||
import info.nightscout.androidaps.interfaces.PluginDescription;
|
||||
import info.nightscout.androidaps.interfaces.PluginType;
|
||||
import info.nightscout.androidaps.interfaces.PumpInterface;
|
||||
import info.nightscout.androidaps.logging.L;
|
||||
import info.nightscout.androidaps.plugins.bus.RxBus;
|
||||
import info.nightscout.androidaps.plugins.general.actions.defs.CustomAction;
|
||||
import info.nightscout.androidaps.plugins.general.actions.defs.CustomActionType;
|
||||
import info.nightscout.androidaps.plugins.pump.common.PumpPluginAbstract;
|
||||
import info.nightscout.androidaps.plugins.pump.common.data.TempBasalPair;
|
||||
import info.nightscout.androidaps.plugins.pump.common.defs.PumpDriverState;
|
||||
import info.nightscout.androidaps.plugins.pump.common.defs.PumpType;
|
||||
import info.nightscout.androidaps.plugins.pump.common.hw.rileylink.RileyLinkConst;
|
||||
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.omnipod.OmnipodFragment;
|
||||
import info.nightscout.androidaps.plugins.pump.omnipod.OmnipodPumpPlugin;
|
||||
import info.nightscout.androidaps.plugins.pump.omnipod.comm.OmnipodCommunicationManager;
|
||||
import info.nightscout.androidaps.plugins.pump.omnipod.comm.ui.OmnipodUIComm;
|
||||
import info.nightscout.androidaps.plugins.pump.omnipod.comm.ui.OmnipodUITask;
|
||||
import info.nightscout.androidaps.plugins.pump.omnipod.defs.OmnipodCommandType;
|
||||
import info.nightscout.androidaps.plugins.pump.omnipod.defs.OmnipodCommunicationManagerInterface;
|
||||
import info.nightscout.androidaps.plugins.pump.omnipod.defs.OmnipodCustomActionType;
|
||||
import info.nightscout.androidaps.plugins.pump.omnipod.defs.OmnipodPodType;
|
||||
import info.nightscout.androidaps.plugins.pump.omnipod.events.EventOmnipodPumpValuesChanged;
|
||||
import info.nightscout.androidaps.plugins.pump.omnipod.events.EventOmnipodRefreshButtonState;
|
||||
import info.nightscout.androidaps.plugins.pump.omnipod.service.OmnipodPumpStatus;
|
||||
import info.nightscout.androidaps.plugins.pump.omnipod.service.RileyLinkOmnipodService;
|
||||
import info.nightscout.androidaps.plugins.pump.omnipod.util.OmnipodConst;
|
||||
import info.nightscout.androidaps.plugins.pump.omnipod.util.OmnipodUtil;
|
||||
import info.nightscout.androidaps.plugins.pump.omnipod_dash.comm.OmnipodDashCommunicationManager;
|
||||
import info.nightscout.androidaps.plugins.treatments.TreatmentsPlugin;
|
||||
import info.nightscout.androidaps.utils.SP;
|
||||
|
||||
/**
|
||||
* Created by andy on 23.04.18.
|
||||
|
@ -103,6 +74,8 @@ public class OmnipodDashPumpPlugin extends OmnipodPumpPlugin implements PumpInte
|
|||
|
||||
displayConnectionMessages = false;
|
||||
|
||||
OmnipodUtil.setOmnipodPodType(OmnipodPodType.Dash);
|
||||
|
||||
if (omnipodCommunicationManager == null) {
|
||||
omnipodCommunicationManager = OmnipodDashCommunicationManager.getInstance();
|
||||
}
|
||||
|
@ -157,7 +130,6 @@ public class OmnipodDashPumpPlugin extends OmnipodPumpPlugin implements PumpInte
|
|||
}
|
||||
|
||||
|
||||
|
||||
// FIXME
|
||||
public Class getServiceClass() {
|
||||
return RileyLinkOmnipodService.class;
|
||||
|
@ -289,9 +261,6 @@ public class OmnipodDashPumpPlugin extends OmnipodPumpPlugin implements PumpInte
|
|||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// OPERATIONS not supported by Pump or Plugin
|
||||
|
||||
//private List<CustomAction> customActions = null;
|
||||
|
@ -321,5 +290,4 @@ public class OmnipodDashPumpPlugin extends OmnipodPumpPlugin implements PumpInte
|
|||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -6,12 +6,14 @@ import org.slf4j.Logger;
|
|||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import info.nightscout.androidaps.data.Profile;
|
||||
import info.nightscout.androidaps.data.PumpEnactResult;
|
||||
import info.nightscout.androidaps.logging.L;
|
||||
import info.nightscout.androidaps.plugins.pump.common.data.TempBasalPair;
|
||||
import info.nightscout.androidaps.plugins.pump.common.hw.rileylink.RileyLinkConst;
|
||||
import info.nightscout.androidaps.plugins.pump.common.hw.rileylink.ble.RFSpy;
|
||||
import info.nightscout.androidaps.plugins.pump.omnipod.comm.data.PodCommResponse;
|
||||
import info.nightscout.androidaps.plugins.pump.omnipod.defs.OmnipodCommunicationManagerInterface;
|
||||
import info.nightscout.androidaps.plugins.pump.omnipod.defs.PodInitActionType;
|
||||
import info.nightscout.androidaps.plugins.pump.omnipod.defs.PodInitReceiver;
|
||||
import info.nightscout.androidaps.plugins.pump.omnipod.defs.state.PodSessionState;
|
||||
import info.nightscout.androidaps.plugins.pump.omnipod.util.OmnipodUtil;
|
||||
import info.nightscout.androidaps.utils.SP;
|
||||
|
@ -64,7 +66,7 @@ public class OmnipodDashCommunicationManager implements OmnipodCommunicationMana
|
|||
|
||||
// This are just skeleton methods, we need to see what we can get returned and act accordingly
|
||||
|
||||
public PodCommResponse initPod() {
|
||||
public PumpEnactResult initPod() {
|
||||
//omnipodManager.pairAndPrime();
|
||||
|
||||
|
||||
|
@ -72,41 +74,46 @@ public class OmnipodDashCommunicationManager implements OmnipodCommunicationMana
|
|||
}
|
||||
|
||||
|
||||
public PodCommResponse getPodStatus() {
|
||||
@Override
|
||||
public PumpEnactResult initPod(PodInitActionType podInitActionType, PodInitReceiver podInitReceiver) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public PumpEnactResult getPodStatus() {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
public PodCommResponse deactivatePod() {
|
||||
public PumpEnactResult deactivatePod() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public PodCommResponse setBasalProfile(Profile profile) {
|
||||
public PumpEnactResult setBasalProfile(Profile profile) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public PodCommResponse resetPodStatus() {
|
||||
public PumpEnactResult resetPodStatus() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public PodCommResponse setBolus(Double parameter) {
|
||||
public PumpEnactResult setBolus(Double parameter) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public PodCommResponse cancelBolus() {
|
||||
public PumpEnactResult cancelBolus() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public PodCommResponse setTemporaryBasal(TempBasalPair tbr) {
|
||||
public PumpEnactResult setTemporaryBasal(TempBasalPair tbr) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public PodCommResponse cancelTemporaryBasal() {
|
||||
public PumpEnactResult cancelTemporaryBasal() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public PodCommResponse acknowledgeAlerts() {
|
||||
public PumpEnactResult acknowledgeAlerts() {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
|
106
app/src/main/res/layout/omnipod_initpod.xml
Normal file
106
app/src/main/res/layout/omnipod_initpod.xml
Normal file
|
@ -0,0 +1,106 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical"
|
||||
tools:context=".plugins.pump.omnipod.dialogs.InitPodWizard">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<ImageButton
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="16dp"
|
||||
android:layout_marginTop="16dp"
|
||||
android:layout_weight="1"
|
||||
android:background="@android:color/transparent"
|
||||
android:onClick="exitPressed"
|
||||
app:srcCompat="@drawable/ic_exit_to_app" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/sw_exit"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="bottom"
|
||||
android:layout_marginStart="10dp"
|
||||
android:layout_weight="1"
|
||||
android:text="@string/exit"
|
||||
android:textAppearance="@android:style/TextAppearance.Material.Medium"
|
||||
android:textStyle="bold" />
|
||||
</LinearLayout>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/sw_content"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:keepScreenOn="true"
|
||||
android:textAlignment="center"
|
||||
android:textColor="#FFFFFF"
|
||||
android:textSize="32sp"
|
||||
tools:text="Title" />
|
||||
|
||||
<ScrollView
|
||||
android:id="@+id/sw_scrollview"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp"
|
||||
android:layout_weight="1">
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/sw_content_fields"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center_vertical|center_horizontal"
|
||||
android:orientation="vertical"
|
||||
android:padding="16dp" />
|
||||
</ScrollView>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/sw_content_controls"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="bottom|center_horizontal"
|
||||
android:background="@color/black_overlay"
|
||||
android:orientation="horizontal"
|
||||
android:paddingLeft="16dp"
|
||||
android:paddingRight="16dp">
|
||||
|
||||
<Button
|
||||
android:id="@+id/previous_button"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@android:color/transparent"
|
||||
android:onClick="showPreviousPage"
|
||||
android:text="@string/previous_button"
|
||||
android:textColor="#FFFFFF" />
|
||||
|
||||
<View
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_weight="1" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/next_button"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@android:color/transparent"
|
||||
android:onClick="showNextPage"
|
||||
android:text="@string/next_button"
|
||||
android:textColor="#FFFFFF" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/finish_button"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@android:color/transparent"
|
||||
android:onClick="finishSetupWizard"
|
||||
android:text="@string/setupwizard_finish"
|
||||
android:textColor="#FFFFFF" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</LinearLayout>
|
88
app/src/main/res/layout/omnipod_pod_mgmt.xml
Normal file
88
app/src/main/res/layout/omnipod_pod_mgmt.xml
Normal file
|
@ -0,0 +1,88 @@
|
|||
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
tools:context=".plugins.pump.omnipod.dialogs.PodManagementActivity">
|
||||
|
||||
<ScrollView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/initpod_buttons_layout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/textView3"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="120dp"
|
||||
android:layout_weight="0.5"
|
||||
android:text="Pod Management" />
|
||||
|
||||
<info.nightscout.androidaps.utils.SingleClickButton
|
||||
android:id="@+id/initpod_init_pod"
|
||||
style="?android:attr/buttonStyle"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="3dp"
|
||||
android:layout_marginLeft="10dp"
|
||||
android:layout_marginRight="10dp"
|
||||
android:layout_marginTop="3dp"
|
||||
android:layout_weight="0.5"
|
||||
android:drawableTop="@drawable/icon_cp_pump_canula"
|
||||
android:text="@string/careportal_profileswitch" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/textView4"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="60dp"
|
||||
android:layout_weight="0.5"
|
||||
android:text=" " />
|
||||
|
||||
<info.nightscout.androidaps.utils.SingleClickButton
|
||||
android:id="@+id/initpod_remove_pod"
|
||||
style="?android:attr/buttonStyle"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="3dp"
|
||||
android:layout_marginLeft="10dp"
|
||||
android:layout_marginRight="10dp"
|
||||
android:layout_marginTop="3dp"
|
||||
android:layout_weight="0.5"
|
||||
android:drawableTop="@drawable/icon_actions_temptarget"
|
||||
android:text="@string/careportal_temporarytarget" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/textView5"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="60dp"
|
||||
android:layout_weight="0.5"
|
||||
android:text=" " />
|
||||
|
||||
<info.nightscout.androidaps.utils.SingleClickButton
|
||||
android:id="@+id/initpod_reset_pod"
|
||||
style="?android:attr/buttonStyle"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="10dp"
|
||||
android:layout_marginTop="3dp"
|
||||
android:layout_marginRight="10dp"
|
||||
android:layout_marginBottom="3dp"
|
||||
android:layout_weight="0.5"
|
||||
android:drawableTop="@drawable/icon_cp_pump_canula"
|
||||
android:text="@string/primefill" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/textView6"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="60dp"
|
||||
android:layout_weight="0.5"
|
||||
android:text=" " />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</ScrollView>
|
||||
|
||||
</FrameLayout>
|
Loading…
Reference in a new issue