コード例 #1
0
        /// <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
                    });
                }
            }
        }
コード例 #2
0
        /// <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();
        }
コード例 #3
0
        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
                    });
                }
            }
        }
コード例 #4
0
        /// <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
                        });
                    }
                }
            }
        }