diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/ConfigBuilder/ConfigBuilderFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/ConfigBuilder/ConfigBuilderFragment.java index 8dd54da1dc..fd3c8edc40 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/ConfigBuilder/ConfigBuilderFragment.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/ConfigBuilder/ConfigBuilderFragment.java @@ -906,11 +906,12 @@ public class ConfigBuilderFragment extends Fragment implements PluginBase, PumpI if (lastRun.lastAPSRun.getTime() < new Date().getTime() - 60 * 1000L) return; // do not send if result is older than 1 min - String openapsmaPluginName = MainApp.resources.getString(R.string.openapsma); - if (lastRun.source != null && lastRun.source.equals(openapsmaPluginName)) { + APSResult apsResult = lastRun.request; + apsResult.json().put("timestamp", DateUtil.toISOString(lastRun.lastAPSRun)); + deviceStatus.suggested = apsResult.json(); + + if (lastRun.request instanceof DetermineBasalResult) { DetermineBasalResult result = (DetermineBasalResult) lastRun.request; - result.json.put("timestamp", DateUtil.toISOString(lastRun.lastAPSRun)); - deviceStatus.suggested = result.json; deviceStatus.iob = result.iob.json(); deviceStatus.iob.put("time", DateUtil.toISOString(lastRun.lastAPSRun)); } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Loop/DeviceStatus.java b/app/src/main/java/info/nightscout/androidaps/plugins/Loop/DeviceStatus.java index 1a67e16bde..b533ecb134 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Loop/DeviceStatus.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Loop/DeviceStatus.java @@ -375,18 +375,17 @@ import info.nightscout.androidaps.Services.Intents; public class DeviceStatus { private static Logger log = LoggerFactory.getLogger(DeviceStatus.class); - public static DeviceStatus deviceStatus; - public static String device = null; - public static JSONObject pump = null; - public static JSONObject enacted = null; - public static JSONObject suggested = null; - public static JSONObject iob = null; - public static String created_at = null; + public String device = null; + public JSONObject pump = null; + public JSONObject enacted = null; + public JSONObject suggested = null; + public JSONObject iob = null; + public String created_at = null; - public static JSONObject lowsuspend = null; + public JSONObject lowsuspend = null; - public static JSONObject mongoRecord () { + public JSONObject mongoRecord () { JSONObject record = new JSONObject(); try { diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java index 5c961f8d96..71784b6afb 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java @@ -27,6 +27,7 @@ import com.squareup.otto.Subscribe; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.text.DecimalFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; @@ -45,6 +46,7 @@ import info.nightscout.androidaps.events.EventTempBasalChange; import info.nightscout.androidaps.events.EventTreatmentChange; import info.nightscout.androidaps.interfaces.PluginBase; import info.nightscout.androidaps.interfaces.PumpInterface; +import info.nightscout.androidaps.plugins.OpenAPSMA.IobTotal; import info.nightscout.androidaps.plugins.Overview.Dialogs.NewExtendedBolusDialog; import info.nightscout.androidaps.plugins.Overview.Dialogs.NewTempBasalDialog; import info.nightscout.androidaps.plugins.Overview.Dialogs.NewTreatmentDialog; @@ -59,6 +61,8 @@ public class OverviewFragment extends Fragment implements PluginBase { TextView bgView; TextView timeAgoView; TextView deltaView; + TextView runningTempView; + TextView iobView; GraphView bgGraph; LinearLayout cancelTempLayout; @@ -149,6 +153,8 @@ public class OverviewFragment extends Fragment implements PluginBase { bgView = (TextView) view.findViewById(R.id.overview_bg); timeAgoView = (TextView) view.findViewById(R.id.overview_timeago); deltaView = (TextView) view.findViewById(R.id.overview_delta); + runningTempView = (TextView) view.findViewById(R.id.overview_runningtemp); + iobView = (TextView) view.findViewById(R.id.overview_iob); bgGraph = (GraphView) view.findViewById(R.id.overview_bggraph); cancelTempButton = (Button) view.findViewById(R.id.overview_canceltemp); treatmentButton = (Button) view.findViewById(R.id.overview_treatment); @@ -274,6 +280,7 @@ public class OverviewFragment extends Fragment implements PluginBase { } public void updateGUI() { + DecimalFormat formatNumber2decimalplaces = new DecimalFormat("0.00"); BgReading actualBG = MainApp.getDbHelper().actualBg(); BgReading lastBG = MainApp.getDbHelper().lastBg(); if (MainApp.getConfigBuilder() == null || MainApp.getConfigBuilder().getActiveProfile() == null) // app not initialized yet @@ -296,9 +303,12 @@ public class OverviewFragment extends Fragment implements PluginBase { cancelTempLayout.setVisibility(View.VISIBLE); setTempLayout.setVisibility(View.GONE); cancelTempButton.setText(MainApp.instance().getString(R.string.cancel) + ": " + activeTemp.toString()); + runningTempView.setText(activeTemp.toString()); } else { cancelTempLayout.setVisibility(View.GONE); setTempLayout.setVisibility(View.VISIBLE); + Double currentBasal = pump.getBaseBasalRate(); + runningTempView.setText(formatNumber2decimalplaces.format(currentBasal) + " U/h"); } // **** BG value **** @@ -322,6 +332,18 @@ public class OverviewFragment extends Fragment implements PluginBase { int agoMin = (int) (agoMsec / 60d / 1000d); timeAgoView.setText(agoMin + " " + getString(R.string.minago)); + // iob + MainApp.getConfigBuilder().getActiveTreatments().updateTotalIOB(); + IobTotal bolusIob = MainApp.getConfigBuilder().getActiveTreatments().getLastCalculation(); + if (bolusIob == null) bolusIob = new IobTotal(); + MainApp.getConfigBuilder().getActiveTempBasals().updateTotalIOB(); + IobTotal basalIob = MainApp.getConfigBuilder().getActiveTempBasals().getLastCalculation(); + if (basalIob == null) basalIob = new IobTotal(); + IobTotal iobTotal = IobTotal.combine(bolusIob, basalIob).round(); + + String iobtext = getString(R.string.treatments_iob_label_string) + " " + formatNumber2decimalplaces.format(iobTotal.iob) + "U (" + getString(R.string.bolus) + ": " + formatNumber2decimalplaces.format(bolusIob.iob) + "U " + getString(R.string.basal) + ": " + formatNumber2decimalplaces.format(basalIob.iob) + "U)"; + iobView.setText(iobtext); + // ****** GRAPH ******* // allign to hours diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/TempBasals/TempBasalsFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/TempBasals/TempBasalsFragment.java index d7f5674e7d..7f2e28c1aa 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/TempBasals/TempBasalsFragment.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/TempBasals/TempBasalsFragment.java @@ -207,17 +207,6 @@ public class TempBasalsFragment extends Fragment implements PluginBase, TempBasa TempBasal t = tempBasals.get(pos); total.plus(t.iobCalc(now)); } - final IobTotal finalTotal = total; - - Activity activity = getActivity(); - if (visibleNow && activity != null && recyclerView != null) - activity.runOnUiThread(new Runnable() { - @Override - public void run() { - if (iobTotal != null) - iobTotal.setText(formatNumber2decimalplaces.format(finalTotal.basaliob)); - } - }); lastCalculationTimestamp = new Date().getTime(); lastCalculation = total; @@ -385,6 +374,9 @@ public class TempBasalsFragment extends Fragment implements PluginBase, TempBasa @Override public void run() { recyclerView.swapAdapter(new RecyclerViewAdapter(tempBasals), false); + if (lastCalculation != null) + iobTotal.setText(formatNumber2decimalplaces.format(lastCalculation.basaliob)); + } }); } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/TreatmentsFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/TreatmentsFragment.java index e83b3aee8c..f81cb17f22 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/TreatmentsFragment.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/TreatmentsFragment.java @@ -154,20 +154,6 @@ public class TreatmentsFragment extends Fragment implements View.OnClickListener total.bolussnooze += bIOB.iobContrib; } - final IobTotal finalTotal = total; - - Activity activity = getActivity(); - if (visibleNow && activity != null && recyclerView != null) - activity.runOnUiThread(new Runnable() { - @Override - public void run() { - if (iobTotal != null) - iobTotal.setText(formatNumber2decimalplaces.format(finalTotal.iob)); - if (activityTotal != null) - activityTotal.setText(formatNumber3decimalplaces.format(finalTotal.activity)); - } - }); - lastCalculationTimestamp = new Date().getTime(); lastCalculation = total; } @@ -346,6 +332,10 @@ public class TreatmentsFragment extends Fragment implements View.OnClickListener @Override public void run() { recyclerView.swapAdapter(new RecyclerViewAdapter(treatments), false); + if (lastCalculation != null) + iobTotal.setText(formatNumber2decimalplaces.format(lastCalculation.iob)); + if (lastCalculation != null) + activityTotal.setText(formatNumber3decimalplaces.format(lastCalculation.activity)); } }); } diff --git a/app/src/main/res/layout/overview_fragment.xml b/app/src/main/res/layout/overview_fragment.xml index 4003422d98..f59e8f7d61 100644 --- a/app/src/main/res/layout/overview_fragment.xml +++ b/app/src/main/res/layout/overview_fragment.xml @@ -43,6 +43,20 @@ android:layout_height="wrap_content" android:layout_marginLeft="10dp" android:textAppearance="?android:attr/textAppearanceMedium" /> + + + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 8e6ba6dd80..015d75064e 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -139,6 +139,7 @@ Confirmation Enter new treatment: Bolus + Basal Carbs Change your input! Set new extended bolus: