/// <summary> /// Initialise les objets de la vue avec les données /// </summary> private void SetDataToView() { if (!App.Locator.Alert.IsNew) { AlertTitleEditText.Text = App.Locator.Alert.TitleAlert; AlertBodyEditText.Text = App.Locator.Alert.ContentAlert; } if (App.Locator.ModeZone.EditingAlerts) { //var lsRecipientsCopy = new AlertRecipientDTO[App.Locator.Alert.LsRecipients.Count()]; //App.Locator.Alert.LsRecipients.CopyTo(lsRecipientsCopy); //App.Locator.Alert.LsRecipients.Clear(); foreach (AlertRecipientDTO recipient in App.Locator.Alert.LsRecipients) { AlertRecipientLayout.AddChild(new Contact { DisplayName = recipient.DisplayName, Email = recipient.Email, EmailType = recipient.EmailType, PhoneNumber = recipient.PhoneNumber, PhoneType = recipient.PhoneNumberType }); } } }
/// <summary> /// Open a popup to enter a new recipient /// </summary> private void AddRecipientFromPopupButton_Click(object sender, EventArgs e) { Android.Support.V7.App.AlertDialog addRecipientDialog = null; var addRecipientBuilder = new Android.Support.V7.App.AlertDialog.Builder(this, Resource.Style.Theme_AppCompat_Light_Dialog); var view = LayoutInflater.Inflate(Resource.Drawable.AddRecipient, null); addRecipientBuilder.SetTitle(Resource.String.alertSOS_popupTitle); addRecipientBuilder.SetPositiveButton(Resource.String.alertSOS_popupPositive, new EventHandler <DialogClickEventArgs>((o, ev) => { })); addRecipientBuilder.SetNegativeButton(Resource.String.alertSOS_popupNegative, new EventHandler <DialogClickEventArgs>((o, ev) => { addRecipientDialog.Dismiss(); })); addRecipientBuilder.SetView(view); addRecipientDialog = addRecipientBuilder.Create(); addRecipientDialog.ShowEvent += (ee, oo) => { var button = addRecipientDialog.GetButton((int)Android.Content.DialogButtonType.Positive); button.Click += (eee, ooo) => { var displayNameEditText = view.FindViewById <EditText>(Resource.Id.addRecipient_contact); var emailEditText = view.FindViewById <EditText>(Resource.Id.addRecipient_email); // empty display name if (string.IsNullOrEmpty(displayNameEditText.Text)) { displayNameEditText.Error = Resources.GetString(Resource.String.alertSOS_popupEmptyField); } // empty email else if (string.IsNullOrEmpty(emailEditText.Text)) { emailEditText.Error = Resources.GetString(Resource.String.alertSOS_popupEmptyField); } // invalide email else if (!Android.Util.Patterns.EmailAddress.Matcher(emailEditText.Text).Matches()) { emailEditText.Error = Resources.GetString(Resource.String.alertSOS_popupEmail); } // add the contact else { displayNameEditText.Error = null; emailEditText.Error = null; App.Locator.Alert.LsRecipients.Add(new AlertRecipientDTO { DisplayName = displayNameEditText.Text, Email = emailEditText.Text }); _selectedContact = new Contact { DisplayName = displayNameEditText.Text, Email = emailEditText.Text }; AlertRecipientLayout.AddChild(_selectedContact); addRecipientDialog.Dismiss(); } }; }; addRecipientDialog.Show(); }
private void SetDataToView() { var alert = App.Locator.AlertSOS.CurrentAlertSOS; if (alert != null) { AlertTitleEditText.Text = alert.Title; AlertBodyEditText.Text = alert.Content; AlertRecipientLayout.RemoveAllViews(); foreach (var contact in App.CurrentUserEnvironment.LsAlertRecipient.Where(w => w.IdAlert == alert.IdAlert)) { AlertRecipientLayout.AddChild(new Contact { DisplayName = contact.DisplayName, Email = contact.Email, EmailType = contact.EmailType, PhoneNumber = contact.PhoneNumber, PhoneType = contact.PhoneNumberType }); App.Locator.AlertSOS.LsRecipients.Add(new Model.DTO.AlertRecipientDTO { DisplayName = contact.DisplayName, Email = contact.Email, EmailType = contact.EmailType, PhoneNumber = contact.PhoneNumber, PhoneNumberType = contact.PhoneNumberType, IdAlert = contact.IdAlert, IdRecipient = contact.IdRecipient }); } } }
/// <summary> /// Select a contact /// </summary> protected override void OnActivityResult(int requestCode, Result resultCode, Intent data) { if (requestCode == 101 && resultCode == Result.Ok) { if (data == null || data.Data == null) { return; } string id = data.Data.PathSegments[1]; if (string.IsNullOrEmpty(id)) { return; } _selectedContact = new Contact(); using (Android.Database.ICursor cursor = ContentResolver.Query(data.Data, null, null, null, null)) { if (cursor.MoveToFirst()) { _selectedContact.DisplayName = cursor.GetString(cursor.GetColumnIndex(Android.Provider.ContactsContract.PhoneLookup.InterfaceConsts.DisplayName)); _selectedContact.Email = cursor.GetString(cursor.GetColumnIndex(Android.Provider.ContactsContract.CommonDataKinds.Email.Address)); } else { Toast.MakeText(ApplicationContext, Resource.String.alert_noEmailFound, ToastLength.Short).Show(); } } if (App.Locator.Alert.LsRecipients.Where(el => el.Email == _selectedContact.Email).FirstOrDefault() == null) { if (App.Locator.Alert.LsRecipients.Count >= 3) { var errorMessage = Resources.GetString(Resource.String.alert_moreThanThreeRecipients); Toast.MakeText(ApplicationContext, errorMessage, ToastLength.Short).Show(); } else { AlertRecipientLayout.AddChild(_selectedContact); App.Locator.Alert.LsRecipients.Add(new AlertRecipientDTO { DisplayName = _selectedContact.DisplayName, Email = _selectedContact.Email }); } } } }