Ejemplo n.º 1
0
        void FireContactPermissionCompletionHandler()
        {
            ABAuthorizationStatus status = ABAddressBook.GetAuthorizationStatus();

            if (_contactPermissionCompletionHandler != null)
            {
                ClusterDialogResult userDialogResult   = ClusterDialogResult.Granted;
                ClusterDialogResult systemDialogResult = ClusterDialogResult.Granted;
                if (status == ABAuthorizationStatus.NotDetermined)
                {
                    userDialogResult   = ClusterDialogResult.Denied;
                    systemDialogResult = ClusterDialogResult.NoActionTaken;
                }
                else if (status == ABAuthorizationStatus.Authorized)
                {
                    userDialogResult   = ClusterDialogResult.Granted;
                    systemDialogResult = ClusterDialogResult.Granted;
                }
                else if (status == ABAuthorizationStatus.Denied)
                {
                    userDialogResult   = ClusterDialogResult.Granted;
                    systemDialogResult = ClusterDialogResult.Denied;
                }
                else if (status == ABAuthorizationStatus.Restricted)
                {
                    userDialogResult   = ClusterDialogResult.Granted;
                    systemDialogResult = ClusterDialogResult.ParentallyRestricted;
                }
                _contactPermissionCompletionHandler((status == ABAuthorizationStatus.Authorized),
                                                    userDialogResult,
                                                    systemDialogResult);
                _contactPermissionCompletionHandler = null;
            }
        }
Ejemplo n.º 2
0
        public void ShowContactsPermissionsWithTitle(string requestTitle, string message, string denyButtonTitle, string grantButtonTitle, ClusterPrePermissionCompletionHandler completionHandler)
        {
            if (requestTitle.Length == 0)
            {
                requestTitle = @"Access Contacts?";
            }
            denyButtonTitle  = GetTitleForType(ClusterTitleType.Deny, denyButtonTitle);
            grantButtonTitle = GetTitleForType(ClusterTitleType.Request, grantButtonTitle);

            ABAuthorizationStatus status = ABAddressBook.GetAuthorizationStatus();

            if (status == ABAuthorizationStatus.NotDetermined)
            {
                _contactPermissionCompletionHandler = completionHandler;
                _preContactPermissionAlertView      = new UIAlertView(requestTitle, message, new AlertViewDelegate(this), denyButtonTitle, grantButtonTitle);
                _preContactPermissionAlertView.Show();
            }
            else
            {
                if (completionHandler != null)
                {
                    completionHandler((status == ABAuthorizationStatus.Authorized),
                                      ClusterDialogResult.NoActionTaken,
                                      ClusterDialogResult.NoActionTaken);
                }
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Gets the current authorization permissions for the address book.
        /// </summary>
        /// <returns>The current permission.</returns>
        public AddressBookPermission GetPermission()
        {
            ABAuthorizationStatus status = this.GetAuthorizationStatus();

            if (status == ABAuthorizationStatus.Authorized)
            {
                return(AddressBookPermission.Authorized);
            }

            if (status == ABAuthorizationStatus.Denied)
            {
                return(AddressBookPermission.Denied);
            }

            if (status == ABAuthorizationStatus.NotDetermined)
            {
                return(AddressBookPermission.NotDetermined);
            }

            if (status == ABAuthorizationStatus.Restricted)
            {
                return(AddressBookPermission.Restricted);
            }

            throw new InvalidOperationException("Unexpected ABAuthorizationStatus (" + status + ").");
        }
Ejemplo n.º 4
0
        public void CheckAddressBookAccess()
        {
            ABAuthorizationStatus status = ABAddressBook.GetAuthorizationStatus();

            switch (status)
            {
            case ABAuthorizationStatus.NotDetermined:
                ShowAlert(DataClass.Contacts, "not determined");
                break;

            case ABAuthorizationStatus.Restricted:
                ShowAlert(DataClass.Contacts, "restricted");
                break;

            case ABAuthorizationStatus.Denied:
                ShowAlert(DataClass.Contacts, "denied");
                break;

            case ABAuthorizationStatus.Authorized:
                ShowAlert(DataClass.Contacts, "granted");
                break;
            }
        }