diff --git a/app/src/main/java/info/nightscout/androidaps/PreferencesActivity.java b/app/src/main/java/info/nightscout/androidaps/PreferencesActivity.java
index 43bfb53c79..71c3a3981e 100644
--- a/app/src/main/java/info/nightscout/androidaps/PreferencesActivity.java
+++ b/app/src/main/java/info/nightscout/androidaps/PreferencesActivity.java
@@ -21,6 +21,7 @@ import info.nightscout.androidaps.plugins.NSClientInternal.NSClientInternalPlugi
import info.nightscout.androidaps.plugins.OpenAPSAMA.OpenAPSAMAPlugin;
import info.nightscout.androidaps.plugins.PumpDanaRv2.DanaRv2Plugin;
import info.nightscout.androidaps.plugins.PumpVirtual.VirtualPumpPlugin;
+import info.nightscout.androidaps.plugins.SensitivityMK.SensitivityMKPlugin;
import info.nightscout.androidaps.plugins.Wear.WearPlugin;
import info.nightscout.androidaps.plugins.XDripStatusline.StatuslinePlugin;
import info.nightscout.utils.LocaleHelper;
@@ -105,6 +106,8 @@ public class PreferencesActivity extends PreferenceActivity implements SharedPre
if (MainApp.getSpecificPlugin(OpenAPSAMAPlugin.class) != null && MainApp.getSpecificPlugin(OpenAPSAMAPlugin.class).isEnabled(PluginBase.APS))
addPreferencesFromResource(R.xml.pref_openapsama);
}
+ if (MainApp.getSpecificPlugin(SensitivityMKPlugin.class) != null && MainApp.getSpecificPlugin(SensitivityMKPlugin.class).isEnabled(PluginBase.SENSITIVITY))
+ addPreferencesFromResource(R.xml.pref_absorption);
if (Config.ALLPREFERENCES) {
addPreferencesFromResource(R.xml.pref_profile);
}
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/IobCobCalculator/AutosensData.java b/app/src/main/java/info/nightscout/androidaps/plugins/IobCobCalculator/AutosensData.java
index fa36f265ff..7efcf083b4 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/IobCobCalculator/AutosensData.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/IobCobCalculator/AutosensData.java
@@ -7,7 +7,12 @@ import java.util.ArrayList;
import java.util.Date;
import java.util.List;
+import info.nightscout.androidaps.MainApp;
+import info.nightscout.androidaps.R;
+import info.nightscout.androidaps.data.Profile;
import info.nightscout.androidaps.db.Treatment;
+import info.nightscout.androidaps.interfaces.PluginBase;
+import info.nightscout.androidaps.plugins.SensitivityMK.SensitivityMKPlugin;
import info.nightscout.utils.SP;
/**
@@ -27,7 +32,16 @@ public class AutosensData {
time = t.date;
carbs = t.carbs;
remaining = t.carbs;
- min5minCarbImpact = SP.getDouble("openapsama_min_5m_carbimpact", 3.0);
+ if (MainApp.getSpecificPlugin(SensitivityMKPlugin.class) != null && MainApp.getSpecificPlugin(SensitivityMKPlugin.class).isEnabled(PluginBase.SENSITIVITY)) {
+ double maxAbsorptionHours = SP.getDouble(R.string.key_absorption_maxtime, 4d);
+ Profile profile = MainApp.getConfigBuilder().getProfile(t.date);
+ double sens = Profile.toMgdl(profile.getIsf(t.date), profile.getUnits());
+ double ic = profile.getIc(t.date);
+ min5minCarbImpact = t.carbs / (maxAbsorptionHours * 60 / 5) * sens / ic;
+ log.debug("Min 5m carbs impact for " + carbs + "g @" + new Date(t.date).toLocaleString() + " for " + maxAbsorptionHours + "h calculated to " + min5minCarbImpact + " ISF: " + sens + " IC: " + ic);
+ } else {
+ min5minCarbImpact = SP.getDouble("openapsama_min_5m_carbimpact", 3.0);
+ }
}
}
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/IobCobCalculator/IobCobCalculatorPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/IobCobCalculator/IobCobCalculatorPlugin.java
index c4b864a04f..03c15602ec 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/IobCobCalculator/IobCobCalculatorPlugin.java
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/IobCobCalculator/IobCobCalculatorPlugin.java
@@ -599,7 +599,8 @@ public class IobCobCalculatorPlugin implements PluginBase {
@Subscribe
public void onStatusEvent(EventPreferenceChange ev) {
if (ev.isChanged(R.string.key_openapsama_autosens_period) ||
- ev.isChanged(R.string.key_age)
+ ev.isChanged(R.string.key_age) ||
+ ev.isChanged(R.string.key_absorption_maxtime)
) {
synchronized (dataLock) {
log.debug("Invalidating cached data because of preference change. IOB: " + iobTable.size() + " Autosens: " + autosensDataTable.size() + " records");
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 31aacc3d0a..a1b2771d04 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
@@ -305,11 +305,14 @@ public class OverviewFragment extends Fragment implements View.OnClickListener,
iobGraph.getGridLabelRenderer().setLabelVerticalWidth(50);
iobGraph.getGridLabelRenderer().setNumVerticalLabels(5);
+ rangeToDisplay = SP.getInt(R.string.key_rangetodisplay, 6);
+
bgGraph.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
rangeToDisplay += 6;
rangeToDisplay = rangeToDisplay > 24 ? 6 : rangeToDisplay;
+ SP.putInt(R.string.key_rangetodisplay, rangeToDisplay);
updateGUI("rangeChange");
return false;
}
diff --git a/app/src/main/java/info/nightscout/utils/SP.java b/app/src/main/java/info/nightscout/utils/SP.java
index 4733c42d04..acb727d864 100644
--- a/app/src/main/java/info/nightscout/utils/SP.java
+++ b/app/src/main/java/info/nightscout/utils/SP.java
@@ -49,11 +49,19 @@ public class SP {
}
static public int getInt(int resourceID, Integer defaultValue) {
- return SafeParse.stringToInt(sharedPreferences.getString(MainApp.sResources.getString(resourceID), defaultValue.toString()));
+ try {
+ return sharedPreferences.getInt(MainApp.sResources.getString(resourceID), defaultValue);
+ } catch (Exception e) {
+ return SafeParse.stringToInt(sharedPreferences.getString(MainApp.sResources.getString(resourceID), defaultValue.toString()));
+ }
}
static public int getInt(String key, Integer defaultValue) {
- return SafeParse.stringToInt(sharedPreferences.getString(key, defaultValue.toString()));
+ try {
+ return sharedPreferences.getInt(key, defaultValue);
+ } catch (Exception e) {
+ return SafeParse.stringToInt(sharedPreferences.getString(key, defaultValue.toString()));
+ }
}
static public long getLong(int resourceID, Long defaultValue) {
@@ -92,6 +100,24 @@ public class SP {
editor.apply();
}
+ static public void putLong(int resourceID, long value) {
+ SharedPreferences.Editor editor = sharedPreferences.edit();
+ editor.putLong(MainApp.sResources.getString(resourceID), value);
+ editor.apply();
+ }
+
+ static public void putInt(String key, int value) {
+ SharedPreferences.Editor editor = sharedPreferences.edit();
+ editor.putInt(key, value);
+ editor.apply();
+ }
+
+ static public void putInt(int resourceID, int value) {
+ SharedPreferences.Editor editor = sharedPreferences.edit();
+ editor.putInt(MainApp.sResources.getString(resourceID), value);
+ editor.apply();
+ }
+
static public void putString(int resourceID, String value) {
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString(MainApp.sResources.getString(resourceID), value);
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index bab136f254..bd92f721f0 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -657,4 +657,9 @@
SENS
Sensitivity Oref0
Sensitivity MK
+ Absorption settings
+ absorption_maxtime
+ Meal max absorption time
+ Time in hours where is expected all carbs from meal will be absorbed
+ rangetodisplay
diff --git a/app/src/main/res/xml/pref_absorption.xml b/app/src/main/res/xml/pref_absorption.xml
new file mode 100644
index 0000000000..f86a21ec88
--- /dev/null
+++ b/app/src/main/res/xml/pref_absorption.xml
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/xml/pref_openapsama.xml b/app/src/main/res/xml/pref_openapsama.xml
index b9576242dc..c861cac8be 100644
--- a/app/src/main/res/xml/pref_openapsama.xml
+++ b/app/src/main/res/xml/pref_openapsama.xml
@@ -10,21 +10,6 @@
android:key="openapsama_useautosens"
android:title="@string/openapsama_useautosens" />
-
-
\ No newline at end of file