From 218190e92f1fd4c10c7699957ee691b08584ad65 Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Mon, 16 Jan 2017 23:23:20 +0100 Subject: [PATCH] support for removing temp targets from GUI --- .idea/misc.xml | 2 +- .../ConfigBuilder/ConfigBuilderPlugin.java | 20 ++++++++++- .../TempTargetRangeFragment.java | 33 +++++++++++++++++-- .../info/nightscout/client/data/DbLogger.java | 10 ++++++ .../main/res/layout/temptargetrange_item.xml | 16 ++++++++- 5 files changed, 76 insertions(+), 5 deletions(-) diff --git a/.idea/misc.xml b/.idea/misc.xml index 5d19981032..fbb68289f4 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -37,7 +37,7 @@ - + diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/ConfigBuilder/ConfigBuilderPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/ConfigBuilder/ConfigBuilderPlugin.java index ccbec0581f..715e977f31 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/ConfigBuilder/ConfigBuilderPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/ConfigBuilder/ConfigBuilderPlugin.java @@ -974,7 +974,25 @@ public class ConfigBuilderPlugin implements PluginBase, PumpInterface, Constrain intent.putExtras(bundle); intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES); context.sendBroadcast(intent); - DbLogger.dbAdd(intent, data.toString(), NewExtendedBolusDialog.class); + DbLogger.dbAdd(intent, data.toString(), ConfigBuilderPlugin.class); + } catch (Exception e) { + e.printStackTrace(); + } + + } + + public static void removeCareportalEntryFromNS(String _id) { + try { + Context context = MainApp.instance().getApplicationContext(); + Bundle bundle = new Bundle(); + bundle.putString("action", "dbRemove"); + bundle.putString("collection", "treatments"); + bundle.putString("_id", _id); + Intent intent = new Intent(Intents.ACTION_DATABASE); + intent.putExtras(bundle); + intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES); + context.sendBroadcast(intent); + DbLogger.dbRemove(intent, _id, ConfigBuilderPlugin.class); } catch (Exception e) { e.printStackTrace(); } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/TempTargetRange/TempTargetRangeFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/TempTargetRange/TempTargetRangeFragment.java index 304fc2dfe1..7b7b3c70e1 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/TempTargetRange/TempTargetRangeFragment.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/TempTargetRange/TempTargetRangeFragment.java @@ -4,6 +4,7 @@ import android.app.Activity; import android.content.DialogInterface; import android.content.Intent; import android.content.SharedPreferences; +import android.graphics.Paint; import android.os.Bundle; import android.preference.PreferenceManager; import android.support.v4.app.Fragment; @@ -18,8 +19,10 @@ import android.widget.Button; import android.widget.LinearLayout; import android.widget.TextView; +import com.j256.ormlite.dao.Dao; import com.squareup.otto.Subscribe; +import java.sql.SQLException; import java.util.List; import info.nightscout.androidaps.MainApp; @@ -79,7 +82,8 @@ public class TempTargetRangeFragment extends Fragment implements View.OnClickLis holder.dateLinearLayout.setBackgroundColor(MainApp.instance().getResources().getColor(R.color.colorInProgress)); else holder.dateLinearLayout.setBackgroundColor(MainApp.instance().getResources().getColor(R.color.cardColorBackground)); - } + holder.remove.setTag(tempTarget); + } @Override public int getItemCount() { @@ -91,13 +95,14 @@ public class TempTargetRangeFragment extends Fragment implements View.OnClickLis super.onAttachedToRecyclerView(recyclerView); } - public static class TempTargetsViewHolder extends RecyclerView.ViewHolder { + public static class TempTargetsViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener { CardView cv; TextView date; TextView duration; TextView low; TextView high; TextView reason; + TextView remove; LinearLayout dateLinearLayout; TempTargetsViewHolder(View itemView) { @@ -108,8 +113,32 @@ public class TempTargetRangeFragment extends Fragment implements View.OnClickLis low = (TextView) itemView.findViewById(R.id.temptargetrange_low); high = (TextView) itemView.findViewById(R.id.temptargetrange_high); reason = (TextView) itemView.findViewById(R.id.temptargetrange_reason); + remove = (TextView) itemView.findViewById(R.id.temptargetrange_remove); + remove.setOnClickListener(this); + remove.setPaintFlags(remove.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG); dateLinearLayout = (LinearLayout) itemView.findViewById(R.id.temptargetrange_datelinearlayout); } + + @Override + public void onClick(View v) { + TempTarget tempTarget = (TempTarget) v.getTag(); + switch (v.getId()) { + case R.id.temptargetrange_remove: + String _id = tempTarget._id; + if (_id != null && !_id.equals("")) { + MainApp.getConfigBuilder().removeCareportalEntryFromNS(_id); + try { + Dao daoTempTargets = MainApp.getDbHelper().getDaoTempTargets(); + daoTempTargets.delete(tempTarget); + MainApp.bus().post(new EventTempTargetRangeChange()); + } catch (SQLException e) { + e.printStackTrace(); + } + + } + break; + } + } } } diff --git a/app/src/main/java/info/nightscout/client/data/DbLogger.java b/app/src/main/java/info/nightscout/client/data/DbLogger.java index af2345a5b0..3695d5e735 100644 --- a/app/src/main/java/info/nightscout/client/data/DbLogger.java +++ b/app/src/main/java/info/nightscout/client/data/DbLogger.java @@ -26,4 +26,14 @@ public class DbLogger { } else if (Config.logNSUpload) log.debug("DBADD dbAdd " + q.size() + " receivers " + data); } + + public static void dbRemove(Intent intent, String data, Class sender) { + Logger log = LoggerFactory.getLogger(sender); + List q = MainApp.instance().getApplicationContext().getPackageManager().queryBroadcastReceivers(intent, 0); + if (q.size() < 1) { + ToastUtils.showToastInUiThread(MainApp.instance().getApplicationContext(),MainApp.sResources.getString(R.string.nsclientnotinstalled)); + log.error("DBREMOVE No receivers"); + } else if (Config.logNSUpload) + log.debug("DBREMOVE dbRemove " + q.size() + " receivers " + data); + } } diff --git a/app/src/main/res/layout/temptargetrange_item.xml b/app/src/main/res/layout/temptargetrange_item.xml index fada1de4dc..7e69f6bb2f 100644 --- a/app/src/main/res/layout/temptargetrange_item.xml +++ b/app/src/main/res/layout/temptargetrange_item.xml @@ -89,10 +89,15 @@ android:layout_height="wrap_content" android:layout_gravity="top" android:paddingLeft="10dp" - android:paddingRight="5dp" android:text="@string/reason" android:textAppearance="?android:attr/textAppearanceSmall" /> + + + +