diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Actions/ActionsFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/Actions/ActionsFragment.java index 7eb8a7f960..4d771ca31d 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Actions/ActionsFragment.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Actions/ActionsFragment.java @@ -3,6 +3,8 @@ package info.nightscout.androidaps.plugins.Actions; import android.app.Activity; import android.os.Bundle; +import android.os.Handler; +import android.os.HandlerThread; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.view.LayoutInflater; @@ -10,13 +12,21 @@ import android.view.View; import android.view.ViewGroup; import android.widget.Button; +import com.crashlytics.android.answers.Answers; +import com.crashlytics.android.answers.CustomEvent; import com.squareup.otto.Subscribe; +import java.util.Date; + import info.nightscout.androidaps.Config; import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.R; +import info.nightscout.androidaps.db.ExtendedBolus; +import info.nightscout.androidaps.events.EventExtendedBolusChange; import info.nightscout.androidaps.events.EventInitializationChanged; import info.nightscout.androidaps.events.EventRefreshGui; +import info.nightscout.androidaps.events.EventTempBasalChange; +import info.nightscout.androidaps.interfaces.PumpInterface; import info.nightscout.androidaps.plugins.Actions.dialogs.FillDialog; import info.nightscout.androidaps.plugins.Actions.dialogs.NewExtendedBolusDialog; import info.nightscout.androidaps.plugins.Actions.dialogs.NewTempBasalDialog; @@ -38,10 +48,20 @@ public class ActionsFragment extends Fragment implements View.OnClickListener { Button profileSwitch; Button tempTarget; Button extendedBolus; + Button extendedBolusCancel; Button tempBasal; Button fill; + private static Handler sHandler; + private static HandlerThread sHandlerThread; + public ActionsFragment() { + super(); + if (sHandlerThread == null) { + sHandlerThread = new HandlerThread(ActionsFragment.class.getSimpleName()); + sHandlerThread.start(); + sHandler = new Handler(sHandlerThread.getLooper()); + } } @@ -53,12 +73,14 @@ public class ActionsFragment extends Fragment implements View.OnClickListener { profileSwitch = (Button) view.findViewById(R.id.actions_profileswitch); tempTarget = (Button) view.findViewById(R.id.actions_temptarget); extendedBolus = (Button) view.findViewById(R.id.actions_extendedbolus); + extendedBolusCancel = (Button) view.findViewById(R.id.actions_extendedbolus_cancel); tempBasal = (Button) view.findViewById(R.id.actions_settempbasal); fill = (Button) view.findViewById(R.id.actions_fill); profileSwitch.setOnClickListener(this); tempTarget.setOnClickListener(this); extendedBolus.setOnClickListener(this); + extendedBolusCancel.setOnClickListener(this); tempBasal.setOnClickListener(this); fill.setOnClickListener(this); @@ -91,6 +113,16 @@ public class ActionsFragment extends Fragment implements View.OnClickListener { updateGUIIfVisible(); } + @Subscribe + public void onStatusEvent(final EventExtendedBolusChange ev) { + updateGUIIfVisible(); + } + + @Subscribe + public void onStatusEvent(final EventTempBasalChange ev) { + updateGUIIfVisible(); + } + void updateGUIIfVisible() { Activity activity = getActivity(); if (activity != null) @@ -101,11 +133,19 @@ public class ActionsFragment extends Fragment implements View.OnClickListener { profileSwitch.setVisibility(View.GONE); else profileSwitch.setVisibility(View.VISIBLE); - if (!MainApp.getConfigBuilder().getPumpDescription().isExtendedBolusCapable || !MainApp.getConfigBuilder().isInitialized() || MainApp.getConfigBuilder().isSuspended()) + if (!MainApp.getConfigBuilder().getPumpDescription().isExtendedBolusCapable || !MainApp.getConfigBuilder().isInitialized() || MainApp.getConfigBuilder().isSuspended() || MainApp.getConfigBuilder().isExtendedBoluslInProgress()) extendedBolus.setVisibility(View.GONE); - else + else { extendedBolus.setVisibility(View.VISIBLE); - if (!MainApp.getConfigBuilder().getPumpDescription().isTempBasalCapable || !MainApp.getConfigBuilder().isInitialized() || MainApp.getConfigBuilder().isSuspended()) + } + if (!MainApp.getConfigBuilder().getPumpDescription().isExtendedBolusCapable || !MainApp.getConfigBuilder().isInitialized() || MainApp.getConfigBuilder().isSuspended() || !MainApp.getConfigBuilder().isExtendedBoluslInProgress()) + extendedBolusCancel.setVisibility(View.GONE); + else { + extendedBolusCancel.setVisibility(View.VISIBLE); + ExtendedBolus running = MainApp.getConfigBuilder().getExtendedBolus(new Date().getTime()); + extendedBolusCancel.setText(MainApp.instance().getString(R.string.cancel) + " " + running.toString()); + } + if (!MainApp.getConfigBuilder().getPumpDescription().isTempBasalCapable || !MainApp.getConfigBuilder().isInitialized() || MainApp.getConfigBuilder().isSuspended() || MainApp.getConfigBuilder().isTempBasalInProgress()) tempBasal.setVisibility(View.GONE); else tempBasal.setVisibility(View.VISIBLE); @@ -125,6 +165,7 @@ public class ActionsFragment extends Fragment implements View.OnClickListener { @Override public void onClick(View view) { FragmentManager manager = getFragmentManager(); + final PumpInterface pump = MainApp.getConfigBuilder(); switch (view.getId()) { case R.id.actions_profileswitch: NewNSTreatmentDialog newDialog = new NewNSTreatmentDialog(); @@ -144,6 +185,17 @@ public class ActionsFragment extends Fragment implements View.OnClickListener { NewExtendedBolusDialog newExtendedDialog = new NewExtendedBolusDialog(); newExtendedDialog.show(manager, "NewExtendedDialog"); break; + case R.id.actions_extendedbolus_cancel: + if (MainApp.getConfigBuilder().isExtendedBoluslInProgress()) { + sHandler.post(new Runnable() { + @Override + public void run() { + pump.cancelExtendedBolus(); + Answers.getInstance().logCustom(new CustomEvent("CancelExtended")); + } + }); + } + break; case R.id.actions_settempbasal: NewTempBasalDialog newTempDialog = new NewTempBasalDialog(); newTempDialog.show(manager, "NewTempDialog"); @@ -153,12 +205,26 @@ public class ActionsFragment extends Fragment implements View.OnClickListener { fillDialog.show(manager, "FillDialog"); break; case R.id.actions_50_30: - DanaRv2Plugin danaRv2Plugin = (DanaRv2Plugin) MainApp.getSpecificPlugin(DanaRv2Plugin.class); - danaRv2Plugin.setHighTempBasalPercent(50); + if (MainApp.getConfigBuilder().isTempBasalInProgress()) { + sHandler.post(new Runnable() { + @Override + public void run() { + DanaRv2Plugin danaRv2Plugin = (DanaRv2Plugin) MainApp.getSpecificPlugin(DanaRv2Plugin.class); + danaRv2Plugin.setHighTempBasalPercent(50); + } + }); + } break; case R.id.actions_400_15: - danaRv2Plugin = (DanaRv2Plugin) MainApp.getSpecificPlugin(DanaRv2Plugin.class); - danaRv2Plugin.setHighTempBasalPercent(400); + if (MainApp.getConfigBuilder().isTempBasalInProgress()) { + sHandler.post(new Runnable() { + @Override + public void run() { + DanaRv2Plugin danaRv2Plugin = (DanaRv2Plugin) MainApp.getSpecificPlugin(DanaRv2Plugin.class); + danaRv2Plugin.setHighTempBasalPercent(400); + } + }); + } break; } } 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 51534e207e..8fcd3323d0 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 @@ -232,8 +232,6 @@ public class OverviewFragment extends Fragment implements View.OnClickListener, treatmentButton.setOnClickListener(this); wizardButton = (Button) view.findViewById(R.id.overview_wizardbutton); wizardButton.setOnClickListener(this); - cancelTempButton = (Button) view.findViewById(R.id.overview_canceltempbutton); - cancelTempButton.setOnClickListener(this); acceptTempButton = (Button) view.findViewById(R.id.overview_accepttempbutton); acceptTempButton.setOnClickListener(this); quickWizardButton = (Button) view.findViewById(R.id.overview_quickwizardbutton); diff --git a/app/src/main/res/layout/actions_fragment.xml b/app/src/main/res/layout/actions_fragment.xml index 97fd4bb4e5..71c7d9dd2f 100644 --- a/app/src/main/res/layout/actions_fragment.xml +++ b/app/src/main/res/layout/actions_fragment.xml @@ -65,6 +65,19 @@ android:text="@string/overview_extendedbolus_button" android:textColor="@color/colorSetExtendedButton" /> +