diff --git a/omnipod-dash/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/dash/OmnipodDashPumpPlugin.java b/omnipod-dash/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/dash/OmnipodDashPumpPlugin.java deleted file mode 100644 index 628445b62b..0000000000 --- a/omnipod-dash/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/dash/OmnipodDashPumpPlugin.java +++ /dev/null @@ -1,213 +0,0 @@ -package info.nightscout.androidaps.plugins.pump.omnipod.dash; - -import androidx.annotation.Nullable; - -import com.google.gson.JsonObject; - -import org.jetbrains.annotations.NotNull; -import org.json.JSONObject; - -import java.util.Collections; -import java.util.List; - -import javax.inject.Inject; -import javax.inject.Singleton; - -import dagger.android.HasAndroidInjector; -import info.nightscout.androidaps.data.DetailedBolusInfo; -import info.nightscout.androidaps.data.Profile; -import info.nightscout.androidaps.data.PumpEnactResult; -import info.nightscout.androidaps.interfaces.CommandQueueProvider; -import info.nightscout.androidaps.interfaces.PluginDescription; -import info.nightscout.androidaps.interfaces.PluginType; -import info.nightscout.androidaps.interfaces.PumpDescription; -import info.nightscout.androidaps.interfaces.PumpInterface; -import info.nightscout.androidaps.interfaces.PumpPluginBase; -import info.nightscout.androidaps.logging.AAPSLogger; -import info.nightscout.androidaps.logging.LTag; -import info.nightscout.androidaps.plugins.common.ManufacturerType; -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.defs.PumpType; -import info.nightscout.androidaps.plugins.pump.omnipod.dash.ui.OmnipodDashOverviewFragment; -import info.nightscout.androidaps.queue.commands.CustomCommand; -import info.nightscout.androidaps.utils.TimeChangeType; -import info.nightscout.androidaps.utils.resources.ResourceHelper; - -@Singleton -public class OmnipodDashPumpPlugin extends PumpPluginBase implements PumpInterface { - private static final PumpDescription PUMP_DESCRIPTION = new PumpDescription(PumpType.Omnipod_Dash); - - private final AAPSLogger aapsLogger; - private final ResourceHelper resourceHelper; - private final CommandQueueProvider commandQueue; - - @Inject - public OmnipodDashPumpPlugin(HasAndroidInjector injector, AAPSLogger aapsLogger, ResourceHelper resourceHelper, CommandQueueProvider commandQueue) { - super(new PluginDescription() // - .mainType(PluginType.PUMP) // - .fragmentClass(OmnipodDashOverviewFragment.class.getName()) // - .pluginIcon(R.drawable.ic_pod_128) - .pluginName(R.string.omnipod_dash_name) // - .shortName(R.string.omnipod_dash_name_short) // - .preferencesId(R.xml.omnipod_dash_preferences) // - .description(R.string.omnipod_dash_pump_description), injector, aapsLogger, resourceHelper, commandQueue); - this.aapsLogger = aapsLogger; - this.resourceHelper = resourceHelper; - this.commandQueue = commandQueue; - } - - @Override public boolean isInitialized() { - return true; - } - - @Override public boolean isSuspended() { - return false; - } - - @Override public boolean isBusy() { - // prevents the queue from executing - return true; - } - - @Override public boolean isConnected() { - return false; - } - - @Override public boolean isConnecting() { - return false; - } - - @Override public boolean isHandshakeInProgress() { - return false; - } - - @Override public void finishHandshaking() { - - } - - @Override public void connect(@NotNull String reason) { - - } - - @Override public void disconnect(@NotNull String reason) { - - } - - @Override public void stopConnecting() { - - } - - @Override public void getPumpStatus(@NotNull String reason) { - - } - - @NotNull @Override public PumpEnactResult setNewBasalProfile(@NotNull Profile profile) { - // TODO - return new PumpEnactResult(getInjector()).success(true).enacted(true); - } - - @Override public boolean isThisProfileSet(@NotNull Profile profile) { - // TODO - return true; - } - - @Override public long lastDataTime() { - // TODO - return System.currentTimeMillis(); - } - - @Override public double getBaseBasalRate() { - return 0; - } - - @Override public double getReservoirLevel() { - return 0; - } - - @Override public int getBatteryLevel() { - return 0; - } - - @NotNull @Override public PumpEnactResult deliverTreatment(@NotNull DetailedBolusInfo detailedBolusInfo) { - return null; - } - - @Override public void stopBolusDelivering() { - - } - - @NotNull @Override public PumpEnactResult setTempBasalAbsolute(double absoluteRate, int durationInMinutes, @NotNull Profile profile, boolean enforceNew) { - return null; - } - - @NotNull @Override public PumpEnactResult setTempBasalPercent(int percent, int durationInMinutes, @NotNull Profile profile, boolean enforceNew) { - return null; - } - - @NotNull @Override public PumpEnactResult setExtendedBolus(double insulin, int durationInMinutes) { - return null; - } - - @NotNull @Override public PumpEnactResult cancelTempBasal(boolean enforceNew) { - return null; - } - - @NotNull @Override public PumpEnactResult cancelExtendedBolus() { - return null; - } - - @NotNull @Override public JSONObject getJSONStatus(@NotNull Profile profile, @NotNull String profileName, @NotNull String version) { - return new JSONObject(); - } - - @NotNull @Override public ManufacturerType manufacturer() { - return getPumpDescription().pumpType.getManufacturer(); - } - - @NotNull @Override public PumpType model() { - return getPumpDescription().pumpType; - } - - @NotNull @Override public String serialNumber() { - return null; - } - - @NotNull @Override public PumpDescription getPumpDescription() { - return PUMP_DESCRIPTION; - } - - @NotNull @Override public String shortStatus(boolean veryShort) { - return null; - } - - @Override public boolean isFakingTempsByExtendedBoluses() { - return false; - } - - @NotNull @Override public PumpEnactResult loadTDDs() { - return null; - } - - @Override public boolean canHandleDST() { - return false; - } - - @Override - public List getCustomActions() { - return Collections.emptyList(); - } - - @Override - public void executeCustomAction(@NotNull CustomActionType customActionType) { - aapsLogger.warn(LTag.PUMP, "Unsupported custom action: " + customActionType); - } - - @Nullable @Override public PumpEnactResult executeCustomCommand(@NotNull CustomCommand customCommand) { - return null; - } - - @Override public void timezoneOrDSTChanged(@NotNull TimeChangeType timeChangeType) { - - } -} diff --git a/omnipod-dash/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/dash/OmnipodDashPumpPlugin.kt b/omnipod-dash/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/dash/OmnipodDashPumpPlugin.kt new file mode 100644 index 0000000000..db977caef9 --- /dev/null +++ b/omnipod-dash/src/main/java/info/nightscout/androidaps/plugins/pump/omnipod/dash/OmnipodDashPumpPlugin.kt @@ -0,0 +1,206 @@ +package info.nightscout.androidaps.plugins.pump.omnipod.dash + +import dagger.android.HasAndroidInjector +import info.nightscout.androidaps.data.DetailedBolusInfo +import info.nightscout.androidaps.data.Profile +import info.nightscout.androidaps.data.PumpEnactResult +import info.nightscout.androidaps.interfaces.* +import info.nightscout.androidaps.logging.AAPSLogger +import info.nightscout.androidaps.logging.LTag +import info.nightscout.androidaps.plugins.common.ManufacturerType +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.defs.PumpType +import info.nightscout.androidaps.plugins.pump.omnipod.dash.ui.OmnipodDashOverviewFragment +import info.nightscout.androidaps.queue.commands.CustomCommand +import info.nightscout.androidaps.utils.TimeChangeType +import info.nightscout.androidaps.utils.resources.ResourceHelper +import org.json.JSONObject +import javax.inject.Inject +import javax.inject.Singleton + +@Singleton +class OmnipodDashPumpPlugin @Inject constructor( + injector: HasAndroidInjector, + aapsLogger: AAPSLogger, + resourceHelper: ResourceHelper, + commandQueue: CommandQueueProvider) + : PumpPluginBase(pluginDescription, injector, aapsLogger, resourceHelper, commandQueue), PumpInterface { + + companion object { + + private val pluginDescription = PluginDescription() // + .mainType(PluginType.PUMP) // + .fragmentClass(OmnipodDashOverviewFragment::class.java.name) // + .pluginIcon(R.drawable.ic_pod_128) + .pluginName(R.string.omnipod_dash_name) // + .shortName(R.string.omnipod_dash_name_short) // + .preferencesId(R.xml.omnipod_dash_preferences) // + .description(R.string.omnipod_dash_pump_description) + + private val pumpDescription = PumpDescription(PumpType.Omnipod_Dash) + } + + override fun isInitialized(): Boolean { + // TODO + return true + } + + override fun isSuspended(): Boolean { + // TODO + return false + } + + override fun isBusy(): Boolean { + // prevents the queue from executing commands + // TODO + return true + } + + override fun isConnected(): Boolean { + // TODO + return false + } + + override fun isConnecting(): Boolean { + // TODO + return false + } + + override fun isHandshakeInProgress(): Boolean { + // TODO + return false + } + + override fun finishHandshaking() { + // TODO + } + + override fun connect(reason: String) { + // TODO + } + + override fun disconnect(reason: String) { + // TODO + } + + override fun stopConnecting() { + // TODO + } + + override fun getPumpStatus(reason: String) { + // TODO + } + + override fun setNewBasalProfile(profile: Profile): PumpEnactResult { + // TODO + return PumpEnactResult(injector).success(true).enacted(true) + } + + override fun isThisProfileSet(profile: Profile): Boolean { + // TODO + return true + } + + override fun lastDataTime(): Long { + // TODO + return System.currentTimeMillis() + } + + override val baseBasalRate: Double + get() = 0.0 // TODO + + override val reservoirLevel: Double + get() = 0.0 // TODO + + override val batteryLevel: Int + get() = 0 + + override fun deliverTreatment(detailedBolusInfo: DetailedBolusInfo): PumpEnactResult { + // TODO + return PumpEnactResult(injector).success(false).enacted(false).comment("TODO") + } + + override fun stopBolusDelivering() { + // TODO + } + + override fun setTempBasalAbsolute(absoluteRate: Double, durationInMinutes: Int, profile: Profile, enforceNew: Boolean): PumpEnactResult { + // TODO + return PumpEnactResult(injector).success(false).enacted(false).comment("TODO") + } + + override fun setTempBasalPercent(percent: Int, durationInMinutes: Int, profile: Profile, enforceNew: Boolean): PumpEnactResult { + // TODO i18n + return PumpEnactResult(injector).success(false).enacted(false).comment("Omnipod Dash driver does not support percentage temp basals") + } + + override fun setExtendedBolus(insulin: Double, durationInMinutes: Int): PumpEnactResult { + // TODO i18n + return PumpEnactResult(injector).success(false).enacted(false).comment("Omnipod Dash driver does not support extended boluses") + } + + override fun cancelTempBasal(enforceNew: Boolean): PumpEnactResult { + // TODO + return PumpEnactResult(injector).success(false).enacted(false).comment("TODO") + } + + override fun cancelExtendedBolus(): PumpEnactResult { + // TODO i18n + return PumpEnactResult(injector).success(false).enacted(false).comment("Omnipod Dash driver does not support extended boluses") + } + + override fun getJSONStatus(profile: Profile, profileName: String, version: String): JSONObject { + // TODO + return JSONObject() + } + + override val pumpDescription: PumpDescription = Companion.pumpDescription + + override fun manufacturer(): ManufacturerType { + return pumpDescription.pumpType.manufacturer + } + + override fun model(): PumpType { + return pumpDescription.pumpType + } + + override fun serialNumber(): String { + // TODO + return "TODO" + } + + override fun shortStatus(veryShort: Boolean): String { + // TODO + return "TODO" + } + + override val isFakingTempsByExtendedBoluses: Boolean + get() = false + + override fun loadTDDs(): PumpEnactResult { + // TODO i18n + return PumpEnactResult(injector).success(false).enacted(false).comment("Omnipod Dash driver does not support TDD") + } + + override fun canHandleDST(): Boolean { + return false + } + + override fun getCustomActions(): List { + return emptyList() + } + + override fun executeCustomAction(customActionType: CustomActionType) { + aapsLogger.warn(LTag.PUMP, "Unsupported custom action: $customActionType") + } + + override fun executeCustomCommand(customCommand: CustomCommand): PumpEnactResult? { + // TODO + return null + } + + override fun timezoneOrDSTChanged(timeChangeType: TimeChangeType) { + // TODO + } +} \ No newline at end of file