public MedicationTimeListAdapter(MedicationPagerAdapter activity, int medicationID)
 {
     _parent       = activity;
     _medicationID = medicationID;
     Log.Info(TAG, "Constructor: Medication ID - " + _medicationID.ToString());
     GetMedicationTimeData();
 }
Example #2
0
        private void UpdateAdapter(string errorMessage = "")
        {
            try
            {
                MedicationPagerAdapter adapter = new MedicationPagerAdapter(this, _medication, _speakPermission);

                _viewPager.Adapter = adapter;
            }
            catch (Exception e)
            {
                Log.Error(TAG, "UpdateAdapter: Exception - " + e.Message);
                if (GlobalData.ShowErrorDialog)
                {
                    ErrorDisplay.ShowErrorAlert((Activity)this, e, "Failed updating pager adapter", "MedicationPagerAdapter.UpdateAdapter");
                }
            }
        }
Example #3
0
        public void AlertPositiveButtonSelect(object sender, DialogClickEventArgs e, string instanceId)
        {
            try
            {
                if (instanceId == "medicationCancel")
                {
                }

                MedicationPagerAdapter adapter = (MedicationPagerAdapter)_viewPager.Adapter;
                if (adapter == null)
                {
                    return;
                }
                _medication = adapter.Medication;
                if (_medication == null)
                {
                    return;
                }

                var selectedItemIndex = adapter.SelectedItemIndex;
                if (instanceId == "removeTime")
                {
                    //start with getting the spread id of the selected item
                    var spreadID = _medication.MedicationSpread[selectedItemIndex].ID;

                    //is there a reminder set?
                    bool isSet = false;
                    if (_medication.MedicationSpread[selectedItemIndex].MedicationTakeReminder != null)
                    {
                        isSet = _medication.MedicationSpread[selectedItemIndex].MedicationTakeReminder.IsSet;
                    }
                    if (isSet)
                    {
                        if (_medication.MedicationSpread[selectedItemIndex].MedicationTakeReminder != null)
                        {
                            CancelAlarm(_medication.MedicationSpread[selectedItemIndex].MedicationTakeReminder.ID);
                            _medication.MedicationSpread[selectedItemIndex].MedicationTakeReminder.Remove();
                        }
                    }

                    if (_medication.MedicationSpread[selectedItemIndex].MedicationTakeTime != null)
                    {
                        _medication.MedicationSpread[selectedItemIndex].MedicationTakeTime.Remove();
                    }

                    //finally, remove the spread
                    _medication.MedicationSpread[selectedItemIndex].Remove();
                    _medication.MedicationSpread.Remove(_medication.MedicationSpread[selectedItemIndex]);

                    //if (_medication.MedicationSpread.Count == 0)
                    //{
                    //    _selectedMedicationTimeID = -1;
                    //    _selectedItemIndex = -1;
                    //}
                    var globalMedication = GlobalData.MedicationItems.Find(med => med.ID == _medication.ID);

                    if (globalMedication != null)
                    {
                        var globalSpread = globalMedication.MedicationSpread.Find(spread => spread.ID == spreadID);
                        if (globalSpread != null)
                        {
                            globalMedication.MedicationSpread.Remove(globalSpread);
                        }
                        UpdateAdapter();
                        _viewPager.SetCurrentItem((int)_currentView, false);
                        //IsDirty = true;
                    }
                }
                if (instanceId == "removeReminder")
                {
                    try
                    {
                        //grab the list set
                        List <MedicationSpread> medSpread = new List <MedicationSpread>();
                        foreach (var spread in _medication.MedicationSpread)
                        {
                            if (spread.MedicationTakeReminder != null)
                            {
                                if (spread.MedicationTakeReminder.IsSet)
                                {
                                    medSpread.Add(spread);
                                }
                            }
                        }
                        if (medSpread.Count > 0)
                        {
                            //now get the spread
                            var medicationSpread = medSpread[selectedItemIndex];
                            var spreadID         = medicationSpread.ID;
                            if (medicationSpread != null)
                            {
                                Log.Info(TAG, "AlertPositiveButtonSelect: Found reminder with ID " + spreadID.ToString());
                                var medication = GlobalData.MedicationItems.Find(med => med.ID == _medication.ID);
                                if (medication != null)
                                {
                                    var rmd = medication.MedicationSpread.Find(spread => spread.ID == spreadID).MedicationTakeReminder;
                                    if (rmd != null)
                                    {
                                        rmd.IsSet = false;
                                        CancelAlarm(rmd.ID);
                                        Log.Info(TAG, "AlertPositiveButtonSelect: Removed alarm with ID " + rmd.ID.ToString() + ", Dosage - " + medicationSpread.Dosage.ToString() + ", Medication name - " + _medication.MedicationName);
                                    }
                                    else
                                    {
                                        Log.Info(TAG, "AlertPositiveButtonSelect: Could not find reminder with Spread ID " + spreadID.ToString());
                                    }
                                }
                                else
                                {
                                    Log.Info(TAG, "AlertPositiveButtonSelect: Could not find Medication with ID " + _medication.ID.ToString() + ", Local medication ID is " + _medication.ID.ToString());
                                }
                                medicationSpread.MedicationTakeReminder.Remove();
                                medicationSpread.MedicationTakeReminder = null;
                                UpdateAdapter();
                                _viewPager.SetCurrentItem((int)_currentView, false);
                            }
                        }
                        //IsDirty = true;
                    }
                    catch (System.Exception ex)
                    {
                        Log.Error(TAG, "AlertPositiveButtonSelect: Exception - " + ex.Message);
                        if (GlobalData.ShowErrorDialog)
                        {
                            ErrorDisplay.ShowErrorAlert(this, ex, GetString(Resource.String.ErrorMedListFragRemoveRemind), "MedicationMainActivity.AlertPositiveButtonSelect");
                        }
                    }
                }
                if (instanceId == "overdose")
                {
                    try
                    {
                        Toast.MakeText(this, Resource.String.MedListFragOverdoseAbandonToast, ToastLength.Long).Show();
                    }
                    catch (System.Exception ex)
                    {
                        Log.Error(TAG, "AlertPositiveButtonSelect: Exception - " + ex.Message);
                        if (GlobalData.ShowErrorDialog)
                        {
                            ErrorDisplay.ShowErrorAlert(this, ex, GetString(Resource.String.ErrorMedListFragAddTime), "MedicationMainActivity.AlertPositiveButtonSelect");
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Log.Error(TAG, "AlertPositiveButtonSelect: Exception - " + ex.Message);
                if (GlobalData.ShowErrorDialog)
                {
                    ErrorDisplay.ShowErrorAlert((Activity)this, ex, GetString(Resource.String.ErrorMedListFragAddTime), "MedicationMainActivity.AlertPositiveButtonSelect");
                }
            }
        }
 public MedicationTimeDialogFragment(Activity activity, MedicationPagerAdapter fragment, string title)
 {
     _activity    = activity;
     _fragment    = fragment;
     _dialogTitle = title;
 }