From 83da3447ac3563a52584d84f9e85607f700d1471 Mon Sep 17 00:00:00 2001 From: "Markus M. May" Date: Wed, 18 Apr 2018 22:11:32 +0200 Subject: [PATCH] Cleanup mmol/mgdl handling in Dialogs --- .../Dialogs/NewNSTreatmentDialog.java | 16 ++-- .../Overview/Dialogs/NewCarbsDialog.java | 30 +++---- .../nightscout/utils/DefaultValueHelper.java | 90 +++++++++++++++++++ 3 files changed, 115 insertions(+), 21 deletions(-) create mode 100644 app/src/main/java/info/nightscout/utils/DefaultValueHelper.java diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Careportal/Dialogs/NewNSTreatmentDialog.java b/app/src/main/java/info/nightscout/androidaps/plugins/Careportal/Dialogs/NewNSTreatmentDialog.java index 68d844739b..56aa0158cf 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Careportal/Dialogs/NewNSTreatmentDialog.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Careportal/Dialogs/NewNSTreatmentDialog.java @@ -51,6 +51,7 @@ import info.nightscout.androidaps.db.TempTarget; import info.nightscout.androidaps.plugins.Careportal.OptionsToShow; import info.nightscout.androidaps.plugins.Treatments.TreatmentsPlugin; import info.nightscout.utils.DateUtil; +import info.nightscout.utils.DefaultValueHelper; import info.nightscout.utils.FabricPrivacy; import info.nightscout.utils.HardLimits; import info.nightscout.utils.JsonHelper; @@ -210,19 +211,22 @@ public class NewNSTreatmentDialog extends DialogFragment implements View.OnClick } boolean erase = false; + String units = MainApp.getConfigBuilder().getProfileUnits(); + DefaultValueHelper helper = new DefaultValueHelper(); if (MainApp.gs(R.string.eatingsoon).equals(reasonList.get(position))) { - defaultDuration = SP.getDouble(R.string.key_eatingsoon_duration, 0d); - defaultTarget = SP.getDouble(R.string.key_eatingsoon_target, 0d); + defaultDuration = helper.determineEatingSoonTTDuration(); + defaultTarget = helper.determineEatingSoonTT(units); } else if (MainApp.gs(R.string.activity).equals(reasonList.get(position))) { - defaultDuration = SP.getDouble(R.string.key_activity_duration, 0d); - defaultTarget = SP.getDouble(R.string.key_activity_target, 0d); + defaultDuration = helper.determineActivityTTDuration(); + defaultTarget = helper.determineActivityTT(units); } else if (MainApp.gs(R.string.hypo).equals(reasonList.get(position))) { - defaultDuration = SP.getDouble(R.string.key_hypo_duration, 0d); - defaultTarget = SP.getDouble(R.string.key_hypo_target, 0d); + defaultDuration = helper.determineHypoTTDuration(); + defaultTarget = helper.determineHypoTT(units); } else { defaultDuration = 0; erase = true; } + if (defaultTarget != 0 || erase) { editTemptarget.setValue(defaultTarget); } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/NewCarbsDialog.java b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/NewCarbsDialog.java index d8bdb6648d..6be2b149ca 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/NewCarbsDialog.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/NewCarbsDialog.java @@ -50,6 +50,7 @@ import info.nightscout.androidaps.plugins.Treatments.TreatmentsPlugin; import info.nightscout.androidaps.queue.Callback; import info.nightscout.utils.DateUtil; import info.nightscout.utils.DecimalFormatter; +import info.nightscout.utils.DefaultValueHelper; import info.nightscout.utils.NumberPicker; import info.nightscout.utils.SP; import info.nightscout.utils.SafeParse; @@ -322,26 +323,25 @@ public class NewCarbsDialog extends DialogFragment implements OnClickListener, D if (currentProfile == null) return; - int activityTTDuration = SP.getInt(R.string.key_activity_duration, Constants.defaultActivityTTDuration); - activityTTDuration = activityTTDuration > 0 ? activityTTDuration : Constants.defaultActivityTTDuration; - double activityTT = SP.getDouble(R.string.key_activity_target, currentProfile.getUnits().equals(Constants.MMOL) ? Constants.defaultActivityTTmmol : Constants.defaultActivityTTmgdl); - activityTT = activityTT > 0 ? activityTT : currentProfile.getUnits().equals(Constants.MMOL) ? Constants.defaultActivityTTmmol : Constants.defaultActivityTTmgdl; + final String units = currentProfile.getUnits(); + DefaultValueHelper helper = new DefaultValueHelper(); - int eatingSoonTTDuration = SP.getInt(R.string.key_eatingsoon_duration, Constants.defaultEatingSoonTTDuration); - eatingSoonTTDuration = eatingSoonTTDuration > 0 ? eatingSoonTTDuration : Constants.defaultEatingSoonTTDuration; - double eatingSoonTT = SP.getDouble(R.string.key_eatingsoon_target, currentProfile.getUnits().equals(Constants.MMOL) ? Constants.defaultEatingSoonTTmmol : Constants.defaultEatingSoonTTmgdl); - eatingSoonTT = eatingSoonTT > 0 ? eatingSoonTT : currentProfile.getUnits().equals(Constants.MMOL) ? Constants.defaultEatingSoonTTmmol : Constants.defaultEatingSoonTTmgdl; + int activityTTDuration = helper.determineActivityTTDuration(); + double activityTT = helper.determineActivityTT(units); - int hypoTTDuration = SP.getInt(R.string.key_hypo_duration, Constants.defaultHypoTTDuration); - hypoTTDuration = hypoTTDuration > 0 ? hypoTTDuration : Constants.defaultHypoTTDuration; - double hypoTT = SP.getDouble(R.string.key_hypo_target, currentProfile.getUnits().equals(Constants.MMOL) ? Constants.defaultHypoTTmmol : Constants.defaultHypoTTmgdl); - hypoTT = hypoTT > 0 ? hypoTT : currentProfile.getUnits().equals(Constants.MMOL) ? Constants.defaultHypoTTmmol : Constants.defaultHypoTTmgdl; + int eatingSoonTTDuration = helper.determineEatingSoonTTDuration(); + double eatingSoonTT = helper.determineEatingSoonTT(units); + + int hypoTTDuration = helper.determineHypoTTDuration(); + double hypoTT = helper.determineHypoTT(units); if (startActivityTTCheckbox.isChecked()) { + String unitLabel = "mg/dl"; if (currentProfile.getUnits().equals(Constants.MMOL)) { - actions.add(MainApp.gs(R.string.temptargetshort) + ": " + "" + DecimalFormatter.to1Decimal(activityTT) + " mmol/l (" + activityTTDuration + " min)"); - } else - actions.add(MainApp.gs(R.string.temptargetshort) + ": " + "" + DecimalFormatter.to0Decimal(activityTT) + " mg/dl (" + activityTTDuration + " min)"); + unitLabel = "mmol/l"; + } + + actions.add(MainApp.gs(R.string.temptargetshort) + ": " + "" + DecimalFormatter.to1Decimal(activityTT) + " " + unitLabel + " (" + activityTTDuration + " min)"); } if (startEatingSoonTTCheckbox.isChecked()) { diff --git a/app/src/main/java/info/nightscout/utils/DefaultValueHelper.java b/app/src/main/java/info/nightscout/utils/DefaultValueHelper.java new file mode 100644 index 0000000000..ba1aba90b8 --- /dev/null +++ b/app/src/main/java/info/nightscout/utils/DefaultValueHelper.java @@ -0,0 +1,90 @@ +package info.nightscout.utils; + +import info.nightscout.androidaps.Constants; +import info.nightscout.androidaps.R; + +public class DefaultValueHelper { + + /** + * returns the corresponding EatingSoon TempTarget based on the given units (MMOL / MGDL) + * + * @param units + * @return + */ + public double getDefaultEatingSoonTT(String units) { + return Constants.MMOL.equals(units) ? Constants.defaultEatingSoonTTmmol + : Constants.defaultEatingSoonTTmgdl; + } + + /** + * returns the corresponding Activity TempTarget based on the given units (MMOL / MGDL) + * + * @param units + * @return + */ + public double getDefaultActivityTT(String units) { + return Constants.MMOL.equals(units) ? Constants.defaultActivityTTmmol + : Constants.defaultActivityTTmgdl; + } + + /** + * returns the corresponding Hypo TempTarget based on the given units (MMOL / MGDL) + * + * @param units + * @return + */ + public double getDefaultHypoTT(String units) { + return Constants.MMOL.equals(units) ? Constants.defaultHypoTTmmol + : Constants.defaultHypoTTmgdl; + } + + /** + * returns the configured EatingSoon TempTarget, if this is set to 0, the Default-Value is returned. + * + * @param units + * @return + */ + public double determineEatingSoonTT(String units) { + double value = SP.getDouble(R.string.key_eatingsoon_target, this.getDefaultEatingSoonTT(units)); + return value > 0 ? value : this.getDefaultEatingSoonTT(units); + } + + public int determineEatingSoonTTDuration() { + int value = SP.getInt(R.string.key_eatingsoon_duration, Constants.defaultEatingSoonTTDuration); + return value > 0 ? value : Constants.defaultEatingSoonTTDuration; + } + + + /** + * returns the configured Activity TempTarget, if this is set to 0, the Default-Value is returned. + * + * @param units + * @return + */ + public double determineActivityTT(String units) { + double value = SP.getDouble(R.string.key_activity_target, this.getDefaultActivityTT(units)); + return value > 0 ? value : this.getDefaultActivityTT(units); + } + + public int determineActivityTTDuration() { + int value = SP.getInt(R.string.key_activity_duration, Constants.defaultActivityTTDuration); + return value > 0 ? value : Constants.defaultActivityTTDuration; + } + + /** + * returns the configured Hypo TempTarget, if this is set to 0, the Default-Value is returned. + * + * @param units + * @return + */ + public double determineHypoTT(String units) { + double value = SP.getDouble(R.string.key_hypo_target, this.getDefaultHypoTT(units)); + return value > 0 ? value : this.getDefaultHypoTT(units); + } + + public int determineHypoTTDuration() { + int value = SP.getInt(R.string.key_hypo_duration, Constants.defaultHypoTTDuration); + return value > 0 ? value : Constants.defaultHypoTTDuration; + } + +}