From 1568f772298b362cf1fa01658b235f28619dd7fb Mon Sep 17 00:00:00 2001 From: AdrianLxM Date: Fri, 11 Nov 2016 16:18:10 +0100 Subject: [PATCH 1/2] fill preset buttons --- .../androidaps/PreferencesActivity.java | 1 + .../plugins/Actions/dialogs/FillDialog.java | 143 ++++++++++++------ .../main/res/layout/actions_fill_dialog.xml | 47 ++++++ app/src/main/res/values/strings.xml | 5 + app/src/main/res/xml/pref_others.xml | 28 ++++ 5 files changed, 180 insertions(+), 44 deletions(-) create mode 100644 app/src/main/res/xml/pref_others.xml diff --git a/app/src/main/java/info/nightscout/androidaps/PreferencesActivity.java b/app/src/main/java/info/nightscout/androidaps/PreferencesActivity.java index b088c25adf..0934e68ec3 100644 --- a/app/src/main/java/info/nightscout/androidaps/PreferencesActivity.java +++ b/app/src/main/java/info/nightscout/androidaps/PreferencesActivity.java @@ -98,6 +98,7 @@ public class PreferencesActivity extends PreferenceActivity implements SharedPre addPreferencesFromResource(R.xml.pref_mm640g); if (Config.SMSCOMMUNICATORENABLED) addPreferencesFromResource(R.xml.pref_smscommunicator); + addPreferencesFromResource(R.xml.pref_others); initSummary(getPreferenceScreen()); } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Actions/dialogs/FillDialog.java b/app/src/main/java/info/nightscout/androidaps/plugins/Actions/dialogs/FillDialog.java index 2317c59983..01ad7c40fb 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Actions/dialogs/FillDialog.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Actions/dialogs/FillDialog.java @@ -2,9 +2,11 @@ package info.nightscout.androidaps.plugins.Actions.dialogs; import android.content.Context; import android.content.DialogInterface; +import android.content.SharedPreferences; import android.os.Bundle; import android.os.Handler; import android.os.HandlerThread; +import android.preference.PreferenceManager; import android.support.v4.app.DialogFragment; import android.support.v7.app.AlertDialog; import android.view.LayoutInflater; @@ -24,6 +26,7 @@ import info.nightscout.androidaps.R; import info.nightscout.androidaps.data.PumpEnactResult; import info.nightscout.androidaps.interfaces.PumpInterface; import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin; +import info.nightscout.utils.DecimalFormatter; import info.nightscout.utils.PlusMinusEditText; import info.nightscout.utils.SafeParse; @@ -32,6 +35,10 @@ public class FillDialog extends DialogFragment implements OnClickListener { Button deliverButton; TextView insulin; + double amount1 = 0d; + double amount2 = 0d; + double amount3 = 0d; + PlusMinusEditText editInsulin; Handler mHandler; @@ -59,6 +66,42 @@ public class FillDialog extends DialogFragment implements OnClickListener { editInsulin = new PlusMinusEditText(view, R.id.treatments_newtreatment_insulinamount, R.id.treatments_newtreatment_insulinamount_plus, R.id.treatments_newtreatment_insulinamount_minus, 0d, 0d, maxInsulin, 0.05d, new DecimalFormat("0.00"), false); + //setup preset buttons + Button button1 = (Button) view.findViewById(R.id.fill_preset_button1); + Button button2 = (Button) view.findViewById(R.id.fill_preset_button2); + Button button3 = (Button) view.findViewById(R.id.fill_preset_button3); + View divider = view.findViewById(R.id.fill_preset_divider); + + SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(MainApp.instance().getApplicationContext()); + amount1 = SafeParse.stringToDouble(DecimalFormatter.to2Decimal(SafeParse.stringToDouble(sp.getString("fill_button1", "0.3")))); + amount2 = SafeParse.stringToDouble(DecimalFormatter.to2Decimal(SafeParse.stringToDouble(sp.getString("fill_button2", "0")))); + amount3 = SafeParse.stringToDouble(DecimalFormatter.to2Decimal(SafeParse.stringToDouble(sp.getString("fill_button3", "0")))); + + if(amount1 >0) { + button1.setVisibility(View.VISIBLE); + button1.setText(DecimalFormatter.to2Decimal(amount1)); + button1.setOnClickListener(this); + } else { + button1.setVisibility(View.GONE); + } + if(amount2 >0) { + button2.setVisibility(View.VISIBLE); + button2.setText(DecimalFormatter.to2Decimal(amount2)); + button2.setOnClickListener(this); + } else { + button2.setVisibility(View.GONE); + } + if(amount3 >0) { + button3.setVisibility(View.VISIBLE); + button3.setText(DecimalFormatter.to2Decimal(amount3)); + button3.setOnClickListener(this); + } else { + button3.setVisibility(View.GONE); + } + + if (button1.getVisibility() == View.GONE && button2.getVisibility() == View.GONE && button3.getVisibility() == View.GONE ) { + divider.setVisibility(View.GONE); + } return view; } @@ -73,53 +116,65 @@ public class FillDialog extends DialogFragment implements OnClickListener { public void onClick(View view) { switch (view.getId()) { case R.id.treatments_newtreatment_deliverbutton: - - try { - Double insulin = SafeParse.stringToDouble(this.insulin.getText().toString()); - - String confirmMessage = getString(R.string.fillwarning) + "\n"; - - Double insulinAfterConstraints = MainApp.getConfigBuilder().applyBolusConstraints(insulin); - confirmMessage += getString(R.string.bolus) + ": " + insulinAfterConstraints + "U"; - if (insulinAfterConstraints - insulin != 0) - confirmMessage += "\n" + getString(R.string.constraintapllied); - - final Double finalInsulinAfterConstraints = insulinAfterConstraints; - - final Context context = getContext(); - AlertDialog.Builder builder = new AlertDialog.Builder(context); - - builder.setTitle(this.getContext().getString(R.string.confirmation)); - builder.setMessage(confirmMessage); - builder.setPositiveButton(getString(R.string.primefill), new DialogInterface.OnClickListener() { - public void onClick(DialogInterface dialog, int id) { - if (finalInsulinAfterConstraints > 0) { - final ConfigBuilderPlugin pump = MainApp.getConfigBuilder(); - mHandler.post(new Runnable() { - @Override - public void run() { - PumpEnactResult result = pump.deliverTreatment(finalInsulinAfterConstraints, 0, context, false); - if (!result.success) { - AlertDialog.Builder builder = new AlertDialog.Builder(context); - builder.setTitle(MainApp.sResources.getString(R.string.treatmentdeliveryerror)); - builder.setMessage(result.comment); - builder.setPositiveButton(MainApp.sResources.getString(R.string.ok), null); - builder.show(); - } - } - }); - } - } - }); - builder.setNegativeButton(getString(R.string.cancel), null); - builder.show(); - dismiss(); - } catch (Exception e) { - e.printStackTrace(); - } + Double insulin = SafeParse.stringToDouble(this.insulin.getText().toString()); + confirmAndDeliver(insulin); + break; + case R.id.fill_preset_button1: + confirmAndDeliver(amount1); + break; + case R.id.fill_preset_button2: + confirmAndDeliver(amount2); + break; + case R.id.fill_preset_button3: + confirmAndDeliver(amount3); break; } } + private void confirmAndDeliver(Double insulin) { + try { + + String confirmMessage = getString(R.string.fillwarning) + "\n"; + + Double insulinAfterConstraints = MainApp.getConfigBuilder().applyBolusConstraints(insulin); + confirmMessage += getString(R.string.bolus) + ": " + insulinAfterConstraints + "U"; + if (insulinAfterConstraints - insulin != 0) + confirmMessage += "\n" + getString(R.string.constraintapllied); + + final Double finalInsulinAfterConstraints = insulinAfterConstraints; + + final Context context = getContext(); + AlertDialog.Builder builder = new AlertDialog.Builder(context); + + builder.setTitle(this.getContext().getString(R.string.confirmation)); + builder.setMessage(confirmMessage); + builder.setPositiveButton(getString(R.string.primefill), new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + if (finalInsulinAfterConstraints > 0) { + final ConfigBuilderPlugin pump = MainApp.getConfigBuilder(); + mHandler.post(new Runnable() { + @Override + public void run() { + PumpEnactResult result = pump.deliverTreatment(finalInsulinAfterConstraints, 0, context, false); + if (!result.success) { + AlertDialog.Builder builder = new AlertDialog.Builder(context); + builder.setTitle(MainApp.sResources.getString(R.string.treatmentdeliveryerror)); + builder.setMessage(result.comment); + builder.setPositiveButton(MainApp.sResources.getString(R.string.ok), null); + builder.show(); + } + } + }); + } + } + }); + builder.setNegativeButton(getString(R.string.cancel), null); + builder.show(); + dismiss(); + } catch (Exception e) { + e.printStackTrace(); + } + } + } \ No newline at end of file diff --git a/app/src/main/res/layout/actions_fill_dialog.xml b/app/src/main/res/layout/actions_fill_dialog.xml index 6394ccf304..e6fb0b05ee 100644 --- a/app/src/main/res/layout/actions_fill_dialog.xml +++ b/app/src/main/res/layout/actions_fill_dialog.xml @@ -73,5 +73,52 @@ + + + + +