Beispiel #1
0
        private IEnumerator CRDeleteContact(ContactView view, Contact contact)
        {
            yield return(StartCoroutine(CRRequestPermission(AndroidPermission.AndroidPermissionWriteContacts)));

            if (contact == null)
            {
                yield break;
            }

            var message = string.Format("Delete contact with id: " + (contact.Id ?? "null"));
            var alert   = NativeUI.ShowTwoButtonAlert("Delete Contact", message, "Yes", "No");

            alert.OnComplete += button =>
            {
                if (button == 1) // Click No
                {
                    return;
                }

                var deleteResult = DeviceContacts.DeleteContact(contact);
                if (deleteResult != null)
                {
                    Debug.LogWarning(deleteResult);
                    return;
                }

                createdViews.Remove(view);
                Destroy(view.gameObject);
            };
        }
Beispiel #2
0
        public override void OnEnter()
        {
            DateTime?birthday = null;

            if (!string.IsNullOrEmpty(birthdayInput.Value))
            {
                DateTime parseBirthday;
                if (DateTime.TryParseExact(birthdayInput.Value, "yyyy-MM-dd", CultureInfo.InvariantCulture, DateTimeStyles.None, out parseBirthday))
                {
                    birthday = parseBirthday;
                }
                else
                {
                    errorMsg.Value = "Can't convert birthday to yyyy-MM-dd format.";
                    Fsm.Event(eventTarget, isNotSuccessEvent);
                }
            }

            AddedPhoneNumbersObject addedPhoneNumbersTemp = (AddedPhoneNumbersObject)phoneNumbersObject.Value;

            AddedEmailsObject addedEmailsTemp = (AddedEmailsObject)emailsObject.Value;

            List <StringStringKeyValuePair> addedEmails = addedEmailsTemp.AddedEmails != null ? addedEmailsTemp.AddedEmails : new List <StringStringKeyValuePair>();

            List <StringStringKeyValuePair> addedPhoneNumbers = addedPhoneNumbersTemp.AddedPhoneNumbers != null ? addedPhoneNumbersTemp.AddedPhoneNumbers : new List <StringStringKeyValuePair>();

            Texture2D avatarImage = (Texture2D)avatarImageInput.Value;

            //var avatar = avatarImage != null ? (Texture2D)avatarImage : null;

            Contact contact = new Contact()
            {
                FirstName    = firstName.Value,
                MiddleName   = middleName.Value,
                LastName     = lastName.Value,
                Company      = company.Value,
                Birthday     = birthday,
                Emails       = addedEmails.Select(email => new KeyValuePair <string, string>(email.Key, email.Value)).ToArray(),
                PhoneNumbers = addedPhoneNumbers.Select(phoneNumber => new KeyValuePair <string, string>(phoneNumber.Key, phoneNumber.Value)).ToArray(),
                Photo        = avatarImage
            };

            string error = DeviceContacts.AddContact(contact);

            if (string.IsNullOrEmpty(error))
            {
                Fsm.Event(eventTarget, isSuccessEvent);
            }
            else
            {
                errorMsg.Value = error;
                Fsm.Event(eventTarget, isNotSuccessEvent);
            }
        }
Beispiel #3
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            TabLayoutResource = Resource.Layout.Tabbar;
            ToolbarResource   = Resource.Layout.Toolbar;

            base.OnCreate(savedInstanceState);

            Xamarin.Essentials.Platform.Init(this, savedInstanceState);
            DeviceContacts.Init(this);
            global::Xamarin.Forms.Forms.Init(this, savedInstanceState);
            LoadApplication(new App());
        }
Beispiel #4
0
        public override void OnEnter()
        {
            ContactObject temp    = (ContactObject)contactObj.Value;
            Contact       contact = temp.Contact;
            string        error   = DeviceContacts.DeleteContact(contact);

            if (string.IsNullOrEmpty(error))
            {
                Fsm.Event(eventTarget, isSuccessEvent);
            }
            else
            {
                Fsm.Event(eventTarget, isNotSuccessEvent);
            }
        }
Beispiel #5
0
        IEnumerator CRPickContacts()
        {
            yield return(StartCoroutine(CRRequestPermission(AndroidPermission.AndroidPermissionReadContacts)));

            DeviceContacts.PickContact((error, contact) =>
            {
                if (contact != null)
                {
                    AddContactView(contact);
                    return;
                }

                string errorMessage = error ?? "Received an empty contact with unknown error.";
                NativeUI.Alert("Pick Contact Error", errorMessage);
            });
        }
Beispiel #6
0
        IEnumerator CRGetAllContacts()
        {
            yield return(StartCoroutine(CRRequestPermission(AndroidPermission.AndroidPermissionReadContacts)));

            DeviceContacts.GetContacts((error, contacts) =>
            {
                if (!string.IsNullOrEmpty(error))
                {
                    NativeUI.Alert("Get All Contacts Error", error);
                }

                if (contacts != null)
                {
                    foreach (var contact in contacts)
                    {
                        AddContactView(contact);
                    }
                }
            });
        }
Beispiel #7
0
        IEnumerator CRAddContact()
        {
            yield return(StartCoroutine(CRRequestPermission(AndroidPermission.AndroidPermissionWriteContacts)));

            string firstName  = firstnNameInput.text;
            string middleName = middleNameInput.text;
            string lastName   = lastNameInput.text;
            string company    = companyInput.text;

            DateTime?birthday = null;

            if (!string.IsNullOrEmpty(birthdayInput.text))
            {
                DateTime parseBirthday;
                if (DateTime.TryParseExact(birthdayInput.text, "yyyy-MM-dd", CultureInfo.InvariantCulture, DateTimeStyles.None, out parseBirthday))
                {
                    birthday = parseBirthday;
                }
                else
                {
                    NativeUI.Alert("Invalid birthday", "Can't convert birthday to yyyy-MM-dd format.");
                    yield break;
                }
            }

            var avatar = avatarImage.texture != null ? (Texture2D)avatarImage.texture : null;
            var error  = DeviceContacts.AddContact(new Contact()
            {
                FirstName    = firstName,
                MiddleName   = middleName,
                LastName     = lastName,
                Company      = company,
                Birthday     = birthday,
                Emails       = addedEmails.Select(email => new KeyValuePair <string, string>(email.Key, email.Value)).ToArray(),
                PhoneNumbers = addedPhoneNumbers.Select(phoneNumber => new KeyValuePair <string, string>(phoneNumber.Key, phoneNumber.Value)).ToArray(),
                Photo        = avatar
            });

            NativeUI.Alert("Add Contact", error ?? "Added new contact successfully");
        }
Beispiel #8
0
 public override void OnRequestPermissionsResult(int requestCode, string[] permissions, [GeneratedEnum] Android.Content.PM.Permission[] grantResults)
 {
     Xamarin.Essentials.Platform.OnRequestPermissionsResult(requestCode, permissions, grantResults);
     DeviceContacts.OnRequestPermissionsResult(requestCode, permissions, grantResults);
     base.OnRequestPermissionsResult(requestCode, permissions, grantResults);
 }
Beispiel #9
0
 public override void OnEnter()
 {
     DeviceContacts.PickContact(OnContactReceived);
 }
Beispiel #10
0
 public override void OnEnter()
 {
     DeviceContacts.GetContacts(OnContactsReceived);
 }