displaying basal fix

This commit is contained in:
Milos Kozak 2016-07-12 17:56:01 +02:00
parent 3bceeb368a
commit 76d42ef3fb
12 changed files with 68 additions and 20 deletions

View file

@ -38,7 +38,7 @@ public class PumpEnactResult extends Object implements Parcelable {
if (isTempCancel) {
ret += "\n" + MainApp.sResources.getString(R.string.enacted) + ": " + enacted;
ret += "\n" + MainApp.sResources.getString(R.string.comment) + ": " + comment + "\n" +
MainApp.sResources.getString(R.string.tempcancel);
MainApp.sResources.getString(R.string.canceltemp);
} else if (isPercent) {
ret += "\n" + MainApp.sResources.getString(R.string.enacted) + ": " + enacted;
ret += "\n" + MainApp.sResources.getString(R.string.comment) + ": " + comment;
@ -62,7 +62,7 @@ public class PumpEnactResult extends Object implements Parcelable {
if (isTempCancel) {
ret += "<br><b>" + MainApp.sResources.getString(R.string.enacted) + "</b>: " + enacted;
ret += "<br><b>" + MainApp.sResources.getString(R.string.comment) + "</b>: " + comment +
"<br>" + MainApp.sResources.getString(R.string.tempcancel);
"<br>" + MainApp.sResources.getString(R.string.canceltemp);
} else if (isPercent) {
ret += "<br><b>" + MainApp.sResources.getString(R.string.enacted) + "</b>: " + enacted;
ret += "<br><b>" + MainApp.sResources.getString(R.string.comment) + "</b>: " + comment;

View file

@ -2,6 +2,8 @@ package info.nightscout.androidaps.interfaces;
import org.json.JSONObject;
import java.util.Date;
import info.nightscout.androidaps.data.PumpEnactResult;
import info.nightscout.androidaps.db.TempBasal;
import info.nightscout.androidaps.plugins.Loop.APSResult;
@ -21,6 +23,7 @@ public interface PumpInterface {
double getBaseBasalRate(); // base basal rate, not temp basal
double getTempBasalAbsoluteRate();
double getTempBasalRemainingMinutes();
TempBasal getTempBasal(Date time);
TempBasal getTempBasal();
TempBasal getExtendedBolus();

View file

@ -263,6 +263,11 @@ public class ConfigBuilderFragment extends Fragment implements PluginBase, PumpI
return activePump.getTempBasalRemainingMinutes();
}
@Override
public TempBasal getTempBasal(Date time) {
return activePump.getTempBasal(time);
}
@Override
public TempBasal getTempBasal() {
return activePump.getTempBasal();

View file

@ -77,7 +77,7 @@ public class DanaConnection {
private static final UUID SPP_UUID = UUID.fromString("00001101-0000-1000-8000-00805f9b34fb");
// TODO: keepalive kills active connection
public DanaConnection(Bus bus) {
danaRFragment = (DanaRFragment) MainActivity.getSpecificPlugin(DanaRFragment.class);
danaRFragment.setDanaConnection(this);

View file

@ -338,6 +338,14 @@ public class DanaRFragment extends Fragment implements PluginBase, PumpInterface
return null;
}
public TempBasal getTempBasal(Date time) {
TempBasal temp = MainApp.getConfigBuilder().getActiveTempBasals().getTempBasal(time);
if (temp != null) return temp;
if (useExtendedBoluses)
return MainApp.getConfigBuilder().getActiveTempBasals().getExtendedBolus(time);
return null;
}
public TempBasal getRealTempBasal() {
return MainApp.getConfigBuilder().getActiveTempBasals().getTempBasal(new Date());
}
@ -406,6 +414,7 @@ public class DanaRFragment extends Fragment implements PluginBase, PumpInterface
result.enacted = false;
result.percent = 100;
result.isPercent = true;
result.isTempCancel = true;
if (Config.logPumpActions)
log.debug("setTempBasalAbsolute: doTempOff OK");
return result;
@ -438,6 +447,7 @@ public class DanaRFragment extends Fragment implements PluginBase, PumpInterface
result.enacted = false;
result.duration = ((Double) getTempBasalRemainingMinutes()).intValue();
result.isPercent = true;
result.isTempCancel = false;
if (Config.logPumpActions)
log.debug("setTempBasalAbsolute: Correct temp basal already set (doLowTemp || doHighTemp)");
return result;
@ -492,6 +502,7 @@ public class DanaRFragment extends Fragment implements PluginBase, PumpInterface
result.enacted = false;
result.duration = getDanaRPump().extendedBolusRemainingMinutes;
result.isPercent = false;
result.isTempCancel = false;
if (Config.logPumpActions)
log.debug("setTempBasalAbsolute: Correct extended already set");
return result;
@ -524,6 +535,7 @@ public class DanaRFragment extends Fragment implements PluginBase, PumpInterface
ConfigBuilderFragment configBuilderFragment = MainApp.getConfigBuilder();
percent = configBuilderFragment.applyBasalConstraints(percent);
if (percent < 0) {
result.isTempCancel = false;
result.enacted = false;
result.success = false;
result.comment = MainApp.instance().getString(R.string.danar_invalidinput);
@ -534,6 +546,7 @@ public class DanaRFragment extends Fragment implements PluginBase, PumpInterface
if (getDanaRPump().isTempBasalInProgress && getDanaRPump().tempBasalPercent == percent) {
result.enacted = false;
result.success = true;
result.isTempCancel = false;
result.comment = MainApp.instance().getString(R.string.virtualpump_resultok);
result.duration = getDanaRPump().tempBasalRemainingMin;
result.percent = getDanaRPump().tempBasalPercent;
@ -549,6 +562,7 @@ public class DanaRFragment extends Fragment implements PluginBase, PumpInterface
result.enacted = true;
result.success = true;
result.comment = MainApp.instance().getString(R.string.virtualpump_resultok);
result.isTempCancel = false;
result.duration = getDanaRPump().tempBasalRemainingMin;
result.percent = getDanaRPump().tempBasalPercent;
result.isPercent = true;
@ -578,6 +592,7 @@ public class DanaRFragment extends Fragment implements PluginBase, PumpInterface
result.duration = getDanaRPump().extendedBolusRemainingMinutes;
result.absolute = getDanaRPump().extendedBolusAbsoluteRate;
result.isPercent = false;
result.isTempCancel = false;
if (Config.logPumpActions)
log.debug("setExtendedBolus: Correct extended bolus already set");
return result;
@ -589,6 +604,7 @@ public class DanaRFragment extends Fragment implements PluginBase, PumpInterface
result.enacted = true;
result.success = true;
result.comment = MainApp.instance().getString(R.string.virtualpump_resultok);
result.isTempCancel = false;
result.duration = getDanaRPump().extendedBolusRemainingMinutes;
result.absolute = getDanaRPump().extendedBolusAbsoluteRate;
result.bolusDelivered = getDanaRPump().extendedBolusAmount;
@ -614,6 +630,7 @@ public class DanaRFragment extends Fragment implements PluginBase, PumpInterface
result.success = true;
result.enacted = false;
result.comment = MainApp.instance().getString(R.string.virtualpump_resultok);
result.isTempCancel = true;
return result;
}
@ -623,9 +640,11 @@ public class DanaRFragment extends Fragment implements PluginBase, PumpInterface
if (getDanaRPump().isTempBasalInProgress) {
getDanaConnection().tempBasalStop();
result.enacted = true;
result.isTempCancel = true;
}
if (!getDanaRPump().isTempBasalInProgress) {
result.success = true;
result.isTempCancel = true;
result.comment = MainApp.instance().getString(R.string.virtualpump_resultok);
if (Config.logPumpActions)
log.debug("cancelRealTempBasal: OK");
@ -633,6 +652,7 @@ public class DanaRFragment extends Fragment implements PluginBase, PumpInterface
} else {
result.success = false;
result.comment = MainApp.instance().getString(R.string.danar_valuenotsetproperly);
result.isTempCancel = true;
log.error("cancelRealTempBasal: Failed to cancel temp basal");
return result;
}
@ -645,15 +665,18 @@ public class DanaRFragment extends Fragment implements PluginBase, PumpInterface
if (getDanaRPump().isExtendedInProgress) {
getDanaConnection().extendedBolusStop();
result.enacted = true;
result.isTempCancel = true;
}
if (!getDanaRPump().isExtendedInProgress) {
result.success = true;
result.comment = MainApp.instance().getString(R.string.virtualpump_resultok);
result.isTempCancel = true;
if (Config.logPumpActions)
log.debug("cancelExtendedBolus: OK");
return result;
} else {
result.success = false;
result.isTempCancel = true;
result.comment = MainApp.instance().getString(R.string.danar_valuenotsetproperly);
log.error("cancelExtendedBolus: Failed to cancel extended bolus");
return result;

View file

@ -24,19 +24,23 @@ public class APSResult implements Parcelable {
@Override
public String toString() {
if (changeRequested)
return MainApp.sResources.getString(R.string.rate) + " " + DecimalFormatter.to2Decimal(rate) + " U/h\n" +
MainApp.sResources.getString(R.string.duration) + " " + DecimalFormatter.to0Decimal(duration) + " min\n" +
MainApp.sResources.getString(R.string.reason) + " " + reason;
return MainApp.sResources.getString(R.string.rate) + ": " + DecimalFormatter.to2Decimal(rate) + " U/h\n" +
MainApp.sResources.getString(R.string.duration) + ": " + DecimalFormatter.to0Decimal(duration) + " min\n" +
MainApp.sResources.getString(R.string.reason) + ": " + reason;
else
return MainApp.sResources.getString(R.string.nochangerequested);
}
public Spanned toSpanned() {
if (changeRequested)
return Html.fromHtml("<b>" + MainApp.sResources.getString(R.string.rate) + "</b>: " + DecimalFormatter.to2Decimal(rate) + " U/h<br>" +
"<b>" + MainApp.sResources.getString(R.string.duration) + "</b>: " + DecimalFormatter.to2Decimal(duration) + " min<br>" +
"<b>" + MainApp.sResources.getString(R.string.reason) + "</b>: " + reason);
else
if (changeRequested) {
String ret = "";
if (rate == 0 && duration == 0) ret = MainApp.sResources.getString(R.string.canceltemp);
else
ret = "<b>" + MainApp.sResources.getString(R.string.rate) + "</b>: " + DecimalFormatter.to2Decimal(rate) + " U/h<br>" +
"<b>" + MainApp.sResources.getString(R.string.duration) + "</b>: " + DecimalFormatter.to2Decimal(duration) + " min<br>" +
"<b>" + MainApp.sResources.getString(R.string.reason) + "</b>: " + reason;
return Html.fromHtml(ret);
} else
return Html.fromHtml(MainApp.sResources.getString(R.string.nochangerequested));
}
@ -70,7 +74,8 @@ public class APSResult implements Parcelable {
changeRequested = in.readInt() == 1;
}
public APSResult() {}
public APSResult() {
}
public APSResult clone() {
APSResult newResult = new APSResult();

View file

@ -27,12 +27,14 @@ import java.util.Date;
import java.util.List;
import info.nightscout.androidaps.Config;
import info.nightscout.androidaps.MainActivity;
import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.R;
import info.nightscout.androidaps.events.EventNewBG;
import info.nightscout.androidaps.interfaces.ConstraintsInterface;
import info.nightscout.androidaps.interfaces.PluginBase;
import info.nightscout.androidaps.plugins.Loop.APSResult;
import info.nightscout.androidaps.plugins.Loop.LoopFragment;
public class ObjectivesFragment extends Fragment implements View.OnClickListener, PluginBase, ConstraintsInterface {
private static Logger log = LoggerFactory.getLogger(ObjectivesFragment.class);
@ -60,7 +62,8 @@ public class ObjectivesFragment extends Fragment implements View.OnClickListener
@Override
public boolean isVisibleInTabs(int type) {
return fragmentVisible;
LoopFragment loopFragment = (LoopFragment) MainActivity.getSpecificPlugin(LoopFragment.class);
return fragmentVisible && loopFragment != null && loopFragment.isVisibleInTabs(type);
}
@Override

View file

@ -267,7 +267,14 @@ public class OverviewFragment extends Fragment implements PluginBase {
objectivesFragment.saveProgress();
}
}
updateGUI();
Activity activity = getActivity();
if (activity != null)
activity.runOnUiThread(new Runnable() {
@Override
public void run() {
updateGUI();
}
});
}
});
}
@ -532,7 +539,7 @@ public class OverviewFragment extends Fragment implements PluginBase {
long now = new Date().getTime();
List<BarDataPoint> basalArray = new ArrayList<BarDataPoint>();
for (long time = fromTime; time < now; time += 5 * 60 * 1000L) {
TempBasal tb = MainApp.getConfigBuilder().getActiveTempBasals().getTempBasal(new Date(time));
TempBasal tb = MainApp.getConfigBuilder().getActivePump().getTempBasal(new Date(time));
if (tb != null)
basalArray.add(new BarDataPoint(time, tb.tempBasalConvertedToAbsolute(new Date(time)), true));
else

View file

@ -230,9 +230,6 @@ public class TempBasalsFragment extends Fragment implements PluginBase, TempBasa
for (TempBasal t : tempBasals) {
if (t.isInProgress(time)) return t;
}
if (useExtendedBoluses) {
return getExtendedBolus(time);
}
return null;
}

View file

@ -177,6 +177,11 @@ public class VirtualPumpFragment extends Fragment implements PluginBase, PumpInt
return getTempBasal().getPlannedRemainingMinutes();
}
@Override
public TempBasal getTempBasal(Date time) {
return MainApp.getConfigBuilder().getActiveTempBasals().getTempBasal(new Date());
}
@Override
public PumpEnactResult deliverTreatment(Double insulin, Integer carbs) {
PumpEnactResult result = new PumpEnactResult();

View file

@ -232,6 +232,6 @@
<string name="reloadprofile">Obnovit profil</string>
<string name="save">Uložit</string>
<string name="success">Úspěch</string>
<string name="tempcancel">Zrušit dočasný bazál</string>
<string name="virtualpump_lastconnection_label">Poslední spojení:</string>
<string name="canceltemp">Zrušit dočasný bazál</string>
</resources>

View file

@ -236,11 +236,11 @@
<string name="danar_valuenotsetproperly">Value not set properly</string>
<string name="reloadprofile">Reload profile</string>
<string name="danar_viewprofile">View profile</string>
<string name="tempcancel">Temp cancel</string>
<string name="enacted">Enacted</string>
<string name="comment">Comment</string>
<string name="success">Success</string>
<string name="percent">Percent</string>
<string name="absolute">Absolute</string>
<string name="canceltemp">Cancel temp basal</string>
</resources>