diff --git a/app/src/main/java/info/nightscout/androidaps/data/DetailedBolusInfo.java b/app/src/main/java/info/nightscout/androidaps/data/DetailedBolusInfo.java index 00a04df4c4..aa54ac100f 100644 --- a/app/src/main/java/info/nightscout/androidaps/data/DetailedBolusInfo.java +++ b/app/src/main/java/info/nightscout/androidaps/data/DetailedBolusInfo.java @@ -22,12 +22,12 @@ public class DetailedBolusInfo { public double insulin = 0; public double carbs = 0; public int source = Source.NONE; + public boolean isValid = true; public double glucose = 0; // Bg value in current units public String glucoseType = ""; // NS values: Manual, Finger, Sensor public int carbTime = 0; // time shift of carbs in minutes public JSONObject boluscalc = null; // additional bolus wizard info public Context context = null; // context for progress dialog - public boolean addToTreatments = true; public long pumpId = 0; // id of record if comming from pump history (not a newly created treatment) public boolean isSMB = false; // is a Super-MicroBolus } diff --git a/app/src/main/java/info/nightscout/androidaps/data/OverlappingIntervals.java b/app/src/main/java/info/nightscout/androidaps/data/OverlappingIntervals.java index 36b06bb7e2..070426cca0 100644 --- a/app/src/main/java/info/nightscout/androidaps/data/OverlappingIntervals.java +++ b/app/src/main/java/info/nightscout/androidaps/data/OverlappingIntervals.java @@ -15,7 +15,7 @@ public class OverlappingIntervals extends Intervals { boolean needToCut = false; long cutTime = 0; - for (int index = rawData.size()-1; index > 0; index--) { //begin with newest + for (int index = rawData.size()-1; index >= 0; index--) { //begin with newest Interval cur = rawData.valueAt(index); if (cur.isEndingEvent()){ needToCut = true; diff --git a/app/src/main/java/info/nightscout/androidaps/db/DatabaseHelper.java b/app/src/main/java/info/nightscout/androidaps/db/DatabaseHelper.java index 9734456cc9..2b4cc87f20 100644 --- a/app/src/main/java/info/nightscout/androidaps/db/DatabaseHelper.java +++ b/app/src/main/java/info/nightscout/androidaps/db/DatabaseHelper.java @@ -598,6 +598,16 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper { scheduleTreatmentChange(); } + public void update(Treatment treatment) { + try { + getDaoTreatments().update(treatment); + updateEarliestDataChange(treatment.date); + } catch (SQLException e) { + e.printStackTrace(); + } + scheduleTreatmentChange(); + } + public void deleteTreatmentById(String _id) { Treatment stored = findTreatmentById(_id); if (stored != null) { diff --git a/app/src/main/java/info/nightscout/androidaps/db/Treatment.java b/app/src/main/java/info/nightscout/androidaps/db/Treatment.java index 722b534c7d..aebd52ac30 100644 --- a/app/src/main/java/info/nightscout/androidaps/db/Treatment.java +++ b/app/src/main/java/info/nightscout/androidaps/db/Treatment.java @@ -181,6 +181,8 @@ public class Treatment implements DataPointWithLabelInterface { // ----------------- DataPointInterface end -------------------- public Iob iobCalc(long time, double dia) { + if (!isValid) + return new Iob(); InsulinInterface insulinInterface = MainApp.getInsulinIterfaceById(insulinInterfaceID); if (insulinInterface == null) insulinInterface = ConfigBuilderPlugin.getActiveInsulin(); 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 c6b278955f..849f875567 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 @@ -215,7 +215,7 @@ public class ActionsFragment extends SubscriberFragment implements View.OnClickL } break; case R.id.actions_canceltempbasal: - if (MainApp.getConfigBuilder().isInHistoryRealTempBasalInProgress()) { + if (MainApp.getConfigBuilder().isTempBasalInProgress()) { sHandler.post(new Runnable() { @Override public void run() { 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 834206ca34..8a4ec0be38 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 @@ -164,8 +164,8 @@ public class FillDialog extends DialogFragment implements OnClickListener { DetailedBolusInfo detailedBolusInfo = new DetailedBolusInfo(); detailedBolusInfo.insulin = finalInsulinAfterConstraints; detailedBolusInfo.context = context; - detailedBolusInfo.addToTreatments = false; detailedBolusInfo.source = Source.NONE; + detailedBolusInfo.isValid = false; // do not count it in IOB (for pump history) PumpEnactResult result = pump.deliverTreatment(detailedBolusInfo); if (!result.success) { AlertDialog.Builder builder = new AlertDialog.Builder(context); 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 e4e4aac7cc..6bc0e1e807 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 @@ -884,10 +884,8 @@ public class ConfigBuilderPlugin implements PluginBase, PumpInterface, Constrain @Override // return true if new record is created public boolean addToHistoryTreatment(DetailedBolusInfo detailedBolusInfo) { - if (!detailedBolusInfo.addToTreatments) - return false; boolean newRecordCreated = activeTreatments.addToHistoryTreatment(detailedBolusInfo); - if (newRecordCreated) + if (newRecordCreated && detailedBolusInfo.isValid) NSUpload.uploadBolusWizardRecord(detailedBolusInfo); return newRecordCreated; } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Notification.java b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Notification.java index d3db3c2902..13b85e08fc 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Notification.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Notification.java @@ -48,6 +48,7 @@ public class Notification { public static final int NSALARM = 19; public static final int NSURGENTALARM = 20; public static final int SHORT_DIA = 21; + public static final int TOAST_ALARM = 22; public int id; 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 c9719427c0..342f6bd20f 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 @@ -1597,7 +1597,9 @@ public class OverviewFragment extends Fragment implements View.OnClickListener, List treatments = MainApp.getConfigBuilder().getTreatmentsFromHistory(); for (int tx = 0; tx < treatments.size(); tx++) { - DataPointWithLabelInterface t = treatments.get(tx); + Treatment t = treatments.get(tx); + if (!t.isValid) + continue; if (t.getX() < fromTime || t.getX() > endTime) continue; t.setY(getNearestBg((long) t.getX(), bgReadingsArray)); filteredTreatments.add(t); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRv2/comm/MsgHistoryEvents_v2.java b/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRv2/comm/MsgHistoryEvents_v2.java index 5c1b20a9ea..416a96c269 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRv2/comm/MsgHistoryEvents_v2.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRv2/comm/MsgHistoryEvents_v2.java @@ -99,14 +99,14 @@ public class MsgHistoryEvents_v2 extends MessageBase { MainApp.getConfigBuilder().addToHistoryExtendedBolus(extendedBolus); break; case DanaRPump.BOLUS: - log.debug("EVENT BOLUS (" + recordCode + ") " + datetime.toLocaleString() + " Bolus: " + (param1 / 100d) + "U Duration: " + param2 + "min"); detailedBolusInfo.insulin = param1 / 100d; - MainApp.getConfigBuilder().addToHistoryTreatment(detailedBolusInfo); + boolean newRecord = MainApp.getConfigBuilder().addToHistoryTreatment(detailedBolusInfo); + log.debug((newRecord ? "**NEW** " : "") + "EVENT BOLUS (" + recordCode + ") " + datetime.toLocaleString() + " Bolus: " + (param1 / 100d) + "U Duration: " + param2 + "min"); break; case DanaRPump.DUALBOLUS: - log.debug("EVENT DUALBOLUS (" + recordCode + ") " + datetime.toLocaleString() + " Bolus: " + (param1 / 100d) + "U Duration: " + param2 + "min"); detailedBolusInfo.insulin = param1 / 100d; - MainApp.getConfigBuilder().addToHistoryTreatment(detailedBolusInfo); + newRecord = MainApp.getConfigBuilder().addToHistoryTreatment(detailedBolusInfo); + log.debug((newRecord ? "**NEW** " : "") + "EVENT DUALBOLUS (" + recordCode + ") " + datetime.toLocaleString() + " Bolus: " + (param1 / 100d) + "U Duration: " + param2 + "min"); break; case DanaRPump.DUALEXTENDEDSTART: log.debug("EVENT DUALEXTENDEDSTART (" + recordCode + ") " + datetime.toLocaleString() + " Amount: " + (param1 / 100d) + "U Duration: " + param2 + "min"); @@ -134,9 +134,9 @@ public class MsgHistoryEvents_v2 extends MessageBase { log.debug("EVENT PROFILECHANGE (" + recordCode + ") " + datetime.toLocaleString() + " No: " + param1 + " CurrentRate: " + (param2 / 100d) + "U/h"); break; case DanaRPump.CARBS: - log.debug("EVENT CARBS (" + recordCode + ") " + datetime.toLocaleString() + " Carbs: " + param1 + "g"); detailedBolusInfo.carbs = param1; - MainApp.getConfigBuilder().addToHistoryTreatment(detailedBolusInfo); + newRecord = MainApp.getConfigBuilder().addToHistoryTreatment(detailedBolusInfo); + log.debug((newRecord ? "**NEW** " : "") + "EVENT CARBS (" + recordCode + ") " + datetime.toLocaleString() + " Carbs: " + param1 + "g"); break; default: log.debug("Event: " + recordCode + " " + datetime.toLocaleString() + " Param1: " + param1 + " Param2: " + param2); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/TreatmentsPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/TreatmentsPlugin.java index 58de167297..b7ca7d1f36 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/TreatmentsPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/TreatmentsPlugin.java @@ -179,6 +179,7 @@ public class TreatmentsPlugin implements PluginBase, TreatmentsInterface { for (Integer pos = 0; pos < treatments.size(); pos++) { Treatment t = treatments.get(pos); + if (!t.isValid) continue; if (t.date > time) continue; Iob tIOB = t.iobCalc(time, dia); total.iob += tIOB.iobContrib; @@ -224,6 +225,8 @@ public class TreatmentsPlugin implements PluginBase, TreatmentsInterface { long dia_ago = now - (new Double(1.5d * profile.getDia() * 60 * 60 * 1000l)).longValue(); for (Treatment treatment : treatments) { + if (!treatment.isValid) + continue; long t = treatment.date; if (t > dia_ago && t <= now) { if (treatment.carbs >= 1) { @@ -253,6 +256,8 @@ public class TreatmentsPlugin implements PluginBase, TreatmentsInterface { List in5minback = new ArrayList<>(); for (Integer pos = 0; pos < treatments.size(); pos++) { Treatment t = treatments.get(pos); + if (!t.isValid) + continue; if (t.date <= time && t.date > time - 5 * 60 * 1000 && t.carbs > 0) in5minback.add(t); } @@ -412,6 +417,8 @@ public class TreatmentsPlugin implements PluginBase, TreatmentsInterface { treatment.source = detailedBolusInfo.source; treatment.pumpId = detailedBolusInfo.pumpId; treatment.insulin = detailedBolusInfo.insulin; + treatment.isValid = detailedBolusInfo.isValid; + treatment.isSMB = detailedBolusInfo.isSMB; if (detailedBolusInfo.carbTime == 0) treatment.carbs = detailedBolusInfo.carbs; treatment.source = detailedBolusInfo.source; diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/fragments/ProfileViewerDialog.java b/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/fragments/ProfileViewerDialog.java new file mode 100644 index 0000000000..0572bc936f --- /dev/null +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/fragments/ProfileViewerDialog.java @@ -0,0 +1,113 @@ +package info.nightscout.androidaps.plugins.Treatments.fragments; + +import android.os.Bundle; +import android.support.v4.app.DialogFragment; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.Button; +import android.widget.LinearLayout; +import android.widget.TextView; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import info.nightscout.androidaps.MainApp; +import info.nightscout.androidaps.R; +import info.nightscout.androidaps.data.Profile; +import info.nightscout.androidaps.db.ProfileSwitch; +import info.nightscout.androidaps.plugins.PumpDanaR.Dialogs.ProfileViewDialog; +import info.nightscout.utils.DateUtil; +import info.nightscout.utils.DecimalFormatter; + +/** + * Created by adrian on 17/08/17. + */ + +public class ProfileViewerDialog extends DialogFragment { + + private long time; + + private static Logger log = LoggerFactory.getLogger(ProfileViewDialog.class); + + private static TextView noProfile; + private static TextView units; + private static TextView dia; + private static TextView activeProfile; + private static TextView ic; + private static TextView isf; + private static TextView basal; + private static TextView target; + private static View dateDelimiter; + private static LinearLayout dateLayout; + private static TextView dateTextView; + private static Button refreshButton; + + static ProfileViewerDialog newInstance(long time) { + ProfileViewerDialog dialog = new ProfileViewerDialog(); + + Bundle args = new Bundle(); + args.putLong("time", time); + dialog.setArguments(args); + + return dialog; + } + + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + time = getArguments().getLong("time"); + } + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + View layout = inflater.inflate(R.layout.nsprofileviewer_fragment, container, false); + + noProfile = (TextView) layout.findViewById(R.id.profileview_noprofile); + units = (TextView) layout.findViewById(R.id.profileview_units); + dia = (TextView) layout.findViewById(R.id.profileview_dia); + activeProfile = (TextView) layout.findViewById(R.id.profileview_activeprofile); + ic = (TextView) layout.findViewById(R.id.profileview_ic); + isf = (TextView) layout.findViewById(R.id.profileview_isf); + basal = (TextView) layout.findViewById(R.id.profileview_basal); + target = (TextView) layout.findViewById(R.id.profileview_target); + refreshButton = (Button) layout.findViewById(R.id.profileview_reload); + refreshButton.setVisibility(View.GONE); + dateDelimiter = layout.findViewById(R.id.profileview_datedelimiter); + dateDelimiter.setVisibility(View.VISIBLE); + dateLayout = (LinearLayout) layout.findViewById(R.id.profileview_datelayout); + dateLayout.setVisibility(View.VISIBLE); + dateTextView = (TextView) layout.findViewById(R.id.profileview_date); + + setContent(); + return layout; + } + + private void setContent() { + Profile profile = null; + ProfileSwitch profileSwitch = MainApp.getConfigBuilder().getProfileSwitchFromHistory(time); + if(profileSwitch!=null){ + profile = profileSwitch.getProfileObject(); + } + if (profile != null) { + noProfile.setVisibility(View.GONE); + units.setText(profile.getUnits()); + dia.setText(DecimalFormatter.to2Decimal(profile.getDia()) + " h"); + activeProfile.setText(profileSwitch.profileName); + dateTextView.setText(DateUtil.dateAndTimeString(profileSwitch.date)); + ic.setText(profile.getIcList()); + isf.setText(profile.getIsfList()); + basal.setText(profile.getBasalList()); + target.setText(profile.getTargetList()); + } else { + noProfile.setVisibility(View.VISIBLE); + } + } + + + + + +} diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/fragments/TreatmentsBolusFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/fragments/TreatmentsBolusFragment.java index 0e7d94cd88..b47cd3a6bf 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/fragments/TreatmentsBolusFragment.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/fragments/TreatmentsBolusFragment.java @@ -85,6 +85,7 @@ public class TreatmentsBolusFragment extends SubscriberFragment implements View. holder.mealOrCorrection.setText(t.mealBolus ? MainApp.sResources.getString(R.string.mealbolus) : MainApp.sResources.getString(R.string.correctionbous)); holder.ph.setVisibility(t.source == Source.PUMP ? View.VISIBLE : View.GONE); holder.ns.setVisibility(t._id != null ? View.VISIBLE : View.GONE); + holder.invalid.setVisibility(t.isValid ? View.GONE : View.VISIBLE); if (iob.iobContrib != 0) holder.iob.setTextColor(ContextCompat.getColor(MainApp.instance(), R.color.colorActive)); else @@ -113,6 +114,7 @@ public class TreatmentsBolusFragment extends SubscriberFragment implements View. TextView remove; TextView ph; TextView ns; + TextView invalid; TreatmentsViewHolder(View itemView) { super(itemView); @@ -125,6 +127,7 @@ public class TreatmentsBolusFragment extends SubscriberFragment implements View. mealOrCorrection = (TextView) itemView.findViewById(R.id.treatments_mealorcorrection); ph = (TextView) itemView.findViewById(R.id.pump_sign); ns = (TextView) itemView.findViewById(R.id.ns_sign); + invalid = (TextView) itemView.findViewById(R.id.invalid_sign); remove = (TextView) itemView.findViewById(R.id.treatments_remove); remove.setOnClickListener(this); remove.setPaintFlags(remove.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG); @@ -141,10 +144,15 @@ public class TreatmentsBolusFragment extends SubscriberFragment implements View. builder.setPositiveButton(MainApp.sResources.getString(R.string.ok), new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { final String _id = treatment._id; - if (_id != null && !_id.equals("")) { - NSUpload.removeCareportalEntryFromNS(_id); + if (treatment.source == Source.PUMP) { + treatment.isValid = false; + MainApp.getDbHelper().update(treatment); + } else { + if (_id != null && !_id.equals("")) { + NSUpload.removeCareportalEntryFromNS(_id); + } + MainApp.getDbHelper().delete(treatment); } - MainApp.getDbHelper().delete(treatment); updateGUI(); Answers.getInstance().logCustom(new CustomEvent("RemoveTreatment")); } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/fragments/TreatmentsProfileSwitchFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/fragments/TreatmentsProfileSwitchFragment.java index e5c1134787..15fd3513e9 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/fragments/TreatmentsProfileSwitchFragment.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/fragments/TreatmentsProfileSwitchFragment.java @@ -7,6 +7,7 @@ import android.content.Intent; import android.graphics.Paint; import android.os.Bundle; import android.support.v4.app.Fragment; +import android.support.v4.app.FragmentManager; import android.support.v4.content.ContextCompat; import android.support.v7.app.AlertDialog; import android.support.v7.widget.CardView; @@ -84,6 +85,9 @@ public class TreatmentsProfileSwitchFragment extends SubscriberFragment implemen else holder.date.setTextColor(holder.duration.getCurrentTextColor()); holder.remove.setTag(profileSwitch); + holder.name.setTag(profileSwitch); + holder.date.setTag(profileSwitch); + } @Override @@ -116,6 +120,9 @@ public class TreatmentsProfileSwitchFragment extends SubscriberFragment implemen remove = (TextView) itemView.findViewById(R.id.profileswitch_remove); remove.setOnClickListener(this); remove.setPaintFlags(remove.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG); + name.setOnClickListener(this); + date.setOnClickListener(this); + } @Override @@ -134,6 +141,13 @@ public class TreatmentsProfileSwitchFragment extends SubscriberFragment implemen } }); break; + case R.id.profileswitch_date: + case R.id.profileswitch_name: + long time = ((ProfileSwitch)v.getTag()).date; + ProfileViewerDialog pvd = ProfileViewerDialog.newInstance(time); + FragmentManager manager = getFragmentManager(); + pvd.show(manager, "ProfileViewDialog"); + break; } } } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Wear/ActionStringHandler.java b/app/src/main/java/info/nightscout/androidaps/plugins/Wear/ActionStringHandler.java index cbff033fb6..a4bbd34f1c 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Wear/ActionStringHandler.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Wear/ActionStringHandler.java @@ -615,7 +615,7 @@ public class ActionStringHandler { public void run() { DetailedBolusInfo detailedBolusInfo = new DetailedBolusInfo(); detailedBolusInfo.insulin = amount; - detailedBolusInfo.addToTreatments = false; + detailedBolusInfo.isValid = false; detailedBolusInfo.source = Source.USER; PumpEnactResult result = MainApp.getConfigBuilder().deliverTreatment(detailedBolusInfo); if (!result.success) { diff --git a/app/src/main/java/info/nightscout/utils/DateUtil.java b/app/src/main/java/info/nightscout/utils/DateUtil.java index b058450512..bf2c1ba1fd 100644 --- a/app/src/main/java/info/nightscout/utils/DateUtil.java +++ b/app/src/main/java/info/nightscout/utils/DateUtil.java @@ -85,12 +85,16 @@ public class DateUtil { } public static int toSeconds(String hh_colon_mm) { - Pattern p = Pattern.compile("(\\d+):(\\d+)"); + Pattern p = Pattern.compile("(\\d+):(\\d+)( a.m.| p.m.|)"); Matcher m = p.matcher(hh_colon_mm); int retval = 0; if (m.find()) { retval = SafeParse.stringToInt(m.group(1)) * 60 * 60 + SafeParse.stringToInt(m.group(2)) * 60; + if (m.group(3).equals(" .a.m") && m.group(1).equals("12")) + retval -= 12 * 60 * 60; + if (m.group(3).equals(" p.m.") && !m.group(1).equals("12")) + retval += 12 * 60 * 60; } return retval; } diff --git a/app/src/main/java/info/nightscout/utils/ToastUtils.java b/app/src/main/java/info/nightscout/utils/ToastUtils.java index dba4fb4202..4e1e4ac4ed 100644 --- a/app/src/main/java/info/nightscout/utils/ToastUtils.java +++ b/app/src/main/java/info/nightscout/utils/ToastUtils.java @@ -6,6 +6,10 @@ import android.os.Handler; import android.os.Looper; import android.widget.Toast; +import info.nightscout.androidaps.MainApp; +import info.nightscout.androidaps.plugins.Overview.Notification; +import info.nightscout.androidaps.plugins.Overview.events.EventNewNotification; + public class ToastUtils { public static void showToastInUiThread(final Context ctx, @@ -25,6 +29,13 @@ public class ToastUtils { showToastInUiThread(ctx, string); playSound(ctx, soundID); + new Thread(new Runnable() { + @Override + public void run() { + Notification notification = new Notification(Notification.TOAST_ALARM, string, Notification.URGENT); + MainApp.bus().post(new EventNewNotification(notification)); + } + }).start(); } private static void playSound(final Context ctx, final int soundID) { diff --git a/app/src/main/res/layout/nsprofileviewer_fragment.xml b/app/src/main/res/layout/nsprofileviewer_fragment.xml index e2c48fb79f..f0e385e86b 100644 --- a/app/src/main/res/layout/nsprofileviewer_fragment.xml +++ b/app/src/main/res/layout/nsprofileviewer_fragment.xml @@ -35,7 +35,7 @@ android:layout_weight="2" android:gravity="end" android:paddingRight="5dp" - android:text="@string/nsprofileview_activeprofile_label" + android:text="@string/careportal_newnstreatment_profile_label" android:textSize="14sp" /> + + + + + + + + + + + + + android:orientation="horizontal" + android:visibility="gone">