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; } }
void ShowActualEventPermissionAlert(ClusterEventAuthorizationType eventType) { EKEventStore aStore = new EKEventStore(); aStore.RequestAccess(EKEquivalentEventType(eventType), delegate { FireEventPermissionCompletionHandler(eventType); }); }
EKEntityType EKEquivalentEventType(ClusterEventAuthorizationType eventType) { if (eventType == ClusterEventAuthorizationType.Event) { return(EKEntityType.Event); } else { return(EKEntityType.Reminder); } }
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); } }
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); } } }
void ShowActualEventPermissionAlert(ClusterEventAuthorizationType eventType) { EKEventStore aStore = new EKEventStore (); aStore.RequestAccess (EKEquivalentEventType (eventType), delegate { FireEventPermissionCompletionHandler (eventType); }); }
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; } }
EKEntityType EKEquivalentEventType(ClusterEventAuthorizationType eventType) { if (eventType == ClusterEventAuthorizationType.Event) { return EKEntityType.Event; } else { return EKEntityType.Reminder; } }
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); } } }
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; } }