diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Wear/wearintegration/WatchUpdaterService.java b/app/src/main/java/info/nightscout/androidaps/plugins/Wear/wearintegration/WatchUpdaterService.java
index 5df62fd4dd..2a2ef68156 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/Wear/wearintegration/WatchUpdaterService.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/Wear/wearintegration/WatchUpdaterService.java
@@ -7,6 +7,7 @@ import android.content.SharedPreferences;
import android.os.BatteryManager;
import android.os.Bundle;
import android.preference.PreferenceManager;
+import android.support.annotation.NonNull;
import android.util.Log;
import com.google.android.gms.common.ConnectionResult;
@@ -503,42 +504,7 @@ public class WatchUpdaterService extends WearableListenerService implements
private void sendStatus() {
if (googleApiClient.isConnected()) {
- String status = "";
- boolean shortString = true;
-
- LoopPlugin activeloop = MainApp.getConfigBuilder().getActiveLoop();
-
- if (activeloop != null && !activeloop.isEnabled(PluginBase.LOOP)) {
- status += getString(R.string.disabledloop) + "\n";
- lastLoopStatus = false;
- } else if (activeloop != null && activeloop.isEnabled(PluginBase.LOOP)) {
- lastLoopStatus = true;
- }
-
- //Temp basal
- PumpInterface pump = MainApp.getConfigBuilder();
-
- if (pump.isTempBasalInProgress()) {
- TempBasal activeTemp = pump.getTempBasal();
- if (shortString) {
- status += activeTemp.toStringShort();
- } else {
- status += activeTemp.toStringMedium();
- }
- }
-
- //IOB
- MainApp.getConfigBuilder().getActiveTreatments().updateTotalIOB();
- IobTotal bolusIob = MainApp.getConfigBuilder().getActiveTreatments().getLastCalculation().round();
- MainApp.getConfigBuilder().getActiveTempBasals().updateTotalIOB();
- IobTotal basalIob = MainApp.getConfigBuilder().getActiveTempBasals().getLastCalculation().round();
- status += (shortString?"":(getString(R.string.treatments_iob_label_string) + " ")) + DecimalFormatter.to2Decimal(bolusIob.iob + basalIob.basaliob);
-
- if (mPrefs.getBoolean("wear_detailediob", true)) {
- status += "("
- + DecimalFormatter.to2Decimal(bolusIob.iob) + "|"
- + DecimalFormatter.to2Decimal(basalIob.basaliob) + ")";
- }
+ String status = generateStatusString();
PutDataMapRequest dataMapRequest = PutDataMapRequest.create(NEW_STATUS_PATH);
//unique content
@@ -551,6 +517,56 @@ public class WatchUpdaterService extends WearableListenerService implements
}
}
+ @NonNull
+ private String generateStatusString() {
+ String status = "";
+ boolean shortString = true;
+
+ LoopPlugin activeloop = MainApp.getConfigBuilder().getActiveLoop();
+
+ if (activeloop != null && !activeloop.isEnabled(PluginBase.LOOP)) {
+ status += getString(R.string.disabledloop) + "\n";
+ lastLoopStatus = false;
+ } else if (activeloop != null && activeloop.isEnabled(PluginBase.LOOP)) {
+ lastLoopStatus = true;
+ }
+
+ //Temp basal
+ PumpInterface pump = MainApp.getConfigBuilder();
+
+ if (pump.isTempBasalInProgress()) {
+ TempBasal activeTemp = pump.getTempBasal();
+ if (shortString) {
+ status += activeTemp.toStringShort();
+ } else {
+ status += activeTemp.toStringMedium();
+ }
+ }
+
+ //IOB
+ MainApp.getConfigBuilder().getActiveTreatments().updateTotalIOB();
+ IobTotal bolusIob = MainApp.getConfigBuilder().getActiveTreatments().getLastCalculation().round();
+ MainApp.getConfigBuilder().getActiveTempBasals().updateTotalIOB();
+ IobTotal basalIob = MainApp.getConfigBuilder().getActiveTempBasals().getLastCalculation().round();
+ status += (shortString?"":(getString(R.string.treatments_iob_label_string) + " ")) + DecimalFormatter.to2Decimal(bolusIob.iob + basalIob.basaliob);
+
+ if (mPrefs.getBoolean("wear_detailediob", true)) {
+ status += "("
+ + DecimalFormatter.to2Decimal(bolusIob.iob) + "|"
+ + DecimalFormatter.to2Decimal(basalIob.basaliob) + ")";
+ }
+ NSProfile profile = MainApp.getConfigBuilder().getActiveProfile().getProfile();
+ if (!mPrefs.getBoolean("wear_showbgi", false) ||profile == null || profile.getIsf(NSProfile.secondsFromMidnight()) == null || profile.getIc(NSProfile.secondsFromMidnight()) == null) {
+ return status;
+ }
+
+ double bgi = -(bolusIob.activity + basalIob.activity)*5*profile.getIsf(NSProfile.secondsFromMidnight());
+
+ status += " " + ((bgi>=0)?"+":"") + DecimalFormatter.to2Decimal(bgi);
+
+ return status;
+ }
+
@Override
public void onDestroy() {
if (googleApiClient != null && googleApiClient.isConnected()) {
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/XDripStatusline/StatuslinePlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/XDripStatusline/StatuslinePlugin.java
index 3cd1f8fe27..d7265bfa3c 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/XDripStatusline/StatuslinePlugin.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/XDripStatusline/StatuslinePlugin.java
@@ -21,6 +21,7 @@ import info.nightscout.androidaps.events.EventTreatmentChange;
import info.nightscout.androidaps.interfaces.PluginBase;
import info.nightscout.androidaps.interfaces.PumpInterface;
import info.nightscout.androidaps.plugins.Loop.LoopPlugin;
+import info.nightscout.androidaps.plugins.NSClientInternal.data.NSProfile;
import info.nightscout.utils.DecimalFormatter;
/**
@@ -181,6 +182,15 @@ public class StatuslinePlugin implements PluginBase {
+ DecimalFormatter.to2Decimal(bolusIob.iob) + "|"
+ DecimalFormatter.to2Decimal(basalIob.basaliob) + ")";
}
+ NSProfile profile = MainApp.getConfigBuilder().getActiveProfile().getProfile();
+ if (!mPrefs.getBoolean("xdripstatus_showbgi", false) ||profile == null || profile.getIsf(NSProfile.secondsFromMidnight()) == null || profile.getIc(NSProfile.secondsFromMidnight()) == null) {
+ return status;
+ }
+
+ double bgi = -(bolusIob.activity + basalIob.activity)*5*profile.getIsf(NSProfile.secondsFromMidnight());
+
+ status += " " + ((bgi>=0)?"+":"") + DecimalFormatter.to2Decimal(bgi);
+
return status;
}
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 4370d8f297..629830dac8 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -603,4 +603,6 @@
xDrip Status (watch)
xDrip Statusline (watch)
xds
+ Show BGI
+ Add BGI to status line
diff --git a/app/src/main/res/xml/pref_wear.xml b/app/src/main/res/xml/pref_wear.xml
index bc5c475f9e..a2458f76f0 100644
--- a/app/src/main/res/xml/pref_wear.xml
+++ b/app/src/main/res/xml/pref_wear.xml
@@ -9,6 +9,12 @@
android:key="wear_detailediob"
android:title="@string/wear_detailedIOB_title"
android:summary="@string/wear_detailedIOB_summary"/>
+
+
\ No newline at end of file
diff --git a/app/src/main/res/xml/pref_xdripstatus.xml b/app/src/main/res/xml/pref_xdripstatus.xml
index b11830df5d..959377ea7b 100644
--- a/app/src/main/res/xml/pref_xdripstatus.xml
+++ b/app/src/main/res/xml/pref_xdripstatus.xml
@@ -9,6 +9,11 @@
android:key="xdripstatus_detailediob"
android:title="@string/wear_detailedIOB_title"
android:summary="@string/wear_detailedIOB_summary"/>
+
\ No newline at end of file