diff --git a/src/EventKit/EKEnums.cs b/src/EventKit/EKEnums.cs index 4ac03bd1d665..ebbf90678c8c 100644 --- a/src/EventKit/EKEnums.cs +++ b/src/EventKit/EKEnums.cs @@ -190,6 +190,7 @@ public enum EKAuthorizationStatus : long { Restricted, Denied, Authorized, + WriteOnly, } [Native] diff --git a/src/eventkit.cs b/src/eventkit.cs index 3618b2721b53..d812065f0ade 100644 --- a/src/eventkit.cs +++ b/src/eventkit.cs @@ -672,16 +672,36 @@ interface EKEventStore { EKSource [] DelegateSources { get; } [MacCatalyst (13, 1)] + [Deprecated (PlatformName.iOS, 17, 0, message: "Use RequestFullAccessToEvents, RequestWriteOnlyAccessToEvents, or RequestFullAccessToReminders.")] + [Deprecated (PlatformName.MacOSX, 14, 0, message: "Use RequestFullAccessToEvents, RequestWriteOnlyAccessToEvents, or RequestFullAccessToReminders.")] + [Deprecated (PlatformName.WatchOS, 10, 0, message: "Use RequestFullAccessToEvents, RequestWriteOnlyAccessToEvents, or RequestFullAccessToReminders.")] + [Deprecated (PlatformName.MacCatalyst, 17, 0, message: "Use RequestFullAccessToEvents, RequestWriteOnlyAccessToEvents, or RequestFullAccessToReminders.")] [Export ("requestAccessToEntityType:completion:")] [Async] void RequestAccess (EKEntityType entityType, Action completionHandler); + [Watch (10, 0), Mac (14, 0), iOS (17, 0), MacCatalyst (17, 0)] + [Export ("requestFullAccessToEventsWithCompletion:")] + [Async] + void RequestFullAccessToEvents (EKEventStoreRequestAccessCompletionHandler completion); + + [Watch (10, 0), Mac (14, 0), iOS (17, 0), MacCatalyst (17, 0)] + [Export ("requestWriteOnlyAccessToEventsWithCompletion:")] + [Async] + void RequestWriteOnlyAccessToEvents (EKEventStoreRequestAccessCompletionHandler completion); + + [Watch (10, 0), Mac (14, 0), iOS (17, 0), MacCatalyst (17, 0)] + [Export ("requestFullAccessToRemindersWithCompletion:")] + [Async] + void RequestFullAccessToReminders (EKEventStoreRequestAccessCompletionHandler completion); + [MacCatalyst (13, 1)] [Static] [Export ("authorizationStatusForEntityType:")] EKAuthorizationStatus GetAuthorizationStatus (EKEntityType entityType); } + delegate void EKEventStoreRequestAccessCompletionHandler (bool didRequestAccess, NSError error); delegate void EKEventSearchCallback (EKEvent theEvent, ref bool stop); [BaseType (typeof (EKCalendarItem))] diff --git a/tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-EventKit.todo b/tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-EventKit.todo deleted file mode 100644 index 0a68ddde7e58..000000000000 --- a/tests/xtro-sharpie/api-annotations-dotnet/MacCatalyst-EventKit.todo +++ /dev/null @@ -1,2 +0,0 @@ -!missing-selector! EKEventStore::initWithSources: not bound -!missing-selector! EKSource::isDelegate not bound diff --git a/tests/xtro-sharpie/api-annotations-dotnet/common-EventKit.ignore b/tests/xtro-sharpie/api-annotations-dotnet/common-EventKit.ignore index c307fed79a52..71563e436c3c 100644 --- a/tests/xtro-sharpie/api-annotations-dotnet/common-EventKit.ignore +++ b/tests/xtro-sharpie/api-annotations-dotnet/common-EventKit.ignore @@ -1,2 +1,4 @@ ## extra value so the enum is easier to create !extra-enum-value! Managed value 0 for EKWeekday.NotSet not found in native headers +## `Last` value can change overtime - which would be a breaking change for us +!missing-enum-value! EKErrorCode native value EKErrorLast = 37 not bound diff --git a/tests/xtro-sharpie/api-annotations-dotnet/iOS-EventKit.ignore b/tests/xtro-sharpie/api-annotations-dotnet/iOS-EventKit.ignore index 5e616188615c..f6a5ffc2ac08 100644 --- a/tests/xtro-sharpie/api-annotations-dotnet/iOS-EventKit.ignore +++ b/tests/xtro-sharpie/api-annotations-dotnet/iOS-EventKit.ignore @@ -1,5 +1,2 @@ ## only available on OSX (NA or unused in iOS) !missing-enum! EKAlarmType not bound - -## `Last` value can change overtime - which would be a breaking change for us -!missing-enum-value! EKErrorCode native value EKErrorLast = 37 not bound diff --git a/tests/xtro-sharpie/api-annotations-dotnet/iOS-EventKit.todo b/tests/xtro-sharpie/api-annotations-dotnet/iOS-EventKit.todo deleted file mode 100644 index d6f2b90fb855..000000000000 --- a/tests/xtro-sharpie/api-annotations-dotnet/iOS-EventKit.todo +++ /dev/null @@ -1,5 +0,0 @@ -!deprecated-attribute-missing! EKEventStore::requestAccessToEntityType:completion: missing a [Deprecated] attribute -!missing-enum-value! EKAuthorizationStatus native value EKAuthorizationStatusWriteOnly = 4 not bound -!missing-selector! EKEventStore::requestFullAccessToEventsWithCompletion: not bound -!missing-selector! EKEventStore::requestFullAccessToRemindersWithCompletion: not bound -!missing-selector! EKEventStore::requestWriteOnlyAccessToEventsWithCompletion: not bound diff --git a/tests/xtro-sharpie/api-annotations-dotnet/macOS-EventKit.todo b/tests/xtro-sharpie/api-annotations-dotnet/macOS-EventKit.todo deleted file mode 100644 index dd7e7062c9b1..000000000000 --- a/tests/xtro-sharpie/api-annotations-dotnet/macOS-EventKit.todo +++ /dev/null @@ -1,5 +0,0 @@ -!missing-enum-value! EKErrorCode native value EKErrorLast = 37 not bound -!missing-enum-value! EKAuthorizationStatus native value EKAuthorizationStatusWriteOnly = 4 not bound -!missing-selector! EKEventStore::requestFullAccessToEventsWithCompletion: not bound -!missing-selector! EKEventStore::requestFullAccessToRemindersWithCompletion: not bound -!missing-selector! EKEventStore::requestWriteOnlyAccessToEventsWithCompletion: not bound diff --git a/tests/xtro-sharpie/common-EventKit.ignore b/tests/xtro-sharpie/common-EventKit.ignore index 4b5300244841..71563e436c3c 100644 --- a/tests/xtro-sharpie/common-EventKit.ignore +++ b/tests/xtro-sharpie/common-EventKit.ignore @@ -1,3 +1,4 @@ ## extra value so the enum is easier to create !extra-enum-value! Managed value 0 for EKWeekday.NotSet not found in native headers ## `Last` value can change overtime - which would be a breaking change for us +!missing-enum-value! EKErrorCode native value EKErrorLast = 37 not bound diff --git a/tests/xtro-sharpie/iOS-EventKit.ignore b/tests/xtro-sharpie/iOS-EventKit.ignore index 892eca3b1877..f6a5ffc2ac08 100644 --- a/tests/xtro-sharpie/iOS-EventKit.ignore +++ b/tests/xtro-sharpie/iOS-EventKit.ignore @@ -1,3 +1,2 @@ ## only available on OSX (NA or unused in iOS) !missing-enum! EKAlarmType not bound -!missing-enum-value! EKErrorCode native value EKErrorLast = 37 not bound diff --git a/tests/xtro-sharpie/iOS-EventKit.todo b/tests/xtro-sharpie/iOS-EventKit.todo deleted file mode 100644 index d6f2b90fb855..000000000000 --- a/tests/xtro-sharpie/iOS-EventKit.todo +++ /dev/null @@ -1,5 +0,0 @@ -!deprecated-attribute-missing! EKEventStore::requestAccessToEntityType:completion: missing a [Deprecated] attribute -!missing-enum-value! EKAuthorizationStatus native value EKAuthorizationStatusWriteOnly = 4 not bound -!missing-selector! EKEventStore::requestFullAccessToEventsWithCompletion: not bound -!missing-selector! EKEventStore::requestFullAccessToRemindersWithCompletion: not bound -!missing-selector! EKEventStore::requestWriteOnlyAccessToEventsWithCompletion: not bound diff --git a/tests/xtro-sharpie/macOS-EventKit.todo b/tests/xtro-sharpie/macOS-EventKit.todo deleted file mode 100644 index dd7e7062c9b1..000000000000 --- a/tests/xtro-sharpie/macOS-EventKit.todo +++ /dev/null @@ -1,5 +0,0 @@ -!missing-enum-value! EKErrorCode native value EKErrorLast = 37 not bound -!missing-enum-value! EKAuthorizationStatus native value EKAuthorizationStatusWriteOnly = 4 not bound -!missing-selector! EKEventStore::requestFullAccessToEventsWithCompletion: not bound -!missing-selector! EKEventStore::requestFullAccessToRemindersWithCompletion: not bound -!missing-selector! EKEventStore::requestWriteOnlyAccessToEventsWithCompletion: not bound diff --git a/tests/xtro-sharpie/watchOS-EventKit.ignore b/tests/xtro-sharpie/watchOS-EventKit.ignore deleted file mode 100644 index d685ac387bd7..000000000000 --- a/tests/xtro-sharpie/watchOS-EventKit.ignore +++ /dev/null @@ -1 +0,0 @@ -!missing-enum-value! EKErrorCode native value EKErrorLast = 37 not bound diff --git a/tests/xtro-sharpie/watchOS-EventKit.todo b/tests/xtro-sharpie/watchOS-EventKit.todo deleted file mode 100644 index d6f2b90fb855..000000000000 --- a/tests/xtro-sharpie/watchOS-EventKit.todo +++ /dev/null @@ -1,5 +0,0 @@ -!deprecated-attribute-missing! EKEventStore::requestAccessToEntityType:completion: missing a [Deprecated] attribute -!missing-enum-value! EKAuthorizationStatus native value EKAuthorizationStatusWriteOnly = 4 not bound -!missing-selector! EKEventStore::requestFullAccessToEventsWithCompletion: not bound -!missing-selector! EKEventStore::requestFullAccessToRemindersWithCompletion: not bound -!missing-selector! EKEventStore::requestWriteOnlyAccessToEventsWithCompletion: not bound