コード例 #1
0
        void FireEventPermissionCompletionHandler(ClusterEventAuthorizationType eventType)
        {
            EKAuthorizationStatus status = EKEventStore.GetAuthorizationStatus(EKEquivalentEventType(eventType));

            if (_eventPermissionCompletionHandler != null)
            {
                ClusterDialogResult userDialogResult   = ClusterDialogResult.Granted;
                ClusterDialogResult systemDialogResult = ClusterDialogResult.Granted;
                if (status == EKAuthorizationStatus.NotDetermined)
                {
                    userDialogResult   = ClusterDialogResult.Denied;
                    systemDialogResult = ClusterDialogResult.NoActionTaken;
                }
                else if (status == EKAuthorizationStatus.Authorized)
                {
                    userDialogResult   = ClusterDialogResult.Granted;
                    systemDialogResult = ClusterDialogResult.Granted;
                }
                else if (status == EKAuthorizationStatus.Denied)
                {
                    userDialogResult   = ClusterDialogResult.Granted;
                    systemDialogResult = ClusterDialogResult.Denied;
                }
                else if (status == EKAuthorizationStatus.Restricted)
                {
                    userDialogResult   = ClusterDialogResult.Granted;
                    systemDialogResult = ClusterDialogResult.ParentallyRestricted;
                }
                _eventPermissionCompletionHandler((status == EKAuthorizationStatus.Authorized),
                                                  userDialogResult,
                                                  systemDialogResult);
                _eventPermissionCompletionHandler = null;
            }
        }
コード例 #2
0
        void ShowActualEventPermissionAlert(ClusterEventAuthorizationType eventType)
        {
            EKEventStore aStore = new EKEventStore();

            aStore.RequestAccess(EKEquivalentEventType(eventType), delegate
            {
                FireEventPermissionCompletionHandler(eventType);
            });
        }
コード例 #3
0
 EKEntityType EKEquivalentEventType(ClusterEventAuthorizationType eventType)
 {
     if (eventType == ClusterEventAuthorizationType.Event)
     {
         return(EKEntityType.Event);
     }
     else
     {
         return(EKEntityType.Reminder);
     }
 }
コード例 #4
0
        public ClusterAuthorizationStatus EventPermissionAuthorizationStatus(ClusterEventAuthorizationType eventType)
        {
            var status = EKEventStore.GetAuthorizationStatus(ClusterPrePermissions.SharedPermissions.EKEquivalentEventType(eventType));

            switch (status)
            {
            case EKAuthorizationStatus.Authorized:
                return(ClusterAuthorizationStatus.Authorized);

            case EKAuthorizationStatus.Denied:
                return(ClusterAuthorizationStatus.Denied);

            case EKAuthorizationStatus.Restricted:
                return(ClusterAuthorizationStatus.Restricted);

            default:
                return(ClusterAuthorizationStatus.UnDetermined);
            }
        }
コード例 #5
0
        public void ShowEventPermissionsWithType(ClusterEventAuthorizationType eventType, string requestTitle, string message, string denyButtonTitle, string grantButtonTitle, ClusterPrePermissionCompletionHandler completionHandler)
        {
            if (requestTitle.Length == 0)
            {
                switch (eventType)
                {
                case ClusterEventAuthorizationType.Event:
                    requestTitle = @"Access Calendar?";
                    break;

                default:
                    requestTitle = @"Access Reminders?";
                    break;
                }
            }
            denyButtonTitle  = GetTitleForType(ClusterTitleType.Deny, denyButtonTitle);
            grantButtonTitle = GetTitleForType(ClusterTitleType.Request, grantButtonTitle);

            var status = EKEventStore.GetAuthorizationStatus(EKEquivalentEventType(eventType));

            if (status == EKAuthorizationStatus.NotDetermined)
            {
                _eventPermissionCompletionHandler = completionHandler;
                _preEventPermissionAlertView      = new UIAlertView(requestTitle, message, new AlertViewDelegate(this), denyButtonTitle, grantButtonTitle);
                _preEventPermissionAlertView.Tag  = (nint)(int)eventType;
                _preEventPermissionAlertView.Show();
            }
            else
            {
                if (completionHandler != null)
                {
                    completionHandler((status == EKAuthorizationStatus.Authorized),
                                      ClusterDialogResult.NoActionTaken,
                                      ClusterDialogResult.NoActionTaken);
                }
            }
        }
コード例 #6
0
        void ShowActualEventPermissionAlert(ClusterEventAuthorizationType eventType)
        {
            EKEventStore aStore = new EKEventStore ();
            aStore.RequestAccess (EKEquivalentEventType (eventType), delegate
            {

                FireEventPermissionCompletionHandler (eventType);
            });
        }
コード例 #7
0
 void FireEventPermissionCompletionHandler(ClusterEventAuthorizationType eventType)
 {
     EKAuthorizationStatus status = EKEventStore.GetAuthorizationStatus (EKEquivalentEventType (eventType));
     if (_eventPermissionCompletionHandler != null)
     {
         ClusterDialogResult userDialogResult = ClusterDialogResult.Granted;
         ClusterDialogResult systemDialogResult = ClusterDialogResult.Granted;
         if (status == EKAuthorizationStatus.NotDetermined)
         {
             userDialogResult = ClusterDialogResult.Denied;
             systemDialogResult = ClusterDialogResult.NoActionTaken;
         }
         else if (status == EKAuthorizationStatus.Authorized)
         {
             userDialogResult = ClusterDialogResult.Granted;
             systemDialogResult = ClusterDialogResult.Granted;
         }
         else if (status == EKAuthorizationStatus.Denied)
         {
             userDialogResult = ClusterDialogResult.Granted;
             systemDialogResult = ClusterDialogResult.Denied;
         }
         else if (status == EKAuthorizationStatus.Restricted)
         {
             userDialogResult = ClusterDialogResult.Granted;
             systemDialogResult = ClusterDialogResult.ParentallyRestricted;
         }
         _eventPermissionCompletionHandler ((status == EKAuthorizationStatus.Authorized),
             userDialogResult,
             systemDialogResult);
         _eventPermissionCompletionHandler = null;
     }
 }
コード例 #8
0
 EKEntityType EKEquivalentEventType(ClusterEventAuthorizationType eventType)
 {
     if (eventType == ClusterEventAuthorizationType.Event)
     {
         return EKEntityType.Event;
     }
     else
     {
         return EKEntityType.Reminder;
     }
 }
コード例 #9
0
        public void ShowEventPermissionsWithType(ClusterEventAuthorizationType eventType, string requestTitle, string message, string denyButtonTitle, string grantButtonTitle, ClusterPrePermissionCompletionHandler completionHandler)
        {
            if (requestTitle.Length == 0)
            {
                switch (eventType)
                {
                    case ClusterEventAuthorizationType.Event:
                        requestTitle = @"Access Calendar?";
                        break;

                    default:
                        requestTitle = @"Access Reminders?";
                        break;
                }
            }
            denyButtonTitle = GetTitleForType (ClusterTitleType.Deny, denyButtonTitle);
            grantButtonTitle = GetTitleForType (ClusterTitleType.Request, grantButtonTitle);

            var status = EKEventStore.GetAuthorizationStatus (EKEquivalentEventType (eventType));
            if (status == EKAuthorizationStatus.NotDetermined)
            {
                _eventPermissionCompletionHandler = completionHandler;
                _preEventPermissionAlertView = new UIAlertView (requestTitle, message, new AlertViewDelegate (this), denyButtonTitle, grantButtonTitle);
                _preEventPermissionAlertView.Tag = (nint)(int)eventType;
                _preEventPermissionAlertView.Show ();
            }
            else
            {
                if (completionHandler != null)
                {
                    completionHandler ((status == EKAuthorizationStatus.Authorized),
                        ClusterDialogResult.NoActionTaken,
                        ClusterDialogResult.NoActionTaken);
                }
            }
        }
コード例 #10
0
        public ClusterAuthorizationStatus EventPermissionAuthorizationStatus(ClusterEventAuthorizationType eventType)
        {
            var status = EKEventStore.GetAuthorizationStatus (ClusterPrePermissions.SharedPermissions.EKEquivalentEventType (eventType));
            switch (status)
            {
                case EKAuthorizationStatus.Authorized:
                    return ClusterAuthorizationStatus.Authorized;

                case EKAuthorizationStatus.Denied:
                    return ClusterAuthorizationStatus.Denied;

                case EKAuthorizationStatus.Restricted:
                    return ClusterAuthorizationStatus.Restricted;

                default:
                    return ClusterAuthorizationStatus.UnDetermined;
            }
        }