Merge pull request #1119 from jotomo/delete-future-treatments
Treatments tab: add button (if applicable) to delete future treatments.
This commit is contained in:
commit
7bed827f4b
3 changed files with 66 additions and 22 deletions
|
@ -43,6 +43,8 @@ import info.nightscout.utils.DecimalFormatter;
|
||||||
import info.nightscout.utils.NSUpload;
|
import info.nightscout.utils.NSUpload;
|
||||||
import info.nightscout.utils.SP;
|
import info.nightscout.utils.SP;
|
||||||
|
|
||||||
|
import static info.nightscout.utils.DateUtil.now;
|
||||||
|
|
||||||
public class TreatmentsBolusFragment extends SubscriberFragment implements View.OnClickListener {
|
public class TreatmentsBolusFragment extends SubscriberFragment implements View.OnClickListener {
|
||||||
private static Logger log = LoggerFactory.getLogger(TreatmentsBolusFragment.class);
|
private static Logger log = LoggerFactory.getLogger(TreatmentsBolusFragment.class);
|
||||||
|
|
||||||
|
@ -52,6 +54,7 @@ public class TreatmentsBolusFragment extends SubscriberFragment implements View.
|
||||||
TextView iobTotal;
|
TextView iobTotal;
|
||||||
TextView activityTotal;
|
TextView activityTotal;
|
||||||
Button refreshFromNS;
|
Button refreshFromNS;
|
||||||
|
Button deleteFutureTreatments;
|
||||||
|
|
||||||
Context context;
|
Context context;
|
||||||
|
|
||||||
|
@ -89,7 +92,7 @@ public class TreatmentsBolusFragment extends SubscriberFragment implements View.
|
||||||
holder.iob.setTextColor(ContextCompat.getColor(MainApp.instance(), R.color.colorActive));
|
holder.iob.setTextColor(ContextCompat.getColor(MainApp.instance(), R.color.colorActive));
|
||||||
else
|
else
|
||||||
holder.iob.setTextColor(holder.carbs.getCurrentTextColor());
|
holder.iob.setTextColor(holder.carbs.getCurrentTextColor());
|
||||||
if (t.date > DateUtil.now())
|
if (t.date > now())
|
||||||
holder.date.setTextColor(ContextCompat.getColor(MainApp.instance(), R.color.colorScheduled));
|
holder.date.setTextColor(ContextCompat.getColor(MainApp.instance(), R.color.colorScheduled));
|
||||||
else
|
else
|
||||||
holder.date.setTextColor(holder.carbs.getCurrentTextColor());
|
holder.date.setTextColor(holder.carbs.getCurrentTextColor());
|
||||||
|
@ -189,6 +192,9 @@ public class TreatmentsBolusFragment extends SubscriberFragment implements View.
|
||||||
refreshFromNS = (Button) view.findViewById(R.id.treatments_reshreshfromnightscout);
|
refreshFromNS = (Button) view.findViewById(R.id.treatments_reshreshfromnightscout);
|
||||||
refreshFromNS.setOnClickListener(this);
|
refreshFromNS.setOnClickListener(this);
|
||||||
|
|
||||||
|
deleteFutureTreatments = (Button) view.findViewById(R.id.treatments_delete_future_treatments);
|
||||||
|
deleteFutureTreatments.setOnClickListener(this);
|
||||||
|
|
||||||
boolean nsUploadOnly = SP.getBoolean(R.string.key_ns_upload_only, false);
|
boolean nsUploadOnly = SP.getBoolean(R.string.key_ns_upload_only, false);
|
||||||
if (nsUploadOnly)
|
if (nsUploadOnly)
|
||||||
refreshFromNS.setVisibility(View.GONE);
|
refreshFromNS.setVisibility(View.GONE);
|
||||||
|
@ -201,17 +207,37 @@ public class TreatmentsBolusFragment extends SubscriberFragment implements View.
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View view) {
|
public void onClick(View view) {
|
||||||
|
AlertDialog.Builder builder;
|
||||||
switch (view.getId()) {
|
switch (view.getId()) {
|
||||||
case R.id.treatments_reshreshfromnightscout:
|
case R.id.treatments_reshreshfromnightscout:
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(this.getContext());
|
builder = new AlertDialog.Builder(this.getContext());
|
||||||
builder.setTitle(MainApp.gs(R.string.confirmation));
|
builder.setTitle(MainApp.gs(R.string.confirmation));
|
||||||
builder.setMessage(MainApp.gs(R.string.refresheventsfromnightscout) + "?");
|
builder.setMessage(MainApp.gs(R.string.refresheventsfromnightscout) + "?");
|
||||||
builder.setPositiveButton(MainApp.gs(R.string.ok), new DialogInterface.OnClickListener() {
|
builder.setPositiveButton(MainApp.gs(R.string.ok), (dialog, id) -> {
|
||||||
public void onClick(DialogInterface dialog, int id) {
|
|
||||||
TreatmentsPlugin.getPlugin().getService().resetTreatments();
|
TreatmentsPlugin.getPlugin().getService().resetTreatments();
|
||||||
Intent restartNSClient = new Intent(Intents.ACTION_RESTART);
|
Intent restartNSClient = new Intent(Intents.ACTION_RESTART);
|
||||||
MainApp.instance().getApplicationContext().sendBroadcast(restartNSClient);
|
MainApp.instance().getApplicationContext().sendBroadcast(restartNSClient);
|
||||||
|
});
|
||||||
|
builder.setNegativeButton(MainApp.gs(R.string.cancel), null);
|
||||||
|
builder.show();
|
||||||
|
break;
|
||||||
|
case R.id.treatments_delete_future_treatments:
|
||||||
|
builder = new AlertDialog.Builder(this.getContext());
|
||||||
|
builder.setTitle(MainApp.gs(R.string.confirmation));
|
||||||
|
builder.setMessage(MainApp.gs(R.string.deletefuturetreatments) + "?");
|
||||||
|
builder.setPositiveButton(MainApp.gs(R.string.ok), (dialog, id) -> {
|
||||||
|
final List<Treatment> futureTreatments = TreatmentsPlugin.getPlugin().getService()
|
||||||
|
.getTreatmentDataFromTime(now() + 1000, true);
|
||||||
|
for (Treatment treatment : futureTreatments) {
|
||||||
|
final String _id = treatment._id;
|
||||||
|
if (NSUpload.isIdValid(_id)) {
|
||||||
|
NSUpload.removeCareportalEntryFromNS(_id);
|
||||||
|
} else {
|
||||||
|
UploadQueue.removeID("dbAdd", _id);
|
||||||
}
|
}
|
||||||
|
TreatmentsPlugin.getPlugin().getService().delete(treatment);
|
||||||
|
}
|
||||||
|
updateGUI();
|
||||||
});
|
});
|
||||||
builder.setNegativeButton(MainApp.gs(R.string.cancel), null);
|
builder.setNegativeButton(MainApp.gs(R.string.cancel), null);
|
||||||
builder.show();
|
builder.show();
|
||||||
|
@ -233,14 +259,16 @@ public class TreatmentsBolusFragment extends SubscriberFragment implements View.
|
||||||
protected void updateGUI() {
|
protected void updateGUI() {
|
||||||
Activity activity = getActivity();
|
Activity activity = getActivity();
|
||||||
if (activity != null)
|
if (activity != null)
|
||||||
activity.runOnUiThread(new Runnable() {
|
activity.runOnUiThread(() -> {
|
||||||
@Override
|
|
||||||
public void run() {
|
|
||||||
recyclerView.swapAdapter(new RecyclerViewAdapter(TreatmentsPlugin.getPlugin().getTreatmentsFromHistory()), false);
|
recyclerView.swapAdapter(new RecyclerViewAdapter(TreatmentsPlugin.getPlugin().getTreatmentsFromHistory()), false);
|
||||||
if (TreatmentsPlugin.getPlugin().getLastCalculationTreatments() != null) {
|
if (TreatmentsPlugin.getPlugin().getLastCalculationTreatments() != null) {
|
||||||
iobTotal.setText(DecimalFormatter.to2Decimal(TreatmentsPlugin.getPlugin().getLastCalculationTreatments().iob) + " U");
|
iobTotal.setText(DecimalFormatter.to2Decimal(TreatmentsPlugin.getPlugin().getLastCalculationTreatments().iob) + " " + MainApp.gs(R.string.insulin_unit_shortname));
|
||||||
activityTotal.setText(DecimalFormatter.to3Decimal(TreatmentsPlugin.getPlugin().getLastCalculationTreatments().activity) + " U");
|
activityTotal.setText(DecimalFormatter.to3Decimal(TreatmentsPlugin.getPlugin().getLastCalculationTreatments().activity) + " " + MainApp.gs(R.string.insulin_unit_shortname));
|
||||||
}
|
}
|
||||||
|
if (!TreatmentsPlugin.getPlugin().getService().getTreatmentDataFromTime(now() + 1000, true).isEmpty()) {
|
||||||
|
deleteFutureTreatments.setVisibility(View.VISIBLE);
|
||||||
|
} else {
|
||||||
|
deleteFutureTreatments.setVisibility(View.GONE);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -50,6 +50,11 @@
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
android:id="@+id/treatments_reshreshfromnightscout"
|
android:id="@+id/treatments_reshreshfromnightscout"
|
||||||
style="?android:attr/buttonStyle"
|
style="?android:attr/buttonStyle"
|
||||||
|
@ -58,6 +63,16 @@
|
||||||
android:layout_gravity="center_horizontal"
|
android:layout_gravity="center_horizontal"
|
||||||
android:text="@string/nav_refreshtreatments"/>
|
android:text="@string/nav_refreshtreatments"/>
|
||||||
|
|
||||||
|
<Button
|
||||||
|
android:id="@+id/treatments_delete_future_treatments"
|
||||||
|
style="?android:attr/buttonStyle"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_gravity="center_horizontal"
|
||||||
|
android:text="@string/deletefuturetreatments" />
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
<android.support.v7.widget.RecyclerView
|
<android.support.v7.widget.RecyclerView
|
||||||
android:id="@+id/treatments_recyclerview"
|
android:id="@+id/treatments_recyclerview"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
|
|
|
@ -437,6 +437,7 @@
|
||||||
<string name="openapsma_scriptdebugdata_label">Script debug</string>
|
<string name="openapsma_scriptdebugdata_label">Script debug</string>
|
||||||
<string name="openapsama_useautosens">Use AMA autosens feature</string>
|
<string name="openapsama_useautosens">Use AMA autosens feature</string>
|
||||||
<string name="refresheventsfromnightscout">Refresh events from NS</string>
|
<string name="refresheventsfromnightscout">Refresh events from NS</string>
|
||||||
|
<string name="deletefuturetreatments">Delete treatments in the future</string>
|
||||||
<string name="eatingsoon">Eating Soon</string>
|
<string name="eatingsoon">Eating Soon</string>
|
||||||
<string name="hypo">Hypo</string>
|
<string name="hypo">Hypo</string>
|
||||||
<string name="activity">Activity</string>
|
<string name="activity">Activity</string>
|
||||||
|
|
Loading…
Reference in a new issue